Les espaces de travail désignent des zones 'privées' où les développeurs peuvent implémenter et tester le code en
conformité avec les normes adoptées pour le projet, en isolement relatif par rapport aux autres développeurs. Le
responsable de la gestion de la configuration doit créer un environnement d'espace de travail pour chaque développeur
du projet.
Un espace de travail offre à chaque développeur un environnement cohérent, souple, peu coûteux et reproductible,
permettant de sélectionner et de présenter la version appropriée de chaque fichier. L'espace de travail doit être
capable d'offrir un contrôle fin du partage et de l'isolement. Ceci est nécessaire parce que dans la plupart des
projets, les développeurs doivent pouvoir être isolés des changements introduits par d'autres, mais en même temps, ils
doivent être capables de tester de manière unifiée les changements effectués par certains autres développeurs.
En effectuant la maintenance des anciennes éditions, le développeur doit pouvoir être capable de voir les anciennes
versions, les fichiers binaires, les documents, les tests, les outils et autres objets. Dans ce cas, l'espace de
travail sert de 'machine à remonter le temps', en faisant apparaître chaque élément de l'environnement, pas seulement
les sources, dans l'état où il se trouvait dans le passé.
Chaque espace de travail de développeur doit pouvoir être isolé pour les besoins de l'édition, de la compilation, du
test et du débogage. Toutefois, l'isolement de l'espace de travail doit être relatif et non absolu :
-
Les autres doivent pouvoir suivre le travail du développeur et l'intégrer sélectivement dans leur propre travail.
-
Les autres doivent être en mesure de bloquer, jusqu'à la période d'intégration suivante, les changements qui
peuvent déstabiliser leur propre travail.
Un espace de travail peut être complètement propre à un développeur ou partagé entre une équipe de développeurs à
travers le réseau.
Outre la fourniture d'un accès aux versions source, un espace de travail doit fournir un espace de stockage privé
(isolé) pour les fichiers générés au cours du développement du logiciel :
-
Versions de travail (extraites) des fichiers sources,
-
Exécutables,
-
Autres objets privés de l'espace de travail - code source, sous-répertoires de test et fichiers de données de test.
L'emplacement de stockage privé de l'espace de travail se trouve généralement dans le répertoire personnel du
développeur, sur sa station de travail. Un espace de travail partagé entre les développeurs peut avoir sa propre zone
de stockage située sur un serveur de fichiers central. Toutefois, l'emplacement physique du stockage privé importe peu.
Du point de vue du développeur de logiciel, le stockage privé de l'espace de travail doit apparaître comme entièrement
intégré.
La figure ci-dessus illustre la notion d'espaces de travail privé et d'intégration dans le contexte global du cube CM.
Les configurations de travail (profils d'espaces de travail) désignent des sous-systèmes particuliers qui constituent
un ensemble de travail pour un projet. Un ensemble de travail est une liste de versions spécifiques de
sous-systèmes devant être référencées, ou modifiées, pour implémenter un travail. Cette liste peut représenter le
système dans sa totalité ou un sous-ensemble.
Une vue fournit un accès à un ensemble de fichiers dans le référentiel du projet. La vue fournit en outre un accès à
l'ensemble approprié des versions de ces fichiers :
-
Une vue du nouveau développement peut fournir un accès aux versions les plus récentes de ces fichiers.
-
Une autre vue du nouveau développement peut fournir un accès aux versions en cours d'utilisation par une équipe
travaillant sur une nouvelle interface utilisateur pour votre produit.
-
Une vue de maintenance peut fournir un accès aux versions des fichiers qui ont été utilisés pour construire une
édition donnée du produit.
Un espace de travail, parfois appelé aussi vue, permet aux développeurs d'effectuer et de tester en privé leurs
changements, avant de les partager avec le reste de l'équipe. Il existe deux types de vues :
-
Vues instantanées
-
Vues dynamiques
Une vue instantanée fournit au développeur un environnement de travail stable et non changeant. Ce type de vue
est comparable à une arborescence de répertoires. Une vue instantanée comprend les versions correctes des fichiers d'un
ou plusieurs référentiels de projet. Certains utilisent le terme "bac à sable" pour une telle arborescence de
répertoires. Lorsqu'un développeur veut voir les changements effectués par d'autres membres de l'équipe, il actualise
sa vue. Cette méthode de travail suit le modèle pull (tirage), car elle repose sur l'extraction active des
informations pertinentes, plutôt que sur l'utilisation de mécanismes d'actualisation automatiques permettant de rendre
ces informations immédiatement disponibles.
Une vue dynamique est une structure de données virtuelle car elle paraît contenir toutes les données du
développement. Les vues dynamiques ne font pas de copies locales des fichiers, mais reposent sur l'actualisation
immédiate à travers le réseau. Les vues dynamiques constituent le meilleur choix dans les situations suivantes :
-
L'espace disque côté client est limité
-
Vous souhaitez profiter du partage d'objets dérivé
-
L'équipe de développement doit travailler avec les dernières versions du code. Cette fonctionnalité est
particulièrement utile pour une intégration qui exige la dernière version des logiciels.
|