conception d’un outil de recherche rapide et...
TRANSCRIPT
EPSI Montpellier 437 rue de Apothicaires 34090 Montpellier
AREVA T&D Avenue des Figuières
34975 Montpellier
Conception d’un outil de recherche rapide et avancée
pour l’application PACIS – SCE2
Maitre de stage
Luc Grandgirard
Jury
Madame Kroemer
Monsieur Jeanjean
Promotion
CSII 2ère année
Année 2007 - 2008
Rapport de stage
Guillaume CERUTTI
Outil de recherche simple et avancée Rapport de stage
Guillaume CERUTTI
Remerciement
Je tiens à remercier Monsieur Jean-Marie BOISSET, directeur de la R&D de m’avoir permis
d’effectuer ce stage.
Je remercie tout particulièrement Monsieur Luc GRANDGIRARD mon tuteur pour sa
gentillesse, ses nombreux conseils très utiles, sa pédagogie et surtout sa disponibilité. Merci
à Gregory ESTIMBRE qui m’a guidé tout au long du stage.
Je remercie toute l’équipe du SCE, Camille BLOCH, Christophe THIEBAULT et Francis WERVEE
et à Anthony DESBOIS pour leur accueil et leur joie de vivre qui ensoleille tout le
département R&D.
Je porte une dédicace particulière à Magali PINENQ pour son accueil chaleureux, sa bonne
humeur, sa gentillesse.
Je remercie Madame Sylvie A. pour son aide dans toutes les démarches administratives.
Outil de recherche simple et avancée Rapport de stage
Guillaume CERUTTI
I. Introduction ..................................................................................................................... 1
II. Présentation de l’entreprise ............................................................................................ 2
A. Historique ........................................................................................................................ 2
B. Le groupe AREVA ............................................................................................................. 2
C. Son activité ...................................................................................................................... 3
D. L’environnement économique ........................................................................................ 3
E. Le pôle Transmission et Distribution ............................................................................... 4
F. Le système PACiS ............................................................................................................. 6
III. La mission ...................................................................................................................... 11
A. Le SCE ............................................................................................................................. 11
B. L’état des lieux : l’outil actuel de recherche (All Search) .............................................. 12
C. Problématique ............................................................................................................... 13
D. Capture des besoins utilisateurs ................................................................................... 14
E. Les enjeux ...................................................................................................................... 15
IV. La méthode de développement de l’équipe SCE .......................................................... 16
A. Les méthodes traditionnelles ........................................................................................ 16
B. Les méthodes Agile ........................................................................................................ 17
C. Définition des tâches ..................................................................................................... 20
D. Le sprint ......................................................................................................................... 21
E. Mêlée quotidienne ........................................................................................................ 22
F. Suivi de projet ................................................................................................................ 22
G. Revue de sprint .............................................................................................................. 23
H. Tests automatiques ....................................................................................................... 23
I. Binôme ........................................................................................................................... 24
V. Analyse ........................................................................................................................... 24
A. Interview des utilisateurs .............................................................................................. 24
B. Test de performances .................................................................................................... 26
VI. Résultats ........................................................................................................................ 28
A. Recherche simple .......................................................................................................... 28
B. Recherche avancée ........................................................................................................ 30
C. Agenda ........................................................................................................................... 33
D. Intégration du module de recherche ............................................................................ 34
VII. Discussion ...................................................................................................................... 34
VIII. Conclusion ..................................................................................................................... 36
IX. Annexes ......................................................................................................................... 37
A. Références bibliographiques ......................................................................................... 37
B. Liste des figures ............................................................................................................. 38
C. Table des matières......................................................................................................... 39
D. Algorithme de parcours d’un arbre à partir d’une feuille ............................................. 41
E. Indexation ...................................................................................................................... 43
Page 1 sur 44
Outil de recherche simple et avancée Rapport de stage
Guillaume CERUTTI
I. Introduction
Après avoir passé plusieurs années dans une start-up, j’avais le désir de découvrir le travail
dans une grande entreprise. Et quand au cours de la rencontre étudiants entreprise
organisée à l’EPSI, AREVA m’a proposé un stage, j’ai été tout de suite séduit par le contenu
du projet proposé.
De plus, ce projet impliquait l’utilisation de la méthode Agile, méthode que je souhaitais
mieux connaitre. En effet cette méthode venue des Etats Unis est très prometteuse et de
plus en plus utilisée en France.
Le sujet de stage était le suivant, « Refonte de l’outil actuel de recherche de l’application
SCE ». Ce projet m’a amené beaucoup plus loin puisque j’ai en réalité développé deux outils
de recherche, un outil « simple » et un outil « avancé ».
Le Groupe AREVA est un des leaders mondiaux dans le domaine de l’énergie. Son domaine
d’activité va de l’extraction du minerai jusqu’à l’acheminement de l’énergie électrique.
Ce stage m’a été proposé par une équipe de R&D du site de Lattes. Ce dernier fait partie du
pôle Transmission et Distribution, pôle qui a pour mission d’assurer la transmission et la
distribution de l’électricité depuis les centrales jusqu’aux différents points de consommation.
Le site de Lattes travaille principalement sur les postes et réseaux électriques, de la
moyenne à la très haute tension. Ses trois activités fondamentales sont (i) la protection,
c’est-à-dire assurer la sécurité des personnes et des équipements électrotechniques dans les
sous-stations (ii) la supervision d’un système (contrôle et commande) et (iii) la surveillance
en permanence de l’état des installations. C’est dans ce dernier domaine que s’inscrit le
stage.
Je présenterai en introduction un bref historique de la société et du groupe ainsi que son
activité. Je décrirai ensuite le département « Transmission et Distribution » situé à Lattes.
J’exposerai alors la mission qui m’a été confiée ainsi que les enjeux, puis les méthodes de
développement de l’équipe en mettant l’accent sur l’utilisation de la méthode Agile. Je ferai
alors une analyse exhaustive de la situation de départ avant de décrire les résultats obtenus.
Une discussion et une conclusion termineront cet exposé.
Page 2 sur 44
Outil de recherche simple et avancée Rapport de stage
Guillaume CERUTTI
II. Présentation de l’entreprise
A. Historique
Le groupe Areva a été crée le 3 septembre 2001, par la fusion de :
CEA (Commissariat à l'énergie atomique) Industrie : organisme public de recherche
scientifique français dans les domaines de l’énergie, de la défense, des technologies
de l'information et de la santé.
Framatome : entreprise de fourniture pour l'industrie nucléaire. Aujourd’hui
devenue AREVA NP (Advanced Nuclear Power, leader mondial dans la conception et
la construction de centrales nucléaires, la fourniture de combustible et les services de
maintenance et de modernisation).
Cogema : compagnie générale des matières nucléaires, aujourd’hui Areva NC
(Nuclear Cycle).
Plus récemment AREVA a signé en novembre 2007 le plus grand contrat de l’histoire
nucléaire civile avec la chine, d’une valeur de 8 milliards d’euro. La chine sera ainsi le
troisième pays après la France et la Finlande à posséder un réacteur nucléaire de troisième
génération.
B. Le groupe AREVA
AREVA est une société anonyme à conseil de surveillance et directoire dont les principaux
actionnaires sont CEA Industrie à 78,9%, l’état français à 5,2% et CDC (casse des dépôts et
consignations) à 3,6%.
Elle exerce aujourd’hui ses activités sur 56 sites industriels principaux :
40 en Europe, dont 28 en France
7 en Amérique
5 en Asie
4 en Afrique et au moyen orient
Page 3 sur 44
Outil de recherche simple et avancée Rapport de stage
Guillaume CERUTTI
C. Son activité
Le groupe AREVA propose des solutions technologiques pour produire l’énergie
nucléaire et acheminer l’électricité en toute fiabilité. De la collecte du minerai jusqu’à la
livraison finale aux particuliers et industriels, AREVA couvre toutes les étapes de la
production d’énergie :
D. L’environnement économique
AREVA est n°1 mondial sur l’ensemble des métiers de l'énergie nucléaire, leader mondial en
équipement pour la transmission et la distribution d'électricité, et n°3 mondial de la
connectique.
Son chiffre d’affaires 2006 est de 11,1 milliards d’euro dont 57%
provient du marché européen, pour un résultat opérationnel de 613
millions d’euro. Plus de 70 000 personnes travaillent ensemble pour
contribuer au succès du groupe.
Adoptant le pacte mondial de l’ONU sur le développement durable, le groupe a entamé une
démarche de progrès continu visant à intégrer ce dernier dans la gestion opérationnelle de
l’entreprise. 73% des sites nucléaires ont ainsi été certifiés ISO 14001 en 2004.
> Pôle amont
> Pôle réacteurs
et services
> Pôle aval
> Pôle transmission
& distribution
Chimie Fabrication du combustible
Réacteur
Services
Recyclage Fabrication du combustible MOX
Mines
Transmission
Distribution
Traitement du combustible usé
Enrichissement
Figure 1: les activités du groupe Areva
Page 4 sur 44
Outil de recherche simple et avancée Rapport de stage
Guillaume CERUTTI
E. Le pôle Transmission et Distribution
Comme son nom l’indique, ce pôle a pour but d’assurer la transmission et la distribution
(T&D) de l’électricité depuis les centrales jusqu’aux différents points de consommation. A
lui-seul, ce pôle représente 29% du chiffre d’affaire de l’activité, soit plus de 3 milliards
d’euro :
Figure 2 : Répartition du chiffre d'affaire sur les différents pôles du groupe AREVA
Avec 21 800 salariés, le pôle T&D est présent dans plus de 75 pays dans le monde, et
propose une gamme de produits, systèmes et services de transmission et distribution
d’électricité. A noter que ce pôle appartenait anciennement à ALSTOM, ce qui explique
pourquoi on trouve encore des matériels vendus sous cette marque dans les produits AREVA.
1. Le site de Lattes
AREVA T&D Lattes fournit des solutions et des services pour les marchés de la production, du
transport, de la distribution, de l’électricité et
pour les utilisateurs finaux (industrie, tertiaire,
transport).
Sur ses 23 000 m² de superficie (dont 9000 m²
sont construits), le site possède un effectif de
340 personnes et réalise un chiffre d’affaires
annuel de plus de 60 millions d’euro.
Pôle Amont23%
Pôle Réacteurs & Services
19%
Pôle Aval17%
Pôle Transmission & Distribution
29%
Pôle Connectique12%
Figure 3 - Accueil Areva à Lattes
Page 5 sur 44
Outil de recherche simple et avancée Rapport de stage
Guillaume CERUTTI
Le site de Lattes travaille principalement sur les postes et réseaux électriques, de la
moyenne à la très haute tension. Les trois activités fondamentales sont :
Protection : assurer la sécurité des personnes et des équipements
électrotechniques ;
Contrôle : permettre la supervision d’un système (contrôle et commande) ;
Mesure : surveiller en permanence l’état des installations.
2. Les clients
Les produits T&D s’adressent à quatre types de clients :
Les distributeurs d’énergie publics et privés dans le monde entier (très haute
tension, haute tension et moyenne tension) ;
Le domaine du transport (ferroviaire, aérien, maritime, etc.) ;
L’industrie (pétrochimie, sidérurgie, cimenterie, verrerie, automobile, etc.) ;
Les intégrateurs de solutions et de services (AREVA et extérieurs).
3. Les lignes de produits
La ligne « Automation Systèmes » propose la conception et la réalisation de projets pour la
zone commerciale WEA (Europe de l’ouest et Afrique). Trois solutions existent en fonction
des besoins des projets : PACiS, ELECTRE (EDF/RTE), PCCN (EDF distribution). Lattes est ainsi
le centre d’excellence mondial des systèmes de contrôle-commande de postes électriques.
La ligne « Automation Produits » assure la conception des équipements de protection et
contrôle des systèmes électriques. Elle a déjà vendu plus de 140 000 produits dans le monde.
Enfin, la ligne « Automation Support » aide les clients à obtenir le meilleur de leurs
équipements tout au long de leur cycle de vie. Elle assure ainsi l’assistance pour les
produits/systèmes/logiciels de la gamme, ainsi que les opérations de maintenance et de
formation.
Page 6 sur 44
Outil de recherche simple et avancée Rapport de stage
Guillaume CERUTTI
F. Le système PACiS
PACiS est un système (ensemble d’équipements qui interagissent dans une logique
commune) d’équipements électroniques et informatiques qui permet d’assurer la protection
et le contrôle des matériels électrotechniques d’une sous-station électrique. La notion de
système inclut les problématiques de communication et de configuration.
1. Qu’est ce qu’une sous-station électrique
Une sous-station est implantée sur un site. Ce site
suit un découpage en niveaux de voltage qui
correspondent comme leur nom l’indique à des
sous-ensembles d’équipements électrotechniques
fonctionnant sous un voltage particulier, les
modules.
On rassemble des sous-ensembles de modules en baies ou tranches. Par exemple, deux
baies identiques peuvent assurer une redondance.
2. Equipements de protection et contrôle
Pour assurer la sécurité de l’installation et la continuité de service, des équipements sont
connectés sur les composants électrotechniques. Ils effectuent des mesures permanentes et
permettent le contrôle de ces composants.
Ces équipements doivent fonctionner ensemble pour assurer un comportement cohérent
sur la globalité de la sous-station. C’est l’objet du système PACiS.
3. Les trois fonctions d’un système
La supervision, assurée la plupart du temps par des PC industriels, comprend des interfaces
graphiques, des systèmes d’imprimantes des flux d’événements, des alarmes (sonores et
visuelles). Ces équipements permettent de surveiller l’état de la station en permanence et
d’être averti de tout écart du fonctionnement normal.
Le contrôle consiste à déclencher des actions sur les matériels électrotechniques (par
exemple ouvrir un disjoncteur), soit de façon automatique, soit manuellement. Des
calculateurs de plusieurs sortes assurent cette fonction en intégrant des automatismes
programmables, et en étant connectés par réseaux aux interfaces de supervision.
Page 7 sur 44
Outil de recherche simple et avancée Rapport de stage
Guillaume CERUTTI
La maintenance inclut la mise à jour des équipements, de leur configuration, et toutes les
opérations de récupération et d’actualisation de données du système.
C’est dans ce dernier cadre que j’ai effectué mon stage.
4. Architecture globale du système PACiS
Le schéma ci-dessous montre un exemple d’architecture globale du système PACiS. Bien
entendu, chaque projet client possède sa propre architecture, qui peut inclure en plus des
redondances, etc.
Figure 4 : Exemple d'architecture globale du système PACiS
Généralement, un IED (Intelligent Electronic Device) est relié à un équipement
électrotechnique. Il effectue des mesures et permet aussi de contrôler cet équipement (par
exemple ouvrir un disjoncteur), tout en intégrant des automatismes de protection de
l’équipement.
Bus système
(Ethernet)
Passerelle
Bus local
(ModBus,...)
SCADA
Bus de télé-contrôle
Interface
opérateur
(OI)
Calculateur
IED
IED
Un équipement
électrotechnique…
IED (Intelligent
Electronic
Device)
Un équipement
électrotechnique…
Etc.
Page 8 sur 44
Outil de recherche simple et avancée Rapport de stage
Guillaume CERUTTI
Un calculateur est souvent utilisé pour fédérer plusieurs IED. Via un bus local, il réalise des
acquisitions de mesures et peut déclencher des commandes. Un calculateur intègre des
automatismes programmables, destinés à gérer une logique de protection de plus haut
niveau.
L’interface opérateur est un PC industriel équipé d’un logiciel de supervision du système.
L’interface graphique de ce logiciel affiche des données temps réel et permet de déclencher
manuellement des commandes sur les différents équipements électrotechniques.
Enfin, une passerelle permet la communication avec un SCADA (Supervisory Control And
Data Acquisition). Un SCADA est un système de plus haut niveau qui permet la supervision
de plusieurs sous-stations ; il est donc capable de récupérer des mesures et de déclencher
des contrôles, le plus souvent à distance.
5. SCE : System Configuration Editor
Le SCE est un outil déconnecté du système qui permet de décrire tous les composants
électriques (transformateur, alarme, baie, …) qui se
trouvent sur un site. Il génère un jeu de données qui sera
ensuite téléchargé sur les différents équipements du
système par un outil dédié à cela.
Le SCE est un outil entièrement intégré, contrairement aux
outils des autres systèmes du marché : tous les aspects du
système peuvent être configurés depuis le SCE. Cela inclus
les adressages réseau, les automatismes calculateurs,
l’interface opérateur, la passerelle, les paramètres IED, etc.
L’aspect intégré de l’outil engendre donc un grand
nombre de fonctionnalités, et par contre il nécessite la gestion et la saisie d’une grande
quantité de données. Ce dernier point constitue un problème majeur de ce système, la
manipulation de ces données étant très fastidieuse. Le but de mon stage était donc
d’améliorer très significativement cet aspect et de rendre l’outil plus souple et plus rapide.
Page 9 sur 44
Outil de recherche simple et avancée Rapport de stage
Guillaume CERUTTI
6. L’équipe de développement SCE
L’équipe est composée de 5 ingénieurs à temps pleins et de deux stagiaires :
Figure 5 : Organisation de l'équipe SCE
L’équipe du SCE travaille dans un environnement appelé « open space » qui facilite la
communication entre les membres de l’équipe. Comme nous allons le voir, la
communication est un facteur important de réussite d’un projet quand celui-ci est géré par
les méthodes Agile que je présenterai plus bas.
Luc Grandgirard (chef de projet)
Camille Bloch (développeur)
Grégory Estimbre (développeur)
Romain Trébuchon (développeur)
stagiaire
Guillaume Cérutti (développeur)
stagiaire
Christophe Thiebaut (développeur)
Francis Verwee (développeur)
Figure 6 : L’open space du SCE
Page 10 sur 44
Outil de recherche simple et avancée Rapport de stage
Guillaume CERUTTI
7. Les outils de développement
La SCE est développé avec le langage JAVA. C’est un langage mis au point par
James Gosling et Patrick Naughton, employés de SUN Microsystems.
Le langage Java est aujourd’hui reconnu de tous surtout pour son aspect
multiplateforme. C'est-à-dire que le logiciel est indépendant du système
d’exploitation. Un même programme peut tourner sur Windows, Linux, OS Mac, Solaris…
Eclipse est un environnement de développement proposé
gratuitement par IBM. Il est principalement utilisé pour la
programmation de logiciel en Java mais Eclipse peut supporter
plusieurs autres langages comme le C, C++, XML
L’équipe du SCE utilise un gestionnaire de version pour le code source appelé
ClearCase. Il est développé par IBM et intégré dans Eclipse. Cela permet la
sauvegarde, la mise à jour, et la mise en commun du code.
Il permet de créer des branches de développements différentes, ce qui permet travailler en
parallèle sur le SCE sans interférences sur la branche de production.
Figure 7 : Environnement d'Eclipce
Page 11 sur 44
Outil de recherche simple et avancée Rapport de stage
Guillaume CERUTTI
III. La mission
La mission qui m’a été confiée et de réaliser un module de recherche dans l’application SCE.
A. Le SCE
Le SCE1 est l’outil de configuration déconnecté. Il permet de
décrire tous les composants électriques qui se trouvent sur un site.
Une configuration peut être composée de centaines voir de
milliers de données à traiter. Pour l’utilisateur il lui est impossible
de retrouver un composant s’il ne connait pas suffisamment la configuration du site et son
arborescence. Nous allons voir comment se présente l’application.
1 System Configurator Editor
Liste des composants pouvant être ajoutés à la configuration
Arborescence des composants électriques de la configuration
Liste des attributs des composants sélectionnés
Outils d’aide à la configuration :
outil de diagnostique
outil d’adressage
outil de câblage
…
Page 12 sur 44
Outil de recherche simple et avancée Rapport de stage
Guillaume CERUTTI
B. L’état des lieux : l’outil actuel de recherche (All Search)
Le SCE propose un outil permettant de rechercher des composants
électriques ajoutés à la configuration d’un site. Cet outil se présente
sous forme de deux fenêtres. La première fenêtre permet de définir
une requête, la seconde d’afficher et de manipuler les résultats. L’outil est accessible par le
menu principal.
1. Définition d’une requête
L’arbre à gauche regroupe l’ensemble des différents types d’objets électriques disponibles
dans la base de données.
Par exemple, un utilisateur qui chercherait un transformateur qui a pour nom « Transfo 2 »,
effectuerait les opérations suivantes :
Après avoir sélectionné un type de composant (« Transformateur »), l’utilisateur choisi un ou
plusieurs attributs (par exemple l’attribut « Short name »), dans la liste de droite. En bas de
la fenêtre, une liste permet de changer l’opérateur (« égal à » pour notre exemple) qui sera
utilisé lors de la requête.
Ce qui signifie : « donne-moi tous les composants de type « Transformateur » qui ont pour
nom égal à Tranfo 2 ».
Une fois la requête définie, l’utilisateur peut visualiser les objets correspondants dans la
deuxième fenêtre (page suivante).
Page 13 sur 44
Outil de recherche simple et avancée Rapport de stage
Guillaume CERUTTI
2. Liste de résultats et modifications des objets
La fenêtre permet de visualiser les résultats et donne la possibilité de modifier les attributs
de chaque composant trouvés. Elle laisse surtout le moyen de manipuler plusieurs
composants en même temps, par simple copier/coller par exemple.
C. Problématique
Tout d’abord, un constat : l’outil est tout simplement pas utilisé, ou très peu par des experts.
Cet outil a été développé sur une initiative de l’ensemble de l’équipe. Une seule personne a
travaillé sur l’outil pendant quasiment 6 mois mais avec des utilisateurs peu sollicités. En
conséquence, l’outil obtenu est puissant mais trop complexe et non intuitif pour l’utilisateur.
Le premier problème identifié lors interviews avec les
utilisateurs, vient de l’arbre des types. L’utilisateur ne
retrouve pas facilement ce qu’il recherche, il faut y avoir
passé beaucoup de temps pour « apprendre » la hiérarchie
définie dans cet arbre qui contient pas moins de 3000 types
d’objets.
Le second problème est au niveau du système
de l’opérateur. Il n’y a qu’un seul opérateur
pour tous les attributs. Cela n’est pas
suffisamment flexible et précis pour une
utilisation simple.
Page 14 sur 44
Outil de recherche simple et avancée Rapport de stage
Guillaume CERUTTI
Le troisième problème vient du fait que les deux fenêtres (construction de la requête et
résultats) sont dites « modales », c’est-à-dire, qu’une fenêtre une fois ouverte, bloque
toutes les autres jusqu’à ce qu’elle soit fermée ou validée. Par exemple, il nous sera
impossible d’avoir la fenêtre résultat ouverte et de pouvoir redéfinir la requête, tant que la
fenêtre résultat est ouverte.
C’est pour ces raisons que l’utilisateur a délaissé cet outil pourtant puissant.
D. Capture des besoins utilisateurs
En mai, avant notre arrivée, un brainstorming eu lieu réunissant des utilisateurs du SCE et
l’équipe de développement pour récolter les besoins utilisateurs. Le résultat se présente
alors sous forme d’un « arbre d’idée » avec différentes catégories :
Figure 8 : Arbre réalisé avec le logiciel Freemind
Page 15 sur 44
Outil de recherche simple et avancée Rapport de stage
Guillaume CERUTTI
Cette analyse montre la nécessité d’avoir deux outils bien distincts, un premier dit de
recherche simple et un second appelé recherche avancée.
La recherche simple sera développée en première partie du stage. Puis la recherche avancée
qui consiste en une refonte complète de l’outil déjà existant (Search All), pour palier les
problèmes relevés lors des différentes interviews et ajouter les améliorations souhaitées par
l’utilisateur.
1. La recherche simple
La recherche simple devra permettre à l’utilisateur de retrouver un équipement électrique
dans la configuration d’un site, de façon simple et rapide, par son nom ou son « nom long »
(une description de l’objet). Il lui sera possible alors, de naviguer dans les résultats en se
servant de deux boutons, « suivant » et « précédent », qui sélectionneront l’équipement
dans l’arbre de la configuration.
2. La recherche avancée
La recherche avancée quant à elle, devra permettre de définir, modifier, enregistrer et
charger facilement les requêtes. Le résultat devra s’afficher sous la forme d’un tableau et
l’utilisateur pourra manipuler les informations obtenues de façon très simple.
E. Les enjeux
L’entreprise espère beaucoup de la nouvelle version du SCE version 2, qu’elle souhaite plus
conviviale et plus facile d’emploi. L’intégration des 2 nouveaux outils pour le traitement des
données représentera un atout certain pour cette nouvelle version. En plus de la
simplification et de la rapidité de la recherche, ces nouveaux outils apporteront de
nombreuses fonctionnalités (enregistrement des requêtes, manipulation de données
massives …) représentera un gain de temps non négligeable pour le futur utilisateur.
En ce qui me concerne l’enjeu est également très important puisque c’est la première fois
que je suis intégré dans un groupe de R&D d’une grande entreprise comme AREVA et qui
utilise des méthodes de conduite de projet très innovante.
Page 16 sur 44
Outil de recherche simple et avancée Rapport de stage
Guillaume CERUTTI
IV. La méthode de développement de l’équipe SCE
L’équipe de développement du SCE, composé de 5 personnes à plein temps, fonctionne
suivant les méthodes Agile. Plus exactement, un mélange de SCRUM et d’Extrem
Programming (XP). SCRUM fournit un cadre de gestion de projet solide et XP fournit un
ensemble de pratiques de programmation. Le but est de rendre la nouvelle version du SCE
plus proche des clients (attendu début 2009).
Pour mieux comprendre ce fonctionnement, je vais étayer les différentes méthodes en
indiquant ce qui est utilisé dans l’équipe.
A. Les méthodes traditionnelles
1. Le cycle en cascade
Ce cycle de développement définit une suite d’étapes qui va de l’analyse des besoins jusqu’à
la livraison du logiciel. Pour cette méthode, un temps non négligeable est alloué aux quatre
premières étapes (Analyse des besoins jusqu’à la conception détaillée). L’ensemble de
l’analyse peut durer plusieurs mois avant que le codage de l’application commence. Cette
pratique se focalise sur la construction proprement-dite du logiciel. Les problèmes
surviennent lorsque l’étude se révèle fragile ou non viable, c’est alors tout le processus qui
peut être remis en cause. Tout comme une maison qui n’aurait pas les fondations
suffisamment solides.
Analyse de besoins et faisabilité
Spécifications
Conception préliminaire
Conception detaillée
Codage
Tests
Maintenance
Figure 9 : Cycle de vie « en cascade »
Page 17 sur 44
Outil de recherche simple et avancée Rapport de stage
Guillaume CERUTTI
2. Le cycle en V
Le cycle en V quant à lui, cherche à limiter les risques en effectuant plusieurs tests pour
chaque étape, et éviter ainsi de ne pas remonter trop haut dans l’analyse.
B. Les méthodes Agile
Ces méthodes dites traditionnelles, comme le développement en cascade ou le cycle en V
demandent un lourd investissement pour l’analyse de départ. Celles-ci ne sont pas
favorables au changement du fait de leur complexité de départ. Cette organisation suppose
l’absence de changement. Au cours du développement, le client peut réaliser que ces
besoins ont changé, ce qui peut remettre en question toute l’analyse de départ, c'est-à-dire
le projet dans son ensemble.
L’équipe du SCE utilise la méthode Agile depuis 2007 comme équipe pilote dans le
département R&D.
Analyse de besoins et faisabilité
Spécifications
Conception préliminaire
Conception detaillée
Codage
Tests unitaires
Tests d'intégration
Test de validation
Maintenance
Figure 10 : Cycle en V
Page 18 sur 44
Outil de recherche simple et avancée Rapport de stage
Guillaume CERUTTI
1. Changement et évolution du projet
Tout au long du projet le client intervient dans le processus. La méthode fonctionne de
manière itérative, c'est-à-dire que l’on répète plusieurs fois le même cycle. A la fin de
chaque cycle le client va obtenir un résultat, qu’il va pouvoir juger et faire évoluer par ces
demandes pour le prochain cycle.
Le schéma ci-dessous présente le processus itératif de développement avec SCRUM :
Figure 11 : Cycle itératif du processus SCRUM
2. Les différents acteurs
La méthode SCRUM fixe trois acteurs ou plutôt groupes d’acteurs. Tout d’abord le « Product
Owner » qui un représentant de tous les clients. Il définit les fonctionnalités de l’application
et il fait partie de l’équipe et tient un rôle important. Le second est le « Scrum Master », il
favorise le travail d’équipe, représente le management du projet et protège l’équipe des
interférences externes. Puis il y a l’équipe qui développera l’application elle-même. Elle est
composée de 5 à 10 personnes polyvalentes et à plein temps.
Le product owner
Le scrum master
L’équipe
Page 19 sur 44
Outil de recherche simple et avancée Rapport de stage
Guillaume CERUTTI
Voici un schéma représentant le processus utilisé par l’équipe du SCE :
Nous allons voir comment se déroule précisément le processus de développement.
3. La phase d’exploration
Le « Product Owner » représentant tous les clients et fait partie de l’équipe, il
va établir une liste de fonctionnalités qu’il souhaite trouver dans le produit
final, définir les spécifications et gérer les priorités. Comme par exemple : « En
tant qu’utilisateur, je veux un outil de recherche pour trouver facilement et
rapidement un objet dans mon arbre ». Ces données sont appelées « scénario
client » ou « user story » avec la méthode SCRUM et chaque scénario se voit
attribué une priorité d’implémentation, jugé bon par le client. Tous ces
scénarios clients constituent le « Backlog du produit ».
Page 20 sur 44
Outil de recherche simple et avancée Rapport de stage
Guillaume CERUTTI
4. Planification du projet
Cette étape est appelée « Sprint Planning 1 ». Elle est réalisée au cours d’une réunion
regroupant le client et l’ensemble de
l’équipe de développement. Le client va
alors exposer ses scénarios à l’équipe.
L’équipe va pour chaque scénario,
estimer avec des points abstraits, une valeur représentant la quantité de travail qui sera
nécessaire pour réaliser ce scénario. Pour cela, chaque membre de l’équipe dispose d’un jeu
complet de carte appelé « planning poker » (image ci-dessous) pour estimer chacun des
scénarios. Tout le monde dévoilera sa carte en même temps. Le but ici, est de ne pas être
influé par les autres membres. S’il y a des écarts, on discute
pour en trouver la raison et après explication, il y a de nouveau
une estimation.
Ces points vont permettre au client d’ajuster les priorités de scénarios. En effet, l’équipe
possède une certaine « vélocité », c’est-à-dire une estimation du nombre de points que peut
faire l’équipe en une itération (de 2 à 4 semaines) de travail. Le client a donc une idée de ce
qui pourra être fait pour une itération et pourra choisir en conséquence, les scénarios à
intégrer à l’itération (en changeant les priorités) pour s’ajuster au mieux à la vélocité de
l’équipe. Cette liste constitue ce qui est appelé « Backlog du sprint ».
C. Définition des tâches
Avec le « Backlog du sprint », le « scrum master » et l’ensemble de l’équipe de développeur
se réunissent pour définir les tâches pour chaque scénario choisi
par le client. Cette réunion est appelée « sprint planning 2 ». Les
membres de l’équipe sont invités à proposer un ensemble de
tâches qui seront nécessaires pour réaliser un scénario donné.
Une fois toutes les tâches identifiées, chaque membre de
l’équipe va estimer le nombre d’heures qu’il pense nécessaire
pour réaliser chaque tâche.
Page 21 sur 44
Outil de recherche simple et avancée Rapport de stage
Guillaume CERUTTI
Tous les membres dévoilent la valeur pour la tâche et l’on regarde si le résultat est
homogène. S’il existe de grands écarts, c’est qu’il y a peut être des problèmes ou difficultés
qui n’ont pas été identifiées par tout le monde ou au contraire des méthodes, des astuces
qui ont été vues par d’autre. Une fois que l’ensemble du groupe est d’accord pour chacune
des tâches, une liste est établie, c’est ce qui définit « le travail à faire » pour l’itération, que
l’on appelle « sprint ».
Il a été défini qu’un développeur du SCE travaille 5 heures effectives par jour. On notera que
si une tâche une journée, il sera peut être nécessaire de diviser cette tâche en plusieurs
tâches plus fines.
Une fois toutes les tâches définies, le « product owner » écrit les tâches qui composent
chaque scénario dans le « backlog de sprint » en cours.
Figure 12 : exemple de backlog de sprint
D. Le sprint
La durée d’un sprint est de 2 à 4 semaines avec une livraison du produit partiel intégrant les
fonctionnalités que le client à définies pour ce sprint dans le « Backlog du sprint ».
Le sprint est constitué de réunion quotidienne (mêlée quotidienne) où l’on expose le travail
fait le jour précédent.
Figure 13 : Sprint
Page 22 sur 44
Outil de recherche simple et avancée Rapport de stage
Guillaume CERUTTI
E. Mêlée quotidienne
Les mêlées quotidiennes s’effectuent tous les jours durant un sprint. Elles se déroulent en
début de matinée et se limitent à 15 minutes. Elles ont pour but de faire un point sur ce qui
a été fait la veille pour chacun de membre de l’équipe, et permet de connaitre « le reste à
faire » et d’exposer les problèmes rencontrer. Après avoir fait le tour des tâches accomplies,
chacun des membres de l’équipe de développement pourra alors choisir une ou plusieurs
tâches à réaliser.
Figure 14 : exemple de backlog avec une évolution du nombre d’heure
Dans cet exemple, le scénario s’appelle « Raffinement Filtre », les tâches qui y sont
attribuées sont : les tests, l’utilisation d’une « Sortable table », ordonner les catégories, etc.
A droite, se trouve le nombre d’heures pour chacune des tâches, nous pouvons voir que la
tâche « utilisation d’une Sortable table » a été terminée le mardi 16 et a donc été reportée
le jour suivant avec la valeur 0.
F. Suivi de projet
Le suivi du sprint se fait par une courbe qui correspond à une vue d’ensemble du sprint. On
voit l’évolution du travail qui reste à faire ainsi qu’une droite théorique qui indique si la
progression de l’équipe est suffisante ou non.
Figure 15 : Courbe de suivi de sprint
Page 23 sur 44
Outil de recherche simple et avancée Rapport de stage
Guillaume CERUTTI
G. Revue de sprint
A la fin de chaque sprint, une revue est effectuée avec l’ensemble de l’équipe de
développeur et le client. L’équipe ne présente que ce qui a été réalisé pendant toute la
durée du sprint. Une démonstration est faite du produit en mettant en valeur les nouvelles
fonctionnalités. Le client connait alors tout ce qui a été réalisé et va vouloir ajouter des
scénarios au Backlog du produit puis
sélectionner les scénarios prioritaires
dans le prochain Backlog de sprint
(pour le prochain sprint).
H. Tests automatiques
Des tests associés à chacun des scénarios permettent de vérifier le bon fonctionnement des
fonctions demandées par le client. Ils sont exécutés tout au long du développement pour
vérifier l’évolution du projet (tests de non régression). Le client fournira une série de tests
sous forme de fichier texte, de feuille Excel ou de fichier XML par exemple. Ces fichiers
fourniront les données d’entrée ainsi que les résultats attendus après la transformation par
le programme. Ces tests peuvent être aussi sous la forme de scripts pour décrire les
interactions avec l’interface utilisateur pour arriver à une fonction donnée.
Pour ces tests unitaires, nous avons utilisé le module JUnit intégré à Eclipse. Ce dernier
permet d’écrire les procédures de tests et
de les exécuter. Les tests unitaires sont
représentés sous forme d’une liste, dans
l’onglet de JUnit (voir ci-contre). Au départ,
on commence par écrire les fonctions et
leurs appels pour les tests. Ces fonctions
sont de simples coquilles vides. On
commence alors à coder les fonctions
pour qu’elles effectuent le travail demandé. Lors de l’exécution de JUnit, chaque fonction est
lancée et JUnit validera ou non le résultat. Il est indispensable d’avoir réussi tous les tests.
Page 24 sur 44
Outil de recherche simple et avancée Rapport de stage
Guillaume CERUTTI
Au cours du stage, les tests unitaires nous ont servi de « ciment », c’est après les avoir tous
passé avec succès que nous avons pu coder l’interface graphique et ajouter des
fonctionnalités supplémentaires.
I. Binôme
Cette pratique XP consiste à travailler à deux sur un même poste. Cela donne l’occasion de
résoudre un problème par un dialogue permanent.
Pendant le stage, cette pratique a été utilisée plusieurs fois en binôme avec Romain
Trébuchon, notamment au tout début pour la prise en main du code du SCE et l’élaboration
des fondations de notre module de recherche.
Nous allons maintenant voir l’analyse et la réalisation du module.
V. Analyse
Nous verrons comment seront définies les priorités vues par le « Product Owner » (clients).
Ensuite nous analyserons les options et stratégies étudiées pour une recherche rapide et
optimum d’un objet dans la base de données objets fournie avec le SCE.
A. Interview des utilisateurs
1. Interview
Nous avons vu que les premières interviews avant mon arrivée, étaient destinées aux
principales fonctionnalités et ont mis en évidence le besoin de créer deux nouveaux outils de
recherche, simple et avancée. De nouvelles interviews ont eu lieu en présence des clients, du
« scrum master » et de moi-même, pour définir l’interface utilisateur, les interactions et
leurs fonctionnalités.
Page 25 sur 44
Outil de recherche simple et avancée Rapport de stage
Guillaume CERUTTI
2. Prototypage d’IHM pour Recherche simple
Plusieurs prototypes d’IHM (Interface Homme Machine) ont été dessinés et débattus lors
des interviews. Le support papier a été privilégié pour une question d’accessibilité et de
simplicité, tout le monde peut proposer quelque chose rapidement et cela sans barrière.
Voici le résultat obtenu :
L’outil se présente donc comme une barre d’outils avec un champ de saisie, un bouton
validation et plusieurs boutons de navigations. Les options seront accessibles par l’icône
représentant une loupe.
Ce prototypage présente et regroupe les fonctionnalités voulues par les clients.
3. Prototypage d’IHM pour Recherche avancée
L’outil de recherche avancée se présente comme un panneau regroupant deux parties bien
distinctes : une partie requête et une partie résultat. La partie du haut, la requête, est
composée de trois panneaux qui vont permettre à l’utilisateur d’afficher et de construire sa
requête.
Page 26 sur 44
Outil de recherche simple et avancée Rapport de stage
Guillaume CERUTTI
Lors des premières interviews, les utilisateurs connaissant l’outil actuel « Search All » ne
cherchaient que des améliorations possibles de l’outil existant. Pour tenter de résoudre ce
problème pour avons proposé une IHM plus originale sous forme de maquette ce qui nous a
permis d’obtenir le prototype ci-dessous plus innovant.
Figure 16 : Prototype de la recherche avancée
B. Test de performances
Le premier critère que nous avons étudié est la rapidité. La première réflexion a été de
rechercher les objets directement dans l’objet graphique
Java : JTree (ci-contre). Mais un problème est survenu
lorsque nous avons voulu rechercher un composant
électrique dans l’arbre de configuration : l’arbre n’est pas
complet. Pour des gains de performances, l’arbre n’est
chargé que lorsque c’est nécessaire. Il est chargé en
mémoire au fur et à mesure que l’utilisateur l’explore.
Ainsi, il nous est impossible de chercher un objet directement.
Par exemple, « BusBar 1 » et « BusBar 2 » n’ont jamais été dépliés depuis l’ouverture du
fichier de configuration, leurs fils n’ont pas encore été chargés. Au contraire, « BusBar » est
déplié et ses quatre fils (Order running, MappingDPS, Mapping SPS et Mapping DSP 1) ont
donc été chargés en mémoire puis affichés.
Page 27 sur 44
Outil de recherche simple et avancée Rapport de stage
Guillaume CERUTTI
Deux solutions s’offraient à nous. La première était de chercher directement dans la base de
données. La seconde, était de créer un index répertoriant tous les noms de chaque objet
présent dans la base de données.
1. Première solution : parcours de l’arbre à partir d’une feuille
La difficulté ici, a été de faire une recherche dans un arbre à partir d’une feuille.
Habituellement, lorsque l’on parcourt un arbre, on commence à partir de la racine puis on
parcourt l’arbre de façon récursive. Nous avons donc dû écrire un petit algorithme
permettant de parcourir l’arbre en partant de n’importe quelle feuille.
Pour les détails de l’algorithme voir annexe : « Algorithme de recherche pour le parcours
d’un arbre à partir d’une feuille » page 41.
2. Résultat obtenu pour la recherche
Le résultat n’a pas été concluant au niveau des performances. Pour de grosses
configurations, l’algorithme met 30 secondes pour trouver un résultat. Cela vient du fait que
les objets ne sont pas tous chargés en mémoire. Cette solution n’est donc pas appropriée
pour une recherche dite rapide. Nous nous sommes donc pencher sur la deuxième solution,
en utilisant l’indexation.
3. Deuxième solution : indexation des objets
Cette solution consiste à construire et à maintenir à jour une indexation de tous les objets de
la configuration.
L’indexation se fait à chaque ajout, suppression ou modification d’un objet dans la
configuration du site. L’avantage ici, est de remplir l’index au fur et à mesure plutôt que de
le faire en une seule fois, ce qui prendrait beaucoup de temps.
Pour les détails de l’algorithme voir annexe : « Indexation » page 44.
Page 28 sur 44
Outil de recherche simple et avancée Rapport de stage
Guillaume CERUTTI
VI. Résultats
A. Recherche simple
La simple recherche est destinée à trouver rapidement des composants électriques dans
l’arbre grâce à son nom (« short name » ou « long name »). Il doit être possible d’effectuer
des sauts d’objet en objets parmi les résultats.
1. Présentation de la barre de recherche
L’outil se présente sous la forme d’une barre d’outils intégrée au SCE et reste donc
accessible en permanence. Elle peut être déplacée, détachée et même retirée via le menu.
Ce champ texte permet d’entrer le texte à rechercher dans la
configuration du site. L’ergonomie et les interactions ont été
travaillées pour transmettre des informations complémentaires à
l’utilisateur. Comme par exemple le changement de la couleur de fond, pour indiquer
qu’aucun résultat n’a été trouvé par la couleur rouge et par une couleur bleu pour indiquer
que la navigation est terminée. L’action de la touche Entrée permet de lancer la recherche
mais une fois lancée, permet de passer au résultat suivant sans avoir à déplacer la souris
pour cliquer sur la flèche vers le bas de navigation (page suivante).
Résultat suivant
Résultat précédant
Lancer la recherche
Extraire la liste de résultats
Texte à rechercher
Options
Page 29 sur 44
Outil de recherche simple et avancée Rapport de stage
Guillaume CERUTTI
Les boutons de navigation permettent de se déplacer dans la recherche, c'est-à-dire de
sélectionner l’objet suivant dans l’arbre de configuration du site, qui correspond à la
recherche. Le bouton à droite permet d’extraire les résultats sous forme d’un tableau (voir
page suivante).
En cliquant sur l’icône en forme de loupe, on fait
apparaître un pop-up (menu) permettant de choisir
les critères de recherche. On peut effectuer la
recherche dans la totalité de l’arbre en sélectionnant
Global ou l’option suivante In… qui permet de
rechercher uniquement dans les sous-branches de l’objet sélectionné au moment du
lancement de la recherche. Le critère de sélection est effectué soit sur le Short name ou sur
le Long name.
Une fois la recherche effectuée, l’utilisateur aura la possibilité de consulter la liste de
résultat, nous allons voir comment il se présente.
2. Présentation des résultats de la recherche
Après avoir appuyé sur le bouton « Extraction » de la barre de recherche, on ouvre l’onglet
« Recherche » et on ajoute ainsi un panneau de résultat pour une recherche simple.
Figure 17 : Onglet de recherche avec une recherche simple
Page 30 sur 44
Outil de recherche simple et avancée Rapport de stage
Guillaume CERUTTI
L’onglet Recherche en bas, regroupe l’ensemble des recherches qu’elles soient simples ou
avancées. Plusieurs recherches peuvent donc être ajoutées et l’utilisateur peut basculer
d’une recherche à l’autre facilement.
On retrouve aussi pour chaque panneau de recherche simple, un champ qui permet de
redéfinir et d’affiner la recherche. L’utilisateur pourra enfin retrouver un objet facilement à
partir de la liste de résultat en double cliquant dessus, ce qui permettra de le sélectionner
dans l’arbre.
B. Recherche avancée
Comme nous l’avons vu précédemment, la recherche avancée est une refonte totale de
l’ancien outil appelé « Search all… ». L’outil permet de trouver tous les objets et de pouvoir
les manipuler de manières massives, c'est-à-dire de modifier les caractéristiques de plusieurs
objets en même temps. Nous devons avoir un outil performant, ergonomique et simple
d’emploi. Pour cela, nous allons éliminer les problèmes relevés lors des interviews comme le
principe de la fenêtre modale et améliorer le système de filtres.
1. Présentation de l’interface
L’outil est accessible par une icône présent sur la barre d’outils et par le menu outils de
l’application. Une fois l’outil sélectionné, un panneau est ajouté à l’onglet de recherche en
bas de l’application.
Nous allons voir comment s’effectue une recherche.
Page 31 sur 44
Outil de recherche simple et avancée Rapport de stage
Guillaume CERUTTI
2. Création de requête
La recherche se réalise sous forme d’une requête. Elle met en œuvre trois étapes :
1. L’utilisateur sélectionne un type d’objet électrique dans l’arbre de gauche. La liste au
centre se remplit alors de tous les attributs de l’objet,
2. L’utilisateur choisi dans la liste des attributs et les ajoute à la liste de filtre à droite
par les triangles ou par double clics sur un attribut,
3. La dernière étape consiste à compléter les critères en appliquant des filtres.
Les filtres se présentent sous la forme d’un tableau avec trois colonnes. La première reprend
les attributs ajoutés sur lesquels vont être
appliqués les filtres. La deuxième
colonne indique l’opérateur et la
troisième, la valeur à comparer.
La liste des opérateurs disponibles est nombreuse, il y a entre autre « égal », « contient »,
« commence par », « différent de », « supérieur à », « supérieur ou à », etc.
Une fois la requête définie, il suffira d’appuyer sur le bouton « Exécuter » en bas du panneau.
La recherche sera lancée et la requête sera enregistrée dans l’historique en tant que
«dernière».
1 2 3
Page 32 sur 44
Outil de recherche simple et avancée Rapport de stage
Guillaume CERUTTI
Une demande importante des utilisateurs était de pouvoir sauvegarder les requêtes pour les
réutiliser facilement et même de pouvoir les échanger entre utilisateurs par un fichier XML.
Cette option se trouve à côté du bouton « Exécuter ». La liste de requêtes sauvegardées
quant à elle se trouve en haut du panneau. Ces emplacements ne sont pas là par hasard. Ils
ont été pensés et réfléchis avec l’aide des utilisateurs.
Nous allons voir maintenant comment sont présentés les résultats.
3. Affichage des résultats
La table de résultat se place dans la seconde partie du panneau de la recherche avancée.
Figure 18 : Résultats de la recherche avancée
Page 33 sur 44
Outil de recherche simple et avancée Rapport de stage
Guillaume CERUTTI
La table présente les résultats de la recherche avec comme colonne les attributs qui ont été
utilisés comme filtres. Les 4 premières colonnes sont par contre fixes et elles sont
communes à tous les objets : « icône », « chemin », « nom court » et « type ».
Le principal intérêt est de pouvoir modifier ces résultats de façon massive, nous allons voir
comment.
4. Edition des résultats de la recherche
L’édition des résultats est facilitée grâce aux différentes fonctionnalités que nous avons
développées.
Par exemple, un assistant facilitant la manipulation des nombres avec une aide graphique
pouvant être utilisé à l’aide de la souris qui utilise un certain pas d’incrément ou de
décrément.
Pour d’autres types de données, des boites de dialogue bien spécifiques ont été
développées comme pour l’édition de couleurs, de polices, de relations, de fichiers, etc.
Une demande des utilisateurs fut également de pouvoir manipuler facilement plusieurs
objets en même temps. Une des solutions choisie, est la possibilité de sélectionner plusieurs
lignes et colonnes puis de faire un copier/coller dans Excel. L’utilisateur pourra manipuler à
sa guise les objets et reproduire la procédure inverse dans la table de résultat. Il y a un
mécanisme de vérification de cohérences des données qui protège l’utilisateur et l’ensemble
du système. Ce mécanisme utilise un système de pattern défini pour chaque attribut d’un
objet (exemple la valeur d’une adresse ne peut pas dépasser 255).
Le but est de ne pas refaire toutes les fonctionnalités d’Excel.
C. Agenda
Mon travail au cours de ce stage s’est déroulé de la manière suivante :
La première semaine a été consacrée à la prise en main du code et au test de vitesse pour la
recherche (première solution). La conception de l’indexeur a été effectuée pendant la
deuxième semaine. Son développement a été « conduit par les tests » (méthode XP décrite
plus haut). Puis la réalisation de l’IHM de la recherche simple, la table de résultats et ses
interactions ont pris deux à trois semaines. Au cours du mois suivant, nous avons travaillé
Page 34 sur 44
Outil de recherche simple et avancée Rapport de stage
Guillaume CERUTTI
sur le système de recherche avancée et l’affichage des résultats dans le tableau. Pendant les
semaines restantes nous avons permis la manipulation des données et les vérifications avec
les patterns, les différentes boites de dialogues pour la modification des couleurs, fonts,
fichiers. Des améliorations de l’IHM ont été apportées tout au long du développement en
fonction des retours des utilisateurs internes et après les différentes interviews.
D. Intégration du module de recherche
Le module de recherche est aujourd’hui intégré à la production du SCE. Il fait partie
intégrante du développement et des outils de la nouvelle version du SCE qui sortira avec
PACIS début 2009.
VII. Discussion
AREVA T&D appartenant au groupe AREVA, s’occupe du transport et de la distribution de
l’énergie électrique. Pour cela, il existe des infrastructures permettant de transformer les
hautes tensions en moyennes tensions. Ce sont les sous-stations. AREVA a développé des
outils très performants permettant la supervision, le contrôle et la maintenance de ces sites,
c’est le système PACIS.
Ces outils sont configurables grâce à l’application déconnectée appelée SCE. Un site
constitué de sous-stations avec plusieurs milliers de données (composants électriques) qui
doivent être configurables dans le SCE.
La configuration d’un site représente donc une énorme quantité de données qu’il faut
pouvoir décrire et maintenir à jour. La mise au point et la maintenance d’un site passe ainsi
par la recherche dans la base de données de composants électriques. Un premier outil de
recherche était proposé dans le SCE mais la complexité de l’outil le rendait inadapté, voire
inutilisable.
La mission qui m’a été confiée consistait donc au développement d’un outil de recherche
rapide de données pour la nouvelle version de l’application SCE.
Page 35 sur 44
Outil de recherche simple et avancée Rapport de stage
Guillaume CERUTTI
Cet outil devait répondre aux exigences des utilisateurs. Leurs besoins ont été recueillis sous
forme d’interview et ont conduit à deux propositions, un outil de recherche simple et de
recherche avancée.
C’est ainsi que j’ai développé ces deux outils qui ont apporté les améliorations souhaités par
les clients. La recherche de données est maintenant simple et rapide.
Ce stage s’est déroulé dans une grande entreprise et au sein d’une équipe très soudée
composée de 5 ingénieurs. Je n’ai pas rencontré de difficultés majeures. L’ambiance de
travail était bonne. Les membres de l’équipe étaient disponibles et à l’écoute.
J’ai eu la chance d’être très bien intégré à ce groupe de travail et de participer au
développement du projet. A cette occasion, j’ai pu découvrir la méthode Agile et son intérêt
pour mener à bien un projet. J’ai également pu assister au séminaire SigmaM6 (Séminaire
Méthode Agile de Montpellier) qui s’est déroulé le 20 juin 2008 à Montpellier.
J’ai ainsi vu une application concrète de la méthode Agile puisque j’ai pu participer à sa mise
en œuvre, de l’interview du client jusqu’à la livraison du produit final.
La méthode Agile privilégie non seulement le dialogue entre les membres de l’équipe et le
client, adaptation du produit fini aux demandes du client, mais aussi crée un climat propice
aux discussions, à la critique au sein même de l’équipe. Ce qui est un gage de qualité et
d’efficacité. Le partage et l’échange des connaissances impliquent une responsabilité
collective, chacun de membre pouvant intervenir à n’importe quel niveau dans le code de
l’application.
L’outil est aujourd’hui intégré dans le processus de production du SCE et sera intégré à la
prochaine version du SCE2.
Page 36 sur 44
Outil de recherche simple et avancée Rapport de stage
Guillaume CERUTTI
VIII. Conclusion
Le but de ce stage de 3 mois au sein d’AREVA, était de concevoir deux nouveaux outils de
recherche intégrés à l’application SCE, qui permet la configuration de PACIS, système de
gestion des sites de distribution d’électricité.
Les objectifs qui m’ont été fixés ont bien été atteints puisque ces outils répondent aux
besoins de l’utilisateur, recherche rapide et efficace des données dans la base SCE.
Le travail que j’ai effectué semble avoir convaincu mon encadrement puisqu’un CDD de 1
mois m’a été proposé à la fin de ce stage. Cette période m’a donné l’occasion de pouvoir
transmettre ces nouveaux outils à l’équipe. J’ai également pu effectuer quelques
améliorations sur les outils de recherche.
Parmi les apports les plus marquants de ce stage, la gestion de projet dans une équipe de
R&D m’a vraiment conforté dans l’idée que je me fais du travail d’ingénieur, la discussion
permanente, l’échange d’idées ...
Ce stage m’a permis aussi de découvrir l’application sur le terrain de la méthode Agile. J’ai
été très enthousiaste à l’idée d’utiliser cette méthode que je ne connaissais que par la
théorie suite à la présentation faite à l’EPSI en début d’année. J’ai ainsi pu estimer
l’importance que peut avoir l’introduction d’une telle méthode sur la construction et
l’évolution d’un projet et surtout les conséquences au niveau de la dynamique du groupe
dans lequel tout le monde doit être impliqué et responsable.
D’autre part, j’ai toujours eu une sensibilité pour l’IHM, j’ai pu partager ma passion et
compléter mes compétences avec un ingénieur ergonome de l’entreprise Monsieur Frédéric
Monjo.
Outre les cycles de formations aux risques effectués par l’entreprise comme la sensibilisation
au danger électrique, j’ai découvert également qu’il y avait des réunions informelles
(invitation par courriel interne), sur un thème proposé par un des ingénieurs du site, réunion
à laquelle tout le personnel peut participer. Ces réunions ont lieu en général entre midi et
deux heures. Les sujets sont très variés et peuvent par exemple permettre de connaitre un
nouveau langage informatique. J’ai pu assister par exemple à la présentation du langage
FLEX d’Adobe.
Ce stage m’a été très bénéfique, puisque outre la découverte de la vie dans une entreprise
qui travaille dans un domaine sensible, de tous les aspects sécuritaires qui en découlent
(accès au site par badge, la sécurité des données informatiques...) j’ai pu aussi vivre
complètement la vie d’un ingénieur dans un groupe, apprendre des méthodes de travail,
comprendre les enjeux stratégiques et techniques qui doivent être pris en compte au cours
de la vie d’une entreprise et donc dans ces programmes de développement.
Cette expérience très riche m’a conforté dans mon désir de travailler et de m’investir dans
ce domaine de la recherche et développement en informatique.
Page 37 sur 44
Outil de recherche simple et avancée Rapport de stage
Guillaume CERUTTI
IX. Annexes
A. Références bibliographiques
Internet
Scrum - Méthodes agiles
Auteur : Claude Aubry, conseillé et formateur en méthodes Agile.
Adresse : http://www.aubryconseil.com/
Résumé : Ce blog est consacré aux méthodes Agile et surtout à
la méthode SCRUM. Son auteur est intervenu en tant conseillé
au près d’AREVA pour l’équipe du SCE.
Wikipedia
Adresse : http://fr.wikipedia.org/
Résumé : Wikipedia est encyclopédie librement réutilisable que
chacun peut améliorer.
Intranet
Projet Pilote Agile - Expérimentation d’une méthode Agile
Auteur : Areva - Equipe SCE
Fichier : Scrum et SCE 21-11-2007.ppt
Résumé : Présentation de la méthode Agile au sein de l’équipe de
développement du SCE.
Page 38 sur 44
Outil de recherche simple et avancée Rapport de stage
Guillaume CERUTTI
B. Liste des figures
Figure 1: les activités du groupe Areva ...................................................................................... 3
Figure 2 : Répartition du chiffre d'affaire sur les différents pôles du groupe AREVA ................ 4
Figure 3 - Accueil Areva à Lattes ................................................................................................. 4
Figure 4 : Exemple d'architecture globale du système PACiS .................................................... 7
Figure 5 : Organisation de l'équipe SCE ...................................................................................... 9
Figure 6 : L’open space du SCE ................................................................................................... 9
Figure 7 : Environnement d'Eclipce .......................................................................................... 10
Figure 8 : Arbre réalisé avec le logiciel Freemind ..................................................................... 14
Figure 9 : Cycle de vie « en cascade » ...................................................................................... 16
Figure 10 : Cycle en V................................................................................................................ 17
Figure 11 : Cycle itératif du processus SCRUM ......................................................................... 18
Figure 12 : exemple de backlog de sprint ................................................................................. 21
Figure 13 : Sprint....................................................................................................................... 21
Figure 14 : exemple de backlog avec une évolution du nombre d’heure ................................ 22
Figure 15 : Courbe de suivi de sprint ........................................................................................ 22
Figure 16 : Prototype de la recherche avancée ........................................................................ 26
Figure 17 : Onglet de recherche avec une recherche simple ................................................... 29
Figure 18 : Résultats de la recherche avancée ......................................................................... 32
Figure 19 : Convention hiérarchie de l'arbre pour l'algorithme de recherche ........................ 41
Figure 20 : Algorithme de recherche ........................................................................................ 41
Figure 21 : vue simplifiée du stockage des données ................................................................ 43
Figure 22 : vue complète du stockage des données de l'indexation ....................................... 44
Page 39 sur 44
Outil de recherche simple et avancée Rapport de stage
Guillaume CERUTTI
C. Table des matières
I. Introduction ..................................................................................................................... 1
II. Présentation de l’entreprise ............................................................................................ 2
A. Historique ........................................................................................................................ 2
B. Le groupe AREVA ............................................................................................................. 2
C. Son activité ...................................................................................................................... 3
D. L’environnement économique ........................................................................................ 3
E. Le pôle Transmission et Distribution ............................................................................... 4
1. Le site de Lattes ........................................................................................................... 4
2. Les clients ..................................................................................................................... 5
3. Les lignes de produits .................................................................................................. 5
F. Le système PACiS ............................................................................................................. 6
1. Qu’est ce qu’une sous-station électrique .................................................................... 6
2. Equipements de protection et contrôle ...................................................................... 6
3. Les trois fonctions d’un système ................................................................................. 6
4. Architecture globale du système PACiS ....................................................................... 7
5. SCE : System Configuration Editor ............................................................................... 8
6. L’équipe de développement SCE ................................................................................. 9
7. Les outils de développement ..................................................................................... 10
III. La mission ...................................................................................................................... 11
A. Le SCE ............................................................................................................................. 11
B. L’état des lieux : l’outil actuel de recherche (All Search) .............................................. 12
1. Définition d’une requête ........................................................................................... 12
2. Liste de résultats et modifications des objets ........................................................... 13
C. Problématique ............................................................................................................... 13
D. Capture des besoins utilisateurs ................................................................................... 14
1. La recherche simple ................................................................................................... 15
2. La recherche avancée ................................................................................................ 15
E. Les enjeux ...................................................................................................................... 15
IV. La méthode de développement de l’équipe SCE .......................................................... 16
A. Les méthodes traditionnelles ........................................................................................ 16
1. Le cycle en cascade .................................................................................................... 16
2. Le cycle en V ............................................................................................................... 17
B. Les méthodes Agile ........................................................................................................ 17
1. Changement et évolution du projet .......................................................................... 18
2. Les différents acteurs ................................................................................................. 18
Page 40 sur 44
Outil de recherche simple et avancée Rapport de stage
Guillaume CERUTTI
3. La phase d’exploration ............................................................................................... 19
4. Planification du projet ............................................................................................... 20
C. Définition des tâches ..................................................................................................... 20
D. Le sprint ......................................................................................................................... 21
E. Mêlée quotidienne ........................................................................................................ 22
F. Suivi de projet ................................................................................................................ 22
G. Revue de sprint .............................................................................................................. 23
H. Tests automatiques ....................................................................................................... 23
I. Binôme ........................................................................................................................... 24
V. Analyse ........................................................................................................................... 24
A. Interview des utilisateurs .............................................................................................. 24
1. Interview .................................................................................................................... 24
2. Prototypage d’IHM pour Recherche simple .............................................................. 25
3. Prototypage d’IHM pour Recherche avancée ............................................................ 25
B. Test de performances .................................................................................................... 26
1. Première solution : parcours de l’arbre à partir d’une feuille ................................... 27
2. Résultat obtenu pour la recherche ............................................................................ 27
3. Deuxième solution : indexation des objets ............................................................... 27
VI. Résultats ........................................................................................................................ 28
A. Recherche simple .......................................................................................................... 28
1. Présentation de la barre de recherche ...................................................................... 28
2. Présentation des résultats de la recherche ............................................................... 29
B. Recherche avancée ........................................................................................................ 30
1. Présentation de l’interface ........................................................................................ 30
2. Création de requête ................................................................................................... 31
3. Affichage des résultats ............................................................................................... 32
4. Edition des résultats de la recherche......................................................................... 33
C. Agenda ........................................................................................................................... 33
D. Intégration du module de recherche ............................................................................ 34
VII. Discussion ...................................................................................................................... 34
VIII. Conclusion ..................................................................................................................... 36
IX. Annexes ......................................................................................................................... 37
A. Références bibliographiques ......................................................................................... 37
B. Liste des figures ............................................................................................................. 38
C. Table des matières......................................................................................................... 39
D. Algorithme de parcours d’un arbre à partir d’une feuille ............................................. 41
E. Indexation ...................................................................................................................... 43
Page 41 sur 44
Outil de recherche simple et avancée Rapport de stage
Guillaume CERUTTI
Père
Objet sélectionné
Petit frère
Petit frère du père
D. Algorithme de parcours d’un arbre à partir d’une feuille
Nous allons utiliser la convention suivante pour décrire l’algorithme :
Figure 19 : Convention hiérarchie de l'arbre pour l'algorithme de recherche
La recherche commence à partir de l’objet sélectionné qui servira de référence. Dans
l’algorithme, c’est l’objet de référence qui sera testé puis changé à chaque appel de la
fonction de recherche récursive.
Les étapes de l’algorithme de recherche avec récursivité :
2) Critère ?
4) Petit frère ?
1) Départ
5) Petit frère du père?
3) Enfants ?
oui
oui
oui
oui
non
non
non
Fon
ction
récu
rsive
Fin : Objet trouvé
Fin : Objet non trouvé
Figure 20 : Algorithme de recherche
Page 42 sur 44
Outil de recherche simple et avancée Rapport de stage
Guillaume CERUTTI
Le détail de chaque étape :
1) Le point de départ : premier appel de la fonction, on initialise la recherche à partir de
l’objet sélectionné dans l’arbre.
2) Le critère : On regarde si l’objet correspond au critère de sélection choisi par
l’utilisateur. Par exemple, si le mon de l’objet contient le texte entré dans la barre de
recherche. Si c’est le cas, la recherche s’arrête ici et l’objet est sélectionné dans
l’arbre, sinon on continue à l’étape suivante (3).
3) Les enfants : on demande à l’objet s’il possède des enfants, si c’est le cas on rappelle
la fonction en lui donnant le premier enfant comme référence. Dans le cas contraire,
on continue en passant à l’étape suivante (4).
4) Le petit frère : on recherche ici le petit frère. Si l’objet possède bien un petit frère, on
rappelle la fonction avec le petit frère, sinon on continue à l’étape (5).
5) Le petit frère du père : si nous arrivons à cette étape c’est que l’objet n’a plus de
petit frère, il est le petit dernier. Nous allons donc passé au petit frère du père pour
descendre dans l’arbre. On rappelle la fonction avec ce petit frère s’il existe, sinon on
continue.
6) Fin : on arrive à la fin de la fonction, c'est-à-dire que l’on a traversé l’ensemble de
l’arbre vers le bas, à partir de l’objet sélectionné, sans trouver d’objet correspondant
avec le texte inséré dans la boite de recherche.
Remarque : un objet ne connait pas ses frères. Il ne connait pas non plus sa position parmi
ses frères, c'est-à-dire qu’il ne sait pas s’il est l’aîné, le benjamin ou le fils unique par
exemple. Le père est le seul à connaitre tous ses fils.
Si l’objet veut connaître son petit frère il va donc demandé la liste de ses fils à son père.
L’objet va devoir ensuite se trouver dans la liste, puis prendre le suivant, qui sera le petit
frère recherché.
Page 43 sur 44
Outil de recherche simple et avancée Rapport de stage
Guillaume CERUTTI
E. Indexation
Chaque donnée possède un nom par langue dans la configuration (un composant aura
comme nom « voltage level » en anglais et « niveau de tension » en français). Mais plusieurs
composants différents peuvent avoir le même nom. Nous avons une liste dynamique
(Vector) contenant les références sur les différents objets pour un et même nom :
Un Vector est une liste chainée dynamique où l’on peut ajouter ou retirer les données
facilement. Une Treemap est une liste dynamique mais avec la particularité d’avoir deux
« colonnes » : une pour la clé et l’autre pour la donnée. Les clés sont automatiquement
triées par ordre alphanumérique lors de l’insertion d’une clé et d’une donnée. L’intérêt
d’une Treemap est d’obtenir rapidement une liste d’objet correspondant à une clé, ici le
short name. Car une Treemap utilise un algorithme très performant pour la recherche sur les
clés.
Pour une configuration, l’utilisateur peut à tout moment ajouter nouvelle langue. C'est-à-
dire que les short name seront traduits dans la nouvelle langue choisie. Une donnée a donc
un short name par langue. Par défaut, c’est l’anglais qui est installé. Voici le schéma final
pour l’indexation des short name classés par langue.
busbar
voltage level
Objet Objet
Objet
transformater
Vector
Objet Objet
Objet
Objet Objet
Objet
Treemap
clé donnée
Figure 21 : vue simplifiée du stockage des données
Page 44 sur 44
Outil de recherche simple et avancée Rapport de stage
Guillaume CERUTTI
Il y a en deux types de données dans une configuration, les Objets et les Template. Les
Template sont des modèles composés de plusieurs objets. Ces Template sont ensuite
instanciés, une ou plusieurs fois, dans une configuration d’un site. Les Template et les objets
sont dans deux vecteurs différents pour une raison d’optimisation, car une recherche est
faite soit en mode objet ou en mode Template. Cela nous évite de vérifier pour chaque
donnée stockée à quel type elles appartiennent, ce qui prendrait du temps en accès à la base
de données.
"FRENCH_28"
"barre"
0
1
"niveau tension"
Objet Objet
Objet
0
1
Objet Objet
Objet
"ENGLISH_28"
"busbar"
"voltage level"
0
1
Objet Objet
Objet
0
1
Objet Objet
Objet
« OBJECT »
« TEMPLATE »
« OBJECT »
« TEMPLATE »
« TEMPLATE »
« TEMPLATE »
« OBJECT »
« OBJECT »
Figure 22 : vue complète du stockage des données de l'indexation