Article de reference

Modèle de synchronisation

Dans la gestion de configuration (CM), il faut contrôler (entre autres) les modifications apportées aux logiciels et à la documentation. C'est ce qu'on appelle le contrôle de ré...

Dans la gestion de configuration (CM), il faut contrôler (entre autres) les modifications apportées aux logiciels et à la documentation. C'est ce qu'on appelle le contrôle de révision , qui gère plusieurs versions d'une même unité d'information. Bien que le contrôle de révision soit important pour la gestion de configuration, il n'est pas équivalent à celui-ci.

Les modèles de synchronisation , également connus sous le nom de modèles de gestion de configuration (Feiler, 1991), décrivent des méthodes permettant de contrôler les révisions en autorisant des modifications simultanées et concurrentes sur des fichiers individuels.

Modèles de synchronisation

Feiler (1991) présente quatre modèles de synchronisation différents, brièvement décrits ci-dessous.

Départ/Arrivée

Dans le modèle check-out/check-in, les fichiers sont stockés individuellement dans un référentiel à partir duquel ils sont extraits à chaque fois qu'ils sont consultés et archivés lorsqu'ils ont été modifiés. Ce référentiel peut stocker plusieurs versions des fichiers. Étant donné que ces fichiers peuvent être de la documentation ou du code source , mais peuvent également être une collection de fichiers, le terme Élément de configuration (CI) sera désormais utilisé. Le mécanisme de base utilisé pour éviter les conflits par des modifications simultanées est celui du verrouillage .

Composition

Le modèle de composition est une extension du modèle d'extraction/archivage. Ce modèle permet aux développeurs de penser en termes de configurations plutôt que de fichiers individuels. Bien que le modèle d'extraction/archivage complet soit représenté dans le modèle de composition, il permet l'utilisation de différentes stratégies de mise à jour grâce à l'utilisation d'un support amélioré pour la gestion des configurations. Une configuration est définie comme étant construite à partir d'un modèle système et de règles de sélection de version. Le modèle système détermine quels fichiers sont utilisés, tandis que les règles de sélection de version déterminent quelle version des fichiers (par exemple les dernières versions ou d'un certain état de développement ).

Transactions longues

Le modèle des transactions longues adopte une approche plus large en supposant qu'un système est construit à partir de modifications logiques. Il se concentre sur la coordination et l'intégration de ces modifications. Il utilise essentiellement des versions de configurations et des versions de fichiers. Une configuration est créée sur la base d'une demande de modification qui est stockée séparément. Les fichiers de cette configuration peuvent être synchronisés à l'aide du modèle d'extraction/archivage. Une fois la modification terminée, la configuration complète est stockée dans le référentiel et intégrée aux autres modifications.

Changer l'ensemble

Le modèle de jeu de modifications fonctionne également sur la base de demandes de modification et présente de nombreux points communs avec le modèle de transactions longues. Cependant, il commence par une certaine configuration comme base des modifications. Celle-ci est ensuite modifiée en fonction des demandes de modification indépendantes qui arrivent. De nouvelles configurations du produit sont ensuite créées en appliquant des ensembles de modifications enregistrées indépendamment sur la version de base .

Cette entrée couvre le modèle de synchronisation check-out/check-in, y compris un méta-modèle (un diagramme de processus-données ). Étant donné que le modèle check-out/check-in est également inclus dans les autres modèles évoqués ci-dessus, il est donc développé plus en détail. Les questions qui ne sont pas abordées en détail sont les trois modèles de synchronisation restants et l'édition proprement dite des CI ainsi que les méthodes qui y sont liées.

Vocabulaire

Concept Définition
Version Une version est un état d’un objet ou d’un concept qui varie par rapport à son état ou à sa condition précédente.
Élément de configuration Un élément de logiciel ou un document placé sous contrôle de version. Un groupe de CI peut également être défini comme un CI (Crnkovic et al., 2003).
Historique des éléments de configuration Un concept pour faciliter l'horodatage des versions. Sépare les attributs spécifiques à la version des attributs communs à toutes les versions (Van de Weerd, 2005)
Document De nombreux types de documentation font partie de l'ingénierie logicielle. Pensez aux documents qui décrivent l'architecture du logiciel, à la documentation technique, aux manuels d'utilisation, etc.
Fichier de code source Un fichier de code source contient une série d'instructions écrites dans un langage de programmation informatique lisible par l' homme. Le code source d'un programme informatique est l'ensemble des fichiers qui peuvent être convertis d'une forme lisible par l'homme en une forme équivalente exécutable par ordinateur.
Dépôt Un référentiel est également appelé coffre-fort. Un référentiel ne contient qu'une seule version complète d'un élément de configuration. Les différences entre les versions sont généralement stockées à l'aide d'un algorithme delta (Crnkovic, Asklund et Persson-Dahlqvist, 2003).
Organisation des versions Les versions d'un CI peuvent être organisées de différentes manières. C'est le parent des concepts qui décrivent l'organisation des versions (Crnkovic et al., 2003).
Bifurquer Versions organisées en lignes de développement parallèles (Crnkovic et al., 2003).
Révision Versions organisées en séquence (Crnkovic et al., 2003).
État de développement Exprime la progression du développement d'un logiciel et le niveau de développement supplémentaire qu'il peut nécessiter. Chaque version majeure d'un produit passe généralement par une étape au cours de laquelle de nouvelles fonctionnalités sont ajoutées (étape/état alpha), puis une étape au cours de laquelle elle est activement déboguée (étape/état bêta), et enfin une étape au cours de laquelle tous les bugs importants ont été supprimés (étape/état stable).

Élaboration du modèle de check-out/check-in

Cette section contient une élaboration du modèle de synchronisation d'enregistrement/de sortie.

Diagramme de processus et de données

Le diagramme de processus-données ci-dessus décrit les différents concepts applicables dans le modèle de synchronisation check-out/check-in et leur relation avec les activités qui se déroulent. L'élément de configuration est au cœur du modèle de métadonnées (côté droit de la figure). Il est stocké dans un ou plusieurs référentiels et peut par exemple être un fichier de code source ou une collection d'autres CI. Le référentiel peut contenir plusieurs branches et révisions de fichiers. Ceux-ci sont à leur tour constitués d'éléments de configuration.

Le modèle de métaprocessus (côté gauche de la figure) décrit le processus des activités de check-out et check-in. Les activités sont expliquées dans le tableau des activités ci-dessous.

Activité Sous-activité Définition
Vérifier Les fichiers ne sont pas lus ou modifiés directement depuis le référentiel. L'extraction décrit ces activités.
Copie CI Une version particulière d'un CI est copiée à partir du référentiel.
Verrouillage CI Si un accès en écriture est requis et si le CI n'est pas déjà verrouillé par quelqu'un d'autre, le CI est verrouillé. Sinon, le CI ne peut pas être réécrit dans le référentiel (accès en lecture seule).
Modifier le CI La personne qui modifie le CI y apporte des modifications. Cela sort du cadre du méta-modèle actuel concernant la gestion des versions.
Enregistrement Le CI doit être replacé dans le référentiel. L'archivage décrit ces activités.
Sélectionner la stratégie de gestion des versions Le nouveau CI doit être replacé dans le référentiel à l'aide d'une stratégie de gestion des versions. Cela décrit la sélection de la stratégie utilisée pour replacer le CI dans le référentiel.
Créer une branche Le CI est sélectionné pour être le début d’une nouvelle branche.
Créer une révision Le CI est sélectionné pour être une révision d’un autre CI.
Sélectionnez l'état de développement Il est déterminé que le CI se trouve à un certain stade de développement.
Écrire CI Le CI est stocké dans le référentiel.
Débloquer CI Le CI est déverrouillé.

Évaluation

Feiler (1991) a évalué le modèle de synchronisation check-out/check-in. Il présente l'avantage évident d'être facile à utiliser et à comprendre. Cependant, cette simplicité se traduit par un manque de gestion des configurations, comme le suivi des versions de produits et la vérification de l'historique des versions sur plusieurs fichiers connectés logiquement.

Le mécanisme de verrouillage à tour de rôle est également un réel problème lorsque l'on travaille avec de nombreux développeurs, car ces fichiers ne peuvent pas être modifiés par d'autres une fois qu'ils ont été verrouillés.

Exemple

Pour illustrer le modèle de synchronisation check-out/check-in, cette section contient un exemple de fonctionnement de ce processus. La figure ci-dessous contient un diagramme de transition d'état d'un CI.

Lorsqu'un CI est créé pour la première fois, il est modifié et stocké dans le référentiel. Lorsque quelqu'un demande à ouvrir le CI, il est d'abord copié sur la machine locale du développeur (remarque : il existe des systèmes où l'édition se fait directement dans le référentiel. L'étape de copie est cependant la méthode classique d'extraction/archivage). Lorsque ce développeur souhaite également éditer le CI, il demande un verrou. Cela peut être fait directement à la demande d'ouverture d'un CI, mais aussi après un certain temps de lecture. Lorsque le CI n'est pas encore verrouillé, un verrou est appliqué et il peut être modifié par le développeur. Une fois les modifications effectuées, il est stocké dans le référentiel et déverrouillé. Supposons maintenant que le développeur dont nous venons de parler est en train de modifier un CI qui se trouve déjà dans le référentiel. Vous souhaitez ouvrir un CI à partir du référentiel et il est donc copié sur votre disque local. Vous commencez à le lire et trouvez des éléments que vous souhaitez modifier, vous demandez donc à le modifier. Cependant, le CI est déjà verrouillé et vous devrez attendre qu'il soit déverrouillé ou fermer le fichier et passer à un autre.

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index