Gestion de configuration Gestion de versions L’outil Subversion >
La gestion de configuration — Suivre l’´evolutionde son produit tout en travaillant en ´equipe
Jean-Yves Didier
Universit´ed’Evry-Val d’Essonne
Jean-Yves Didier La gestion de configuration 1/42 Gestion de configuration Gestion de versions L’outil Subversion >
1 Gestion de configuration
2 Gestion de versions G´en´eralit´es Concepts
3 Subversion : un outil de gestion de version Fonctionnement g´en´eral D´eploiementde subversion
Jean-Yves Didier La gestion de configuration 2/42 Gestion de configuration Gestion de versions L’outil Subversion >
Probl´ematique
Questions classiques • O`use trouve la derni`ereversion en cours de d´eveloppement ? • Quelle version a ´et´evalid´eeet a ´et´efabriqu´ee? • Comment d´efinirun r´ef´erentielcommun entre tous les acteurs d’un projet ?
R´esolutiondes probl`emessuivants • La duplication des donn´eesnum´eriques; • La gestion des it´erationset des versions ; • La gestion des configurations ; • La cr´eationd’un r´ef´erentiel; • Le contrˆolede l’acc`esaux donn´ees.
Jean-Yves Didier La gestion de configuration 3/42 Gestion de configuration Gestion de versions L’outil Subversion >
Gestion de configuration (1/3)
D´efinition: Gestion de configuration • Instantan´edes caract´eristiquesfonctionnelles et physiques d’un syst`emecon¸cupour r´epondre `aun ensemble d’exigences • Ensemble des activit´es,manuelles ou automatis´ees, permettant d’identifier et de d´efinirles articles de configuration d’un syst`eme et toutes leurs relations ;
D´efinition: Article de configuration • Ensembles et sous-ensembles du syst`emequi remplissent une fonction int´eressantles utilisateurs ; • Tout article (document papier, logiciel ou mat´eriel),contenant des informations n´ecessaires`ala r´ealisationd’un projet ou au suivi de cette derni`ere.
Jean-Yves Didier La gestion de configuration 4/42 Gestion de configuration Gestion de versions L’outil Subversion >
Gestion de configuration (2/3)
Caract´erisation • G`erela description technique d’un syst`emeet de ses divers composants (configuration) ; • G`erel’ensemble des modifications apport´eesau cours de l’´evolutiondu syst`eme; • Adapt´eaux syst`emescomplexes.
Contraintes sur les articles de configuration • Identifiables de mani`ereunivoque, localisable, archiv´es; • Description des relations de d´ependance entre articles de configuration dans leurs diff´erentesversions.
Jean-Yves Didier La gestion de configuration 5/42 Gestion de configuration Gestion de versions L’outil Subversion >
Gestion de configuration (3/3)
Secteurs int´eress´es • Informatique ; • A´eronautique; • Automobile ; • Armement ; • ...
Jean-Yves Didier La gestion de configuration 6/42 Gestion de configuration Gestion de versions L’outil Subversion >
Processus affili´es`ala gestion de configuration
4 processus principaux 1 Identification :
I Inventaire, identification du p´erim`etreet des composants du syst`eme. 2 Maˆıtrisede la configuration :
I Coh´erencede l’ensemble des donn´ees de la configuration pendant la dur´eede vie du produit. 3 Enregistrement des ´etatsde la configuration :
I Maˆıtrisede l’´evolutionde la configuration et de ses constituants, conservation de l’historique. 4 Audit et revue :
I Ad´equationentre la configuration et les exigences formul´ees.
Jean-Yves Didier La gestion de configuration 7/42 Gestion de configuration Gestion de versions L’outil Subversion >
Enjeu ´economiquede la gestion de configuration
Le programme Airbus A380 2005 : Airbus annonce un d´elaidans la production des A380. Probl`eme : industrialisation des cˆablages`ainstaller dans l’appareil (530 km de cˆables); Cause : probl`emesd’interop´erabilit´esentre deux versions du mˆemelogiciel : Catia v4 (Espagne, Allemagne), Catia v5 (France, Angleterre) ; Cons´equences: • 18 mois de retard sur le programme ; • Surcoˆutdu programme : 4,8 milliards d’euros ; • P´enalit´esde retard, annulations de commandes.
Jean-Yves Didier La gestion de configuration 8/42 Gestion de configuration Gestion de versions L’outil Subversion >
Gestion de configuration et normalisation
Normes, r´ef´erentiels,recommandations IEEE 729-1983 IEEE Standard Glossary of Software Engineering Terminology (IEEE : Institute of Electrical and Electronics Engineers); ITILv3 (2011) Information Technology Infrastructure Library (R´ef´erentielde bonnes pratiques) ; ISO/IEC 20000:2011 IT Service Management System Standard ; IEEE 828-2012 IEEE Standard for Configuration Management in Systems and Software Engineering ; RG 000101-105 Recommandations g´en´eralesa´eronautiquesdu BNAE (Bureau de Normalisation de l’A´eronautique et de l’Espace) – 2010.
Jean-Yves Didier La gestion de configuration 9/42 Gestion de configuration Gestion de versions L’outil Subversion >
Liens entre gestion de configuration et informatique
3 utilisations majeures • Tracer les diff´erentesversions ou r´evisionsde toute information destin´ee`aˆetreutilis´ee par un syst`eme; • D´eployer les configurations `atravers un parc informatique sous forme de fichiers et donn´ees; • G´ererle code source de d´eveloppements informatiques.
Jean-Yves Didier La gestion de configuration 10/42 Gestion de configuration Gestion de versions L’outil Subversion >
1 Gestion de configuration
2 Gestion de versions G´en´eralit´es Concepts
3 Subversion : un outil de gestion de version Fonctionnement g´en´eral D´eploiementde subversion
Jean-Yves Didier La gestion de configuration 11/42 Gestion de configuration Gestion de versions L’outil Subversion >
Gestion de versions
D´efinition La gestion de versions consiste `amaintenir l’ensemble des versions d’un ensemble ou d’une arborescence de fichiers (Processus 3 de la gestion de configuration).
Applications • Suivi de l’´evolutionde la documentation technique ; • Gestion d’art´efactsinformatiques (fichiers CAO, etc.) ; • Gestion du code source d’une application ;
Un concept non limit´e`al’informatique Solidworks Entreprise PDM – Dassault Syst`emes. Probl´ematiquedes PLM.
Jean-Yves Didier La gestion de configuration 12/42 I Logiciel de contrˆolede version git.
• Processus assist´epar la machine :
Rendre possible une telle cadence de production • Gestion manuelle impossible ;
Gestion de configuration Gestion de versions L’outil Subversion >
L’exemple du noyau Linux
Version 3.2 (avril 2012) De la v 3.1 `ala v 3.2 (source : h-online.com) 1 400 000 lignes modifi´ees, 14 998 651 lignes de code, 200 000 lignes ajout´ees, 37 617 fichiers, 12 608 fichiers modifi´es, 7 800 d´eveloppeurs, 73 jours, 800 entreprises. 6 correctifs/heure.
Jean-Yves Didier La gestion de configuration 13/42 I Logiciel de contrˆolede version git.
Gestion de configuration Gestion de versions L’outil Subversion >
L’exemple du noyau Linux (Sujets sensibles au vertige s’abstenir)
Version 3.2 (avril 2012) De la v 3.1 `ala v 3.2 (source : h-online.com) 1 400 000 lignes modifi´ees, 14 998 651 lignes de code, 200 000 lignes ajout´ees, 37 617 fichiers, 12 608 fichiers modifi´es, 7 800 d´eveloppeurs, 73 jours, 800 entreprises. 6 correctifs/heure.
Rendre possible une telle cadence de production • Gestion manuelle impossible ; • Processus assist´epar la machine :
Jean-Yves Didier La gestion de configuration 13/42 Gestion de configuration Gestion de versions L’outil Subversion >
L’exemple du noyau Linux (Sujets sensibles au vertige s’abstenir)
Version 3.2 (avril 2012) De la v 3.1 `ala v 3.2 (source : h-online.com) 1 400 000 lignes modifi´ees, 14 998 651 lignes de code, 200 000 lignes ajout´ees, 37 617 fichiers, 12 608 fichiers modifi´es, 7 800 d´eveloppeurs, 73 jours, 800 entreprises. 6 correctifs/heure.
Rendre possible une telle cadence de production • Gestion manuelle impossible ; • Processus assist´epar la machine :
I Logiciel de contrˆolede version git.
Jean-Yves Didier La gestion de configuration 13/42 A. Bob et Alice effectuent ensemble les modifications `aapporter sur la partie `aAlice ; B. Bob effectue les modifications, les envoie `aAlice qui joue au jeu des 10 diff´erencessur les fichiers ; C. Bob et Alice utilisent un logiciel de contrˆolede version, donc Bob effectue les modifications et Alice en b´en´eficieen moins de 10 secondes sans que cela d´emolisseson travail ;
Gestion de configuration Gestion de versions L’outil Subversion >
Sc´enario
D´eveloppement en ´equipe Alice et Bob d´eveloppent de nouvelles fonctionnalit´espour un logiciel. Apr`ess’ˆetrepartag´esle travail, Bob s’aper¸coitque, pour que sa partie fonctionne, la partie d’Alice doit ˆetremodifi´eemais Alice a d´ej`acommenc´e`atravailler. Comment vont-ils s’y prendre ?
Jean-Yves Didier La gestion de configuration 14/42 B. Bob effectue les modifications, les envoie `aAlice qui joue au jeu des 10 diff´erencessur les fichiers ; C. Bob et Alice utilisent un logiciel de contrˆolede version, donc Bob effectue les modifications et Alice en b´en´eficieen moins de 10 secondes sans que cela d´emolisseson travail ;
Gestion de configuration Gestion de versions L’outil Subversion >
Sc´enario
D´eveloppement en ´equipe Alice et Bob d´eveloppent de nouvelles fonctionnalit´espour un logiciel. Apr`ess’ˆetrepartag´esle travail, Bob s’aper¸coitque, pour que sa partie fonctionne, la partie d’Alice doit ˆetremodifi´eemais Alice a d´ej`acommenc´e`atravailler. Comment vont-ils s’y prendre ?
A. Bob et Alice effectuent ensemble les modifications `aapporter sur la partie `aAlice ;
Jean-Yves Didier La gestion de configuration 14/42 C. Bob et Alice utilisent un logiciel de contrˆolede version, donc Bob effectue les modifications et Alice en b´en´eficieen moins de 10 secondes sans que cela d´emolisseson travail ;
Gestion de configuration Gestion de versions L’outil Subversion >
Sc´enario
D´eveloppement en ´equipe Alice et Bob d´eveloppent de nouvelles fonctionnalit´espour un logiciel. Apr`ess’ˆetrepartag´esle travail, Bob s’aper¸coitque, pour que sa partie fonctionne, la partie d’Alice doit ˆetremodifi´eemais Alice a d´ej`acommenc´e`atravailler. Comment vont-ils s’y prendre ?
A. Bob et Alice effectuent ensemble les modifications `aapporter sur la partie `aAlice ; B. Bob effectue les modifications, les envoie `aAlice qui joue au jeu des 10 diff´erencessur les fichiers ;
Jean-Yves Didier La gestion de configuration 14/42 Gestion de configuration Gestion de versions L’outil Subversion >
Sc´enario
D´eveloppement en ´equipe Alice et Bob d´eveloppent de nouvelles fonctionnalit´espour un logiciel. Apr`ess’ˆetrepartag´esle travail, Bob s’aper¸coitque, pour que sa partie fonctionne, la partie d’Alice doit ˆetremodifi´eemais Alice a d´ej`acommenc´e`atravailler. Comment vont-ils s’y prendre ?
A. Bob et Alice effectuent ensemble les modifications `aapporter sur la partie `aAlice ; B. Bob effectue les modifications, les envoie `aAlice qui joue au jeu des 10 diff´erencessur les fichiers ; C. Bob et Alice utilisent un logiciel de contrˆolede version, donc Bob effectue les modifications et Alice en b´en´eficieen moins de 10 secondes sans que cela d´emolisseson travail ;
Jean-Yves Didier La gestion de configuration 14/42 Gestion de configuration Gestion de versions L’outil Subversion >
Les logiciels (1/2)
Une pl´ethore de logiciels • Logiciels libres :
I RCS (1982), CVS (1986), subversion – SVN (2000); I darcs (2002), bazaar (2005), mercurial (2005), git (2005). • Logiciels propri´etaires:
I Visual SourceSafe (1994), Microsoft ; I BitKeeper (1998), BitMover ; I Rational Synergy (2006), IBM.
Jean-Yves Didier La gestion de configuration 15/42 Gestion de configuration Gestion de versions L’outil Subversion >
Les logiciels (2/2)
Popularit´edes logiciels de contrˆolede version (en %)
subversion 46% git CVS mercurial 4% 1% bazaar 2% 39% autres 8%
(Source : openhub.net – octobre 2016)
Jean-Yves Didier La gestion de configuration 16/42 Gestion de configuration Gestion de versions L’outil Subversion >
La notion de d´epˆot et de copie locale
D´epˆot • Emplacement de stockage centralis´eet organis´ede donn´ees accessible par de multiples utilisateurs ; • En d´eveloppement informatique, la zone qui contient le code source de r´ef´erence.
Copie locale • Copie du d´epˆotsur laquelle le d´eveloppeur travaille en local ; • R´eguli`erementsynchronis´eeavec le d´epˆot.
Jean-Yves Didier La gestion de configuration 17/42 Gestion de configuration Gestion de versions L’outil Subversion >
Les types de logiciel de contrˆolede version
3 g´en´erations 1 local : d´epˆotsur un r´epertoire partag´e(RCS);
I Limite la taille du projet ; I D´eveloppement multi-sites ou multi-plate-formes (Windows/Unix/Mac) difficile ; 2 client-serveur : d´epˆotg´er´epar un serveur, copies locales ne contenant que la version courante de travail (CVS, SVN);
I Adapt´e`ades d´eveloppements lin´eaires; 3 d´ecentralis´e : d´epˆotg´er´epar un serveur, copies locales refl`etentl’int´egralit´edu d´epˆot(git, darcs, mercurial, bazaar);
I Travail plus facile hors connexion ; I Copies peuvent aussi servir de d´epˆot; I Encombrement de l’espace disque.
Jean-Yves Didier La gestion de configuration 18/42 Gestion de configuration Gestion de versions L’outil Subversion >
Arbre de versions et ´el´ementsde vocabulaire
D´efinitions 1 L´egende • tronc( trunk, baseline, 2 tronc mainline) base du projet ; branche 3 arrˆet • branche( branch) d´erivation T1 4 ´etiquette dans l’histoire de l’´evolution 5 saut version des ´el´ements de fusion 6 configuration ; • ´etiquette( tag, label) 7 identification d’une 8 configuration particuli`ere; T2 9 • fusion( merge) fusion de 10 deux branches de d´eveloppement.
Jean-Yves Didier La gestion de configuration 19/42 Gestion de configuration Gestion de versions L’outil Subversion >
Comparaison entre PDM et SCM (1/2)
D´efinitions PDM Product Data Management – partie du PLM ; SCM Software Configuration Management – gestion des logiciels.
Jean-Yves Didier La gestion de configuration 20/42 Gestion de configuration Gestion de versions L’outil Subversion >
Comparaison entre PDM et SCM (2/2)
Comparaison Fonctionnalit´e PDM SCM Mod´elisationproduit fort faible Gestion des processus fort faible Gestion documentaire fort faible Gestion de configuration fort fort Standardisation fort faible Ing´enierieconcurrente sur un fichier non oui Gestion de l’espace de travail non oui Gestion de l’assemblage non oui
Jean-Yves Didier La gestion de configuration 21/42 Gestion de configuration Gestion de versions L’outil Subversion >
Des concepts transpos´esdans d’autres domaines (1/2)
Exemple : Wikipedia • Articles ´ecritssous licence GFDL :
I GFDL = Gnu Free Documentation Licence ; I Impose un historique du document.
Jean-Yves Didier La gestion de configuration 22/42 Gestion de configuration Gestion de versions L’outil Subversion >
Des concepts transpos´esdans d’autres domaines (2/2)
Jean-Yves Didier La gestion de configuration 23/42 Gestion de configuration Gestion de versions L’outil Subversion >
Un concept non limit´e`ala gestion num´erique (1/2)
Documentation de l’historique des modifications Exemple tir´edu Guide du dessinateur industriel – A. Chevalier, Hachette Technique
Jean-Yves Didier La gestion de configuration 24/42 Gestion de configuration Gestion de versions L’outil Subversion >
Un concept non limit´e`ala gestion num´erique (2/2)
Cartouches de dessins techniques Exemple tir´edu Guide du dessinateur industriel – A. Chevalier, Hachette Technique
Jean-Yves Didier La gestion de configuration 25/42 Gestion de configuration Gestion de versions L’outil Subversion >
1 Gestion de configuration
2 Gestion de versions G´en´eralit´es Concepts
3 Subversion : un outil de gestion de version Fonctionnement g´en´eral D´eploiementde subversion
Jean-Yves Didier La gestion de configuration 26/42 Gestion de configuration Gestion de versions L’outil Subversion >
Subversion Synchronisation
Principe • D´epˆotcentralis´econtenant les versions (r´evisions)du logiciel ; • Copies locales de travail `asynchroniser p´eriodiquement avec le d´epˆot.
Op´erationsde synchronisation update : mise `ajour de la copie locale `apartir du d´epˆot; • B´en´eficierdu travail des autres ; • Sans ´ecraserle travail en cours en local ! commit : mise `ajour du d´epˆot`apartir de la copie locale • Faire b´en´eficieraux autres de son travail.
Jean-Yves Didier La gestion de configuration 27/42 • Changement de version ;
• Versionn sur la copie ; • Update ;
• Passage `ala versionn+1.
Certes, mais encore . . . Je le fais tous les jours avec un copier-coller de fichiers !
Gestion de configuration Gestion de versions L’outil Subversion >
Update : sc´enario 1