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/

Documents pareils