Académique Documents
Professionnel Documents
Culture Documents
La plateforme dintgration continue prendra en charge tous les projets dEAI, Elle devrait donc
permettre :
La plateforme renseigne sur ltat davancement du projet logiciel, permet de donner des mtriques de
code chaque phase de dveloppement, depuis le codage la compilation et lexcution de tests.
La plateforme permet de pousser la coordination entre les quipes de dveloppement pour assurer un
bon suivi du projet logiciel. Elle reoit les modifications de la part des quipes de dveloppement et se
charge de les intgrer dans le projet logiciel, ce qui permet de garder une bonne traabilit rgulire
communique, aux acteurs du projet.
La plateforme fournit des outils de mtriques de qualit de code grce aux outils de contrle et de
suivi dindicateurs de qualit logiciel (taux de couverture de code par les tests, respect des rgles de
codage et de nommage).
Cest le serveur dintgration continue qui va grer la plateforme et qui va communiquer avec les
autres composants .Cest le cur de la plateforme.
Cet outil permettra de donner la main aux dveloppeurs pour quils puissent partager leur travail avec
les autres membres de lquipe, ainsi de grer les versions du codes source avec leur modifications, et
de revenir une version antrieure an cas derreur .Il sert galement grer les diffrentes
demandes de modification en mme temps ,ce qui permet dviter les conflits de versions .
Loutil de construction dapplication (de Build) vient pour gnrer automatiquement des projets
logiciels destins tre testes ou dploys par la suite.
4. Un outil de test
Cet outil de test vient pour vrifier la fiabilit du package gnre par loutil de construction ou de
Build .Il teste le code et gnr des rapports qui seront visibles partir de linterface du serveur
dintgration continue.
-6-
5. Un Gestionnaire de dpendances
Cet outil permet de grer au mieux ses dpts et ses dpendances. Il permet de disposer de ses
propres dpts de dpendances pour grer plus aisment les diffrentes versions de librairies que
vous aurez pu crer au sein de votre projet. Permet dans un deuxime temps de simplifier la
maintenance du code et surtout du processus de compilation.
HUDSON.
CRUISE CONTROL.
TEAMCITY.
Quick Build.
Continuum.
JENKINS.
Familles Dfinition
-7-
Les extensions Dans cette famille qui est dailleurs la plus
importante, on notera loutil sur ses limites
dintgration, tel que son intgration avec
dautres outils (outils de qualimtrie, outils
de gestion de dpts, outils de gestion de
versions), ainsi que la richesse de ses
plugins.
1. Le poids, de chaque critre, qui modlise limportance de ce dernier par rapport aux exigences
dEURAFRIC. Et qui est attribu comme suit :
1=Faible ; 3=Moyenne ; 5=Forte Importance
2. Une note, pour reprsenter ladquation de chaque outil par rapport un critre spcifique. Et
qui sera attribue comme suit :
3. Une note qualifiante, qui est sous forme de formule et qui est attribue chaque outil, pour
la fin nous permettre dmerger, distinguer loutil le plus adquat aux exigences dEURAFRIC.
-8-
N
NQx ( Poidsi * Notei )
i 1
La formule qui nous permettra de distinguer loutil gagnant de cette valuation est :
G MAX ( NQ ; NQ ; NQ ; NQ ; NQ )
H CC TC CT JK
Hudson =H
Cruise Control = CC
Team City = TC
Continuum = CT
Jenkins = JK
-9-
2.3 M ATRICE D EVALUATION
Fonctionnalits
1
intrinsques
1,01 Rcupration des sources de deux SCM principaux que sont CVS 5 4 4 4 4 4
et SVN
Configuration du lancement automatique de l'excution des
1,02 3 4 2 4 1 4
commandes standards Maven suite un commit
76 70 76 67 76
2 Accessibilit
2,01 Proposer une IHM accessible travers le Web en HTTP & HTTPS 5 4 4 4 2 4
L'IHM doit pouvoir tre accessible par plusieurs personnes
2,02 5 4 4 4 4 4
simultanment
40 40 40 30 40
- 23 -
CRUISE APACHE
Familles Critres Poids HUDSON TEAMCITY Jenkins
CONTROL Continuum
3 Modularit
45 38 48 24 45
4 Scurit
4,01 Permettre de dfinir un ensemble de rles pour un projet donn. 3 4 4 4 4 4
4,02 Limiter la visibilit d'un projet certaines personnes seulement 5 4 4 4 4 4
Connexion des utilisateurs l'IHM de configuration du serveur
4,03 3 1 2 1 1 1
d'intgration via LDAP.
35 38 35 35 35
5 Ergonomie
1 2 1 4 1
6 Reporting
Gnrer et afficher les rapports qualit directement dans l'outil
6,01 5 3 2 4 1 3
d'intgration ou via un outil tiers.
15 10 20 5 15
- 24 -
CRUISE APACHE
Familles Critres Poids HUDSON TEAMCITY Jenkins
CONTROL Continuum
7 Extensions
Prise en compte dans l'outil d'intgration d'applications autres
7,01 1 3 2 4 4 3
que JAVA.
7,02 Intgration avec les IDE. 3 3 2 4 4 3
7,03 Intgration avec des outils de qualimtrie tel que SONAR 5 3 2 2 2 3
Intgration avec des outils de gestion de dpendance telle que
7,04 5 3 2 2 2 3
NEXUS.
7,05 Excution de commandes Maven 2 ou 3 en fonction du projet. 5 4 2 4 0 4
7,06 Compilation en Java 1.4, 5 ou 6 en fonction du projet. 5 4 4 2 4 4
7,07 Si l'outil dispose d'une multitude de plugins ? 5 4 2 2 2 4
102 68 76 66 102
8 Organisation
Simplicit d'organisation pour la cration des diffrentes tches
8,01 3 4 2 4 4 4
de Builds.
8,02 Administration de l'outil la plus rduite possible. 5 3 4 2 1 3
27 26 22 17 27
Installation et
9
cot
9,01 Dploiement dans un conteneur de servlets (Tomcat , JBoss) 3 4 4 4 4 4
9,02 Cot de licence d'acquisition non prohibitif 5 4 2 3 4 4
32 22 27 32 32
10 Evolution
10,01 Bonne documentation 5 4 3 2 2 4
10,02 Grand nombres d'utilisateurs 5 4 3 2 2 3
40 30 20 20 35
Total 413 344 365 300 408
TABLEAU 2 : MATRICE D ' EVALUATION DES SERVEURS IC
- 25 -
2.4 S HORT L IST
Fonctionnalits
intrinsques
120
80
60
20 HUDSON
0 TEAMCITY
Jenkins
Organisation Scurit
Extensions Ergonomie
Reporting
Archiva
Nexus
Pour avoir une tude significative, je me suis bas sur diffrents critres dvaluation qui seront
catgoriss en 6 familles :
Familles Dfinition
26
Interface On notera chaque outil sur sa maniabilit
utilisateur et ce que son interface propose.
1. Le Rang : de chaque critre, qui modlise limportance de ce dernier par rapport aux
exigences dEAI. Et qui est attribu comme suit :
1=Faible ; 3=Moyenne ; 5=Forte Importance
2. Une note, pour reprsenter ladquation de chaque outil par rapport un critre
spcifique. Et qui sera attribue comme suit :
Note (Adquation)
5 = Forte
3 = Moyen
1 = Faible
4. Une note qualifiante, qui est sous forme de formule et qui est attribue chaque outil,
pour la fin nous permettre dmerger, distinguer loutil le plus adquat aux exigences
dEAI.
27
N
NQx ( Rang * Notei )
i
i 1
La formule qui nous permettra de distinguer loutil gagnant de cette valuation est :
G MAX ( NQ ; NQ )
Archiva Nexus
Interface
1
utilisateur
1,01 IU configurable 5 3 5
1,01 Suppression artefact 5 5 5
1,02 Copie d'artefact 3 3 1
1,03 Voir l'information d'un artefact 3 5 3
1,04 Dplacement d'artefact 3 1 3
2 Reporting
2,01 Rapport des problmes d'artefacts 5 5 5
2,02 Statistiques du dpt 5 5 1
2,03 Statistiques des artefacts 5 1 5
2,04 Journaux d'audit 5 5 5
Support de
3
Build
3,01 Maven 2 5 5 5
3,02 Maven 1 1 5 5
3,03 Maven 3 5 5 5
28
4 Scurit
4,01 Autorisation par dpt 5 5 5
Capable d'utiliser l'authentification
4,02 5 1 5
LDAP
5 Intgration IC
Prise en charge des serveurs
5,01 d'intgration telle que (HUDSON, 5 1 5
TeamCity, Continuum)
6 Base de donne
6,01 BD disponible pour interrogation 3 5 1
Total 252 284
TABLEAU 4 : MATRICE D ' EVALUATION DES GESTIONNAIRES DE DEPENDAN CES
SVN
CVS
Tout dabord je rappel cest quoi un gestionnaire de version , Un logiciel de gestion de versions est
un logiciel de gestion de configuration permettant de stocker des informations pour une ou
plusieurs ressources informatiques permettant de rcuprer toutes les versions intermdiaires des
ressources, ainsi que les diffrences entre les versions. Pour la gestion de versions, nous avons
utilis jusqu' prsent deux logiciels qui ont fait leurs preuves : CVS et SVN. Nous porterons
notre description sur SVN.
4.1 E VALUATION
Subversion (en abrg SVN) est un systme de gestion de versions, distribu sous licence Apache
et BSD. Il a t conu pour remplacer CVS. Ses auteurs s'appuient volontairement sur les mmes
concepts (notamment sur le principe du dpt centralis et unique) et considrent que le modle
de CVS est le bon, et que seule son implmentation est en cause.
Subversion a donc t crit afin de combler certains manques de CVS. Voici les principaux apports
:
29
Les commits, ou publications des modifications sont atomiques. Un serveur Subversion
utilise de faon sous-jacente une base de donnes capable de grer les transactions
atomiques (le plus souvent Berkeley DB) ;
Subversion permet le renommage et le dplacement de fichiers ou de rpertoires sans en
perdre l'historique ;
Les mtadonnes sont versionnes : on peut attacher des proprits, comme les
permissions, un fichier, par exemple.
Du point de vue du simple utilisateur, les principaux changements lors du passage Subversion,
sont :
Les numros de rvision sont dsormais globaux (pour l'ensemble du dpt) et non plus
par fichier : chaque patch a un numro de rvision unique, quels que soient les fichiers
touchs. Il devient simple de se souvenir d'une version particulire d'un projet, en ne
retenant qu'un seul numro ;
svn rename (ou svn move) permet de renommer (ou dplacer) un fichier ;
Les rpertoires et mtadonnes sont versionns.
Une des particularits de Subversion est qu'il ne fait aucune distinction entre un label, une branche
et un rpertoire. C'est une simple convention de nommage pour ses utilisateurs. Il devient ainsi
trs facile de comparer un label et une branche ou autre croisement.
1. Fonctionnalits
Les deux outils cits prcdemment possdent les fonctionnalits et besoins dsirs. En effet,
ils grent :
30
2. Connaissance
Ce critre savre dterminant dans le choix de lIDE qui sera utilis. Eclipse est
lenvironnement de dveloppement java prconis par nos enseignants et sur lequel nous
avons t form. Certaines personnes de lquipe possdent, nanmoins, une forte
exprience sur NetBeans du fait de leurs travaux en entreprise.
Le fait que lIDE Eclipse soit connu par la totalit de lquipe, linstar de son concurrent
NetBeans, est un avantage indniable en ce qui concerne le choix de lenvironnement qui sera
utilis.
3. Ergonomie
Pour ce critre dergonomie, nous recherchons une application qui puisse sinstaller
rapidement et tre facile prendre en main. Mais il faut aussi que celui-ci dispose dune
interface agrable et permettant de pouvoir rapidement effectuer toutes les actions ncessaire
rapidement. NetBeans sort ici vainqueur dans le sens o il dispose dune interface plus
intuitive et dun rel programme dinstallation. Il propose toutes les fonctionnalits en one-
clic ce qui permet de pouvoir raliser toutes les actions, dont lquipe a besoin, trs
rapidement.
Gratuit
10
5
NetBeans
Connaissance 0 Fonctionnalits
Eclipse
Ergonomie
31
6. RAPPEL DES SOLUTIONS RETENUES
On a vu les solutions retenues pour certain composants de la plate-forme tel que : (Gestionnaire
de version ; Serveur dintgration continue ; Gestionnaire de dpendances ; IDE). Il reste 2 outils,
et qui sont (loutil danalyse de code et de qualimtrie ; loutil de Build, loutil de test), pour ces 2
derniers il y avait un choix direct suite des retours dexpriences de la part dune majorit de
dveloppeur et de chef de projet, quils soient interne ou externe EAI.
IDE Eclipse
7. CONCLUSION
Dans ce chapitre jai prsent ltude qui a tait faites pour le choix des
solutions mettre en place pour le fonctionnement adquat de la plate-
forme, je dcris pour chaque composant les familles de critres sur lesquels
les outils ont tait valu.
32
33