Vous êtes sur la page 1sur 55

Rapport de stage

SQLI

Gestion dexigences

Fouquet Vincent M2 ALMA 2007-2008

08-sqli-fouquet.doc

2008

P 1/55

RAPPORT DE STAGE

Sommaire

1 INTRODUCTION .......................................................................................................... 5 2 SQLI ............................................................................................................................. 6


2.1 Prsentation gnrale ...................................................................................................... 6
2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 Lentreprise .............................................................................................................................. 6 Quelques chiffres ..................................................................................................................... 6 Rsultats et effectifs ................................................................................................................. 7 Les clients ............................................................................................................................... 8 Loffre SQLI ............................................................................................................................. 9

2.2 CMMI chez SQLI ............................................................................................................... 9 2.3 Organisation des livrables dun projet.......................................................................... 12 2.4 Lagence de Nantes ........................................................................................................ 13
2.4.1 Activits ................................................................................................................................. 13 2.4.2 Organisation .......................................................................................................................... 13 2.4.3 CMMI ..................................................................................................................................... 14

2.5 Les outils de mthodologie ........................................................................................... 14


2.5.1 2.5.2 2.5.3 2.5.4 2.5.5 Toolkit .................................................................................................................................... 14 Test Case Manager ............................................................................................................... 14 Mantis .................................................................................................................................... 14 SDP (Suivi de projet) ............................................................................................................. 14 LinkUAll ................................................................................................................................. 15

2.6 Les applications du groupe ........................................................................................... 15


2.6.1 SQLIpdia ............................................................................................................................. 15 2.6.2 IntraCap................................................................................................................................. 15 2.6.3 LIntranet CMMI ..................................................................................................................... 15

3 PROJET BORLAND CALIBER RM PLUGIN ............................................................ 17


3.1 Contexte de ltude ........................................................................................................ 17 3.2 Motivation ....................................................................................................................... 18 3.3 Problmatique ................................................................................................................ 19
3.3.1 Cration de interface .............................................................................................................. 19 3.3.2 Traitement mtier ................................................................................................................... 19

3.4 Prsentation du contexte de travail .............................................................................. 19 3.5 Contexte technique ........................................................................................................ 20


3.5.1 Outils ..................................................................................................................................... 20 3.5.2 Frameworks ........................................................................................................................... 20 3.5.3 Architecture ........................................................................................................................... 21

3.6 Modules raliser .......................................................................................................... 21


3.6.1 La partie interface .................................................................................................................. 21 3.6.2 La partie mtier ...................................................................................................................... 22 3.6.3 Intgration du plugin Caliber RM ......................................................................................... 23

3.7 Organisation du projet ................................................................................................... 23

08-sqli-fouquet.doc

2008

P 2/55

RAPPORT DE STAGE

Sommaire

3.8 Mthodes utilises ......................................................................................................... 24


3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.8.6 3.8.7 3.8.8 3.9.1 3.9.2 3.9.3 3.9.4 3.9.5 3.9.6 3.9.7 3.9.8 3.9.9 La partie interface globale ...................................................................................................... 24 Lcran de connexion ............................................................................................................. 24 Lcran de choix du projet et de la baseline cible. ................................................................... 24 Lcran de choix du type dexigences cible ............................................................................. 24 Lcran de choix du projet source ........................................................................................... 24 Lcran de slection des exigences sources ........................................................................... 24 Lcran de modification de la baseline cible ............................................................................ 25 Le traitement mtier ............................................................................................................... 25 Lancement de lutilitaire ......................................................................................................... 25 Demande des paramtres de connexion ................................................................................ 25 Choix du projet et de la baseline cible .................................................................................... 26 Choix du type dexigence cible ............................................................................................... 27 Choix du projet source ........................................................................................................... 28 Slection des exigences sources ........................................................................................... 28 Slection des exigences cibles ............................................................................................... 29 Lancement de lutilitaire ......................................................................................................... 29 Modification de la baseline ..................................................................................................... 29

3.9 Outil ralis..................................................................................................................... 25

3.10 Bilan technique et personnel......................................................................................... 30

4 PROJET TRACEABILITYBOARD ............................................................................. 31


4.1 4.2 4.3 4.4 Contexte de ltude ........................................................................................................ 31 Motivation ....................................................................................................................... 32 Problmatique ................................................................................................................ 32 Prsentation du contexte de travail .............................................................................. 33

4.4.1 Le contexte ............................................................................................................................ 33 4.4.2 Les collaborateurs du projet ................................................................................................... 34

4.5 Contexte technique ........................................................................................................ 34


4.5.1 Architecture technique ........................................................................................................... 34 4.5.2 Architecture applicative .......................................................................................................... 34

4.6 Modules raliser .......................................................................................................... 36


4.6.1 Partie Traitement ................................................................................................................... 36 4.6.2 Partie Interface ...................................................................................................................... 37

4.7 Organisation du travail .................................................................................................. 40 4.8 Mthodes utilises ......................................................................................................... 41 4.9 Outil ralis..................................................................................................................... 44
4.9.1 La partie traitement ................................................................................................................ 44 4.9.2 La partie interface .................................................................................................................. 45

4.10 Bilan technique et personnel......................................................................................... 50

5 RPARTITION DU TEMPS ........................................................................................ 51

08-sqli-fouquet.doc

2008

P 3/55

RAPPORT DE STAGE

Sommaire

6 BILAN GNRAL ...................................................................................................... 52 GLOSSAIRE .................................................................................................................... 53 BIBLIOGRAPHIE-WEBOGRAPHIE ................................................................................ 54 ANNEXES........................................................................................................................ 55

08-sqli-fouquet.doc

2008

P 4/55

RAPPORT DE STAGE

Introduction

1 INTRODUCTION
Jai suivi au cours de lanne 2007-2008 la formation ALMA qui est un Master professionnel en informatique et architectures logicielles. Cette formation est suivie dun stage en entreprise dune dure de quatre mois minimum. Jai donc fait ce stage au sein de lagence de Nantes de la socit SQLI. Le groupe SQLI est une SSII qui existe depuis une vingtaine dannes. Elle est spcialise dans la conception et la mise en uvre de systmes dinformations reposant sur les nouvelles technologies. Elle est constitue de 1500 collaborateurs rpartis dans 19 agences en France et ltranger. En 2005, la socit a t la premire SSII franaise obtenir la certification CMMI (bonne pratiques relatives aux phases dun projet) niveau 3. La dmarche qualit est dsormais une priorit chez SQLI qui travaille dans un environnement mthodologique trs riche. Jai travaill sur plusieurs projets de petite taille. Cela ma permis de me familiariser avec les pratiques SQLI dveloppes sur le modle CMMI. Lors de ce stage, jai travaill pour les projets Caliber RM plugin et TraceabilityBoard. Jai de plus reu diverses formations : VisualStudio, CMMI, JSP et STRUTS. Ces projets ont en commun la gestion dexigences (Besoin fonctionnel ou technique satisfaire).

08-sqli-fouquet.doc

2008

P 5/55

RAPPORT DE STAGE

SQLI

2 SQLI 2.1 Prsentation gnrale


SQLI est une socit de services qui intervient dans le domaine du conseil et de lintgration des applications e-business. Ses principaux axes de dveloppement sont une offre de solutions sectorielles et une approche qualit totale avec la dmarche CMMI. Le groupe est compos de plus de 1500 collaborateurs. Ses agences sont implantes principalement en France mais aussi ltranger (Suisse, Maroc, Luxembourg, Belgique, Espagne et Canada) et, travaillent essentiellement pour des grands comptes.

2.1.1

Lentreprise

Cre en 1990, SQLI est spcialise dans la conception et la mise en uvre de systmes dinformations reposant sur les nouvelles technologies. Chaque jour, elle accompagne ses clients dans l'alignement de leur systme d'informations la stratgie de l'entreprise : du conseil en amont au transfert de comptences en aval, en passant par la ralisation et lintgration des applications.

2.1.2

Quelques chiffres

18 ans dexprience et dinnovation Depuis sa cration, SQLI assoit son dveloppement sur une expertise technologique de pointe et sur sa politique intense de veille et R&D (Recherche et Dveloppement). 13 ans dexprience des projets e-business

En 2005, SQLI devient la 1re SSII franaise obtenir la certification CMMI niveau 3.

115.4 M de chiffre daffaires en 2007

50% du chiffre daffaires au forfait

Cote au nouveau march depuis juillet 2000

08-sqli-fouquet.doc

2008

P 6/55

RAPPORT DE STAGE

SQLI

En 2007, 1500 collaborateurs en France et ltranger

19 agences Un maillage de proximit proche des ralits conomiques locales, - Trois centres de dveloppement Offshore Rabat, Oujda et Casablanca au Maroc - Une agence ddie aux solutions Sant Dijon.

2.1.3

Rsultats et effectifs

08-sqli-fouquet.doc

2008

P 7/55

RAPPORT DE STAGE

SQLI

2.1.4

Les clients

- Plus de 800 clients actifs

- Projets conduits auprs de grands comptes dans tous les secteurs dactivits :

Administration : Ministre des Affaires trangres, Conseil gnral de la Loire, Conseil rgional de Franche-Comt, Etat de Genve Assurance : Aviva, Groupama, Mutualit Franaise Banque : Cofinoga, Casden Banque populaire, Socit Gnrale Distribution : Promod, Pinault-Printemps-Redoute, Monoprix Immobilier : Socit Nationale Immobilire, Klpierre, Eiffage Immobilier Industrie : Potain, Bayer CropScience, Goodrich Aerospace, Airbus, BMW, Renault Media : Institut National de la Consommation Sant : Agence Rgionale Hospitalire de Franche-Comt, Clinique Pasteur Toulouse, CHU de Besanon Telecom : Mitsubishi Telecom, Nolis, France telecom formation Transport : SNCF, Eurostar, Socit des Autoroutes Paris-Rhin-Rhne

08-sqli-fouquet.doc

2008

P 8/55

RAPPORT DE STAGE

SQLI

2.1.5

Loffre SQLI

2.2 CMMI chez SQLI


CMMI (Capability Maturity Model Integrated) est un rfrentiel d'valuation de la capacit grer et terminer un projet correctement, proposant nombre de bonnes pratiques lies la gestion, au dveloppement et la maintenance d'applications et de systmes. Ces bonnes pratiques sont regroupes en une vingtaine de processus, eux-mmes regroups en 4 grandes catgories (gestion de projet, organisation, ingnierie et support) et 5 niveaux de maturit.

Prsentation du modle

CMMI permet, aux entreprises dsireuses daccrotre leur comptitivit, damliorer les processus lis au dveloppement logiciel. Cette dmarche qualit a pour but de : - dfinir un cadre dcrivant les lments cls dun processus logiciel efficace,

08-sqli-fouquet.doc

2008

P 9/55

RAPPORT DE STAGE

SQLI

- dcrire les amliorations apporter permettant le passage dun processus improvis vers un processus mature et disciplin, - intgrer et respecter des pratiques de planification, dingnierie, de gestion du dveloppement et de maintenance, - contribuer latteinte des objectifs de cots, de dlais, de fonctionnalit et de qualit des produits que se fixe lentreprise. Ds 1986 lindustrie du logiciel est dclare stratgique par le gouvernement amricain : cest la naissance de CMM. Le Dpartement de la Dfense (DoD) finance alors le Software Engineering Institut qui dveloppe le modle CMM, afin de fiabiliser les dveloppements informatiques dans les domaines de la Dfense, de lAronautique et de lEspace. En 2001, aprs plusieurs annes danalyse des causes de succs et dchecs constats sur des milliers de projets informatiques, CMMI (Capability Maturity Model Integrated) voit le jour. CMMI couvre lensemble des processus lis la production de logiciels comme, par exemple, la gestion des exigences, la planification, le suivi de projet, la gestion des risques, la vrification puis la validation par les utilisateurs finaux.

Les 5 niveaux de maturit Le modle CMMI est un modle progressif ; il est structur en 5 niveaux. Chacun de ces niveaux correspond un palier de maturit dans la gestion des processus de dveloppement logiciel. Niveau 1 : Initial A ce niveau, le processus de dveloppement nest pas dfini. La russite des projets dpend du savoirfaire de quelques personnes cls dans lorganisation. Il ny a pas de formalisation du savoir-faire, des processus et pas de partage.

Niveau 2 : Pilot Les principaux processus de gestion de projet sont dfinis. Une gestion de projet lmentaire est dfinie pour assurer la planification puis le suivi des cots, des dlais et des exigences du projet.

Niveau 3 : Standardis Les processus dfinis au niveau 2 sur les projets sont gnraliss toute lorganisation. Tout processus projet est une instanciation du processus standard de lorganisation. Les processus sont affins. Une attention particulire est porte aux processus dingnierie.

Ce qui caractrise ce niveau :

08-sqli-fouquet.doc

2008

P 10/55

RAPPORT DE STAGE

SQLI

- Capacit quivalente entre projet - Risques dcroissants car il existe une cohrence entre projets - Capitalisation systmatique et rutilisation du savoir-faire et du code - Culture et comprhension communes - Enseignements tirs des projets - Prvention

Niveau 4 : Quantifi Les mesures sont mises en uvre systmatiquement sur chaque processus. Les donnes sont consolides et exploites. Ce qui caractrise ce niveau : - Des mtriques et indicateurs sont mis en place et exploits - Les retours dexprience sont possibles car les processus sont cohrents et il y a des critres de comparaison communs - Programme qualit - Evaluation des impacts lis aux volutions du processus

Niveau 5 : Optimis

Au niveau 5, les processus sont totalement matriss, les mesures sont exploites. Cela permet danticiper les volutions techniques et de processus. Les processus sont optimiss en permanence Ce qui caractrise ce niveau : - Amlioration continue du processus - Performance individuelle et collective suivie - Gestion des changements

Pour passer dun niveau un autre, lentreprise doit atteindre des objectifs regroups en trois grandes catgories :

08-sqli-fouquet.doc

2008

P 11/55

RAPPORT DE STAGE

SQLI

- les processus de gestion de projet : gestion des exigences, planification, suivi, supervision, assurance qualit, risques - les processus organisationnels : organisation de lentreprise, organisation des process, formation, amlioration continue - les processus dingnierie : dveloppement des exigences, dveloppement technique, tests, validation, gestion de configuration.

2.3 Organisation des livrables dun projet

Rfrentiel des exigences

Dossier Spcifications Gnrales

Dossier dArchitecture Technique

Dossier Spcifications Dtailles

Dossier dArchitecture Applicative

Dossier de conception technique dtaille

Ralisation - Code

Organisation des livrables dun projet

08-sqli-fouquet.doc

2008

P 12/55

RAPPORT DE STAGE

SQLI

2.4 Lagence de Nantes


Lagence nantaise a t cre en Septembre 2001. Elle est constitue ce jour dune soixantaine de collaborateurs.

2.4.1
2.4.1.1

Activits
Assistance technique (rgie)

Les collaborateurs ont des ordres de missions directement chez le client. Ce sont gnralement des projets en .NET ou Java. Sur cette offre, SQLI intervient majoritairement au sein de grands comptes dans les domaines de la banque/assurance, des administrations, de la distribution.

2.4.1.2

Forfait

Ce sont des projets raliss au sein de lagence pour un client. Ces projets sont de taille variable et impliquent des technologies telles que .NET, J2EE, ou PHP. Les principaux clients de lagence sur les projets au forfait sont les collectivits et administrations.

2.4.1.3

Centre de services

Il est compos de 4 personnes qui grent la maintenance corrective et volutive de projets divers. Il est galement sollicit pour des projets de petite taille.

2.4.1.4

Formation

Elle concerne les nouvelles technologies. Selon les thmes des formations, tout collaborateur SQLI est susceptible dintervenir pour leur animation.

2.4.1.5

Studio

Lquipe du studio est charge de la partie design des projets web, de la communication et offre depuis peu des services dePub.

2.4.2

Organisation

Lagence est compose aujourdhui de trois BU (business unit) : NAI1 : ingnierie, expertise et conseil.

08-sqli-fouquet.doc

2008

P 13/55

RAPPORT DE STAGE

SQLI

NAST : ePub, communication, design. NACU : direction, administration, activit commerciale et formation.

2.4.3

CMMI

Lagence de Nantes est certifie Niveau 3 depuis 2006. En fvrier 2008, elle a obtenu son GO CMMI de niveau 3 avec une couverture de 82% des pratiques. Elle sest fixe pour prochain objectif datteindre le niveau 5. En ce qui concerne PeopleCMM (pratiques orientes pour lvolution de carrires des collaborateurs), lagence maintient son niveau 2 malgr sa forte croissance des effectifs et sa rorganisation. Elle a obtenu une note de 2,8/4 au check de dcembre dernier. Elle a t particulirement flicite pour lorganisation et le suivi RH, la proximit du management, sa communication interne et le bon accueil des nouveaux arrivants.

2.5 Les outils de mthodologie


Les outils permettant de mettre en pratique cette mthodologie CMMI sont regroups dans un portail Intranet ralis par SQLI : IdeoProject. Cet outil apporte une vision globale de tous les projets du collaborateur. Il est utilis par tous les membres du projet (ainsi que le client). Il englobe diffrents outils :

2.5.1

Toolkit

Cest lapplication de suivi du projet : Tableau de bord de suivi et pilotage oprationnel du projet, Indicateurs de pilotage (suivi des actions, des livrables, des jalons, des risques, des vnements, des problmes, de lassurance qualit, des indicateurs du projet).

2.5.2

Test Case Manager

Cest un logiciel de gestion de plans de test qui fournit aux quipes projet une interface commune et un rfrentiel pour mettre en uvre et valider des plans de test. Il formalise les cas de tests et les scnarii de tests, permet de grer et classer les plans de tests, grer et excuter les scnarii, gnrer des statistiques sur les excutions de scnarios, associer les exigences aux cas de tests.

2.5.3

Mantis

Cest lapplication de recensement des anomalies pour toutes les campagnes de tests. Elle permet lors de la phase de recette de remonter les anomalies, de les attribuer un intervenant et de les traiter. Un reporting permet de suivre en temps rel lvolution de ces anomalies.

2.5.4

SDP (Suivi de projet)

Cest lapplication de suivi de la consommation des charges et des restes faire sur le projet. Cette application permet le suivi de lactivit de l'quipe sur un projet et le suivi de l'volution des charges. Elle permet davoir un reporting hebdomadaire (par phase ou par intervenant) et dvaluer les risques de chacune des tches. A travers cette application le chef de projet attribue chaque intervenant une tche et

08-sqli-fouquet.doc

2008

P 14/55

RAPPORT DE STAGE

SQLI

un dlai pour sa ralisation.

2.5.5

LinkUAll

Cet outil facilite le travail collaboratif en ligne en proposant les fonctionnalits suivantes : - Stocker, valider et classer les livrables (documents ou comptes rendu divers) - Grer les versions des documents. - Inviter des vnements (Rendez-vous, point tlphonique, ). - Grer des messages, pour changer ou pour informer les interlocuteurs du projet.

2.6 Les applications du groupe


Les applications sont accessibles depuis le site http://nantes.sqli.com/sso/ . Ce site contient des outils utiles comme un Webmail ou dautres outils de capitalisation.

2.6.1

SQLIpdia

SQLIpdia est le site de capitalisation du groupe anim par le comit technique SQLI : Cet espace est ouvert tous pour remonter l'exprience acquise sur les projets dans la bibliothque. Il supporte les rflexions autour de : o l'amlioration des pratiques de construction des livrables (code source, spcification...), o l'industrialisation des dveloppements Il supporte l'aspect technique des offres

2.6.2

IntraCap

IntraCap est un intranet qui permet de publier l'ensemble des lments techniques ou retours d'expriences de mise en uvre raliss dans le cadre des projets ou d'un travail de veille. Un lment technique correspond une technique mise en uvre afin de simplifier ou d'amliorer notre travail au quotidien. Cela concerne par exemple, l'utilisation d'un logiciel, d'une dmarche pour mener des entretiens avec un client afin de comprendre son besoin fonctionnel, un composant Open Source, un site Web, etc... L'ensemble des publications fait ensuite l'objet d'une lecture/analyse par le comit technique qui se charge de modifier, complter, rfrencer les documents les plus pertinents. Certaines publications pourront galement tre transformes en pratiques CMMI et publies sur l'Intranet CMMI

2.6.3

LIntranet CMMI

Lintranet CMMI contient lensemble des modles de documents correspondant aux pratiques CMMI. Ces pratiques sont regroupes par secteur de pratique, phase de projet et profil dutilisateur de la pratique,

08-sqli-fouquet.doc

2008

P 15/55

RAPPORT DE STAGE

SQLI

ce qui permet de retrouver plus facilement le modle de document souhait.

08-sqli-fouquet.doc

2008

P 16/55

RAPPORT DE STAGE

Projet Borland Caliber RM plugin

3 PROJET BORLAND CALIBER RM PLUGIN 3.1 Contexte de ltude


La SNCF exploite le logiciel Caliber RM pour ses projets informatiques. Caliber RM de Borland est un outil utilis pour l'administration d'exigences fonctionnant via un serveur robuste et une base de donnes permettant la connexion simultane de centaines d'utilisateurs. Une exigence est un besoin fonctionnel ncessaire la ralisation dun projet. Les exigences sont regroupes par types dans Caliber RM. Un type peut tre la disponibilit, la testabilit, la facilit de maintenance ou la facilit d'utilisation par exemple. Une baseline est un rfrentiel dexigences. Il y a plusieurs baselines : les baselines normales et la baseline en cours. La baseline en cours contient toutes les exigences avec toutes les versions. La baseline normale ne contient que certaines exigences selon une certaine version. Les exigences peuvent tre traces et/ou mappes. Une exigence trace est une exigence qui a un lien de dpendance vers une autre exigence pouvant tre bidirectionnel (from ou to).Une exigence mappe est une exigence qui est identique une autre. Cest une copie et est modifie en cas de modification de lexigence source Pour amliorer encore sa productivit dans la gestion des exigences, la SNCF souhaitait ajouter un automate de gnration de Baseline selon des rgles spcifiques sous la forme dun plugin. Dans ce cadre, la SNCF a fait appel lditeur du logiciel, la socit Borland, pour raliser cette extension. Borland a alors transmis cette tche SQLI. Le plugin offre deux fonctionnalits : linitialisation dune baseline et la modification dune baseline.

1 Aperu de l'outil Caliber RM

08-sqli-fouquet.doc

2008

P 17/55

RAPPORT DE STAGE

Projet Borland Caliber RM plugin

3.2 Motivation
Linitialisation dune baseline et la modification dune baseline ne sont pas simples raliser sous Caliber RM. Le processus habituel pour gnrer des baselines sous Caliber RM est le suivant : Il faut tout dabord se connecter un projet, puis crer une nouvelle baseline en passant par les menus dadministration de Caliber RM. Ensuite, un assistant demande quelques informations prliminaires sur la nouvelle baseline et on peut ensuite slectionner cette nouvelle baseline dans la liste droulante. Un assistant propose dinitialiser la baseline partir dune version du projet et enfin on peut modifier la baseline dans les menus dadministration.

2 Administration de baselines sous Caliber RM

Le processus habituel pour modifier des baselines sous Caliber RM est le suivant : Il faut se placer sur une baseline existante ou bien en crer une nouvelle. Il faut ensuite utiliser le menu de maintenance pour la baseline puis slectionner ou dslectionner les exigences souhaites et spcifier la version ncessaire.

08-sqli-fouquet.doc

2008

P 18/55

RAPPORT DE STAGE

Projet Borland Caliber RM plugin

3 Modification des exigences sous Caliber RM

Borland demande donc que lon ralise un module enchainant simplement les crans afin damliorer les processus requis par la SNCF. De plus, le module doit rcuprer les exigences mappes et traces de certaines exigences, ce qui est trs fastidieux raliser la main puisquil faut, pour chaque exigence, se rfrer un graphe de traabilit. Pour la mise jour, il faut de plus contrler la validit de la version des exigences que lon va modifier. Ce processus est aussi assez long raliser manuellement.

3.3 Problmatique
3.3.1 Cration de interface

Le plugin raliser doit sinsrer dans Caliber RM et se connecter automatiquement. La partie interface doit tre similaire aux autres plugins de Caliber RM. Elle enchaine les crans sous forme de wizard et les fentres devront tre similaires au style courant de Windows.

3.3.2

Traitement mtier

Le traitement mtier doit respecter des rgles de gestion complexes sur des arbres la profondeur indfinie. Le SDK de Caliber RM permet tout de mme de retrouver les notions de Caliber RM.

3.4 Prsentation du contexte de travail


Ce projet se droule en forfait au sein de lagence SQLI de Nantes, sur un plateau dune vingtaine de personnes. Ce projet t ralis dans sa totalit par deux collaborateurs de SQLI, moi-mme ainsi quun chef de projets galement expert technique. Nous avons t aids par un expert JAVA J2EE de Borland dans nos tches pour la ralisation doutils parallles au projet mais ntant pas demandes par la SNCF.

08-sqli-fouquet.doc

2008

P 19/55

RAPPORT DE STAGE

Projet Borland Caliber RM plugin

Tous les collaborateurs sur ce projet sont : Sbastien RAVOUX Vincent FOUQUET Stphane CAUCHY Olivier M Frdric L Sophie G Mathieu S SQLI SQLI SQLI Borland SNCF SNCF SNCF CP (chef de projets)/dveloppeur Stagiaire DP (Directeur de projets) Responsable de compte/Expert JAVA MOA (Maitrise douvrage) Responsable du ple Outil MOA Administrateur technique MOA

3.5 Contexte technique


3.5.1 Outils

Le dveloppement de cette application sest fait sous Eclipse 3.3. Cette plateforme est ddie en priorit Java et permet un dveloppement simple et rapide d au fait que cette plateforme contienne des outils de refactoring trs utiles. Pour lintgration du projet et les tests, une bonne matrise des fonctionnalits de Caliber RM est ncessaire. Cet outil est loutil principal de gestion des exigences des agences SQLI. Il est de plus ncessaire de connatre les fonctionnalits de Caliber RM car elles correspondent des notions de son SDK. Pour la gestion de configuration, nous avons utilis SVN, sur un repository prsent sur ma machine virtuelle et accessible sur tout le rseau. La configuration logicielle pour le projet est la suivante : Systme dexploitation client : Windows 2000, XP, Vista Client et serveur Borland Caliber RM CaliberRM 2006- 9.0 SDK Borland Caliber RM : SDK Borland Caliber RM Java 1.5

3.5.2

Frameworks

Le Framework utilis pour ce projet est le SDK de Caliber RM, il contient les notions de Caliber RM, Caliber RM intgrant parfaitement les modules raliss en Java sous forme de .JAR. Le SDK de Caliber RM permet de crer, de modifier et de supprimer des informations comme des projets, des baselines, des exigences, des utilisateurs et des groupes. Ce SDK donne laccs toutes les donnes prsentes dans Caliber RM grce des programmes crits en java et tout autre langage de programmation support par .Net ou COM. De plus il existe des classes grant l'enchanement des fentres sur lesquelles nous n'avons plus qu insrer nos lments Swing. Ces classes nous simplifient le dveloppement. Il nous permet dinsrer simplement les lments graphiques ncessaires et il nous laisse grer la partie mtier. Il ny a que lordre des fentres dfinir.

08-sqli-fouquet.doc

2008

P 20/55

RAPPORT DE STAGE

Projet Borland Caliber RM plugin

3.5.3

Architecture

Partie Prsentation Cette partie est implmente en Swing. Partie service-mtier Cette partie correspond lutilisation du SDK de Caliber RM. Partie Accs aux donnes Laccs aux donnes se fait grce au SDK. Les donnes sont rcupres sur le serveur de Caliber RM.

Caliber RM

Plugin (Java)

Caliber Server

Caliber SDK

3.6 Modules raliser


Loutil contient deux parties, la partie interface et la partie mtier et il faut intgrer le plugin Caliber RM.

3.6.1

La partie interface

Il faut que les crans du plugin soient spars en deux parties, une partie navigation (boutons suivant et prcdent) et une partie de prsentation des composants graphiques SWING. Les combos box devront avoir le modle prsent sur les applications de Caliber RM. Les arbres de reprsentation des baselines

08-sqli-fouquet.doc

2008

P 21/55

RAPPORT DE STAGE

Projet Borland Caliber RM plugin

devront contenir un renderer (mise en forme du composant Swing) qui leur permet de contenir une check box.

3.6.2

La partie mtier

Il doit y avoir deux parties dans loutil dvelopper, linitialisation dune baseline et la modification dune baseline. La partie de modification de baseline tant incluse dans linitialisation.
3.6.2.1 Premier cas dutilisation : initialisation dune baseline

Pour ce cas dutilisation, il faut dans un premier temps avoir les projets et baselines cibles. Ces projets et baselines cibles sont ceux qui vont tre modifis, ceux qui sont slectionns dans Caliber RM. Il faut ensuite slectionner un projet source. Ce projet source va contenir les exigences sources. Il faut aprs pouvoir slectionner les types dexigences cibles. Ensuite on slectionne les exigences sources et enfin la baseline cible va tre affiche. On devra pouvoir slectionner et changer les versions des exigences grce une pop up apparaissant lorsque lon clique droit sur lexigence. Le moteur devra permettre de vider la baseline slectionne auparavant (si check box slectionne) et inclure dans la baseline cible toutes les exigences ayant toutes les caractristiques suivantes : Leur type est un des types dexigence cible slectionns Ce sont des exigences traces directement ou indirectement par les exigences sources. Ce sont des exigences mappes par les exigences sources.

Les exigences incluses dans la baseline cible devront tre dans leur version courante. Un bouton devra permettre de synchroniser toutes les exigences slectionnes pour quelles prennent leur plus rcente version. Si lon nest pas connect Caliber, on doit pouvoir avoir un cran permettant la connexion sur un serveur de Caliber RM, sur un port donn avec un login et un mot de passe donn. Il faut par la suite slectionner les projets et baselines cibles dans un cran suivant comportant une check box pour rinitialiser la baseline cible ou non. Pour les arbres des baselines sources et cibles, on doit pouvoir slectionner toutes les exigences filles dune exigence en double cliquant dessus. Pour la slection dexigences dans la baseline source, on doit pouvoir importer ou exporter des slections sous forme de fichier XML, ces fichiers provenant de Caliber RM. La baseline cible doit la fin tre modifie et tre enregistre telle que lutilisateur la mise en place. Pour le dernier cran, il faut que les spcifications soient conformes celles du deuxime cas dutilisation.
3.6.2.2 Deuxime cas dutilisation : modification dune baseline

Ce cas dutilisation doit rcuprer les paramtres de connexion et se placer sur le dernier cran du prcdent cas dutilisation. Il ny a pas moyen de lexcuter sans ces paramtres pour des raisons de scurit. Lutilisateur doit pouvoir slectionner les exigences souhaites et leur spcifier une version. Il faut que lutilitaire vrifie alors que les versions des exigences mappes soient correctes. Elles ne sont pas automatiquement la mme version que lexigence sur laquelle elles sont mappes. Une fois les modifications effectues, il faut les enregistrer dans la baseline.

08-sqli-fouquet.doc

2008

P 22/55

RAPPORT DE STAGE

Projet Borland Caliber RM plugin

3.6.3

Intgration du plugin Caliber RM

Il faut intgrer le plugin Caliber RM. Pour cela, il faut rcuprer les paramtres de session (baseline en cours, projet en cours, login mot de passe) pour connecter directement lutilitaire lorsquune session est dj ouverte. Il faut de plus quil y ait deux lanceurs dans Caliber RM, un pour chaque cas dutilisation.

3.7 Organisation du projet


Droulement du projet Ce projet, qui est assez petit, s'est droul en plusieurs phases. Les trois premires phases se sont droules sur trois semaines, du 3 avril au 2 mai, et les trois suivantes, sur une semaine, du 26 au 31 mai. La premire phase est une phase de monte en comptences sur le projet pour intgrer les notions relatives Caliber RM, intgrer les composants du SDK fournis ainsi que les modles des IHM du plugin qui doivent tre utilises pour le projet. Cette phase contient aussi la lecture des spcifications fonctionnelles gnrales et dtailles pour bien prendre en considration les besoins du client. La deuxime phase est une phase o jai rdig le Document de Conception Technique (DCT, fournie en annexe). Ce document sert dcrire comment on ralise l'application et quelles sont les technologies que l'on utilise. Une fois le DCT valid par le client, il ne restait plus qua dvelopper. Pour rdiger le document de conception technique, il a d'abord fallu voir quels taient les outils et APIs ma disposition. En se basant sur les outils et APIs mis disposition pour la ralisation du plugin, j'ai dtaill comment allaient tre dveloppes les crans du plugin ainsi que la partie mtier qui tourne en parallle. La troisime phase est la phase de dveloppement. Dans cette phase, je basais mes dveloppements sur les tches qui mtaient imput, puis jimputais sur les tches qui mtaient soumises. Certaines des tches taient optionnelles, je ny ai pas touch dans un premier temps. Trois semaines aprs avoir fini le dveloppement, une premire recette de la part de la SNCF a permis de remonter des anomalies. Jai donc pass deux jours supplmentaires pour toutes les corriger. Lavant dernire phase est une demande dvolutions de 10 jours hommes, sur laquelle la SNCF a demand la ralisation des modules optionnels ainsi que la modification de fonctionnalits existantes qui ne leur convenaient pas. Jai donc consomm quelques jours de dveloppement pour rpondre leur demande. Une des phases de ce projet a t la rdaction dune capitalisation (fournie en annexe) qui permet un dveloppeur davoir toutes les notions ncessaires pour raliser un plugin, connatre les astuces et contourner les problmes lis aux difficults dimplmentation. Cette phase sest droule tout au long de mon dveloppement pour ce projet. Suivi de projet Afin de mieux grer mon travail, jai utilis loutil interne IdoProject qui ma permis de connatre mes tches, dimputer le temps pass dessus et de voir le temps de charge reste faire sur chaque tche. Jeffectuais un bilan quotidien avec mon responsable pour vrifier le bon avancement des tches qui mtaient assignes. Il ma aussi aid optimiser mon code JAVA et intgrer les notions complexes du

08-sqli-fouquet.doc

2008

P 23/55

RAPPORT DE STAGE

Projet Borland Caliber RM plugin

SDK ncessaires pour la comprhension du besoin du client.

3.8 Mthodes utilises


3.8.1 La partie interface globale

Afin de respecter lenchainement des pages pour la cration du wizard , jai utilis la classe WizardFrame. Cette classe contient des mthodes denchainement dcrans et dinitialisation des composants graphiques de chaque cran en respectant au maximum le pattern MVC (Modle vue contrleur). Aprs chaque cran, les traitements sexcutent. Chacun des crans hritent de la classe WizardPanel. Cette classe permet linitialisation des composants graphiques le contenant, le redimensionnement des crans et la navigation sont grs par lintermdiaire des boutons suivant et prcdant. Pour lapplication gnrale, jai externalis les variables globales de lapplication dans une classe qui suit le pattern Singleton. Nous avons utilis la journalisation couramment utilise dans Caliber RM : LogManager provenant du package borlandutilities.

3.8.2

Lcran de connexion

Nous rcuprons une instance de session de connexion au serveur grce lidentifiant et au mot de passe de lutilisateur via la classe CaliberConnection. Une fois la session rcupre, on a accs aux donnes. Les composants Swing inclus sont des JTextField et JLabel.

3.8.3

Lcran de choix du projet et de la baseline cible.

La slection des projets et baselines cibles se fait au moyen de JComboBox, conformment au modle de JComboBox de Caliber RM. Les baselines et projets sont rcuprs ensuite et enregistrs comme des variables globales.

3.8.4

Lcran de choix du type dexigences cible

La liste des types dexigences doit tre reprsente sous forme darbre. Le model du JTree correspondant est le model de base de Caliber RM : CaliberTreeModel.

3.8.5

Lcran de choix du projet source

La slection du projet source et baseline cible se fait au moyen dune JComboBox, conformment au modle de JComboBox de Caliber RM.

3.8.6

Lcran de slection des exigences sources

La baseline doit tre affiche grce un renderer qui permet laffichage des donnes dans larbre avec une check box.

08-sqli-fouquet.doc

2008

P 24/55

RAPPORT DE STAGE

Projet Borland Caliber RM plugin

Limport et lexport des fichiers XML ont t raliss grce la classe JFileChooser, la lecture et lcriture se faisant grce JDOM.

3.8.7

Lcran de modification de la baseline cible

Le renderer est le mme que pour la slection des exigences sources. Une fonctionnalit de recherche a t ajoute. Elle fait un parcours darbre, rcupre la position des lments dans un Set. Le bouton suivant permet daccder chacun des lments recherchs. Lorsque lon clique droit sur une exigence un pop-up de type JPopupMenu doit apparatre avec toutes les versions de lexigence disponibles.

3.8.8

Le traitement mtier

Tous les traitements mtier ont t placs dans une classe pour les externaliser. Nous manipulons les instances des classes Requirement, Baseline, BaselineTree, RequirementsTree, BaselineTreeNode afin de parvenir ces traitements. Les BaselineTreeNode servent contrler la prsence dune exigence dans une baseline. Ils servent aussi cerner les exigences mappes et traces depuis une exigence.

3.9 Outil ralis


3.9.1 Lancement de lutilitaire

Pour lancer cet utilitaire, il est ncessaire davoir la barre StarTeam (Menu de connexion aux donnes du server de Caliber RM) de lance ou bien de stre connect dans CaliberRM. Si ce nest pas le cas, lapplication lance lcran de connexion o la connexion se fait par linsertion dun login et dun mot de passe. On peut passer les baselines source et cible en argument de lapplication.

3.9.2

Demande des paramtres de connexion

Lorsquil ny a pas darguments passs lapplication, lcran de connexion se lance automatiquement. Il demande lutilisateur le nom ou lIP du serveur, le numro de port, le login de lutilisateur et son mot de passe.

08-sqli-fouquet.doc

2008

P 25/55

RAPPORT DE STAGE

Projet Borland Caliber RM plugin

4 Connexion au serveur de Caliber

3.9.3

Choix du projet et de la baseline cible

Le premier cran est la fentre de slection de la baseline cible. Les projets et baselines prslectionns sont ceux passs en arguments. Pour slectionner la baseline ou le projet souhait, il suffit de cliquer sur la liste droulante puis de slectionner le nom de baseline ou de projet souhait. La checkbox, si elle est slectionne, permet dinitialiser la baseline cible avant de la modifier. Il se peut quil ny ait pas de projet ou de baseline passe en argument. Le cas chant, une baseline et un projet quelconque seront prslectionns.

5 Slection des projets et baseline cibles

08-sqli-fouquet.doc

2008

P 26/55

RAPPORT DE STAGE

Projet Borland Caliber RM plugin

3.9.4

Choix du type dexigence cible

Le deuxime cran est la fentre de slection des types dexigences cibles. On peut slectionner plusieurs types dexigences en maintenant la touche <Ctrl> enfonce. Il faut absolument slectionner au moins un type dexigences et on ne doit pas slectionner le projet pour passer lcran suivant.

6 Choix du type d'exigence cible

08-sqli-fouquet.doc

2008

P 27/55

RAPPORT DE STAGE

Projet Borland Caliber RM plugin

3.9.5

Choix du projet source

Lcran suivant est lcran de slection du projet source, le projet prslectionn est le projet cible. On peut choisir un projet parmi tous ceux prsents dans CaliberRM. Pour slectionner le projet souhait, il suffit de cliquer sur la liste droulante puis de slectionner le nom de projet.

7 Choix du projet source

3.9.6

Slection des exigences sources

Le quatrime cran est lcran de slection des exigences sources. On les slectionne dans larbre en cliquant dans la checkbox associe. On peut slectionner et dslectionner toutes les exigences filles dune exigence en double-cliquant dessus. Il y a deux boutons sur cet cran, un pour importer une slection dexigences dun fichier XML et lautre pour exporter la slection dexigences sous format XML. Ces deux boutons proposent un explorateur de fichiers pour enregistrer et importer les fichiers lendroit voulu.

8 Slection des exigences source

08-sqli-fouquet.doc

2008

P 28/55

RAPPORT DE STAGE

Projet Borland Caliber RM plugin

3.9.7

Slection des exigences cibles

Le cinquime et dernier cran contient un arbre avec toutes les exigences cibles. Ici sont slectionnes celles qui ltaient auparavant dans la baseline et celles mappes et traces par les exigences sources. Comme pour lcran prcdent, il suffit de cliquer sur les checkbox pour slectionner ou dslectionner des exigences. Le double-clic est aussi implment et permet la slection ou la dslection de toutes les exigences filles dune exigence ou dun type dexigences. Le bouton Sauver permet denregistrer la baseline avec toutes les modifications apportes.

9 Slection des exigences cible

3.9.8

Lancement de lutilitaire

Pour lancer lutilitaire de modification de baseline, il faut passer en argument lapplication -e ou edit . Pour ce mode, on arrive directement au cinquime cran, la baseline slectionne tant celle passe en paramtre.

3.9.9

Modification de la baseline

Pour ce mode, on arrive directement au dernier cran qui contient un arbre avec toutes les exigences cibles. Sont slectionnes ici celles qui ltaient auparavant dans la baseline et celles mappes et traces par les exigences sources. Comme pour lcran prcdent, il suffit de cliquer sur les checkbox pour slectionner ou dslectionner des exigences. Le double-clic est aussi implment et permet la slection ou la dslection de toutes les exigences filles dune exigence ou dun type dexigence. Il y a un bouton nomm synchronisation sur cet cran qui permet de rcuprer la plus rcente version des exigences slectionnes seulement. Il y a aussi un bouton de recherche qui permet de slectionner une exigence

08-sqli-fouquet.doc

2008

P 29/55

RAPPORT DE STAGE

Projet Borland Caliber RM plugin

dans larbre grce son nom ou une partie de son nom. Le bouton Sauver permet denregistrer la baseline avec toutes les modifications apportes.

10 Modification de la baseline

3.10 Bilan technique et personnel


Ce projet ma permis de matriser les notions relatives au contexte du projet, que ce soit le SDK ou bien loutil Caliber RM lui-mme. Jai aussi pu approfondir mes notions de Java, notamment pour les IHM, mais aussi lapplication de patterns en Java (Singleton, MVC,). Jai appris mintgrer dans le processus de ralisation dun projet. Jai ralis les deux derniers livrables du projet en me basant sur les spcifications du projet (Cf 2.3).. La fin du projet a donn lieu un entretient avec mon matre de stage pour valuer mon travail pendant cette priode. Ce bilan montre les points positifs et les points amliorer. Les notions sur lesquelles jai t notes sont : la capacit dadaptation, de management, le respect des charges, la qualit du travail (code, CMMI, ) et dautres comptences moins orientes technique (comme lengagement, la facilit tre manag, etc).

08-sqli-fouquet.doc

2008

P 30/55

RAPPORT DE STAGE

Projet TraceabilityBoard

4 PROJET TRACEABILITYBOARD 4.1 Contexte de ltude


Le projet TraceabilityBoard est un projet interne lanc pour faciliter le suivi de la traabilit des exigences dans les livrables dun projet. Ce projet a pour but doutiller les activits suivantes du processus de gestion des exigences de SQLI : Vrification de la traabilit rellement mise en uvre Analyse dimpact Il y a deux parties principales dans lorganisation du projet : La partie traitement batch qui extrait la traabilit, le rsultat tant stock en XML. La partie Interface qui permet de visualiser la traabilit constate (XSLT + JavaScript) Les lments item correspondent aux lments tracer (exigences, anomalies, etc.). Les lments tracer sont les besoins du client, ces besoins se retrouvent dans presque tous les livrables fournir au client depuis les spcifications jusquaux sources. Un livrable correspond un ensemble de fichiers dans lesquels sera faite la recherche des items Afin de tracer les lments, nous utilisons des traceurs. Un traceur permet danalyser le contenu dun fichier pour y trouver les items. Nous avons implment deux sortes de traceurs, un traceur texte qui fait un parcours simple de fichiers ainsi quun traceur Excel qui va permettre de rcuprer des informations utiles pour les items notamment dans les rfrentiels dexigences. Les items peuvent tre lis entre eux. Lorsquun item est li un autre, une modification du premier engendre une modification sur le second. On va supposer que deux items prsents dans le mme fichier source sont lis entre eux. On configure loutil pour quil trace des exigences : besoins fonctionnels dun projet. Elles sont rpertories dans un rfrentiel Excel pour chacun des projets SQLI. Cet outil reste le plus gnrique possible. Il est configur via un fichier XML et les donnes qui rsultent du traitement sont stockes sous forme de fichiers XML.

11 Fonctionnement global de l'outil

08-sqli-fouquet.doc

2008

P 31/55

RAPPORT DE STAGE

Projet TraceabilityBoard

4.2 Motivation
La revue de traabilit des exigences dans les livrables ntait pas simple raliser puisquil sagit didentifier les incohrences par rapport la matrice de traabilit dfinie dans le rfrentiel dexigences. Pour amliorer cette revue, nous regroupons les items par type et nous calculons le pourcentage dexigences dans chacun des livrables. Les dpendances implicites pour chaque item ntaient pas identifies. Ces dpendances sont ncessaires pour faciliter les analyses dimpact (2 items prsents dans un mme fichier source sont considrs comme tant dpendants). Nous analysons donc les items dans les fichiers source afin de palier ce besoin.

4.3 Problmatique
Choix de larchitecture Pour des contraintes de simplicit de mise en place, on na pas utilis ni de base de donnes ni de serveur dapplication pour le fonctionnement de la page web.

Livrables analyser

Moteur

Donnes (XML)

Prsentation (JavaScript)

Rcuprer les donnes Il faut pouvoir avoir une trace des items dans les livrables o ils sont spcifis ou implments. Pour ce faire, il faut que les mots cls soient prsents dans les spcifications et les sources. Dans les spcifications, les items sont prsents puisquils sont clairement spcifis mais dans les sources ils ne sont pas prciss.

08-sqli-fouquet.doc

2008

P 32/55

RAPPORT DE STAGE

Projet TraceabilityBoard

Il doit donc y avoir un travail lors du dveloppement pour ajouter les noms des items lorsquils sont implments. Traiter les donnes Les items, lorsquils sont rcuprs, ne contiennent pas dinformations autres que leur nom. Il est beaucoup plus facile de se reprer dans une liste dexigences lorsque lon connat leur libell. Il faut donc rcuprer les donnes prsentes dans les rfrentiels ditems et les remonter tout au long du traitement jusqu' laffichage des informations de ces items. Exporter les donnes Lexport des donnes doit pouvoir se raliser pour que laccs aux donnes depuis la couche de prsentation se fasse simplement sans se connecter une base de donnes pour ne pas utiliser de PHP ou dASP. Ceci demanderait la prsence dun serveur dapplication. Utiliser les donnes Il faut pouvoir utiliser facilement les donnes. La quantit de donnes traiter ne doit pas ralentir les performances de la partie prsentation. Il faut aussi pouvoir avoir des donnes pour raliser lhistorique de la traabilit des items.

4.4 Prsentation du contexte de travail


4.4.1 Le contexte

Ce projet a commenc quelques mois avant mon arrive. Il na pas t termin cause du dpart dun des collaborateurs sur le projet. Pour ce projet, des anomalies sont rpertories et des volutions sont raliser sur loutil qui ne rpond pas encore tous les besoins exprims.

12 Version existante de TraceabilityBoard

08-sqli-fouquet.doc

2008

P 33/55

RAPPORT DE STAGE

Projet TraceabilityBoard

4.4.2

Les collaborateurs du projet

Lors de ce projet, jai dvelopp lapplication sous la tutelle dun chef de projet. Sur le plateau, plusieurs personnes sont prsentes pour maider au cas o jai des difficults techniques.

4.5 Contexte technique


4.5.1 Architecture technique

Outils de dveloppement Pour ce projet, le dveloppement de la partie traitement sest fait sous Visual Studio 2005 avec le Framework .Net 2.0. Pour la partie interface, le dveloppement a t fait sous APTANA Studio qui est une plateforme HTML/JavaScript. Pour la partie XSLT, un diteur plus appropri pour la coloration syntaxique a t utilis : Notepad++. IIS Afin de raliser des tests sur serveur jai donc cr un serveur local sous IIS. Certaines fonctionnalits du TracabiltyBoard ne fonctionnent quen tant quapplication sur un serveur (louverture de fichiers sur le repository SVN par exemple).

4.5.2
Ext JS

Architecture applicative

EXT JS est une librairie de composants graphiques pour la construction d'applications internet riches incluant : - Une grande performance - Des composants bien conus graphiquement - Une API intuitive et facile d'utilisation, accessible depuis le site d'EXT JS. Ext JS est utilis par une grande communaut de dveloppeurs qui partagent certaines de leurs applications utilisant ce Framework. La licence lie Ext JS est spciale. Soit un dveloppeur partage une partie de ce quil dveloppe en Ext JS, soit il paye une licence pour dvelopper des applications sur ce Framework. Nous avons utilis des composants de ce Framework pour la partie WEB de lapplication.

08-sqli-fouquet.doc

2008

P 34/55

RAPPORT DE STAGE

Projet TraceabilityBoard

13 Framework Ext JS

Lapplication Lapplication est scinde en deux parties, la partie traitement et la partie web. La partie traitement

La partie traitement est base sur un fichier de configuration qui va permettre de prciser ce que lon veut tracer, dans quel livrable et par quel traceur. On dfinit les types ditems tracer par un nom et une expression rgulire. Puis on dfinit les endroits physiques (rpertoires locaux ou distants) contenant les fichiers des livrables et enfin on dfinit quels traceurs vont tre utiliss, sur quels types de fichiers et de quelle manire. Chacun de ces points est dcrit de manire plus approfondie dans le guide dinstallation-Configuration que jai modifi au fur et mesure des volutions. Ce document est fourni en annexe. Le traitement consiste en lanalyse des fichiers par les traceurs. Ces traceurs retournent une liste ditems pour chaque document analys. Ces items sont ensuite exports sous forme de fichiers XML. La partie web

La partie web se base sur des fichiers XML issus du traitement. Les donnes issues de ces fichiers XML sont transforms via XSLT pour quils soient utilisables en tant que donnes dans le code JavaScript. Cette partie est vraiment trs simple mettre en place. Il sagit dun client riche, aucun serveur dapplication nest requis pour le fonctionnement, ni aucune base de donnes.

08-sqli-fouquet.doc

2008

P 35/55

RAPPORT DE STAGE

Projet TraceabilityBoard

14 Outil fini

4.6 Modules raliser


Les volutions et corrections raliser sont rpertories dans loutil de travail Mantis. Chacune de ces volutions et anomalies correspondent une exigence.

4.6.1

Partie Traitement

La configuration de loutil Loutil doit pouvoir configurer les items, les livrables et les traceurs. On doit pouvoir identifier les items grce des expressions rgulires. Chacun des livrables, la plupart du temps, est dispos sur plusieurs rpertoires. On doit pouvoir les parcourir et savoir si on doit seulement analyser les donnes du rpertoire ou bien analyser les donnes prsentes dans les sous-rpertoires. Un traceur doit pouvoir filtrer les fichiers quil analyse et ne remonter que certains types ditems. On doit lui assigner une priorit pour optimiser les traitements et pouvoir le configurer au moyen dune chane de caractres. Un traceur doit pouvoir ne tracer que certains fichiers correspondant une expression rgulire. Le traceur texte Le premier traceur gnrique est le traceur texte. Il doit permettre de tracer des items dans nimporte quel fichier. Il doit pouvoir diter les fichiers et y reconnatre des items grce des expressions rgulires. Le traceur Excel

08-sqli-fouquet.doc

2008

P 36/55

RAPPORT DE STAGE

Projet TraceabilityBoard

Le deuxime traceur est le traceur Excel. Il doit permettre douvrir les fichiers Excel grce une connexion OLE DB et fournir les donnes complmentaires des items comme la description par exemple. Les colonnes tracer sont spcifies dans la configuration du traceur. Le moteur de traage Le moteur de traage doit sexcuter dans lordre suivant : on lance chaque traceur dans lordre des priorits croissantes. Pour chaque traceur, on parcoure les livrables et on y trace les items. Lexport des fichiers Les fichiers XML qui exportent les donnes doivent pouvoir contenir tous les documents dans lesquels on a trac des items ainsi que tous les items qui ont t tracs. Pour chaque document et item, on doit pouvoir avoir un fichier XML contenant son dtail.

15 Diagramme de classe de la partie traitement

4.6.2

Partie Interface

La prsentation de la page La page doit contenir trois parties distinctes. Une partie contenant les items, une autre tant le panier des items analyser et la dernire tant une navigation permettant dafficher la documentation de laide ainsi quune vue par type de documents. La vue par type de documents est une vue qui prsente dans la grille les documents lorsquune analyse par livrable est mene.

La grille La grille doit contenir tous les items pour chaque type ditem. Lorsque lon clique sur un item, il doit sajouter dans le panier. On doit pouvoir regrouper les donnes de la grille sur la valeur dune colonne (group by SQL) et effectuer un filtre par colonne pour limiter la recherche. Pour chaque type ditem on doit pouvoir avoir des statistiques ainsi quun historique. Pour les gros projets, il va falloir grer les performances vu quil y aura beaucoup ditems. Une pagination devrait pallier ces problmes de performances.

08-sqli-fouquet.doc

2008

P 37/55

RAPPORT DE STAGE

Projet TraceabilityBoard

Les statistiques Afin de vrifier la traabilit des items, on doit tre capable de vrifier dun premier coup dil si tous les items sont tracs dans chacun des livrables. Les statistiques offrent cette fonctionnalit, on dtient grce elles un aperu global de la prsence des items dans les livrables. Ces statistiques doivent tre calcules en fonction du filtre de recherche appliqu la grille.

Lhistorique de la traabilit Afin de vrifier lavancement dun projet et par consquent lavance du traitement des items dans les livrables, il faut intgrer un graphique permettant de voir le nombre ditems tracs pour chaque type ditem dans chacun des livrables et une date donne.

Le panier Le panier doit permettre doffrir un maximum de dtails pour lutilisateur. Il doit tre spar en trois parties bien distinctes pour un item et en une seule partie pour un document. Pour un item, on doit avoir : Une partie de dtail (nom, type, ) Une partie rpertoriant les documents o sont tracs les items Une partie contenant les items lis litem analyser.

Pour un document, on doit avoir : Une partie unique contenant les items prsents dans ce document.

On doit pouvoir ajouter au panier les documents et items lis au panier en cliquant sur des liens et raliser une analyse dimpact pour cet item. Il faudrait aussi pouvoir ouvrir les fichiers source dans une fentre pour naviguer vers litem qui y est prsent. On doit aussi pouvoir comparer deux items du panier en les ouvrant dans une autre fentre.

Louverture dun fichier source On doit pouvoir ouvrir un fichier source et y trouver les items surligns. De plus on doit facilement pouvoir naviguer vers les items. Afin de se retrouver plus facilement dans le fichier, il faudrait intgrer de la coloration syntaxique en fonction de lextension du fichier.

Lanalyse dimpact On doit pouvoir construire une analyse dimpact puisque lon connait les items lis et les documents de litem. Il serait bien de pouvoir copier une analyse dimpact pr-remplie.

08-sqli-fouquet.doc

2008

P 38/55

RAPPORT DE STAGE

Projet TraceabilityBoard

16 Diagramme de composition des composants graphiques de la partie interface

17 Diagramme de composition du contenu des onglets (panier et grille)

08-sqli-fouquet.doc

2008

P 39/55

RAPPORT DE STAGE

Projet TraceabilityBoard

4.7 Organisation du travail


Droulement des taches Mon travail sur ce projet a t organis sur onze semaines en plusieurs tapes : La phase dappropriation sur le projet La monte en comptences est une petite phase du projet mais reste cependant trs utile. Elle sest droule sur plusieurs jours (une semaine environ) et sest continue le temps de corriger quelques anomalies. Jai lu les documents de configuration, jai ensuite rcupr les documents dun projet existant pour tester lapplication. Puis jai cr un document Guide du dveloppeur pour que des personnes puissent facilement reprendre ce projet et y apporter des modifications ou effectuer une maintenance. Les corrections et volutions Les corrections et volutions pour la version 2.0 de lapplication se sont droules sur trois semaines du 5 au 23 mai. Dans ces trois semaines, sont incluses les priodes de monte en comptences et de rdaction du guide du dveloppeur. Pendant cette priode, jai pass du temps a tudier la faisabilit de certaines volutions et me renseigner sur les langages utiliss (JavaScript, C# et XSLT). Pour le JavaScript, jai rcupr un support de formation et lai tudi afin de comprendre les notions du langage. Un support de formation Visual Studio et C# ma galement t fourni. Je me suis donc auto-form sur ces technologies. Pour la version 2.1, les corrections et volutions ont dur trois semaines. Dans cette priode, jai aussi conu une bibliographie et une capitalisation sur le framework Ext JS. Jai pris du temps pour optimiser le temps de chargement de la page WEB, les indications qui mavaient t fournies namliorant rien. Jai trouv la fonctionnalit aprs une trs longue recherche grce la prsence de nombreux exemples sur internet. Une fois le dveloppement termin, jai install le TraceabilityBoard sur une TMA (Tierce Maintenance Applicative) prsente sur le plateau pour que les utilisateurs puissent la tester et remonter des anomalies sil y en a. Jai aussi ralis le packaging de loutil et lai mis disposition sur le wiki des outils de lentreprise. Jai travaill 5 semaines pour la version 2.2 du 30 juin au 8 aot. Loutil est devenu une pratique CMMI du groupe SQLI la fin du mois de juin. Il ma fallu rorganiser la gestion de configuration du projet en installant les sources sur un nouveau dpt SVN. Jai ensuite corrig les anomalies existantes et mis en place les volutions. Puis jai dploy loutil sur le projet SATORI et refait le packaging pour la dernire version. Organisation du suivi des tches Chaque tche raliser tait demande par le chef de projet avec qui je dbattais de la faisabilit des demandes. Nous avions une runion quotidienne qui permettait de vrifier que les ralisations correspondaient au besoin et que le code restait maintenable et respectant larchitecture applicative. Tests fonctionnels Jai rdig des scnarios qui mettent en place plusieurs cas de test fonctionnels afin de vrifier la cohrence entre les fonctionnalits et le besoin de lapplication.. Ces tests ont ensuite t repris pas le chef de projet pendant la recette interne. Dploiement Lors du dploiement de loutil sur des projets pilotes, certaines anomalies ont t remontes ainsi quun certain nombre dvolutions. Packaging

08-sqli-fouquet.doc

2008

P 40/55

RAPPORT DE STAGE

Projet TraceabilityBoard

Lorsquun release de loutil est prt, je le package en intgrant les fichiers de documentation, et des fichiers de configuration type pour que le dploiement de loutil soit le plus simple possible.

4.8 Mthodes utilises


Rdaction du rfrentiel dexigences Loutil dvelopp tait bas sur des demandes dvolutions et de corrections danomalies et ne contenait pas de spcifications. Jai donc rpertori toutes les exigences de lapplication et les ai ajoutes dans un rfrentiel dexigences. Ce rfrentiel est une pratique SQLI-CMMI dans laquelle je rpertorie les besoins, spcifie comment faire pour les rsoudre et prcise o ils devront tre tracs. Ce document sert aussi vrifier que toutes les exigences ont bien t traites. Ce document est fourni en annexe. La configuration Le fichier de configuration est un fichier XML. Il doit permettre la configuration de loutil. La prise en compte de ce fichier se fait grce la srialisation XML du framework .NET. Le moteur de traces. Jai analys le problme de traitement ditems par priorit de traceurs et il sest avr quil tait plus judicieux de faire le traitement pour chaque traceur puis pour chaque livrable plutt que linverse. Le traceur Excel Pour diter les fichiers Excel, il faut se servir dune connexion OLE DB pour requter les donnes prsentes dans le tableur. On doit pouvoir scruter autant de colonnes que lon souhaite. La grille La grille provient du composant Ext.GridPanel et ses donnes proviennent dune transformation XSLT. A cette grille, jai rajout une pagination pour amliorer les performances de la partie web. La pagination provient du composant Ext.PagingToolbar et du composant contenant les donnes : Ext.ux.data.PagingMemoryProxy. Jai aussi ajout un regroupement pour les colonnes. Ce regroupement est ralis par le composant Ext.grid.GroupingView. De plus, jai intgr une fonctionnalit de recherche qui permet de filtrer les items suivant la valeur quils ont sur chaque colonne. Cette fonctionnalit provient du composant Ext.app.SearchField quil a fallu configurer. Les statistiques Les statistiques doivent permettre de se rendre compte rapidement de la traabilit. Lorsquun filtre est appliqu, on requte les donnes de la grille pour connatre le nombre total dlments ainsi que le nombre ditems qui sont prsents pour chaque livrable. Pour raliser le rendu, je me suis bas sur des feuilles de styles. Le contenu (HTML) est directement inject dans les Panels.

08-sqli-fouquet.doc

2008

P 41/55

RAPPORT DE STAGE

Projet TraceabilityBoard

18 Prsentation de styles disponibles

Le panier Pour le panier, javais le choix dafficher les donnes sous forme de tableaux HTML ou dans des composants Ext JS. Aprs avoir t conseills par un ergonome, jai mis en place les composants Ext JS. Les donnes proviennent des transformations XSLT qui retournent des chaines de caractres sous forme de JSON et dArrays, le JSON tant utilis pour les TreePanel. Lhistorique Afin de raliser le graphique de statistiques, il a fallu utiliser une librairie JavaScript grant les dessins de graphique. Jai choisi WebFx Chart qui correspond nos besoins par son design et sa facilit de mise en place. Les valeurs utilises pour afficher le graphique, sont contenues dans un fichier XML qui est mis jour aprs chaque traitement.

19 Prsentation de lutilisation de WebFx Chart

08-sqli-fouquet.doc

2008

P 42/55

RAPPORT DE STAGE

Projet TraceabilityBoard

La coloration syntaxique Pour la ralisation de la colorisation syntaxique, Jai eu trouver des librairies JavaScript qui sont simples mettre en place dans une page web. La difficult pour cette fonctionnalit est lie louverture du fichier sur un serveur distant. Il faut pour cela utiliser lXmlHttpRequest qui permet louverture des fichiers de faon asynchrone. De plus linsertion de liens permettant de naviguer dans le fichier na pas t vidente : il a fallu ajouter des balises de liens dans le contenu HTML.

Exemple d'application de SHJS sur du code C++

Lanalyse dimpact Pour lanalyse dimpact, il faut raliser un feuillet XSLT. Pour un item, les donnes sont prsentes dans un fichier et on na plus qu mettre en forme les donnes pour quelles saffichent comme souhaites.

Rdaction du guide du dveloppeur Afin de permettre dautres dveloppeurs de reprendre ce projet, jai dcrit un protocole dans un fichier nomm Guide du dveloppeur . Ce document renseigne sur les outils de dveloppement utiliser et sur linitialisation du projet, notamment linitialisation du fichier de configuration.

Rdaction du fichier de configuration et dinstallation de loutil Aprs chaque modification entrainant des changements dans le fichier de configuration, jai modifi la documentation en y prcisant quels sont les lments ajouts (items, livrables, traceurs, ), comment les configurer et quoi ils servent.

Rdaction dune bibliographie sur EXTJS Afin de capitaliser et de partager mon exprience sur lutilisation de framework AJAX EXT JS, jai cr une bibliographie sur SQLIpdia, prsentant le framework ainsi que les cibles pour lesquelles il est adapt. De plus, jai rajout une matrice SWOT sur ce framework (Strength Weekness Opportunities Threats). Sur cette bibliographie jai rajout une capitalisation sur Ext JS qui dcrit certains problmes rcurrents dExt JS ainsi que les points forts de ce framework.

Tests

08-sqli-fouquet.doc

2008

P 43/55

RAPPORT DE STAGE

Projet TraceabilityBoard

Jai ralis les tests au cours du dveloppement sous loutil dIdoProject TCM : Test Case Manager. Jy ai dfini des scnarios de tests qui correspondent des cas dutilisation UML. Jai dfini pour chaque fonctionnalit un scnario. Pour chacun des scnarios, jai dfini plusieurs cas de test. Un cas de test est dfini par un pr-requis, une action effectuer et un rsultat attendu. Le pr-requis correspond un tat de lapplication dans lequel doit se drouler le cas test. Laction effectuer est le cas de test et le rsultat attendu est ce que doit raliser lapplication.

4.9 Outil ralis


Loutil dvelopp contient deux parties, la partie traitement et la partie interface.

4.9.1
4.9.1.1

La partie traitement
Le systme de traceurs

Configuration Tout dabord, il faut configurer le fichier App.config qui va permettre de dfinir o doivent tre exports les fichiers issus du traitement. Loutil doit se configurer via un fichier de configuration qui va dterminer ce qui est tracer, quel endroit et avec quel traceur.

20 Fichier de configuration de la partie traitement

08-sqli-fouquet.doc

2008

P 44/55

RAPPORT DE STAGE

Projet TraceabilityBoard

Fonctionnement Cf. Diagramme de classes du fonctionnement de la partie traitement de TraceabilityBoard.


4.9.1.2 Les traceurs gnriques et spcifiques

Les traceurs gnriques Les traceurs gnriques sont des traceurs qui peuvent tre utiliss sur plusieurs livrables de plusieurs projets diffrents. Il y a deux traceurs gnriques recenss pour le moment : un traceur gnrique texte et un traceur gnrique Excel. Les traceurs spcifiques Les traceurs spcifiques sont des traceurs propres un projet qui ne peuvent pas servir dautres projets car ils contiennent des paramtres spcifiques. Par exemple, jai cr un web service pour loutil de Gestion Ogex, et un traceur pour ce web service en particulier. Le proxy ne peut pas tre gnralis, la web-rfrence au projet ne peut pas non plus tre externalise.
4.9.1.3 Lexport des donnes

Les donnes sont exportes sous forme de fichiers XML dans un dossier bien particulier pour que les donnes soient utilisables VIA XLST et JavaScript.

21 Organisation des fichiers XML contenant la traabilit

4.9.2

La partie interface

La partie interface doit faire ressortir les indicateurs qui vont permettre de montrer la traabilit de litem ainsi que dautres fonctionnalits trs utiles pour grer les items.

08-sqli-fouquet.doc

2008

P 45/55

RAPPORT DE STAGE

Projet TraceabilityBoard

4.9.2.1

Vue gnrale de loutil

22 Vue gnrale de l'outil 4.9.2.2 La navigation

Figure 23 Navigation

08-sqli-fouquet.doc

2008

P 46/55

RAPPORT DE STAGE

Projet TraceabilityBoard

4.9.2.3

La grille de documents ou ditems

Figure 24 Grille

La grille a t optimise et se charge rapidement grce la pagination des items ou documents (50 items ou documents par page). On peut trier les lments par colonne dans lordre alphabtique ou non et lon peut appliquer un regroupement (quivalent au group by SQL) sur les lments des colonnes. Pour ajouter un item au panier, il suffit de cliquer sur la ligne de la grille, lanalyse de litem est plus facile dans le panier.
4.9.2.4 Les statistiques

Figure 25 Statistiques

Les statistiques reprsentent le pourcentage ditems tracs dans chaque livrable. Ces informations sont

08-sqli-fouquet.doc

2008

P 47/55

RAPPORT DE STAGE

Projet TraceabilityBoard

rcupres grce une transformation XSLT qui va rcuprer les informations dans un fichier XML.

4.9.2.5

Lhistorique

Figure 26 Historique

Lhistorique reprsente lavancement par jour du nombre des items dans les livrables
4.9.2.6 Le panier

Figure 27 Panier

Le panier contient trois zones, la plus gauche est une zone qui contient le dtail de litem. Cette zone est une grille qui contient la description de litem ainsi que les proprits qui ont t traces par le traceur

08-sqli-fouquet.doc

2008

P 48/55

RAPPORT DE STAGE

Projet TraceabilityBoard

Excel gnrique. La zone centrale est une zone contenant tous les documents dans lesquels est trac litem et la zone de droite contient tous les items lis. Les zones des items lis et des documents sont reprsentes sous forme darbre dpliable.

4.9.2.7

Louverture des fichiers sources

Figure 28 Ouverture des fichiers sources

Lorsque lon dite un fichier source, nous avons la coloration syntaxique grce au Framework SH JS qui, suivant le type de fichier, colorise les mots cls et rend la lecture du fichier plus facile.

08-sqli-fouquet.doc

2008

P 49/55

RAPPORT DE STAGE

Projet TraceabilityBoard

4.9.2.8

Lanalyse dimpact

Figure 29 Analyse d'impact

Lanalyse dimpact permet de lister les items et les documents impacts. Elle est pr-remplie, le chef de projet na plus qua la complter pour ensuite la coller dans loutil de demande dvolution.

4.10 Bilan technique et personnel


Ce projet ma permis dapprendre et de maitriser des langages que je ne connaissais pas et de me familiariser avec des plateformes de dveloppement non utilises jusqu prsent. Jai aussi appris transmettre des comptences et du savoir-faire par lintermdiaire de bibliographies et de capitalisations. Jai appris utiliser de nouvelles technologies de manire totalement autonome. Jai galement russi madapter trs rapidement aux changements dexigences et rpondre de manire continue de nouvelles demandes dvolutions. A la fin de ce projet, jai eu un entretient de fin de mission pendant lequel nous avons discut, mon responsable et moi-mme, des enseignements tirs de ce projet et des satisfactions mutuelles. Toutes les apprciations de la part du chef de projets taient trs positives, ces notions portent sur la qualit de production, le travail en quipe, ladaptabilit, limplication, la facilit manager et lintgration la vie de lquipe. Ce projet tait trs enrichissant tant du point de vue technique que du point de vue humain. Jaurais tout de mme aim aborder plus de phases projet, tel quun projet type SQLI puisse offrir.

08-sqli-fouquet.doc

2008

P 50/55

RAPPORT DE STAGE

Rpartition du temps

5 REPARTITION DU TEMPS
Mon stage sest droul comme indiqu dans le diagramme de Gantt suivant : Projet Tache Mise en place du poste Auto-formation C# Auto-formation VisualStudio Projet Baselines CaliberRM Formation pratiques SQLI CMMI Projet TraceabilityBoard Rdaction rapport de stage Formation JSP STRUTS La formation JSP STRUTS a t ralise pour que je maitrise les bases de ces technologies puisque je serai amen aller en rgie ds mon embauche chez un client chez lequel je serai amen utiliser ces technologies. Avril Mai Juin Juillet Aout

08-sqli-fouquet.doc

2008

P 51/55

RAPPORT DE STAGE

Bilan gnral

6 BILAN GENERAL

Grce au travail effectu au sein de SQLI, jai montr que je pouvais madapter de nouveaux langages, quils soient propritaires (Ext JS) ou plus communs (C#, JavaScript, XSLT).Jai galement fait preuve dune bonne adaptation au sein des quipes de dveloppement et ainsi montrer ma capacit travailler en groupe, sans malgr tout ngliger lautonomie dont jai fait preuve lors des diffrentes phases des projets que jai eu raliser. Jai enfin t lcoute des diffrentes personnes prsentes sur le projet tout en tant force de proposition afin damliorer la qualit du projet. Grce ces projets tous deux bass sur la gestion dexigences, je me suis familiaris avec ces notions relatives aux besoins exprims par un client, notion primordiale la bonne russite dun projet. Jai ainsi compris comment taient grs ces besoins au sein de la socit SQLI. Jai galement dcouvert les pratiques CMMI de la socit grce une formation. Celle-ci ma permis de comprendre comment sont organises les tapes dun projet respectant des normes qualit. Jai ainsi pu voir que cette gestion constante de la qualit est assure par la certification CMMI et les pratiques associes. Loutil que jai ralis de traabilit des exigences sinscrit donc parfaitement dans la gestion de la qualit des besoins dun client. Ainsi cet outil est devenu une pratique CMMI de SQLI, ce qui est une grande satisfaction de voir le travail que jai ralis, prendre cette importance au sein de la socit. De plus, jai eu de nombreuses remarques positives sur lutilisation de loutil et de son ergonomie attractive. Ainsi ce stage ma normment apport, autant sur le plan technique et fonctionnel, que sur le plan relationnel et personnel. En effet, la spcificit de SQLI concernant les pratiques CMMI donne une dimension diffrente de la gestion dun projet au sein de cette entreprise. Enfin, jai dcouvert la vie dentreprise, le travail dquipe et la bonne ambiance qui rgne sur le plateau de dveloppement.

08-sqli-fouquet.doc

2008

P 52/55

RAPPORT DE STAGE

Glossaire

GLOSSAIRE
Liste des notions associes au rapport de stage :

Notions Sigle, terme, abrviation Dsignation Exigence Caliber RM Baseline Traabilit ditems Analyse dimpact Besoin fonctionnel ou technique satisfaire Logiciel de gestion des exigences Vue fige (mais modifiable) sur un (des) rfrentiel(s) dexigences Retrouver des items dans des documents et les analyser Etude visant quantifier les impacts sur un item suite une modification de celuici.

08-sqli-fouquet.doc

2008

P 53/55

RAPPORT DE STAGE

Bibliographie-Webographie

BIBLIOGRAPHIE-WEBOGRAPHIE
Liste des ouvrages et sites utiles au stage:

Ouvrages et sites : Titre http://support.borland.com/community/ http://extjs.com/ http://msdn.microsoft.com/fr-fr/default.aspx But Approche du SDK de Caliber RM API des composants Ext JS Outils pour le dveloppement en C#

08-sqli-fouquet.doc

2008

P 54/55

RAPPORT DE STAGE

Annexes

ANNEXES
Liste des documents associs au rapport de stage :

Documents de rfrence Intitul DCT du projet sur Caliber RM Capitalisation de projets plugin Caliber RM Guide du dveloppeur TraceabilityBoard Manuel installation-Configuration TraceabilityBoard Capitalisation ExtJS Rfrentiel dexigences de TraceabilityBoard. Version 1.0 1.1 1.0 1.4 1.0 1.0

08-sqli-fouquet.doc

2008

P 55/55

Vous aimerez peut-être aussi