genie logiciel eseo-v1.1-1spp
DESCRIPTION
Conférence ESEO Février 2013TRANSCRIPT
![Page 1: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/1.jpg)
E S E O - Angers
Génie Logiciel,
ALM et outillage
E S E O - AngersMardi 19 février 2013Laurent Guérin
@ltguerin
![Page 2: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/2.jpg)
1 - Génie logiciel – Introduction
2 - ALM (Application Lifecycle Management)
3 - SCM (Source Code Management)
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 2
4 - Maven
5 - Intégration continue et qualité logicielle
6 - Génération de code
![Page 3: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/3.jpg)
• « Génie Logiciel » = « Software Engineering »
• « Génie Industriel » appliqué au domaine du logiciel
– méthodes de travail– bonnes pratiques – outils
Notion de Génie Logiciel
?
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 3
– outils – etc..
• Approche industrielle du développement de logiciels – procédures– recherche de fiabilité, productivité, qualité – respect des délais et des coûts – performances– etc..
![Page 4: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/4.jpg)
• Définition du « Génie Logiciel » :
Notion de Génie Logiciel
« l'ensemble des activités de conception
et de mise en œuvre des produits et des
procédures tendant à rationaliser la
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 4
procédures tendant à rationaliser la
production du logiciel et son suivi »
Journal officiel du 19 février 1984
![Page 5: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/5.jpg)
• La MOA confie une réalisation à la MOE
Notions de MOA - MOE
M O AMaitrise d’Ouvrage
M O EMaitrise d’Oeuvre
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 5
Maitrise d’Ouvrage
( Maître d’Ouvrage )
Maitrise d’Oeuvre
( Maître d’Oeuvre )
Exprime un besoin et définit . objectifs. budget. calendrier (délais)
Réalise le projet
![Page 6: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/6.jpg)
Différentes méthodes
Effet tunnelCahier des charges Livraison
Spécification Conception Implémentation Test
« Waterfall »
mode prédictif, rigide
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 6
S C I T S C I T S C I T
« Méthodes Agiles »
mode adaptatif, itératif, incrémental
![Page 7: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/7.jpg)
Cycle de vie du logiciel
Spécifications et conception Développement Validation interne Recette
• Formaliser le système avec une vision utilisateur• S’assurer que tous les besoins sont pris en compte
• Maîtrise des développements• Points de visibilité pour éviter l’effet tunnel
• Livrer une application de qualité tant d’un point de vue fonctionnel que technique
Gestion de …AvancementReste à fairePlanificationAssurance qualité…
Préoccu-pationsMOA / MOE
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 7
Gestion des exigences
Ateliers de travail et modélisation
Intégration continue
Recette fonctionnelle
Recette techniqueNormalisation de la production technique
ça ne
s’arrête
pas là
Maintenance
(curative et
évolutive)
MCO, …
![Page 8: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/8.jpg)
Industrialisation
• On s’inspire des principes de l’industrie…
• Notion de « Software Factory »
Industrialisation
Qualité
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 8
• Notion de « Software Factory »
• Mais un logiciel est une œuvre originale , on ne « fabrique » pas 2 fois le même logiciel
Taylorisme ?Fordisme ?Toyotisme ?
![Page 9: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/9.jpg)
• Les contrôles qualité sont indispensables pendant toute la durée de vie d’un logiciel
• Sinon …
Qualité logicielle
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 9
• Sinon …– Le logiciel subit des évolutions plus ou moins
bien maîtrisées… – Il vieillit, sa qualité se dégrade progressivement– Plus le temps passe, plus il est coûteux de
le remettre à niveaux– On accumule une « dette technique »
![Page 10: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/10.jpg)
• Métaphore : référence à la « dette financière »• Le coût nécessaire pour remettre le logiciel à un niveau de
qualité acceptable• cf http://techdebt.org/
Notion de « Dette Technique »
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 10
![Page 11: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/11.jpg)
1 - Génie logiciel – Introduction
2 - ALM (Application Lifecycle Management)
3 - SCM (Source Code Management)
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 11
4 - Maven
5 - Intégration continue et qualité logicielle
6 - Génération de code
![Page 12: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/12.jpg)
• ALM = « Application Lifecycle Management »
processus global de gestion du cycle de vie de l'application
• Une application a un cycle de vieNaissance, vie et mort …
A L M
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 12
• Elle fait partie du patrimoine de l’organisation/entreprise (elle a une valeur)
• Il faut la gérer et l’entretenir…
![Page 13: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/13.jpg)
• Le cycle de vie des applications (lifecycle) couvre toute la période durant laquelle une organisation engage des moyens (€, ressources) sur son patrimoine applicatif
Cycle de vie d’une application
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 13
![Page 14: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/14.jpg)
ALM = Multi-fonctions
Des processus
Des équipes� Productivité
� Collaboration� Partage des connaissances
� Guides� Gestion des risques et des
exigences
Idéalement…
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 14
� Interopérables� Sécurité� Administration
� Outillage� Performances� …
Des technologies
� Partage des connaissances� Gestion de projet
exigences� Méthodes Agiles
![Page 15: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/15.jpg)
Principaux domaines de l’ALM
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 15
![Page 16: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/16.jpg)
Des outils et des serveurs
Development
Tool
Design
Documents
Arch. & Design
ToolTest
Tool
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 16
Serveurs
Source Code
VersionsRequirements
Requirements
Tool
Project Statistics
Project
Management
Tool
Test Cases
![Page 17: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/17.jpg)
• Gestion des exigences
ALM
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 17
![Page 18: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/18.jpg)
• Collaboration / Travail en équipe / Support méthode
ALM
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 18
![Page 19: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/19.jpg)
• Modélisation
ALM
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 19
![Page 20: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/20.jpg)
• Gestion des tâches
ALM
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 20
![Page 21: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/21.jpg)
• Pilotage / Tableaux de bord
ALM
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 21
![Page 22: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/22.jpg)
• Tests fonctionnels
ALM
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 22
![Page 23: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/23.jpg)
• Automatisation des builds
ALM
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 23
![Page 24: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/24.jpg)
• Qualimétrie
ALM
Analysede code
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 24
Tests unitaireset couverturede tests
![Page 25: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/25.jpg)
Les principales solutions d’ALM
Parmi les différents éditeurs de solutions ALM, quels sont ceux dont vous connaissez/utilisez les offres ?
« Baromètre 2012 du Développement Logiciel »Etude Borland – MicroFocus novembre 2012
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 25
![Page 26: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/26.jpg)
Points importants de l’ALM
Classez du plus important au moins important de (1 à 7) les thèmes qui selon vous caractérisent le mieux la démarche ALM
« Baromètre 2012 du Développement Logiciel »Etude Borland – MicroFocus novembre 2012
(700 points possibles)1er (618 points)
2ème (605 points)
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 26
2ème (605 points)
3ème (560 points)
![Page 27: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/27.jpg)
1 - Génie logiciel – Introduction
2 - ALM (Application Lifecycle Management)
3 - SCM (Source Code Management)
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 27
4 - Maven
5 - Intégration continue et qualité logicielle
6 - Génération de code
![Page 28: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/28.jpg)
Notion de SCM
Revision control
Version control
Source Control
Management
Source Code
SCM ?
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 28
Source control
Source Code
Management
Supply
Chain Management
Software Configuration
Management
Rien à voir !
![Page 29: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/29.jpg)
• Quelques outils :
SCM
Software Configuration
Management
Source Control
Management
���� PVCS���� CVS� Visual Source Safe
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 29
���� Perforce���� ClearCase
� Visual Source Safe� Subversion ***� BitKeeper� Git ***���� Mercurial Plus complet :
Gestion des demandes d’évolution,Liaison demande – modifications réaliséesGestion des sources uniquement
(fichiers en tous genres)
![Page 30: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/30.jpg)
Subversion
FSFS
Client Interface Repository Interface
GUI client apps
ClientLibrary
Repositoryaccess
DAV
Apache
mod_dav
mod_dav_svn
Internet(Any TCP/IP Network)
TortoiseSVN
Subversive
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 30
Berkley DB
SubversionRepository
Command lineclient apps
Library
Working Copy Management
Library
SVN
Local
svnserve
(Any TCP/IP Network)
WebClient for SVN
Client Serveur
![Page 31: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/31.jpg)
• Différents protocoles :
• file:// – Direct repository access to local or network drive.
• http:// – Access via WebDAV protocol to Subversion-aware Apache server.
• https://
Subversion
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 31
– Same as http://, but with SSL encryption.
• svn:// – Unauthenticated TCP/IP access via custom protocol to an svnserve server.
• svn+ssh:// – Authenticated, encrypted TCP/IP access via custom protocol to an svn server.
![Page 32: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/32.jpg)
• Chaque commit produit un nouveau numéro de révision• Un commit sur Subversion est comparable à une transaction
sur une base de données
Subversion
10
0 1 2 3 4
2 3 4
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 32
1
1
1
1
1
1
1
1
2
2
1
1
1
1
3
2
3
3
4
4
1
1
3
2
3
3
![Page 33: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/33.jpg)
Subversion – Checkout & Commit
Référentiel
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 33
Copie de travail« working copy »
« Commit »Validation des modifications
![Page 34: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/34.jpg)
Subversion - Conflits
Harry doit mettre à jour sa copie de travail pour y intégrer les modifications déjà commitées
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 34
Échec du commit“working copy out of date”
![Page 35: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/35.jpg)
Subversion / Système d’exploitation
En ligne de commande
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 35
Dans l’explorateur de fichiers
![Page 36: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/36.jpg)
Subversion / IDE
Navigation dansle repository
Exemple :Eclipse + Subclipse
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 36
Visibilité surles différentes révisions
Commandessubversion
![Page 37: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/37.jpg)
Subversion / IDE
Accès à tout l’historique � comparaison de deux révisions
Révision courante( workspace )
Révision 30 ( repository )
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 37
![Page 38: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/38.jpg)
Subversion / Internet
Exemple : Google codeNavigateur
Serveur
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 38
SubversionRepository
![Page 39: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/39.jpg)
• Organisation standard de l’arborescence
Subversion - Arborescence
« trunk »
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 39
« tags »
« branches »
![Page 40: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/40.jpg)
• Les « tags » pour fixer les « releases »
Subversion - Arborescence
Project 1
Root
trunkLe « tag » est une copie
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 40
tags
Release x.x.x
Le « tag » est une copiedes sources à un instant T
Ex : release 2.1.4
![Page 41: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/41.jpg)
• Les « branches » pour travailler en parallèle
Subversion - Arborescence
Feature 2
Main line
Feature 1(new UI)
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 41
Feature 2(multilingualism)
Il va falloir faire un « merge »Après le « merge » les branches n’ontplus de raison d’être
![Page 42: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/42.jpg)
• Créé pour le développement du noyau Linux – Distribué – Référentiel local
• Successeur de Subversion ?• NB : suppose une organisation
d’équipe différente• Progression importante depuis 2010
GIT
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 42
• Progression importante depuis 2010( notamment grâce à GitHub : https://github.com/ )
![Page 43: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/43.jpg)
1 - Génie logiciel – Introduction
2 - ALM (Application Lifecycle Management)
3 - SCM (Source Code Management)
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 43
4 - Maven
5 - Intégration continue et qualité logicielle
6 - Génération de code
![Page 44: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/44.jpg)
• Maven = = outil Open Source (Apache)d’automatisation des builds
• Dans la lignée de « make » pour Unix, ou « ant » pour Java (en plus puissant)
• Avantages :– Normalisation des répertoires d’un projet– Normalisation de l’identification des « artifacts »
Maven
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 44
– Normalisation de l’identification des « artifacts » (group id, artifact id, version )
– Normalisation du cycle de construction d’un projet ( phases )– Gestion des dépendances ( récupère des artefacts nécessaires sur
des référentiels via internet )– Tout est déclaré dans un fichier : « pom.xml »– Extensible ( système de « plugins » )– Héritage ( « pom parent » )
![Page 45: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/45.jpg)
• Maven repose sur des conventionsprincipe de « Convention over Configuration » ( CoC )
• Répertoires
Maven
src/main/javasrc/main/resourcessrc/main/webappsrc/test/javasrc/test/resources
Application
Tests
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 45
• Identification des « artifacts » (objet utilisé ou produit par le build)
src/test/resources
Produit
Utilisé
(dépendance)
![Page 46: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/46.jpg)
Maven – Cycle de vie du « build »
validate
initialize
process-sources
generate-sources
process-test-sources
generate-test-sources
process-test-resources
generate-test-resources
pre-integration-test
integration-test
post-integration-test
Code source
23 phases
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 46
process-sources
process-sources
generate-resources
compile
process-classes
test-compile
test
prepare-package
package
verify
install
deploy
process-test-classes
![Page 47: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/47.jpg)
Maven – Plugins
Maven a été conçu pour déléguer les traitements à un jeu de
« plugins » associés aux différentes phases.
compilecompiler
test-compile
pom.xml
PluginsPhases
Goalscompile
testCompile
Pour chaque plugin :
1 à N « goals »
test
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 47
surefire
jar
test-compile
test
package
Les plugins sont associés aux phases dans le fichier pom.xml
jar
testJar
javadoc javadoc
aggregateinstall
ejb
etc...
test
ejb
install
![Page 48: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/48.jpg)
• On invoque Maven en lui indiquant jusqu’à quelle phase il doit exécuter les traitements
• Exemples :
Maven - Commandes
mvn compile
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 48
mvn install
![Page 49: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/49.jpg)
• Il est également possible de demander l’exécution d’un « goal » particulier
• Syntaxe :mvn plugin_name : goal_name
• Exemples :
Maven - Commandes
mvn compiler:compilemvn jar:jar
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 49
• Dans ce cas seul le goal demandé est exécuté
mvn jar:jarmvn ejb:ejbmvn surefire:testmvn deploy:deploymvn sonar:sonar
![Page 50: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/50.jpg)
Maven – Autres cycles de vie
pre-site
site
pre-clean
clean
Cycle de vie « clean » Cycle de vie « site »
Nettoyage Génération du site web
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 50
site
site-deploy
post-site
clean
post-clean
mvn cleanmvn post-clean
mvn sitemvn pre-site
![Page 51: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/51.jpg)
Maven / IDE
Editeur pour le pom.xml
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 51
![Page 52: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/52.jpg)
Maven / IDE
Gestion des dépendances à partir du pom.xml
Commandes intégrées
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 52
Configurationde « .launch »
![Page 53: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/53.jpg)
1 - Génie logiciel – Introduction
2 - ALM (Application Lifecycle Management)
3 - SCM (Source Code Management)
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 53
4 - Maven
5 - Intégration continue et qualité logicielle
6 - Génération de code
![Page 54: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/54.jpg)
Avant l’intégration continue …
• Des phases bien séparées (trop séparées)
Développement Intégration
(tests d’intégration)
Livraison
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 54
Temps
Mais ça c’était avant …
![Page 55: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/55.jpg)
Intégration continue
http://www.martinfowler.com/articles/continuousIntegration.html
• Principe développé par Martin Fowler :
Pratique de développement dans laquelle les membres d’uneéquipe intègrent leurs travail fréquemment (au moins une fois par jour).Chaque intégration est vérifiée par un « build » automatisé (incluant les tests) afin de détecter les erreurs d’intégrationle plus tôt possible.
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 55
L'intégration continue est le principe de
faire d'un processus d'intégration logiciel
un «non-évènement».
![Page 56: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/56.jpg)
• Un outil surveille les modifications du code dans le référentiel des sources (SCM)
• Quand un changement est détecté l’outil va automatiquement compiler et exécuter les tests automatisés
• Si une erreur survient (on dit qu’on a « cassé le build »)l’outil va alerter les développeurs pour qu’ils corrigent immédiatement le problème
Intégration continue - Outillage
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 56
immédiatement le problème• Autres fonctions de l’outil :
– surveillance de la qualité du code – métriques de couverture de test – etc…
• L’outil d’Intégration Continue devient un outil de communication
� transparence & management visuel
Objectifs :. maintenir la « dette technique »au niveau le plus bas possible. donner de la visibilité aux indicateurs de qualité (motiver les développeurs)
![Page 57: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/57.jpg)
• Solutions d’intégration continue :– CruiseControl ( SourceForge )
– Bamboo (Atlassian)– Hudson ( repris pas Oracle)– Jenkins ( fork de Hudson, désaccord du créateur avec Oracle )
Intégration continue - Outillage
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 57
Application Java/web (.war)
![Page 58: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/58.jpg)
• Il faut indiquer à Jenkins où se trouvent les sources
Jenkins
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 58
SCM au choix :. CVS . Subversion. Git
![Page 59: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/59.jpg)
Vue d’ensemble
Apports
• Intégration et détection des régressions au fil de l’eau
• Mise à disposition de versions de test
• Production quotidienne de métriques
• Coaching technique
Poste de Développement
CheckStyle Corbertura
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 59
• Coaching technique obligatoire
Automate de Fabrication
RéférentielUnique desSources etComposants
Plugins MAVENCheckStyle, Cobertura, CPD, PMD JavaDOC JDepend, SureFire, XRef
![Page 60: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/60.jpg)
• Rappel : l’application a un cycle de vie
• Elle doit avoir un niveau de qualité suffisant pour évoluer pendant des années
Qualité
Pensez à celui qui va devoir reprendre le code !
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 60
Pensez à celui qui va devoir reprendre le code !
![Page 61: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/61.jpg)
• Un tableau de bord pour une vue globale (multi-projets)
Sonar
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 61
![Page 62: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/62.jpg)
• Un tableau de bord pour chaque projet …
Sonar
Règles non respectées
Compteurs(lignes, classes,.. )
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 62
Complexité cyclomatique(McCabe)
Taux de couverture du code par les tests unitaires
![Page 63: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/63.jpg)
• Suivi de la qualité du code dans le temps
Sonar
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 63
![Page 64: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/64.jpg)
1 - Génie logiciel – Introduction
2 - ALM (Application Lifecycle Management)
3 - SCM (Source Code Management)
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 64
4 - Maven
5 - Intégration continue et qualité logicielle
6 - Génération de code
![Page 65: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/65.jpg)
• Démarche « MDD » classique ( MDA, etc… )• « Model - First » => concevoir un model !
– investissement initial important– nécessite de respecter le processus (formation)
• Incompatible avec un démarrage rapide
Approche « Model First »
MODELService
name X M I
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 65
Code
Part
name
Message
name
0..n+part 0..n
Portname
0..n+port 0..nPort Type
nameBinding
name1
+binding
1
1
+type
1
Paramname
1+message 1
Output
Input
StartWithExtensions
BindingFaultFault
name1
+message
11
BindingOperation
name
0..n+operation 0..n0..1 +input0..10..1+output 0..1
0..n
Operation
name0..1
+input
0..10..1
+output0..1
0..n+fault 0..n
0..n+operation 0..n
11
1
+fault 0..n
X M I( XML )
TemplateTOOL
![Page 66: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/66.jpg)
• Scaffolding de type « Database - First »• Très efficace ( rapide )• Mais pas d’action possible sur l’outil
de génération • Pas assez d’informations :-(
– Noms/types des attributs Java – Règles de validation : min, max, regexp, …
Approche « scaffolding »
Database
TOOL
Metadata
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 66
– Règles de validation : min, max, regexp, …– Représentation des Booléens
(1/0, "T"/"F", … )– etc …
• Il faudrait ajouter (et conserver) des informations complémentaires… … un modèle ?
Code
Template
![Page 67: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/67.jpg)
• Combinaison du « scaffolding » et du « MDD »• Scaffolding + un modèle ultra léger pour ajouter des
informations ou modifier les informations issues de la base
Approche « scaffolding + modèle léger »
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 67
![Page 68: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/68.jpg)
• Démo avec « Telosys Tools » ( plugin Eclipse )
Génération de code
http://marketplace.eclipse.org/content/telosys-tools
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 68
![Page 69: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/69.jpg)
Annexes
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 69
![Page 70: Genie logiciel eseo-v1.1-1spp](https://reader034.vdocuments.pub/reader034/viewer/2022042505/557ca690d8b42aee3b8b4fbc/html5/thumbnails/70.jpg)
Publications Sogeti
� http://www.fr.sogeti.com/presse-et-publications/nos-publications
� WORLD QUALITY REPORT
"The World Quality Report 2012-2013" est le quatrième volet d'une série d'enquêtes annuelles qui examinent l'état de la qualité des applications et des pratiques de test dans toutes les industries.
� Tmap NEXT
Génie Logiciel ( Laurent Guérin - Février 2013 ) | 70
� Tmap NEXT
L'approche de TMap Next’s Business Driven Test Management (BDTM) offre aux managers une panoplie d'outils de test pour traduire les objectifs d'affaires des systèmes d'information explicites et concrètes, les plans de test pragmatique et contrôlables, et ainsi atteindre un meilleur équilibre entre les résultats, les risques, les délais et les coûts.
� TPI NEXT
La démarche numéro 1 dans le monde pour améliorer les processus de test
Livres au format PDF (téléchargement libre)