Ingénierie de développement sur le projet PANAM
Transcription
Ingénierie de développement sur le projet PANAM
Extrait de rapport de stage GHORBEL Afef Ingénierie de développement sur le projet PANAM CONFIDENTIEL Les informations de ce document doivent être confinées à l’usage strict du cadre pédagogique de l’université du Mans et ne doivent en aucun cas être transmises à un tiers sans autorisation préalable de Capgemini. Stage réalisé du 3 Mars au 14 Août 2014 à « CAPGEMINI » Résumé : Dans le cadre de ma dernière année de Master Informatique Ingénierie des Systèmes Intelligents à l'université du Maine, j'ai réalisé un stage de six mois au sein de la SSII « Capgemini » Nantes. En tant que Ingénieur Développeur en Nouvelles Technologies, je me suis rattachée au Center Skill Division « CSD ». Je suis intervenue sur un projet informatique pour le compte d’un grand client la « SNCF ». J’ai intégré l’équipe « PANAM » constituée de neuf collaborateurs pour intervenir sur diverses missions relatives au projet concerné. « PANAM » est un projet qui vise à créer une application de planification d’interventions de maintenance des matériels roulants ferroviaires de la « SNCF ». Durant mon stage ma mission au sein de l’équipe, était de participer au développement de certaines évolutions du projet, de corriger des anomalies ainsi que de réaliser des tests de non régression. Ainsi, au travers de ces diverses missions, j'ai pu appréhender la méthodologie et les activités principales d’un consultant chez « Capgemini » en étant impliqué dans les problématiques « métiers ». Mots clés : PANAM, SNCF, Capgemini, Java EE, Compréhension des besoins du client, spécifications détaillées des fonctionnalités, conception technique. 1 Introduction Au début du stage, je me suis formée sur l’architecture de l’application « PANAM » et les différentes technologies utilisées. J’ai mis La SNCF a initié le programme « OSMOSE » environ deux semaines à appréhender la (Optimisation et Standardisation des Méthodes, documentation (guide de développement, cahier des Organisations et des Systèmes en des charges ainsi que quelques présentations du Établissement) qui vise à optimiser la gestion de projet). la maintenance de l’ensemble du matériel La première tâche confiée fut une participation roulant. aux tests de non régression. Ces tests sont le Dans le cadre de projets de maintien en condition procédé de validation et de vérification du bon opérationnelle « MCO », « PANAM » est un des fonctionnement de l’application avant de la livrer projets composant ce programme. Il vise à créer au client. Ceci m’a permis de monter en une application (qui porte le même nom) qui compétence sur les règles de gestion définies interagit en permanence avec les briques dans les IHM, sur les différentes fonctionnalités « OSMOSE » au travers de flux réguliers et qui et les différents écrans de l'application et surtout permet la planification à long terme des m’a aidé à comprendre le fonctionnel de interventions de maintenance sur les matériels « PANAM ». roulants ferroviaires de la SNCF. Le projet est découpé en 2 lots principaux : lot 303 « TGV » et Une fois la compréhension de base effectuée, j’ai participé à la correction des anomalies mineures le lot 310 « maintenance à l’organe ». A mon arrivée sur le projet, le premier lot était en d’IHM et dans un second temps la correction des cours de validation afin de passer en production anomalies majeures plus orientées métier. prochainement. Je devais donc dans un premier temps participer à la phase de validation Lorsque je fus suffisamment à l’aise dans ces fonctionnelle et de tests de recette de ce lot fonctions, j'ai pu prendre en charge en autonomie développé avant mon arrivée. Ensuite selon le certaines évolutions de l'application. Celles-ci besoin du client diverses tâches m’ont été étaient commandées par le client pour répondre à confiées qui concerne principalement le lot des nouvelles exigences des utilisateurs finaux. « maintenance à l’organe ». Ces différentes missions auxquelles j’ai pris part 2.1.2 Phases du projet m’ont permis de progresser rapidement sur le Tout au long de ces six mois, mon apprentissage plan technique, d’être plus efficace et mature s’est effectué autour des différentes phases du dans mon travail et m’ont donné la possibilité de cycle de vie d’un projet informatique : collaborer avec les différents membres de Analyse des besoins: La demande du l’équipe « PANAM ». client est clarifiée et globalement identifiée Développement des fonctionnalités attendues / Correction des anomalies Ces nouvelles évolutions que j’ai 21. Objet du travail développées passent en Tests Recette et qualification 2.1.1 Objectif du stage Elles passent ensuite en Production L’objectif de ce stage est d’apprendre et maîtriser comme presque chaque mois une version les méthodes de travail, de développer mes est livrée au client. compétences (savoir-faire et savoir-être) et d'acquérir une connaissance approfondie dans le Ceci m’a permis de passer par les différentes cadre d’un projet informatique en situation réelle. facettes d’un projet, de m’assurer si ce que j’ai réalisé était conforme aux exigences du client en Ces objectifs m’ont été clairement définis en termes de performance et de qualité du code. amont. Une prise d’autonomie et une forte motivation en découleront par ailleurs. 2 Contenu du stage 2.1.3 Environnement technique Dans le cadre d’un projet au forfait à engagement, l’application « PANAM » était conçue pour répondre aux exigences du client. Cette application est développée en Java EE. Elle s’appuie sur un frontal web utilisant Jboss comme serveur d’application et Apache Maven comme outil de gestion et d'automatisation de production du projet. L’ensemble de la configuration de « PANAM » se fait par l’intermédiaire de Spring. 22. Apports Ce projet a réellement été très instructif pour moi. Il m’a vraiment appris énormément de choses, aussi bien au niveau technique que sur le plan humain. Sur le plan pratique, je tiens à souligner que la réalisation de ce projet était une bonne occasion pour me confronter aux contraintes du milieu professionnel. Durant mon stage, j’ai pu être formé, d’un point une de vue méthodologique, de la même manière des qu’un consultant débutant. J’ai donc pu apprendre et adopter une méthode de travail professionnelle grâce à ce projet. J’ai pu La mise en œuvre des développements sous apprendre comment m’intégrer au sein d’une « PANAM » s’appuie sur une architecture équipe de travail ainsi que de découvrir comment applicative conforme au modèle d’architecture se déroulent les projets dans une SSII. logicielle à cinq couches : L'application « PANAM » repose sur architecture client-serveur utilisant technologies éprouvées. - Présentation : Cette couche gère les Interfaces Homme-Machine et le contrôle de la cinématique de l’application. Le Framework JCF Icefaces est utilisé. - Coordination : Cette couche factorise les comportements réutilisables entre les différentes technologies de présentation. - Service : Cette couche gère les transactions. Elle crée et instancie les objets techniques dont elle a besoin. - Domaine : Cette couche contient les objets métier proprement dits et leurs règles de gestion. - Persistance : Cette couche accède aux données persistées, dans la base de données. Le Framework de persistance utilisé dans cette couche est Hibernate. Ainsi pour développer ce projet, des outils d’industrialisation ont étés utilisés tels que : HP QC qui est une plateforme de gestion de la qualité logicielle des applications, Oracle SQL Developer comme un Système de Gestion de Bases de Données permettant d'interroger des bases de données Oracle à l'aide du langage SQL. Au-delà des aspects techniques, fonctionnels et humains, ce stage m'a permis de me confronter à l’aspect organisationnel d’un projet: J'ai ainsi pu acquérir une véritable expérience professionnelle approfondie sur le déroulement de gros projets. J’avoue que ce stage représente un enrichissement considérable qui achève la formation d’un ingénieur études et développement et je suis persuadée que les connaissances acquises durant ce stage me serviront dans l’avenir. 23. Résultats obtenus Durant ce stage, plusieurs tâches m’ont été confiées, permettant de couvrir des plans techniques ou axés sur le métier du projet : Développement d’évolutions: Le développement de fonctionnalités se base toujours sur la connaissance des règles métiers présentes dans les spécifications. Pour la mise en place de ces évolutions, une bonne analyse des besoins et une étude approfondie des spécifications fonctionnelles du client doivent être effectuée avant de commencer le développement. Cela m’a permis d’acquérir une vision d’ensemble des écrans, et des L’utilisation d’un tel environnement technique fonctionnalités attendues. m’a permis d’acquérir de nouvelles compétences techniques. J’ai rédigé mes fiches de Tests Unitaires dans le but de bien vérifier si le comportement d’une évolution fonctionnelle est conforme à la spécification. En fonction des changements apportés au code et de la complexité de l’évolution et de la version de l’application, il m’a fallu respecter les délais, les charges et l’organisation du projet en termes de travail collaboratif. Parfois, il m’a fallu reporter mes modifications de code sur différentes branches. Une branche correspond à un projet dérivé c’est à dire une version spécifié de l’application. Il m’a fallu aussi veiller à maintenir la qualité du code en respectant les normes et les méthodologies de développements (parmi les bonnes pratiques que j’ai appris pour structurer mon code : refonte du code «refactoring» dans le but de faciliter la future maintenance de l’application). Une fois que le développement de la fonctionnalité souhaitée a été achevé, il m’a fallu rapporter à mon tuteur l’avancement de mes travaux pour vérifier le code et s’assure que les tests unitaires entaient passés avec succès. Contribution aux tests de non régression : Durant toute la durée du stage, différentes versions de l’application ont été livrées, j’ai été chargé de contribuer à la réalisation des tests de non régression en phase de recette interne. Le responsable fonctionnel affecte les tâches de vérification à chacun. L’avancement des tests est tracé et suivi sur des documents partagés. On regarde sur chaque écran si les règles de gestion sont respectées, dans le cas contraire, on gère les non-conformités dans un outil interne de suivi, où chaque fiche est tracée de la même manière qu’avec le client c’est ce qu’on appelle les artefacts internes. C’était très intéressant de contribuer aux tests de non régression dont l'intérêt principal est de garantir un niveau de qualité satisfaisant lors de la recette de l'application. J’ai pu ainsi identifier plusieurs bugs allant de mineurs à bloquants. Analyse et correction internes et client: d’anomalies J’ai pu traiter une vingtaine des anomalies remontées par le client en phase de production ou Comme toute personne débutante, j’ai tout de de recette, de gravité mineurs à majeurs, de même rencontré des difficultés. Néanmoins, priorité faible à élevée en se basant sur le code l’aide des collègues s’est avérée précieuse pour bien entendu, mais aussi sur les SFD. surmonter ces problèmes et respecter le chiffrage. Le côté le plus intéressant de ce stage fut de Le plan de travail établi par mon chef de travailler de manière quasi autonome. Il m’a fallu projet, ainsi que les tâches qui m’ont été confiées, gérer les tâches qui m’étaient affectées du début jusqu'à la fin et être seule maître de mon travail et ont été globalement respectées et effectuées. Mon apprentissage a été progressivement surtout de les finaliser dans les délais souhaités. J’ai veillé à échanger, poser des questions dès accentué au fur et à mesure des tâches qui m’ont que je rencontrais un blocage, avec mon tuteur de été confiées. stage ou les autres collaborateurs en fonction des connaissances des personnes dans l’équipe. 24. Limites du travail Le projet utilisait une méthodologie de suivi quotidien qui passait par : point de suivi matinal avec toute l’équipe, suivi des affectations par un fichier partagé par tous où chaque développeur saisit ce qu’il a fait et le temps qu’il a pris pour le faire et ce qu’il lui reste à faire. Chaque mois, un point de suivi régulier est établi avec mon chef de projet, un échange sur l’avancement de mon stage ainsi qu’une synthèse des travaux réalisés. Ainsi, suite à un compte rendu, des objectifs sont réévalués, les axes de progrès et les points de vigilance sont mis à jour. Intégrer un projet qui était étalé sur deux ans avant mon arrivée et travailler sur une application en phase de production riche en fonctionnalités, m’a mis au début une pression accrue. Il m'a fallu bien étudier la documentation dans un premier temps et comprendre l’existant pour pouvoir intégrer des modifications de code. A vrai dire, la plus grande difficulté que j’ai rencontrée est celle de l’adaptation à un développement existant (respectant majoritairement les bonnes pratiques, mais pas systématiquement) ; malgré mon manque d’expérience, j’ai pu m’intégrer au projet en m’appuyant sur les spécifications, sur l’assistance des personnes confirmées du projet et L’intérêt pour l’équipe « PANAM » est alors parfois (si c’est le cas) sur la documentation du d’avoir bénéficié d’un apport technique code source faite par les précédents développeurs supplémentaire sur le projet. qu’on appelle JavaDoc. Enfin, malgré ma faible expérience du monde Je n’avais aucune expérience préalable de professionnel, durant mon stage, j’ai pu être développement web en langage JavaEE ni de capable de participer à l’évolution de l’utilisation des différents Framework ou de l’application, d’échanger mes propositions et de l’utilisation des outils internes comme le logiciel faire part des améliorations qu’il s’est souvent collaboratif CollabNet Teamforge. intéressant d’ajouter. 4 Conclusion Le contexte du projet tendu m’a amenée à m’auto-former sur des technologies méconnues pour moi afin de réussir mon stage. Différents Framework ont servi à l’usage du projet, comme Ce stage conclut ma deuxième année de Master JSFIcefaces et JViews dont l’expertise était Informatique. assurée par l’architecte du projet. D'un point de vue technique, j'ai pu mettre en Mon intégration à l’équipe de collaborateurs s’est application les connaissances acquises durant ma faite au terme d’une phase difficile d’adaptation. formation. J'ai également pu apprendre et Aussi, nous avons parfois été amenés à avoir des approfondir des méthodes de travail et de divergences de points de vue sur le plan développement, notamment au niveau de professionnel, qui ont pu amener les différents l'architecture logiciel et de la découverte des collaborateurs et moi-même à des malentendus technologies de plus en plus recherchées par les ou des désaccords. recruteurs. Cependant, j’ai pu dépasser ces contraintes rapidement grâce à une écoute active et mutuelle Ce stage fut très enrichissant pour moi ; être au sein de l’équipe, par une gestion de mes intégrée dans un tel projet m’a permis de émotions, et ma capacité à demeurer rationnelle progresser et d'évoluer, sur le plan purement en toute situation. professionnel bien sûr, mais aussi et surtout Enfin, le meilleur moyen de sortir d’une situation sur le plan humain. de crise étant de communiquer, nous avons pu nous extraire de tout conflit par des échanges J'ai eu la chance de faire partie d'un projet constructifs. extrêmement complexe au sein d'une équipe agréable, ceci m'a permis de très vite monter en compétences, d'acquérir une maturité dans mon travail et d’être confrontée aux contraintes quotidiennes imposées (telles que le respect des planifications, du chiffrage, des délais de livraison). Le programme « OSMOSE » plus particulièrement le projet « PANAM » s’inscrit Mon expérience chez « CAPGEMINI » a été très dans un contexte de fortes attentes du client, en enrichissante en termes d’apprentissage sur tous termes de qualité de service et de performance les plans, de découvrir le fonctionnement d’une économique. SSII, notamment le déroulement d'un projet comme « PANAM ». L’apport principal pour la société « Capgemini » et plus particulièrement le pôle Division skills Très satisfaite de mon stage chez Service « CSD SKILLS », est d’avoir pu former « CAPGEMINI », j’ai découvert la véritable pendant six mois un futur consultant sur les nature du travail en entreprise. Ce projet m’a technologies utilisées dans ce domaine, les permis de mettre face à face d’une part, l’acquis concepts particuliers associés ainsi que sur la théorique durant les années d’études méthodologie appropriée pour un travail effectif. universitaires et d’autre part la réalité pratique avec ses exigences, ses attentes et ses contraintes. 3 Applications dans l'entreprise Parmi les principaux facteurs de satisfaction, figurent notamment la qualité des missions confiées, les connaissances acquises durant le stage et ma progression autour de plusieurs axes compétences. 5 Bibliographie Documentation interne du projet (spécifications, documents d’architecture, guide de développement…) http://stackoverflow.com/ http://fr.openclassrooms.com/ http://www.developpez.com/