Usine logicielle, des concepts à la pratique
Référence : USIL
Durée : 3 jours (21 heures)
Les projets informatiques qui adoptent un cycle de développement en cascade se retrouvent inévitablement avec une phase d'intégration critique qui révèlera tardivement toutes les failles des phases amont. Pour autant, l'intégration est-elle inévitablement le cauchemar de la fin de projet ? Ce n'est pas une fatalité si on met en oeuvre l'intégration continue, une des 12 pratiques décrites dans la méthode eXtreme Programming.
Ce cours présente donc toutes les bonnes pratiques de l'intégration continue et de ses phases connexes comme la construction ou les tests d'intégration. Il sera majoritairement consacré à la mise en oeuvre de ces bonnes pratiques, que ce soit avec Maven comme outil de construction, Jenkins pour l'intégration continue, ou encore JUnit et HttpUnit pour les tests d'intégration.
Travaux pratiques :
Vous commencerez par construire avec Ant un projet fourni, puis vous passerez à l'outil de Build Maven qui sera le point central pour la plupart des itérations proposées. Les expérimentations porteront sur les fonctionnalités et facettes de Maven, ses plug-ins les plus courants, et les composantes essentielles d'une usine logicielle : gestion de versions avec Subversion, intégration continue avec Jenkins, qualimétrie avec PMD et JDepend, déploiement d'application Web avec Cargo ainsi que l'utilisation du proxy Artifactory.
Vous allez apprendre à :
- Mettre en place Maven comme outil de construction
- Connaître et savoir communiquer les bénéfices de l'intégration continue
- Connaître les méthodes et bonnes pratiques liées à l'intégration continue
- Apprécier et mettre en oeuvre des tests de validation de votre construction
- Comprendre l'interaction entre les différents outils de l'environnement de développement
- Appréhender la qualité de votre projet au travers de différents types de métriques
Méthode pédagogique :
60% de travaux pratiques
Audience :
Développeurs Java, chefs de projets, responsables méthodes, responsables des développements
Pré-requis :
- Avoir une première expérience en développement de projet informatique (Java)
Programme :
- Savoir intégrer
- Définition de l'intégration continue
- Pré-requis techniques et méthodologiques
- Pratiques connexes
- Intégrer tous les jours
- Bonnes pratiques
- Alertes informatiques et visuelles
- Réagir aux feedbacks
- Pratiques connexes
- Outils d'intégration continue
- Catégories d'outils
- Jenkins, CruiseControl, Continuum
- Gestion de configuration
- Objectifs et rôle
- Tronc, branches et étiquettes
- Lock Modify Unlock ou Merge Modify
- Outils de construction
- Objectifs et rôle
- Pré-requis d'une construction automatisable
- Dépendance binaire / dépendance de source
- Maven et ANT, différences et complémentarité
- Ivy, alternative à Maven
- Maven
- Déclarer sa construction en utilisant les conventions
- Mutualiser la logique de construction
- Notions avancées Maven
- Modulariser sa construction avec Maven
- Appréhender la gestion des dépendances
- Plug-ins Maven et enrichissement du cycle de construction
- Personnaliser la construction
- Appréhender les tests
- Test et feedback
- Test Driven Developement
- Tests unitaires, tests d'intégration, tests fonctionnels
- Métriques
- Types de métriques
- Méthodologie d'usage des métriques
- Gestion des livrables
- Maven Repository avec Artifactory
- Gérer les habilitations