conception d’un outil de recherche rapide et...

47
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

Upload: others

Post on 05-Oct-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Conception d’un outil de recherche rapide et avancéeguillaume.cerutti.free.fr/dotclear/public... · Page 1 sur 44 Outil de recherche simple et avancée Rapport de stage Guillaume

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

Page 2: Conception d’un outil de recherche rapide et avancéeguillaume.cerutti.free.fr/dotclear/public... · Page 1 sur 44 Outil de recherche simple et avancée Rapport de stage Guillaume

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.

Page 3: Conception d’un outil de recherche rapide et avancéeguillaume.cerutti.free.fr/dotclear/public... · Page 1 sur 44 Outil de recherche simple et avancée Rapport de stage Guillaume

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 4: Conception d’un outil de recherche rapide et avancéeguillaume.cerutti.free.fr/dotclear/public... · Page 1 sur 44 Outil de recherche simple et avancée Rapport de stage Guillaume

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 5: Conception d’un outil de recherche rapide et avancéeguillaume.cerutti.free.fr/dotclear/public... · Page 1 sur 44 Outil de recherche simple et avancée Rapport de stage Guillaume

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 6: Conception d’un outil de recherche rapide et avancéeguillaume.cerutti.free.fr/dotclear/public... · Page 1 sur 44 Outil de recherche simple et avancée Rapport de stage Guillaume

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 7: Conception d’un outil de recherche rapide et avancéeguillaume.cerutti.free.fr/dotclear/public... · Page 1 sur 44 Outil de recherche simple et avancée Rapport de stage Guillaume

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 8: Conception d’un outil de recherche rapide et avancéeguillaume.cerutti.free.fr/dotclear/public... · Page 1 sur 44 Outil de recherche simple et avancée Rapport de stage Guillaume

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 9: Conception d’un outil de recherche rapide et avancéeguillaume.cerutti.free.fr/dotclear/public... · Page 1 sur 44 Outil de recherche simple et avancée Rapport de stage Guillaume

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 10: Conception d’un outil de recherche rapide et avancéeguillaume.cerutti.free.fr/dotclear/public... · Page 1 sur 44 Outil de recherche simple et avancée Rapport de stage Guillaume

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 11: Conception d’un outil de recherche rapide et avancéeguillaume.cerutti.free.fr/dotclear/public... · Page 1 sur 44 Outil de recherche simple et avancée Rapport de stage Guillaume

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 12: Conception d’un outil de recherche rapide et avancéeguillaume.cerutti.free.fr/dotclear/public... · Page 1 sur 44 Outil de recherche simple et avancée Rapport de stage Guillaume

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 13: Conception d’un outil de recherche rapide et avancéeguillaume.cerutti.free.fr/dotclear/public... · Page 1 sur 44 Outil de recherche simple et avancée Rapport de stage Guillaume

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 14: Conception d’un outil de recherche rapide et avancéeguillaume.cerutti.free.fr/dotclear/public... · Page 1 sur 44 Outil de recherche simple et avancée Rapport de stage Guillaume

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 15: Conception d’un outil de recherche rapide et avancéeguillaume.cerutti.free.fr/dotclear/public... · Page 1 sur 44 Outil de recherche simple et avancée Rapport de stage Guillaume

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 16: Conception d’un outil de recherche rapide et avancéeguillaume.cerutti.free.fr/dotclear/public... · Page 1 sur 44 Outil de recherche simple et avancée Rapport de stage Guillaume

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 17: Conception d’un outil de recherche rapide et avancéeguillaume.cerutti.free.fr/dotclear/public... · Page 1 sur 44 Outil de recherche simple et avancée Rapport de stage Guillaume

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 18: Conception d’un outil de recherche rapide et avancéeguillaume.cerutti.free.fr/dotclear/public... · Page 1 sur 44 Outil de recherche simple et avancée Rapport de stage Guillaume

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 19: Conception d’un outil de recherche rapide et avancéeguillaume.cerutti.free.fr/dotclear/public... · Page 1 sur 44 Outil de recherche simple et avancée Rapport de stage Guillaume

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 20: Conception d’un outil de recherche rapide et avancéeguillaume.cerutti.free.fr/dotclear/public... · Page 1 sur 44 Outil de recherche simple et avancée Rapport de stage Guillaume

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 21: Conception d’un outil de recherche rapide et avancéeguillaume.cerutti.free.fr/dotclear/public... · Page 1 sur 44 Outil de recherche simple et avancée Rapport de stage Guillaume

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 22: Conception d’un outil de recherche rapide et avancéeguillaume.cerutti.free.fr/dotclear/public... · Page 1 sur 44 Outil de recherche simple et avancée Rapport de stage Guillaume

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 23: Conception d’un outil de recherche rapide et avancéeguillaume.cerutti.free.fr/dotclear/public... · Page 1 sur 44 Outil de recherche simple et avancée Rapport de stage Guillaume

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 24: Conception d’un outil de recherche rapide et avancéeguillaume.cerutti.free.fr/dotclear/public... · Page 1 sur 44 Outil de recherche simple et avancée Rapport de stage Guillaume

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 25: Conception d’un outil de recherche rapide et avancéeguillaume.cerutti.free.fr/dotclear/public... · Page 1 sur 44 Outil de recherche simple et avancée Rapport de stage Guillaume

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 26: Conception d’un outil de recherche rapide et avancéeguillaume.cerutti.free.fr/dotclear/public... · Page 1 sur 44 Outil de recherche simple et avancée Rapport de stage Guillaume

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 27: Conception d’un outil de recherche rapide et avancéeguillaume.cerutti.free.fr/dotclear/public... · Page 1 sur 44 Outil de recherche simple et avancée Rapport de stage Guillaume

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 28: Conception d’un outil de recherche rapide et avancéeguillaume.cerutti.free.fr/dotclear/public... · Page 1 sur 44 Outil de recherche simple et avancée Rapport de stage Guillaume

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 29: Conception d’un outil de recherche rapide et avancéeguillaume.cerutti.free.fr/dotclear/public... · Page 1 sur 44 Outil de recherche simple et avancée Rapport de stage Guillaume

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 30: Conception d’un outil de recherche rapide et avancéeguillaume.cerutti.free.fr/dotclear/public... · Page 1 sur 44 Outil de recherche simple et avancée Rapport de stage Guillaume

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 31: Conception d’un outil de recherche rapide et avancéeguillaume.cerutti.free.fr/dotclear/public... · Page 1 sur 44 Outil de recherche simple et avancée Rapport de stage Guillaume

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 32: Conception d’un outil de recherche rapide et avancéeguillaume.cerutti.free.fr/dotclear/public... · Page 1 sur 44 Outil de recherche simple et avancée Rapport de stage Guillaume

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 33: Conception d’un outil de recherche rapide et avancéeguillaume.cerutti.free.fr/dotclear/public... · Page 1 sur 44 Outil de recherche simple et avancée Rapport de stage Guillaume

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 34: Conception d’un outil de recherche rapide et avancéeguillaume.cerutti.free.fr/dotclear/public... · Page 1 sur 44 Outil de recherche simple et avancée Rapport de stage Guillaume

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 35: Conception d’un outil de recherche rapide et avancéeguillaume.cerutti.free.fr/dotclear/public... · Page 1 sur 44 Outil de recherche simple et avancée Rapport de stage Guillaume

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 36: Conception d’un outil de recherche rapide et avancéeguillaume.cerutti.free.fr/dotclear/public... · Page 1 sur 44 Outil de recherche simple et avancée Rapport de stage Guillaume

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 37: Conception d’un outil de recherche rapide et avancéeguillaume.cerutti.free.fr/dotclear/public... · Page 1 sur 44 Outil de recherche simple et avancée Rapport de stage Guillaume

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 38: Conception d’un outil de recherche rapide et avancéeguillaume.cerutti.free.fr/dotclear/public... · Page 1 sur 44 Outil de recherche simple et avancée Rapport de stage Guillaume

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 39: Conception d’un outil de recherche rapide et avancéeguillaume.cerutti.free.fr/dotclear/public... · Page 1 sur 44 Outil de recherche simple et avancée Rapport de stage Guillaume

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 40: Conception d’un outil de recherche rapide et avancéeguillaume.cerutti.free.fr/dotclear/public... · Page 1 sur 44 Outil de recherche simple et avancée Rapport de stage Guillaume

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 41: Conception d’un outil de recherche rapide et avancéeguillaume.cerutti.free.fr/dotclear/public... · Page 1 sur 44 Outil de recherche simple et avancée Rapport de stage Guillaume

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 42: Conception d’un outil de recherche rapide et avancéeguillaume.cerutti.free.fr/dotclear/public... · Page 1 sur 44 Outil de recherche simple et avancée Rapport de stage Guillaume

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 43: Conception d’un outil de recherche rapide et avancéeguillaume.cerutti.free.fr/dotclear/public... · Page 1 sur 44 Outil de recherche simple et avancée Rapport de stage Guillaume

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 44: Conception d’un outil de recherche rapide et avancéeguillaume.cerutti.free.fr/dotclear/public... · Page 1 sur 44 Outil de recherche simple et avancée Rapport de stage Guillaume

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 45: Conception d’un outil de recherche rapide et avancéeguillaume.cerutti.free.fr/dotclear/public... · Page 1 sur 44 Outil de recherche simple et avancée Rapport de stage Guillaume

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 46: Conception d’un outil de recherche rapide et avancéeguillaume.cerutti.free.fr/dotclear/public... · Page 1 sur 44 Outil de recherche simple et avancée Rapport de stage Guillaume

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 47: Conception d’un outil de recherche rapide et avancéeguillaume.cerutti.free.fr/dotclear/public... · Page 1 sur 44 Outil de recherche simple et avancée Rapport de stage Guillaume

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