Professional Documents
Culture Documents
SOMMAIRE
SOMMAIRE 1
FIGURE 1 : LES CENTRES DE RECHERCHE DE XEROX À TRAVERS LE MONDE 9 4
1 PRÉSENTATION 6
1.1 L’ENTREPRISE XEROX....................................................................................................8
1.1.1 Présentation de Xerox Corporation.....................................................................................8
1.1.2 Organisation interne.........................................................................................................10
1.1.3 Segmentation du marché.................................................................................................10
1.2 XEROX RESEARCH CENTER EUROPE.....................................................................................12
1.1.4 La SPD et l’équipe CodeX...............................................................................................13
1.2.1.1 Données clés...............................................................................................................14
1.2.1.2 Missions.......................................................................................................................14
1.1.5 La méthodologie SIGMA-PLUS et le système Scrum.....................................................15
2 LA MISSION
17
2.1 ORGANISATION...............................................................................................................18
2.2 LA FEUILLE DE ROUTE DE LA MISSION..................................................................................19
9 CONCLUSION
96
ANNEXES
98
SOMMAIRE DES ANNEXES....................................................................................99
A.1 DEFINITIONS........................................................................................................100
A.2 LE PLANNING..............................................................................................................101
A.3.1 FICHE DE MODIFICATION..............................................................................................102
A.3.2 FICHE DE TACHES.....................................................................................................103
A.3.3 COMPTE RENDU DE REUNION.....................................................................................104
R.1 BIBLIOGRAPHIE............................................................................................................109
R.2 WEBOGRAPHIE............................................................................................................110
3
Présentation de la société
4
Présentation de la société
Introduction
Pour mettre leurs produits et services sur le marché, de nombreux secteurs industriels
dépendent aujourd'hui de leurs activités internes et externes de développement logiciel.
Avec la forte pression pour fournir des produits innovants à un rythme toujours plus rapide, il
devient critique de résoudre ce type de problèmes. La plateforme CodeX du Centre de
recherche de Xerox de Meylan doit justement permettre de vaincre les obstacles qui empêchent
une utilisation efficace des logiciels et des ressources dans l'entreprise.
Pour la préparation du présent rapport, le terme « projet » fait référence au cadre du projet
CodeX dans son ensemble tandis que le terme mission porte sur le travail à réaliser par l’équipe
EERIE, étant entendu que chacun des trois élèves ingénieurs en assume une partie ou tâche.
5
Présentation de la société
1 PRÉSENTATION
6
Présentation de la société
7
Présentation de la société
Xerox Corporation Fondée en 1948, Xerox Corporation, initialement marque déposée du groupe
Haloid Company spécialisé dans la xérographie, Xerox est devenu, après de nombreuses fusions
et acquisitions, un groupe international présent dans le monde entier avec un chiffre d‘affaires
de 20 milliards $ et 61000 employés répartis sur les cinq continents.
L’approche du marché de Xerox part du principe que les documents sont essentiels pour de
nombreux processus d'entreprise, depuis la facturation jusqu'à la communication client, en
incluant la formation et la gestion des fichiers et archives, que ce soit sous forme papier ou
électronique.
Mais tout document a un coût et chaque entreprise cherche à augmenter son chiffre d'affaires
tout en réduisant les coûts et en améliorant la productivité. Or, d'après des expertises de
spécialistes du secteur, les coûts documentaires sont peu maîtrisés et encore moins mesurés.
Et globalement, ils estiment que ces coûts peuvent représenter, en moyenne, entre 5 et 15% du
chiffre d’affaires d'une entreprise. Ils estiment également qu’entre 17 et 25% de ces coûts
documentaires sont directement liés à la production documentaire.
On comprend qu’il soit difficile pour un grand nombre d’organisations de réunir des millions de
documents, de les numériser, de les regrouper, de les indexer pour permettre la recherche par
mots-clés, puis de les transférer en même temps vers différents emplacements et bases de
données pour qu'ils soient réorientés vers d'autres supports. Ainsi, entre autres solutions, Xerox
propose, pour le seul environnement de bureau, des réductions des coûts de gestion
documentaire d'au moins 25.
8
Présentation de la société
Il s'agit d'une société internationale spécialisée dans les solutions visant à simplifier le
travail et à rendre les entreprises plus productives. Que ce soit pour une petite entreprise ou
pour une multinationale, Xerox offre des produits et des services susceptibles de les aider à
améliorer leurs processus de gestion; abaisser leurs coûts; écourter les délais d'exécution et
partager les informations à caractère critique.
9
Présentation de la société
• le PSG (Production System Group) travaille sur l’impression des documents à grande
échelle et sur la conception des machines et des systèmes d’impression.
• le XOG (Xerox Office Groupe) est chargé des applications en réseau et des services
offerts aux bureaux et organisations administratives en matière de photocopieurs,
d’imprimantes, etc.
• le XGS (Xerox Global Services) fournit des services informatiques spécialisés aux
entreprises.
C’est depuis ses débuts sous le nom de Haloid Company, que Xerox a fait le choix d’investir
en permanence une part substantielle de ses recettes dans la recherche fondamentale et
appliquée et beaucoup de technologies considérées aujourd'hui comme évidentes ont été
conçues ou améliorées dans les centres Xerox. On comprend alors pourquoi aujourd'hui encore,
Xerox est encore plus attaché à son investissement dans la recherche.
Les principaux clients de Xerox sont des professionnels comme l’indique son fameux
slogan "Printing for Professional" mais les ménages occupent une place de plus en plus
importante dans le créneau des imprimantes et notamment des imprimantes multi-fonctions
(scanner, fax photocopieur). Sur le plan géographique, l’indique la figure 2 suivante, les
principales sources de revenus de Xerox sont l’Amérique (60%) et l’Europe (33%).
10
Présentation de la société
Avec plus de 5000 brevets déposés dans le monde, le groupe Xerox a acquis une
position dominante sur les marchés mondiaux en fournissant des produits et des services de
haute technologie, qui se distinguent non seulement par leur qualité, fiabilité, productivité,
robustesse et simplicité d’utilisation, mais aussi par leur respect de l’environnement.
11
Présentation de la société
Xerox Research Centre Europe mène les activités de recherche propres à Xerox en
Europe, en coordonnant recherche, ingénierie et le « Technologie Showroom », une
démonstration « vitrine » de la recherche Xerox pour les clients et forum d’échange.
Le centre développe aussi des relations avec la communauté scientifique Européenne, à travers
des projets collaboratifs et des partenariats. XRCE crée des technologies de gestion
documentaire innovantes pour soutenir la croissance dans les services concernés. La recherche
concerne le traitement de l’image et du texte, les structures de documents, l’étude et la
compréhension des pratiques en matière de travail.
12
Présentation de la société
Le XRCE abrite également l’une des plus importantes entités du groupe, la SDP (Smart
Document Platform) qui, comme indiqué dans les figures 4 et 5 suivantes, dépend de la filiale
américaine du groupe et qui comprend trois composantes, la Plateforme d’accueil de
technologies (2 ingénieurs), le Categorizer (4 informaticiens) et le CodeX (7 ingénieurs).
13
Présentation de la société
1.2.1.2 Missions
Au sein de la SPD, le projet CodeX (projet à part entière et cadre la mission de l’équipe
MTM) a pour principales missions :
14
Présentation de la société
La méthodologie SIGMA-PLUS (Six Sigma et Lean Six Sigma) est utilisée par XRCE
comme méthode d’amélioration de la qualité reposant sur la maîtrise statistique des procédés
de traitement de l’information.
C’est aussi un mode de management qui repose sur une organisation très encadrée dédiée à la
conduite de projet. Cette méthode est aujourd'hui utilisée par de nombreuses entreprises, en
complément ou en remplacement des systèmes de management de la qualité suivant la norme
ISO9000.
En effet et plus particulièrement en ce qui concerne Six Sigma, la méthode est à même de
satisfaire les clients en réduisant la variabilité des processus de l’entreprise, ses coûts et ses
parts de marchés.
Par contre, le système Lean-Six-Sigma associe les méthodes qualitatives du Lean
Management et du Six Sigma pour améliorer de manière substantielle la performance
logistique de l'entreprise.
L'idée qui a donné son nom à la méthode est de répondre aux possibilités de non conformité de
part et d'autres de la moyenne de 3 écarts-types (les fameux 6 sigma) en maîtrisant ces causes
grâce à l'utilisation de tableau de bord tels que les KPI logistiques.
Pour compléter les méthodes de développement proposées par SIX-SIGMA, Scrum, l’une des
sept méthodes agiles a été privilégiée. En rappelant qu’une méthode agile (cf. Annexe XX
relative aux Méthodes Agiles) est une méthode de développement informatique permettant de
concevoir des logiciels en impliquant au maximum le demandeur, il faut noter qu’il s’agit de
techniques plus pragmatiques que les techniques traditionnelles puisqu’elles visent la
satisfaction du besoin du client plus que la réalisation du contrat établi préalablement.
Ainsi, la Méthode Scrum, terme emprunté au rugby signifiant la mêlée, est orientée vers le
domaine du développement informatique de la gestion du travail.
15
Présentation de la société
Scrum est une méthode Agile pour la gestion de projets. Elle a été conçue pour améliorer
grandement la productivité dans les équipes souvent paralysées par des méthodologies plus
lourdes. Les racines de Scrum se retrouvent dans la publication de Takeuchi et Nonaka dans
"The New Product Development Game" (Havard Business Review, Jan-Fév 1986).
Bien que Scrum ait été conçue pour la gestion de projets de développement de logiciels,
elle peut être utilisée dans des équipes en cours de maintenance, ou comme une approche de
gestion de programmes équipe CodeX.
16
Gestion du projet
2 LA MISSION
17
Gestion du projet
2.1 ORGANISATION
Pour une meilleure visibilité du travail à effectuer, qui s’insère logiquement dans le projet
CodeX, les responsables de XRCE ont élaboré un cahier de charge dont le contenu permet
d’établir aussi bien les tâches à accomplir que les limites de la mission.
L’objectif de la mission est d’étudier les perspectives de mise en place d’un mode "hors-ligne"
(offline) qui permette d'utiliser un certain nombre de services de CodeX sans être connecté au
serveur. Comme cela sera détaillé dans la partie « Réalisation », l’exécution de la mission devait
logiquement passer par les étapes d’étude de la faisabilité du mode hors-ligne par service, de
mise en place des interfaces API nécessaires et de développement de l’application cliente
fonctionnant de manière autonome.
Aussi la démarche de développement des applications retenue a intégré, d’une part, la feuille de
route de la mission de l’équipe EERIE (objectifs et du projet et planning de travail), d’autre part,
l’engagement de qualité et, enfin, l’évaluation des risques.
18
Gestion du projet
On peut résumer la feuille de route de la mission confiée à l’équipe MTM à ses deux
aspects « objectifs généraux» et « étapes principales ».
19
Gestion du projet
20
Gestion du projet
3 GESTION DU PROJET
21
Gestion du projet
- Leur Interopérabilité : CodeX client hors ligne utilise le protocole Soap pour
l’échange des données avec le serveur CodeX, et
- Leur Maturité et leur tolérance aux fautes : l'application développée étant privée, des
exigences en maturité et en tolérance aux fautes sont donc réclamées
22
Gestion du projet
23
Gestion du projet
Le processus de contrôle des risques exige à la fois leur auto détection préalable, leur
réévaluation permanente et la prévision des nouveaux risques (figure 5 ci-après).
24
Gestion du projet
25
Gestion du projet
26
Gestion du projet
27
Gestion du projet
Les développements envisagés allaient tenir compte à la fois des macro tâches et
des jalons et livrables qui leur sont associés.
Compte tenu de l’indépendance qui existe entre les interfaces de publication et les APIs
(qui ont en seul point commun l’utilisation des WEB-Services), les deux processus de
développements peuvent être engagés, en parallèle, dans le cadre d’un « cycle de vie en V »
avec possibilité de parallélisme. Les macros tâches qui en résultent ainsi que leur cheminement
(figure 8) sont indiquées ci-après :
28
Gestion du projet
Auto-formation
Réunion de lancement Compréhension du sujet
technique
Début : 06/02/06 Début : 08/02/06
Début : 09/02/06
Fin : 07/02/06 Fin : 09/02/06
Fin : 20/02/06
Réalisation du service « My
Account» Gestion de projet et suivi
Quantité Spécification et conception
Début : 20/02/06 des IHMs du service
Fin : 21/02/06 Début : 20/02/06
« Trackers »
Fin : 25/08/06
Début : 18/04/06
Fin : 06/05/06
Réalisation de la
fonctionnalité « Récupération
Réalisation du service «
des données »
Trackers»
Début : 08/05/06
Fin : 07/02/06 Début : 20/02/06
Fin : 21/02/06
Réalisation de la
fonctionnalité Tests d'interaction interne et
« Synchronisation des externe des fonctionnalités Revue Finale
de CodeX Offline
données » Début : 20/02/06
Début : 20/02/06 Fin : 21/02/06
Début : 20/02/06 Fin : 21/02/06
Fin : 21/02/06
30
Gestion du projet
31
Gestion du projet
On suppose, pour la gestion des modifications, que tout acteur du projet peut à tout
moment effectuer une demande de modification sous la forme d’une fiche modification
transmise au chef de projet qui effectue avec son auteur une étude d’impact de la modification
sur les charges et planning. Il peut s'agir d'une mise à niveau, d'une évolution, d'une anomalie,
d'une extension ou d'une correction. Les modifications font l’objet d’une fiche modification et
sont validées par le comité opérationnel ou le comité de pilotage.
Destinée à consigner les modifications apportées à un produit logiciel (code source, test,
document, etc.) et liée à un numéro attribué séquentiellement, la fiche de modification (cf.
modèle en Annexe XX) est destinée à collecter l’échange d’informations entre un demandeur et
un réalisateur, sur les actions à entreprendre à la suite d’un problème détecté. Cette fiche
informe, en outre, sur l’impact, le coût et les délais de réalisation.
32
Gestion du projet
Lorsqu’une tâche doit être modifiée, elle doit être renseignée par une fiche de modification de
tâche afin que ses principaux responsables comme tous les acteurs du projet soient au courant.
C‘est ainsi qu’une courbe d’avancement est établie régulièrement afin de mesurer
l’avancement global du projet.
Par ailleurs, un suivi au niveau du plan de qualité a été mis en place, lié à l’obligation de
validation de chaque document par le chef du projet après un cycle auteur/lecteur réalisé par
l’équipe de maîtrise d’œuvre. Celle-ci tient une réunion hebdomadaire avec les membres de
l’équipe afin de mesurer l’avancement global du projet mais aussi le niveau de réalisation des
tâches en cours de chacun des membres de l’équipe. Les comptes rendus de ces réunions sont
conservés en tant qu’enregistrement qualité.
33
Gestion du projet
Conception globale.
Conception détaillée.
Documentations liées au code source.
Documentations liées aux tests
34
Gestion du projet
1.1.22Les interfaces
Il faut aussi retenir que l’équipe est amenée à réaliser des interfaces donnant la
même visibilité à CodeX depuis l’extérieur, autrement dit, à prévoir les mêmes interfaces
que CodeX on-line, permettant aux utilisateurs autorisés l’affichage complet de ses projets
et les services qui y sont associés en mode hors ligne. Comme le montre la figure 9
suivante, on peut distinguer alors deux types d’utilisateurs potentiels :
• des utilisateurs non connectés au système qui peuvent visualiser les contenus
• des utilisateurs connectés au système qui, selon les droits attribués, peuvent ou
non éditer des contenus.
Vérification
des Droits
Codex
35
Gestion du projet
L’ensemble de la mission étalée sur une durée de sept mois (début février à fin août
2006) devait tenir compte, suite à l’étude des tâches et à la planification, à la fois de la charge
de travail estimée à 210 jours/homme pour l’ensemble du projet, autrement dit, 137 jours par
individu et des contraintes temporelles liées aux points de projet et aux revues.
Etant convenu qu’au cours du déroulement du projet, les responsabilités de chaque membres
de l’équipe pouvaient changer au cours de l’avancement des travaux, les plannings des
réunions « points de projet » et des revues ont été établis suite à plusieurs réunions de travail
formelles ou informelles.
36
Gestion du projet
37
Gestion du projet
4 ANALYSE
38
Gestion du projet
39
Gestion du projet
En s'appuyant sur les succès obtenus grâce aux outils et aux méthodes de travail du domaine
Open Source, CodeX a privilégié deux dimensions indispensables au succès de la réutilisation de
logiciel, à savoir :
• Une infrastructure globale qui permet un partage et une réutilisation sans effort,
Codex offre une large panoplie d'outils et de services destinés à améliorer la productivité et
d'écourter le délai de mise sur le marché des produits. Il permet également de:
40
Gestion du projet
Rappelons qu’à l’origine, le site de Source Forge permettait aux utilisateurs du monde entier
d’éditer et d’utiliser des codes Open Source du fait de la licence GPL libre que l’entreprise
détenait. A partir de l’année 2000, CodeX a pu voir le jour en se basant sur SourceForge auquel
ont été apportés plusieurs améliorations et modifications, notamment aux niveaux de la
gestion des Trackers.
En 2001, quand SourceForge a décidé la fermeture de son site, un de ses développeurs reprit le
dernier code et l’appela Gforge tandis que SourceForge lança SFEE (en java) à destination des
entreprises.
CodeX GForge
41
Gestion du projet
Les clients payent souvent le prix fort pour pouvoir accéder aux services proposés par CodeX,
comme la correction des bugs, les possibilités offertes en matière d’ajout permanent de
nouvelles fonctions et la mise à dispositions de logiciels et de codes sources.
42
Gestion du projet
43
Gestion du projet
Aussi, pour répondre à ce type spécifique de besoins, CodeX a préféré s'appuyer sur des outils
et des technologies Open Source dont des millions d'utilisateurs ont apprécié les services
fiables.
• D’une part, CodeX reste une solution basée sur une interface Web qui s'appuie sur
PHP, un langage puissant, rapide et optimisé pour les applications Web. Les pages
du serveur CodeX sont délivrées par la plateforme Linux/Apache, leader actuel du
marché du web avec 62% de part de marché contre 30% seulement pour Microsoft.
• D’autre part, les données des projets sont prises en charge par le système de
gestion de bases de données MySQL connu pour ses performances et sa grande
stabilité.
• Enfin, CodeX s'installe sur toute machine équipée du système Red Hat Entreprise
Linux Server 3.0, un système d'exploitation totalement supporté, sûr et adapté aux
applications critiques.
Ainsi, si aujourd’hui le quatuor Linux – Apache – MySQL– PHP (connu sous l'acronyme 'LAMP') est
utilisé par des centaines de milliers de serveurs Web à travers le monde parce que sa flexibilité,
sa fiabilité et son efficacité sont reconnues. Les mêmes qualités font que la plateforme CodeX
convient aussi bien aux petites, moyennes ou grandes entreprises, d’autant plus qu’elle peut
servir aussi bien 10 que 10000 utilisateurs avec la même efficacité en termes de coût.
44
Gestion du projet
Cependant, la principale critique faite à la plate forme CodeX concerne à la fois l’impossibilité
d’accès au serveur depuis l’extérieur et l’absence de documentation sur les spécifications
techniques du projet, ce qui peut s’expliquer par des motifs de sécurité propres au groupe
Xerox, qui, par ailleurs, sont tout à fait compréhensibles.
45
Gestion du projet
5 SPÉCIFICATION
46
Gestion du projet
Pour les besoins fonctionnels, ont été retenus uniquement les besoins suivants qui ont
une priorité haute car le délai alloué au projet ne permet pas de traiter les besoins qui ne sont
pas essentiels :
47
Gestion du projet
48
Gestion du projet
System
«uses»
choisir les
services CodeX
«uses»
CodeX User
Authentification et
«uses»
gerer les sessions
«uses»
XML DB
«uses»
«uses»
49
Gestion du projet
Ce cas d’utilisation présente l’interaction entre les acteurs internes (XML BD & Soap APIs) et
externes (CodeX user) du système. Au moment de la création d’une nouvelle session,
l’utilisateur choisit les projets et les services associés, le système importe les données grâce à
des appels Soap et stocke les informations dans Base de données XML.
50
Gestion du projet
6 CONCEPTION
51
Gestion du projet
6.1 PROBLEMATIQUE
Les services offerts par CodeX dépendent de l’infrastructure globale sur laquelle
s'appuie la totalité de la communauté du développement logiciel de Xerox. Des services
comme My Account, Wiki, Subversion, CVS, Trackers, etc., font partie intégrante de cette
infrastructure.
Les trackers (ou outils de suivi au sens CodeX) désignent des structures complexes
représentées dans la base de données telles que les champs à utiliser et leurs valeurs
autorisées. Ils permettent d’assurer le suivi d’artifacts variées tels que des bugs, des tâches,
des fiches d’assistance, etc.
Ces structures de données dépendent nécessairement les unes des autres car chaque
artifacts est généré à partir d’un tracker qui, de son côté, permet de créer plusieurs
artifacts.
Par le biais de la plate-forme CodeX dite « en ligne », les utilisateurs ont la possibilité de
gérer leurs artifacts, leurs trackers, leurs projets et données personnelles, leurs outils de
suivi et systèmes de contrôle de version du code source, leurs listes de distribution, leurs
gestionnaires de fichiers et de documents, etc.
La partie administration des trackers ne devait en aucun cas être accessible en mode hors
ligne.
Après analyse, l’équipe a constaté que la mise en place d’une application hors ligne n’avait
pas lieu d’être pour certains services proposés par CodeX, comme Wiki, Doc Man, CVS, et a
conclu avec le maître d’ouvrage à la nécessité de consacrer l’application en priorité aux
services Trackers et My Account.
52
Gestion du projet
La mise en place d’une application CodeX en mode hors ligne passe par la nécessite de bien
distinguer le mode de communication et le mode de fonctionnement des applications de CodeX.
Le mode qui existe actuellement étant le mode dit « en ligne », la communication entre les
clients CodeX et le Server passe par le biais de requêtes http utilisées par les sites web
classiques.
En mode « en ligne », les utilisateurs peuvent visualiser par leurs navigateurs les pages web de
CodeX et ainsi accéder a ses différents services.
CodeX est aussi composé d’un Server Web Apache, d’un Server MySQL et d’une base de
données. Cependant, l’utilisation de la version « hors ligne » de CodeX se fera par biais de
requêtes SOAP rendues possible par le développement de web services cote serveur (API SOAP)
et de certains apis côté client (API AXIS).
53
Gestion du projet
54
Gestion du projet
Aujourd’hui, le Server CodeX est constitué d’un ensemble d’interfaces (APIs) définissant
des fonctions permettant d’accéder à la base de données. Aussi, l’une des phases importantes
de la mission a été celle de la création de web services permettant au client java de manipuler
les données de la base. Pour ce faire, un examen comparatif (cf tableau 4 suivant) de trois
différents types de Web services (REST, XML-RPC et SOAP) a été réalisée permettant de tirer les
constatations suivantes :
• SOAP : offre, malgré le fait qu’il soit plus complexe à implémenter, la possibilité
d’utiliser un grand nombre de types de données ainsi que des API RPC, ce qui a
orienté le maître d’ouvrage vers le choix de ce protocole qui permet de faire appel,
à distance, à des procédures Remote Procédure Call et de transporter sur des
réseaux une logique applicative.
Comme ce choix a facilité la définition notamment des services web qui offrent la possibilité de
relier, via le web, des composants logiciels hétérogènes. SOAP s’appuie sur un protocole de
transport (principalement le protocole HTTP mais aussi SMTP ou POP) ainsi que sur un langage
de structuration des données envoyées sous forme de messages, le langage XML.
Mais SOAP qui représente la méthode de communication privilégiée pour les services web, n’est
pas géré par PHP, aussi, l’équipe a dû recourir à un outil tiers pour ajouter la fonctionnalité
SOAP.
55
Gestion du projet
• NuSOAP : Avec nuSOAP, un codeur peut autoriser l'exploitation d'un service web
existant en incluant le fichier webservice.php. Ensuite, pour utiliser réellement le service,
il référencie le fichier WSDL en appelant la méthode à distance.
• Pear SOAP : Avec Pear SOAP, un codeur peut autoriser l'exploitation d'un service web
existant en incluant le fichier Client.php. Ensuite, pour utiliser réellement le service :
56
Gestion du projet
L’écriture du client CodeX hors-ligne nous ayant été imposée en langage Java, l’équipe
MTM a néanmoins imposé son point de vue sur le choix de la librairie SOAP à utiliser. Il a alors
été décidé de tirer la meilleur partie de la bibliothèque NuSOAP car il s’agit d’un groupe de
classes (distribuée sous licence LGPL) conçu pour gérer des services Web en SOAP mai aussi
pour créer en PHP de web service (basés sur SOAP).
L’accès aux services web passe nécessairement par l’utilisation des fichiers WSDL (Web
Services Description Language), un langage de description de Web Services, au format XML. Et
WSDL permet de séparer la description des fonctionnalités abstraites, offertes par un service, et
les détails concrets de cette description de service. De plus, des fonctionnalités telles que
"comment" et "où" y sont proposées.
Décrivant les fonctionnalités abstraites d'un service ainsi que son architecture, WSDL définit, de
manière indépendante du langage, l'ensemble des opérations et des messages qui peuvent être
transmis vers et depuis un service web. Le WSDL décrit, en outre, quatre ensembles de données
importants:
57
Gestion du projet
WSDL est donc retenu pour constituer la pierre angulaire de l'édifice Web Services, avec un
langage commun pour décrire les services et une plateforme pour intégrer automatiquement ces
services.
Mais pour que les fonctions des services web puissent être utilisable au niveau du client, l’équipe
a fait appel à l'utilitaire WSDL2Java. Ce choix devait faciliter (à partir de la description WSDL d'un
service) la génération des différentes classes et interfaces clientes nécessaires à l'appel des
services côté client et ainsi l’interopérabilité entre des fonctions créées en langage PHP et le
client JAVA.
La figure ci-dessous montre les différentes interactions entre l’application clientes et le Server
CodeX qui communiquent grâce aux APIs SOAP (côté Server) et aux Axis (côté Client) et par
l’intermédiaire des requêtes SOAP permettant l’interaction entre Client CodeX et Server CodeX.
58
Gestion du projet
Après étude et validation par le responsable du projet, il a été décidé que le principe de
fonctionnement de l’application hors ligne devait intégrer trois niveaux : récupération des
données, utilisation des services Trackers et My Account en local et synchronisation des données
avec le Server y compris la gestion des conflits éventuels.
59
Gestion du projet
Il s’agit de permettre aux utilisateurs CodeX de se connecter via une interface qui reprend
le même style que les pages du site web de CodeX. Ce « client Java » doit permettre aux
utilisateurs une fois authentifiées de choisir, d’une part, les projets et leurs différents Trackers, et
d’autre part, les services de CodeX qui leurs sont liés.
Ainsi, cette récupération doit faciliter la récupération des données liées aux trackers et aux
projets choisis par l’utilisateur pour être utilisés en local.
Cependant, le souci de réaliser un client java qui soit à la fois portable et nécessitant le moins
d’installation latérale possible, imposait à l’équipe de renoncer à l’installation d’un moteur SGBD
avec chaque client CodeX hors ligne. Par contre, il été décidé, par concensus, que les données
récupérées en locale seraient stockées dans des fichiers de type XML. Et chacun des fichiers
récupérés devait alors représenter les données d’une table de la base de données nécessaire
pour l’utilisation des services « Trackers » et « My Account ».
De cette manière, après authentification, l’utilisateur CodeX, peut par le biais du client CodeX
hors ligne, procéder aux choix des trackers et des projets qu’il souhaite récupérer en local. Ceci
engendrera la création d’une base de données locale incluant les seules données qui seront
manipulées par le client java. Et il est bien entendu que cette tâche, qui ne peut être effectué
qu’en mode en ligne, se fera par le biais d’APIs SOAP, comme nous le détaillerons en deuxième
partie du présent rapport.
Le client java permet donc d’utiliser les services de CodeX sur une machine non
connectée au Server de Xerox et les utilisateurs ont ainsi la possibilité d’éditer des données liées
à leur informations personnelles mais aussi à leur projets, à leur trackers et a leurs artifacts.
Cependant il faut rappeler qu’un utilisateur a la possibilité de récupérer les données liées aux
services Tracker appartenant aux membres de son groupe tout en respectant scrupuleusement
les droits liés aux données confidentielles. Pour cette raison, l’interface du client java propose un
client écrit en java, portable sur toutes les machines du réseau et reprenant les interfaces web
de CodeX. Au terme de cette étape, l’application CodeX hors ligne doit être utilisable sans
aucune connexion nécessaire ni au Server CodeX ni à internet.
Ce cas d’utilisation présente l’interaction entre les acteurs internes (XML BD & Soap APIs) et
externes (CodeX user) du système. Au moment de la création d’une nouvelle session,
60
Gestion du projet
l’utilisateur choisit les projets et les services associés, le système importe les données grâce à
des appels Soap et stocke les informations dans XML BD.
61
Gestion du projet
Comme la phase « récupération des données », cette partie nécessite également que le
client CodeX hors ligne soit connecté au server. En effet cette étape essentielle de l’application
permet de procéder à la mise a jour des données récupérées avec les données du Server.
Ainsi les données récupérées liées aux services « Trackers » ou « My Account » seront
synchronisées lors de cette étape avec les données locales récupérées et éventuellement
modifiées. C’est dans cette optique qu’il a fallu mettre en place une interface de gestion de
conflits qui offre la possibilité, à l’utilisateur désirant synchroniser ses données, de visualiser les
éventuels conflits de données et de choisir les opérations à effectuer.
Trois types d’opérations (Merge, Mise çà jour forcée et Déni de mise à jour) peuvent être choisis
pour chacun des types de données (artifact, fichiers attachés, dépendances, commentaires,
informations utilisateurs, compétences, profil, etc.). Pour simplifier, dans le cas de données de
type artifact, les trois opérations successives sont décrites ci-après.
- Le Merge permet, par exemple, de fusionner pour un artifact, les valeurs des
champs modifiés côté Server avec les modifications sur les champs côté Client tout en
respectant la règle qui veut qu’un artifact dont le même champs a été modifié à la fois
côté client et côté Server ne peut subir de Merge.
- La Mise a jour Forcée autorise notamment l’utilisateur à remplacer les valeurs des
artifacts stockées sur la base de donnée du Server par les artifacts modifiées côté
client.
On note que si la synchronisation des données est ainsi effectuée sur un certain nombre de
données modifiées et non pas sur l’ensemble des données récupérées, c’est dans le souci
d’accroître la rapidité de la synchronisation car seules les données ayant été modifiées devront
pouvoir être synchronisées avec les données du Server.
Cela a été rendu possible grâce à la mise en place d’un fichier de log destiné à enregistrer les
différentes mises à jour effectuées pour chacune des sessions ouvertes sur CodeX.
62
Gestion du projet
Ainsi, un même client java peut être utilisé par plusieurs clients différents et même plusieurs fois
par le même utilisateur en fonctions du nombre de sessions qu’il aura ouvertes sur CodeX Server
au moment de la récupération des données.
A chacune des sessions de cet utilisateur correspondra une sorte de base de données locale
(sans SGBD) composée de fichiers XML destinées à stocker les données récupérées dans des
structures XML.
63
Gestion du projet
6.4 DIAGRAMMES
1.1.26Diagramme de Classes
Database
+PROJECT_FILE : static final String = projects.xml
-path : String
-userName : String
-session : Session
-db : Database
-listServices : List<Integer >
+getInstance () : Database
+initDatabase (in _path : String, in _userName : String, in _session : Session , in _listServices : List <Integer>) : void
+createStructure() : void
+synchronize () : void «import»
CreateStructureMyAccount
package genere avec WSDL 2Java classes for mapping tracker tables to xml
«import» «import»
Account Account
Tracker SOAP Client Tracker Database
Database SOAP Client
«import»
classes for mapping account tables to xml package genere avec WSDL 2Java
«import»
CreateStructureTrackers
-MAX_ARTIFACT_IMPORT : static final int = 100
-ARTIFACT_GROUP_LIST_FILE : static final String = artifact_group_list .xml
-ARTIFACT_REPORT_FILE : String = artifact_report.xml SynchronizeMyAccount
-DIFF_FILE : static final String = diff.xml -user : User
-LOG_FILE : static final String = log.xml -userSkillInventory : UserSkill
-artifactGroupList : ArtifactType [] +SynchronizeMyAccount ()
-artifacts : Artifact[] +run() : void
-artifactReports : ArtifactReport[]
-artifactCanneds : ArtifactCanned []
-db : Database
-ARTIFACT_CANNED_RESPONSES _FILE : static final String = canned_responses.xml
-ARTIFACT_FOLLOWUP _FILE : static finalString
-ARTIFACT_FILE_FILE : static final String = artifact_file .xml
-ARTIFACT_DEPENDENCIES _FILE : static final String = artifact_dependencies .xml
-artifactFollowups : ArtifactFollowup [] 64
-artifactFiles : ArtifactFile []
-artifactDependencies : ArtifactDependence []
+CreateStructureTrackers (in listOfArtifactTypes : List <ArtifactType >)
+run() : void
Gestion du projet
65
Gestion du projet
Ce package contient les différentes classes qui représentent les fichiers XML manipules par le
service « Account ».
66
Gestion du projet
Ce package est génère avec l’utilitaire WSDL2Java d’ Axis qui contient les différentes classes et
interfaces clientes nécessaires à l'appel du service « MyAccount ».
67
Gestion du projet
Ce package contient les différentes classes qui représentent les fichiers XML manipules par le
service « Tracker ».
68
Gestion du projet
Ce package est génère avec l’utilitaire WSDL2Java d’ Axis qui contient les différentes classes et
interfaces clientes nécessaires à l'appel du service « Trackers ».
• La classe « ArtifactType » représente l’outil de suivi, qui gère
plusieurs artifacts.
69
Gestion du projet
1.1.27Diagrammes de séquences
La création d’une session nécessite l’appel de l’API SOAP « login » qui crée une
session dans le serveur CodeX et retourne sa clé de session ainsi que l’identifiant
de l’utilisateur, s’il existe sinon un message d’erreur est envoyé.
Si l'utilisateur veut créer une session, le système lui demande de s’authentifier ainsi s’il s’agit
d’un utilisateur inconnu au système, le système se connecte au serveur et vérifie que le compte
est valide ensuite il enregistre ces paramètres pour une authentification future.
70
Gestion du projet
71
Gestion du projet
Pour ouvrir une session, il est nécessaire que l’utilisateur soit authentifié, si l’utilisateur a
plusieurs sessions le système vérifie l’intégrité des sessions et liste celles qui sont valides
(OpenSession), ensuite elle se charge d’instancier l’objet « Database » qui établit la
communication entre le système et les données (similaire à JDBC Connection Pool Manager).
72
Gestion du projet
1.1.28Diagramme de déploiement
Partie cliente :
Le système utilise la librairie axis pour la communication SOAP avec le serveur CodeX
Le module « Database » se charge de :
• Invoquer les web services pour importer et synchroniser les données.
• stocker les données dans des structures XML
Partie Serveur constitue principalement d’un Serveur SOAP qui offre une gamme d’API SOAP qui
accèdent aux données grâce aux API CodeX.
73
Gestion du projet
Figure 13 : Configuration du
serveur Soap
74
Gestion du projet
Figure 15 : Connexion
au serveur CodeX
75
Gestion du projet
76
Gestion du projet
A partir de cette IHM « User Skills », l’utilisateur peut publier son CV sur CODEX et le modifier en cas
de besoin.
.
77
Gestion du projet
Cette interface représente la page d’accueil de l’outil de suivi, récapitulant l’ensemble des
trackers disponibles pour le projet choisi au début, cad au moment de la récupération des données
du serveur CodeX.
Dans l’exemple ci dessus, le projet chargé est « Loremplsum».
78
Gestion du projet
Après avoir sélectionner l’outil de suivi qui vous intéresse (voir Figure 19 [page 67]), un certain
nombre de fonctionnalités vous sont accessibles. Vous pouvez soumettre de nouveaux artefacts, les
modifier, effectuer des recherches et naviguer dans la base artefacts.
79
Gestion du projet
Dans cette interface, l’utilisateur peut rayonner vers d’autres espaces de travail et d’information
de codex tel que les artefacts(bugs, taches…)qui lui sont assignés ou qui a soumis. Vous pouvez ainsi
très facilement suivre l’évolution des artefacts dont vous êtes en charge dans vos projets ou ceux que
vous avez soumis à d’autres projets.
80
Gestion du projet
Cet écran comporte toutes les informations concernant L’artefact « task #7081 », qu’on peut
modifier, ajouter ou supprimer :
81
Gestion du projet
82
Gestion du projet
83
Gestion du projet
84
Gestion du projet
Cette interface permet à l’utilisateur de récupérer les outils de suivis choisis, pour consulter,
modifier, ajouter ou supprimer ses données.
85
Gestion du projet
86
Gestion du projet
87
Gestion du projet
88
Gestion du projet
7 TESTS ET CODAGES
89
Gestion du projet
Jalon 1
Jalon 2
Une fois les APIs du service « My Account » mise en place, il a fallut procéder a la création
des interfaces du dit service.
L’une des contraintes consistait à devoir reproduire sur le client les mêmes interfaces qui
existent déjà sur codeX.
La récupération des données entraîne leur stockage dans des structures XML, pour chaque
session ouverte sur CodeX.
Ce service induit la récupération et le stockage de donnée tels que les informations
utilisateurs, le profil et les compétences.
On note toutefois que, pour le service « My Account », les données récupérées ne sont
fonction que de l’utilisateur et ne dépendent donc pas du projet et des trackers sélectionnés
pour la récupération.
90
Gestion du projet
Jalon 3
Les « Artiacts »,
Les fichiers attachés à un artiact,
Les commentaires sur un artiact,
Les dépendances entre artifacts.
Les données récupérées sont celles en relation avec les « Trackers » tels que
Les « Artifact Types » (les trackers),
Les « Artiact Report » (visualisation des Artifact d’un tracker en fonction d’une
requête sur un ou plusieurs de ses champs),
Les « Artifact Canned Response ».(reponses types à un commentaire)
Cependant, dans le cas du service « Tracker » les données récupérées dépendent des projets et
des trackers sélectionnés par l’utilisateur avant la récupération.
Jalon 4
Le service « Tracker » deviens disponible sur le client CodeX et permet d ‘afficher des reports (l’affichage des
artefact), d’éditer et de créer des artefacts en y ajoutant des fichiers, des commentaires ou des dépendances
tout en respectant scrupuleusement les interfaces de CodeX.
Il permet également l affichage d’artefact en fonction de requête d affichage sur les champs des artefacts.
Le service « Tracker » permet également une prise en charge des droits sur les champs des artefacts
permettant d'afficher et/ou d’éditer ou non les champs concernés.
91
Gestion du projet
8 EVALUATION « ASSESSMENT »
92
Gestion du projet
En cours d’exécution du plan, Nous avons du examiner l’existant et vérifier que les objectifs du plan étaient
tenus, de même que les échéances….
Nous avons également procédé a une vérification des risques identifiés afin de savoir si ils représentent des
problème potentiels ou si ils ont été finalement surestimés.
Outils
Pour savoir si on tient nos objectifs, on a eu besoin d’informations quantifiées et d’analyses de problèmes
rencontrés (pour en tirer les leçons).
Analyse Causale
- Au niveau technique :
- Aucun problème.
Enseignement
- Technique :
93
Gestion du projet
- Relationnel :
- Gestion de projet:
Décisions
- Côté « Client »:
Actions
94
Gestion du projet
La diversité des travaux qu’on a pu mener (participation à part entière dans la vie du projet Codex), le
nombre de personnes qu’on a côtoyé ainsi que l’autonomie qui nous été donnée ont contribué à faire de ce
stage une expérience enrichissante d’un point de vue humain, mais aussi sur le plan professionnel.
Il nous a fallut planifier efficacement notre travail (réalisation de plans) et faire un suivi des tâches à réaliser
(feuille Excel de Tracking). Les petits écarts par rapport aux prévisions ont pu être rapidement identifiés, pour
pouvoir y apporter des justifications et ainsi y remédier.
La communication et le travail en équipe ont également été des éléments décisifs à la réussite de ce projet. Il
est indispensable de savoir intéresser son interlocuteur tout en étant à son écoute. Chacun a ses propres
préoccupations et les collaborateurs n’ont pas forcément beaucoup de temps à nous consacrer. C’est pourquoi
il faut toujours veiller à être clair et concis dans ce que l’on dit .
D’autre part, nous avons pu collaborer et discuter avec bon nombre d’ingénieurs logiciel (« des professionnels
du développement, de sémantique) afin d’accumuler de nombreuses informations issues des secteurs avec
lesquels on n’était pas particulièrement familiarisés.
Bref, l’accomplissement de ce stage nous a résolument ouvert les yeux sur le métier d’ingénieurs
Informaticiens, qu’il soit ingénieur de qualité, de développement ou n’importe qu’elle autre spécialité.
95
Gestion du projet
9 CONCLUSION
96
Gestion du projet
9 CONCLUSION
C’est depuis ses débuts sous le nom de Haloid Company, que Xerox a fait le choix d’investir
en permanence une part substantielle de ses recettes dans la recherche fondamentale et
appliquée et beaucoup de technologies considérées aujourd'hui comme évidentes ont été
conçues ou améliorées dans les centres Xerox. On comprend alors pourquoi aujourd'hui encore,
Xerox est encore plus attaché à son investissement dans la recherche.
Ces sept mois de stage nous ont permis de découvrir le fonctionnement du projet CodeX
de l’entreprise Xerox dans sa globalité tout en menant à bien les différents travaux qui nous
entaient confié. Ce fut pour nous une expérience très formatrice et particulièrement enrichissante
autour de plusieurs pôles.
A travers notre initiation au mode de relation issu d’un projet de développement, nous avons été
amenés à affronter des problèmes concrets, en nous remettant en question quand cela était
nécessaire, et en faisant preuve de diplomatie.
Ecouter les autres, faire profiter de son savoir-faire sans l’imposer, entrent dans une
démarche de progrès. Tous ces aspects nous confortent dans l’idée de construire notre vie
professionnelle autour du monde de l’informatique et la qualité logicielle où des progrès reste à
faire pour changer les mentalités et ainsi améliorer continuellement les processus de
développement logiciel,
97
Annexes
ANNEXES
98
Annexes
ANNEXE 1 : Définition
ANNEXE 2 : Le Planning
Fiche de modification
Fiche de tâches
Compte rendu de réunion
Fiche de validation du plan de qualité
Fiche suiveuse de l’évolution du Projet
Fiche d’anomalie des tests d’intégration
ANNEXE 5 : Références
R1 : Bibliographies
R2 : Webographies
99
Annexes
A.1 DEFINITIONS
• Artefacts Tout type d’items faisant l’objet d’un suivi, il peut s’agir de bugs, tâches, fiches
D’assistances, d’anomalies…
100
Annexes
A.2 LE PLANNING
101
Annexes
N° FM : 5
Fiche de Modification
- Modification proposé par : - Date du : 15/07/2006
ED-daou Majdouline
102
Annexes
N
° Résultat Responsab Date Date
Description Origine ou cause Et
Tâc attendu le cible réelle
at
he
Equipe MTM
103
Annexes
Réunion du : 07/02/06
Durée : 45 min
Lieu : salle « Mont Rose »
Compte rendu de
réunion
« Réunion de lancement »
Ordre du jour :
- Mise au point sur la mission qui nous a été confié, l’environnement de travail…..etc.
- Définition des étapes à suivre pour la réalisation de ce projet.
- Spécification des Tâches à réaliser dans une quinzaine de jours
- Affectation des Tâches au membre de l’équipe MTM
Détails :
Décisions prises :
104
Annexes
Date : 25/02/06
105
Annexes
Spécification 1 10/05/06 EC
http://codex.xerox.com/svn....
Fonctionnel
Conception 1 10/05/06 EC
http://codex.xerox.com/svn....
Préliminaire
Réalisation 1 10/05/06 EC
http://codex.xerox.com/svn....
106
Annexes
Test N° :
Déroulement type :
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
Cause de l’anomalie :
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
107
Annexes
108
Annexes
R.1 BIBLIOGRAPHIE
109
Annexes
R.2 WEBOGRAPHIE
110