Atos, Atos et le poisson, Atos Origin et le poisson, Atos Consulting ainsi que le poisson seul sont des marques déposées d'Atos Origin SA. © 2006 Atos Origin. Usage Interne exclusivement. Application d'un référentiel de développement JAVA / J2EE Par Adrien Bailly Maitre de stage : Thomas de Grenier de Latour
2 Introduction »Atos Origin, SSII française »Equipe qualité »Démarche qualité lancée en 2006 »Mise en place d’une plateforme de développement »Mise en place de projets sur la plateforme Application d'un référentiel de développement JAVA / J2EE Adrien Bailly 2
3 Plan »I. Présentation d’Atos Origin »II. La démarche D2I »III. Référentiel mis en place »1. Compilation automatisée »2. Dépôt logiciel »3. Intégration continue »4. Analyse de code »5. Système global »IV. L’adaptation de projets au référentiel de développement »Conclusion Application d'un référentiel de développement JAVA / J2EE Adrien Bailly 3
4 Atos Origin »Une des principales SSII françaises » employés à travers plus de 40 pays Application d'un référentiel de développement JAVA / J2EE Adrien Bailly Introduction Atos Origin Le référentielLa démarche D2IAdaptation sur projets anciens Conclusion 4
5 Atos Origin »Divisée en 4 structures »Atos Consulting : conseil en management, organisation… »Atos Worldline : solutions de paiements »Atos Infogérence : gestion des infrastructures informatiques »Atos Origin Intégration : intégration de système -> Branche qualité Application d'un référentiel de développement JAVA / J2EE Adrien Bailly Introduction Atos Origin La démarche D2IAdaptation sur projets anciens ConclusionLe référentiel 5
6 La démarche D2I »Démarche d’Industrialisation & d’Intégration »Initiée en 2006 »Prend part dans la stratégie d’Atos Origin »Démarche qualité »Standardisation des méthodes et outils »Préconisations diverses => CMMI3 et CMMI4 Application d'un référentiel de développement JAVA / J2EE Adrien Bailly Introduction Atos Origin La démarche D2I Adaptation sur projets anciens ConclusionLe référentiel 6
7 La démarche D2I »Basée sur l’open-source + économies d’argent + possibilité d’adapter au besoin - manque de documentation - activité projet fluctuante »D2I c’est »Intégration continue »Compilation automatisée »Dépôt logiciel »Analyse de code »Tests unitaires »Ensemble de recommandations »Un système ouvert : s’améliore par synergies Application d'un référentiel de développement JAVA / J2EE Adrien Bailly Introduction Atos Origin La démarche D2I Adaptation sur projets anciens ConclusionLe référentiel 7
8 Le référentiel mis en place »Une commande simple pour »Lancer la compilation »Mettre sous package »Lancer des plugins »Générer des rapports Application d'un référentiel de développement JAVA / J2EE Adrien Bailly Introduction Atos Origin La démarche D2IAdaptation sur projets anciens Conclusion Le référentiel 1. La compilation automatisée 8
9 Le référentiel mis en place »Maven de la fondation Apache »Basé uniquement sur des plugins »Conventions VS configuration »Configuré par un fichier pom.xml (Project Object Model) »Utilise un dépôt logiciel (Archiva, Nexus) Application d'un référentiel de développement JAVA / J2EE Adrien Bailly Introduction Atos Origin La démarche D2IAdaptation sur projets anciens Conclusion Le référentiel 1. La compilation automatisée 9
10 Le référentiel mis en place »Maven : gestion des dépendances transitives »Même esprit que D2I Application d'un référentiel de développement JAVA / J2EE Adrien Bailly Introduction Atos Origin La démarche D2IAdaptation sur projets anciens Conclusion Le référentiel 1. La compilation automatisée 10
11 Le référentiel mis en place »Bibliothèque logicielle »Fonction proxy »Une partie commune à l’entreprise »Une partie réservée au projet Application d'un référentiel de développement JAVA / J2EE Adrien Bailly Introduction Atos Origin La démarche D2IAdaptation sur projets anciens Conclusion Le référentiel 2. Dépôt logiciel (Archiva, Nexus) 11
12 Le référentiel mis en place Application d'un référentiel de développement JAVA / J2EE Adrien Bailly Introduction Atos Origin La démarche D2IAdaptation sur projets anciens Conclusion Le référentiel 2. Dépôt logiciel (Archiva, Nexus) 12
13 Le référentiel mis en place »Compiler régulièrement => évite les surprises »Basée sur les tests unitaires »Codés en parallèle du projet »Testent une fonctionnalité indépendamment du reste du programme »Création et affichage de rapports »Système centralisé dans l’entreprise Application d'un référentiel de développement JAVA / J2EE Adrien Bailly Introduction Atos Origin La démarche D2IAdaptation sur projets anciens Conclusion Le référentiel 3. L’intégration continue (Hudson, Continuum) 13
14 Le référentiel mis en place »Compilation distribuée Application d'un référentiel de développement JAVA / J2EE Adrien Bailly Introduction Atos Origin La démarche D2IAdaptation sur projets anciens Conclusion Le référentiel 3. L’intégration continue Serveur d’intégration continue PC du projet A PC du projet B PC du projet C Communication distante 14
15 Le référentiel mis en place Qualité du code »Analyse de la syntaxe (Checkstyle) »20 règles Atos Origin »Respect des bonnes pratiques de codage Java EE (PMD-CPD) »Détecte les copier-coller… »120 règles Atos Origin Application d'un référentiel de développement JAVA / J2EE Adrien Bailly Introduction Atos Origin La démarche D2IAdaptation sur projets anciens Conclusion Le référentiel 4. Analyse de code 15
16 Le référentiel mis en place Qualité du programme »Analyse de la conception des classes (NCSS) »Complexité cyclomatique »Analyse de l’architecture projet (Jdepend) »Dépendances entre packages »Stabilité du projet Application d'un référentiel de développement JAVA / J2EE Adrien Bailly Introduction Atos Origin La démarche D2IAdaptation sur projets anciens Conclusion Le référentiel 4. Analyse de code 16
17 Le référentiel mis en place Application d'un référentiel de développement JAVA / J2EE Adrien Bailly Introduction Atos Origin La démarche D2IAdaptation sur projets anciens Conclusion Le référentiel 5. Système global 17
18 L’adaptation de projets au référentiel de développement »Longue et difficile »Conception du projet -Dépendances cycliques (Classcycle, Jdepend) => repenser le projet »Gestion des historiques -Non respect des règles de codage => faire un différentiel »Perte des connaissances Application d'un référentiel de développement JAVA / J2EE Adrien Bailly Introduction Atos Origin La démarche D2I Adaptation sur projets anciens ConclusionLe référentiel Package A Package B A besoin de 18
19 Conclusion »Plateforme de développement continu »En partie fonctionnelle »Application sur des projets anciens »A poursuivre ; quid de l’apport réel ? D2I est adaptée aux projets nouveaux »A faire »Continuer la veille technologique »Prendre en compte la démarche dans les crédits projets »Former toutes les équipes Java EE Application d'un référentiel de développement JAVA / J2EE Adrien Bailly Introduction Atos Origin La démarche D2IAdaptation sur projets anciens Conclusion Le référentiel 19
20 Merci de votre attention Application d'un référentiel de développement JAVA / J2EE Adrien Bailly 20