Vous êtes sur la page 1sur 93

Etude

des solutions dam


elioration de la Maintenance
Applicative par lint
egration de logiciels open source en
entreprise
Stephane Glattleider

To cite this version:

Stephane Glattleider. Etude


des solutions damelioration de la Maintenance Applicative par
lintegration de logiciels open source en entreprise. Software Engineering. 2011. <dumas00574247>

HAL Id: dumas-00574247


http://dumas.ccsd.cnrs.fr/dumas-00574247
Submitted on 7 Mar 2011

HAL is a multi-disciplinary open access


archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

Larchive ouverte pluridisciplinaire HAL, est


destinee au depot et `a la diffusion de documents
scientifiques de niveau recherche, publies ou non,
emanant des etablissements denseignement et de
recherche francais ou etrangers, des laboratoires
publics ou prives.

Conservatoire National des Arts et Mtiers


Paris
MEMOIRE
Prsent en vue dobtenir le

DIPLOME DINGENIEUR DU CNAM


en

INFORMATIQUE OPTION DES


SYSTEMES D'INFORMATION
Par

Stphane GLATTLEIDER

Etude des solutions damlioration de la Maintenance Applicative par


lintgration de logiciels open source en entreprise
Soutenu le 21/01/2011

Jury:
PRESIDENT :

I. WATTIAU (CNAM)

MEMBRES :

N. LAMMARI (CNAM)
J. AKOKA (CNAM)
L. MOUKOUKENOFF (Paritel)
P. SUAEZ (Paritel)

REMERCIEMENTS

Mes premiers remerciements s'adressent Monsieur Ludovic MOUKENNOF directeur des


systmes dinformation du groupe Global Concept qui ma accord sa confiance pour la
ralisation de cette tude durant ma mission de prestataire au sein de son entreprise.
Ensuite, je tiens remercier les personnes qui mont conseill et soutenu durant lcriture de cette
tude de cas, en particulier
-

Frdric DELAUNAY, Jean Damien MOTTOT et Anthony MARECHAL pour leur

patience et leurs judicieux conseils techniques.


-

Michle COLLET GLATTLEIDER et Liliane MESSIKA pour leur rle ingrat et difficile de

premires lectrices.
Enfin, un dernier remerciement au Conservatoire National des Arts et Mtiers pour
l'enseignement suivi et plus particulirement Monsieur Jacky AKOKA, pour m'avoir
accompagn avec bienveillance durant toute la dure de ce mmoire.

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 2 / 92

RESUME

La socit Viatelease du groupe Global Concept recherche des solutions fiables et conomiques
pour amliorer la qualit de ses processus de maintenance applicative. Dans ce cadre, la direction
informatique a souhait mettre en uvre les logiciels open source Mantis de suivi danomalies et
MediaWiki de gestion des connaissances. Ce mmoire se prsente comme un cas dtude dans
lequel nous allons mesurer la capacit de ces logiciels open source sadapter et sintgrer dans
un systme dinformation dentreprise. Aprs avoir dfini les processus de maintenance cibles,
nous prsenterons leur installation, lamlioration de leurs fonctionnalits et leur interconnexion
avec dautres applications. Enfin, nous confronterons les aspects techniques de ce projet aux
rsultats dune enqute de retour dexprience.
Mots cls : Mantis, MediaWiki, Open Source, Maintenance applicative, Cas dtude, Retour
dexprience

SUMMARY
Viatelase, a company belonging to Global Concept group, researches reliable and economical
solutions to improve the quality of its application maintenance process. In this framework, the IT
department decided to implement open source software: Mantis for bug tracking, and MediaWiki
for knowledge management. This thesis appears as a case study in which we will measure the
ability of these open source software to be adapted and integrated into a corporate information
system. After defining the target maintenance processes, we will explain how they were installed,
how their functionalities were improved and how they were interconnected with other
applications. Eventually, we will compare the technical aspects of this project with the results of a
feedback survey.
Key words: Mantis, MediaWiki, Open Source, Application Maintenance, Case Study, Feedback
Survey.

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 3 / 92

TABLE DES MATIERES


INTRODUCTION .............................................................................................................................................. 6
CHAPITRE 1 - PRESENTATION DE LEXISTANT ................................................................................ 9
1.1 PRESENTATION DE VIATELEASE ............................................................................................................................... 9
1.1.1. Prsentation des activits de Viatelease ................................................................................................... 9
1.1.2. Prsentation du Systme dInformation de Viatelease .................................................................... 10
1.1.3. Prsentation de la stratgie de Viatelease ............................................................................................ 11
1.2 PRESENTATION DE LA DSI ...................................................................................................................................... 13
1.2.1. Prsentation de l'organisation de la DSI ................................................................................................ 13
1.2.2. Projets de la DSI ................................................................................................................................................ 14
1.2.3. Les besoins ........................................................................................................................................................... 15
1.3 LES SOLUTIONS CIBLES ............................................................................................................................................. 17
1.3.1. Processus de maintenance existant .......................................................................................................... 17
1.3.2. Cartographie applicative existante .......................................................................................................... 18
1.3.2.1 Altiris ................................................................................................................................................................................................ 19
1.3.2.2 Dotproject ....................................................................................................................................................................................... 19

1.3.2. Processus de maintenance applicative cible ......................................................................................... 20


1.3.2.1 Processus de gestion des demandes de rsolution ...................................................................................................... 20
1.3.2.1 Processus de gestion des projets de maintenance applicative ................................................................................ 23

1.3.3. Cartographie applicative cible ................................................................................................................... 25


1.3.3.1 Mantis ............................................................................................................................................................................................... 25
1.3.3.2 Altiris - Mantis .............................................................................................................................................................................. 26
1.3.3.3 Mantis - MediaWiki ..................................................................................................................................................................... 28

CHAPITRE 2 - ETUDE SUR LAJOUT DE BRIQUES APPLICATIVES OPEN SOURCE30


2.1. METHODE ET OUTILS DINTEGRATION DES APPLICATIONS OPEN SOURCE .................................................... 30
2.1.1. Gestion des versions : Subversion .............................................................................................................. 30
2.1.2. Modification des fichiers de code sources : Eclipse ............................................................................ 31
2.1.3. Manipulation des donnes : PhpMyadmin ............................................................................................. 32
2.2. TUDE SUR LAJOUT DUNE SOLUTION DAMELIORATION DU SUIVI DES ANOMALIES : MANTIS BUG
TRACKER ............................................................................................................................................................................ 34
2.2.1. Installation de Mantis ..................................................................................................................................... 34
2.2.1.1. Architecture technique ............................................................................................................................................................. 34
2.2.1.2. Description des flux sur le serveur SVN ............................................................................................................................ 35

2.2.2. Paramtrage de Mantis ................................................................................................................................. 36


2.2.2.1. Personnalisation des demandes ........................................................................................................................................... 36
2.2.2.2. Personnalisation de la gestion des utilisateurs/acteurs ............................................................................................ 41
2.2.2.3. Gestion des notifications .......................................................................................................................................................... 43

2.2.3. Modification du code source de Mantis .................................................................................................. 45


Etude des solutions damlioration de la maintenance applicative
Par lintgration de briques applicatives open source en entreprise Page 4 / 92

2.2.1.1. Prsentation du code source de Mantis ............................................................................................................................. 45


2.2.1.1. Ajout dun calendrier de saisie de date .............................................................................................................................. 46
2.2.1.2. Modification du workflow de statuts .................................................................................................................................. 49

2.3. TUDE SUR LAJOUT DUNE SOLUTION DE GESTION DES CONNAISSANCES : MEDIAWIKI ............................ 53
2.3.1. Installation de MediaWiki ............................................................................................................................ 53
2.3.1.1 Architecture technique ............................................................................................................................................................. 53

2.3.2. Paramtrage de MediaWiki ......................................................................................................................... 54


2.3.2.1 Principes dorganisation des connaissances .................................................................................................................... 54
2.3.2.2 Adaptation de linterface .......................................................................................................................................................... 55
2.3.2.3 Ajout dun diteur convivial ................................................................................................................................................... 58

2.3.3. Modification du code source de MediaWiki .......................................................................................... 60


2.3.3.1. Modification du code de localsetting.php : scurisation des donnes de production .................................. 60
2.3.3.2. Modification linker.php : amlioration de la consultation des images .............................................................. 62

CHAPITRE 3 - ETUDE DE LINTERCONNEXION DES APPLICATIONS OPEN SOURCE ............... 65


3.1. INTEGRATION AVEC LANNUAIRE DE LENTREPRISE : ACTIVE DIRECTORY ................................................... 65
3.1.1. Objectif de lintgration avec lannuaire Active Directory ............................................................ 65
3.1.2. Architecture Active Directory - Mantis - MediaWiki ......................................................................... 66
3.1.2.1. Architecture Active Directory existante ............................................................................................................................ 66
3.1.2.2. Architecture Active Directory cible ..................................................................................................................................... 67
3.1.2.3. Intgration de Mantis ............................................................................................................................................................... 67
3.1.2.3. Intgration de MediaWiki ....................................................................................................................................................... 71

3.2. INTERCONNEXION DE MEDIAWIKI ET MANTIS .................................................................................................. 72


3.2.1. Valeur ajoute de la solution ....................................................................................................................... 72
3.2.2. Ralisation de la solution .............................................................................................................................. 74
3.2.2.1 Analyse de lextension MantisIntegration.php ................................................................................................................ 74
3.2.2.2 Modification du code de lextension ..................................................................................................................................... 77

3.2.3. Limites de la solution ...................................................................................................................................... 79


3.3. RETOUR SUR EXPERIENCE ...................................................................................................................................... 80
3.3.1. Mthode de retour dexprience ................................................................................................................. 80
3.3.2. Exploitation des rsultats de retour dexprience de Mantis ........................................................ 83
3.3.3. Exploitation des rsultats de retour dexprience de MediaWiki ............................................... 84
CONCLUSION .................................................................................................................................................. 86
INDEX DES FIGURES .................................................................................................................................... 89
INDEX DES EXTRAITS DE CODE ............................................................................................................... 90
BIBLIOGRAPHIE ............................................................................................................................................ 92

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 5 / 92

Introduction

Traditionnellement les services informatiques connaissent deux types dactivits : dun ct, le
dveloppement et lintgration de nouvelles applications dans lentreprise, de lautre, la
maintenance des applications et des infrastructures des systmes dinformation. La distinction
entre ces deux grandes activits repose essentiellement sur la notion de gestion de projet. En effet,
si toutes les activits de lentreprise peuvent tre dcrites par un ou plusieurs processus, un projet
est caractris par un dbut et une fin. Dans le modle conceptuel de gestion de projet en V,
modle standard pour lindustrie logicielle des annes 1980, le projet dbute par une analyse des
besoins et de la faisabilit et sachve par la vrification daptitude au bon fonctionnement
(recette). Chaque projet a sa propre temporalit. A loppos, la temporalit des activits de
maintenance se confond avec la temporalit de l'entreprise, condition, bien sr, que cette
dernire utilise des logiciels informatiques. Du point de vue interne lentreprise, les activits de
maintenance nont pas de dbut ni de fin. Elles sont continues.

Les activits de maintenance peuvent tre dcoupes en plusieurs sous-catgories. La


maintenance corrective assure la correction des dfauts de fonctionnement ou des non
conformits des applications. La maintenance adaptative consiste adapter les applications en
cas de changement denvironnement technique ou de systme ou en cas de survenue de
nouveaux besoins fonctionnels. On la dsigne galement sous le terme de maintenance
volutive . La maintenance prventive, elle, est destine rduire la probabilit de dfaillance ou
la dgradation du fonctionnement. Enfin, le maintien des connaissances nourrit chacune de ces
sous-catgories et assure une amlioration continue des processus qui les sous-tendent. A linstar
de la gestion de projet, chacune de ces activits de maintenance peut tre dcrite par un
processus, autrement dit par une succession de traitements structurs et ordonns, ayant chacun
un objectif et des rsultats dfinis lavance. Par exemple, la chane de correction dune
application peut tre dcrite ainsi : dabord la rception et la qualification de lanomalie. Une
analyse est ralise jusqu lidentification dune solution corrective. Puis, cette solution est mise
en uvre. Enfin, la correction est diffuse dans lensemble des systmes dinformation de
lentreprise. Si les activits de maintenance sont continues, elles sont galement structures en
processus plus ou moins compliqus.

Une tude rcente du SYNTEC informatique rapportait une augmentation rgulire, entre 7 et
10%, des demandes dinfogrance de maintenance applicative depuis 2006. Cette augmentation
Etude des solutions damlioration de la maintenance applicative
Par lintgration de briques applicatives open source en entreprise Page 6 / 92

sexplique en partie par le souci constant des Directeurs de Systme dinformation de rduire
leurs cots, notamment en sous-traitant une partie de leurs activits des socits de services
informatiques aux tarifs attractifs, ainsi que par la difficult croissante, pour les ressources
internes, de raliser elles-mmes les activits de maintenance. Complexit des technologies
htrognes et parfois vieillissantes, complexit des systmes dinformations souvent organiss
sur des principes historiques plutt que logiques, enfin complexit des processus de maintenance
qui sorganisent de plus en plus en projets ; la maintenance applicative devient un mlange de
genres dont la mise en uvre ncessite une expertise.

Ma mission pour la socit Viatelease consiste fournir cette expertise et atteindre les objectifs
suivants : dfinir une organisation fonctionnelle, dcrire les processus adapts et mettre en uvre
les

solutions applicatives ncessaires pour assurer lefficience des activits de maintenance

applicative. Lefficience tant dfinie comme le rapport cot/efficacit li la russite dune


activit, la recherche de logiciels open source gratuits a t privilgie, condition quils
rpondent aux objectifs dfinis.
L'appellation open source sapplique aux logiciels dont la licence respecte des critres tablis
par lOpen Source Initiative, notamment la possibilit de libre redistribution et daccs au code
source. La modification du code source permet la fois denrichir les fonctionnalits et de les
adapter du logiciel aux besoins des utilisateurs. Ce choix sinscrit bien dans une dmarche
dingnierie logicielle o les besoins des utilisateurs sont dfinis indpendamment des solutions
dj existantes. Il prsente lavantage de fournir un socle et de rduire leffort de ralisation.
Toutefois, si les fonctionnalits attendues venaient trop scarter des fonctionnalits prvues
dorigine, les bnfices de la rutilisation du code source disparaitraient quand bien mme le
logiciel serait gratuit. La direction serait dans lobligation de revenir larbitrage habituel entre le
dveloppement dune solution spcifique et lachat dune solution payante chez un diteur
spcialis.
Lenjeu des travaux que jai raliss pour Viatelease est de vrifier que le choix de logiciels open
source est pertinent pour amliorer la maintenance applicative. Il sagit dtudier leffort de
modification du code source pour enrichir les fonctionnalits de base et interagir avec les autres
applications, open source ou non, du systme dinformation. Si les conclusions de cette tude
savrent positives, la dmarche et les outils seront tendus lensemble du groupe Global
Concept dont Viatelease est une des 7 filiales.
Le chapitre 1 introduira Viatelease et sa direction informatique. Il sagit de prsenter lexistant et
didentifier les besoins auxquels devra rpondre la nouvelle organisation ainsi que les processus
cibles. Cette solution sera mise en perspective par rapport la stratgie moyen terme de
Etude des solutions damlioration de la maintenance applicative
Par lintgration de briques applicatives open source en entreprise Page 7 / 92

Viatelease et la cartographie applicative de son Systme dInformation. Enfin, lorganisation et


les processus de maintenance cibles seront dcrits afin de fournir un cadre rfrentiel la suite de
ltude.
Le chapitre 2 sera consacr lexamen de lajout des deux solutions open source : Mantis et
MediaWiki. Aprs une description de la mthodologie et des outils de dveloppement du code
natif de ces applications, nous prsenterons la ralisation de deux fonctionnalits majeures dans
le process cible : un workflow adapt au traitement des projets de maintenance et lorganisation
des informations dune base de connaissance avec MediaWiki.
Le chapitre 3 s'intressera la capacit dintgration de ces applications. Dans un premier temps,
nous tudierons comment elles peuvent sinterfacer avec lannuaire de lentreprise. Dans un
deuxime temps, nous examinerons dans quelle mesure Mantis et MediaWiki peuvent
sinterconnecter entre elles afin de fournir une suite logicielle de maintenance. Enfin, nous
tablirons un retour dexprience sur la valeur ajoute de ces applications aprs leur mise en
uvre dans lentreprise de notre cas dtude.

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 8 / 92

Chapitre 1 - Prsentation de lexistant


1.1 PRESENTATION DE VIATELEASE
1.1.1. Prsentation des activits de Viatelease
Viatelease est une des filiales du groupe Global Concept, lui-mme le premier intgrateur de
solutions Tlcom en France pour le Petites et Moyennes Entreprise. Cest une Broker/Leaser de
contrats de crdit (location financire, location avec option dachat, crdit bail) pour les services
et matriels de tlcommunication. Autrement dit, il achte des contrats de crdit des agences
commerciales internes (Paritel) et externes au groupe pour les revendre des organismes
bancaires (Broker) ou pour les financer lui-mme (Leaser).
La chaine dactivit de Viatelease est la suivante :
-

Une agence commerciale propose de vendre des produits de tlcommunication, service et

matriel, une PME ou une TPE. Il peut sagir dune affaire nouvelle dans le cas dun nouveau
client, dune mutation si la vente implique le rachat dun contrat, ou encore dune adjonction si la
vente porte sur lajout de service ou de matriel par rapport au contrat actuel.
-

Une fois le type de contrat, le montant et les conditions financires dfinis entre lagence et le

client final, lagence va demander un financement Viatelease.


-

Viatelease reoit une demande de financement quil va soit raliser lui-mme afin de

maximiser sa marge commerciale, soit ngocier auprs dorganismes bancaires (leaser) afin de
minimiser le risque tout en conservant une marge importante.

Chaque leaser partenaire de Viatelease reoit des demandes de financement auxquelles il peut
rpondre par un accord, un refus ou une demande dinformations complmentaires.
Aprs laccord trouv entre Viatelease et un leaser, Viatelease communique lagence son
accord. Celle-ci informe le client final qui signe le contrat de crdit.
Le schma ci-dessus illustre les changes des demandes entre les diffrents acteurs.

Figure 1 : Processus existant de gestion des incidents

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 9 / 92

Actuellement, Viatelease dgage 6,7 millions deuros de bnfice annuel avec la gestion de plus
de 5000 contrats confis seulement 6 personnes :
-

Un directeur gnral.

4 oprateurs de gestion des demandes.

Une personne rcemment engage pour dvelopper les relations avec les fournisseurs hors

groupe, ce qui ne reprsente aujourdhui que 5% des demandes de financements reues.


Le directeur gnral de Viatelease relve directement du Prsident Directeur Gnral du groupe
Global Concept.

1.1.2. Prsentation du Systme dInformation de Viatelease


Viatelease utilise essentiellement 2 applications mtiers pour raliser ses activits : SIV et
Extranet. Ces deux applications ont t dveloppes en interne par la direction informatique du
groupe.
Le schma ci-dessous prsente larchitecture applicative de la socit Viatelease.

Figure 2 : Cartographie des applications de la socit Ipnotic Optimitel

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 10 / 92

Extranet est une application dveloppe pour faciliter les demandes de financement des
fournisseurs hors groupe. Elle est galement accessible pour les fournisseurs du groupe. Elle
ncessite la saisie de la demande sur un site internet. Elle permet le suivi de lvolution de la
demande ainsi que le rsultat de la demande : accord ou refus.
SIV est une application dveloppe pour faciliter le suivi et le traitement des demandes de
financement. Elle comporte des outils de filtre et de recherche ainsi

quun historique des

demandes refinanceurs effectues pour chaque demande fournisseur, et les rponses obtenues. La
transmission des demandes aux refinanceurs est manuelle. Les oprateurs doivent saisir les
demandes sur les portails extranets des diffrents leasers.
Les applications CMI et Sage sont utilises pour les activits de facturation et de comptabilit.
Elles ne portent pas denjeux stratgiques mtiers pour Viatelease.
Extranet et SIV ont t raliss il y a trois ans pour remplacer le logiciel historique de gestion
dvnements, Ubiqus, qui ne correspondait plus au mtier de Broker/Leaser de Viatelease.
SIV et Extranet ont t dvelopps en PHP en 6 mois par une quipe de trois dveloppeurs
internes sans cahier des charges fonctionnel ou technique. Il nexiste pas non plus de cahier de
recette. Du reste, la mise en production de SIV a ncessit pour lquipe informatique une reprise
manuelle de lexistant de 18h 5h du matin le jour de la mise en production. Cette reprise fut
imparfaite et lon trouve encore ce jour des anomalies qui datent de plus de deux ans et qui sont
lorigine de nombreux incidents. Enfin, le code est peu comment et il nexiste pas de
description dtaille du schma de base de donnes de lapplication, ce qui achve de rendre la
maintenance de ces applications difficile et les risques de rgression importants

1.1.3. Prsentation de la stratgie de Viatelease


Viatelease a dfini 3 objectifs majeurs pour l'anne 2010.
-

Dvelopper le Business to Business (B2B) avec les fournisseurs hors groupe.

Augmenter la capacit de traitement du nombre de demandes fournisseurs par Viatelease.

Industrialiser les changes avec les refinanceurs partenaires actuels et futurs.

Ces trois objectifs se dclinent en deux projets informatiques qui sont : premirement lutilisation
des services du site socit.com pour complter automatiquement les informations clientes
ncessaires la cration dune demande de financement Viatelease ; deuximement,

la

cration de services universels de demandes de financement aux leasers qui respectent les rgles
mtiers actuelles de Viatelease (condition denvoi, de rexamen, daccord ou de refus).

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 11 / 92

Pour raliser ces objectifs, les quipes informatiques ont t renforces par un chef de projet, un
dveloppeur senior et un dveloppeur junior. On notera que des projets similaires sont mens
pour toutes les autres filiales de Global Concept, ce qui a pour consquence de doubler leffectif
de la direction informatique et daugmenter les risques de mise en production qui sont toujours
groupes.
Pour les raisons qui ont t voques la fin du paragraphe 1.1.2, des oprations de maintenance
correctives et volutives sont simultanment ralises. Les corrections, comme les volutions,
ncessitent souvent la modification du code.

La maintenance des applications de SIV et Extranet est complexe car elle implique la fois un
processus de gestion de projet difficile de par le manque de documentation fonctionnelle et
technique et un processus de correction danomalies continuel qui conditionne la production et
tend rendre instable le code source.

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 12 / 92

1.2 PRESENTATION DE LA DSI


1.2.1. Prsentation de l'organisation de la DSI
La direction informatique est constitue des quipes de la socit Optimitel. Nanmoins, le DSI
est plac sous lautorit du Directeur adjoint dune autre filiale du groupe : Paritel.
Elle comporte 3 dpartements
-

Le dpartement dinfrastructure qui assure, avec 5 emplois temps plein, ladministration des

systmes et rseaux du groupe, la gestion du parc informatique et le support niveau 1, autrement


dit la prise dappel pour les utilisateurs du groupe.
-

Le dpartement de gestion de projets qui est charg, avec 17 emplois temps, de la ralisation

des projets logiciels de la plupart des applications mtiers du groupe, ainsi que de leur support.
-

Le dpartement technique dont les 9 membres assurent le support de niveau 2 et 3 des

quipements de tlcommunication chez les clients finaux ainsi que le test des nouveaux modles
du catalogue produit vendu au client.

Figure 3 : Organisation de la DSI charg de la maintenance de Viatelease

La gestion de projets est le dpartement le plus volumineux de la DSI. On peut noter quil
comprend pratiquement autant de dveloppeurs (Dev : 10) que de maitrise douvrage (MOA : 6)
et quil nexiste quune personne pour assurer les fonctions de matrise duvre (MOE : 1).
Cette rpartition est inhabituelle et entraine la fois un dficit de documentation technique (le
MOE tant dpass par la charge de suivi) et un rapprochement entre la MOA et les
dveloppeurs. Cette proximit amne souvent les MOA faire raliser directement par les
dveloppeurs les fonctionnalits demandes par les utilisateurs, faisant du mme coup lconomie
dun cahier des charges.
Etude des solutions damlioration de la maintenance applicative
Par lintgration de briques applicatives open source en entreprise Page 13 / 92

Une autre consquence immdiate de la faiblesse de la MOE est labsence de procdure


normalise de mise en production des projets. On constate frquemment lapparition de
rgression la suite dune mise en production.
Enfin, on notera que lquipe de direction projet est assez rcente puisque la majorit des
dveloppeurs (8/10) et un tiers des MOA (2 seniors) sont des prestataires embauchs depuis
moins dun an.
1.2.2. Projets de la DSI
A lorigine, Global Concept est un oprateur Tlcom switchless, cest dire quil ne possde ni
rseaux physiques ni commutateurs. Il est dpendant des oprateurs tlcom dont il loue les
rseaux quil revend sous forme de forfaits des clients finaux.
En 2009, Global Concept a rachet lentreprise Ipnotic Optimitel qui est propritaire de son
infrastructure. Cette fusion permet Global Concept de gagner son indpendance vis--vis des
oprateurs et dallier son savoir-faire commercial avec le savoir-faire technique de cette nouvelle
filiale.
Cette stratgie a un impact direct sur la DSI, qui doit absorber lensemble des systmes
dinformation de Ipnotic Optimitel.

Figure 4 : Cartographie des applications de la socit Ipnotic Optimitel

Le schma ci-dessus illustre le nombre dapplications existantes dans la socit Optimitel, que la
DSI doit prendre en compte dans le cadre de cette fusion.
Dans le monde des tlcom, on distingue deux types de solutions. Les solutions Operating
Support System (OSS) pour dialoguer avec les autres oprateurs de rseaux et maintenir le rseau
lui-mme dune part et dautre part les solutions Business Support System (BSS) ncessaires pour
Etude des solutions damlioration de la maintenance applicative
Par lintgration de briques applicatives open source en entreprise Page 14 / 92

grer le service rendu aux clients (commande, facturation, etc.). Optimitel tant une acquisition
fonde sur le modle stratgique dintgration verticale1, Global Concept, qui ne possde pas de
solutions OSS propres aux oprateurs de rseau, ne peut absorber le systme dinformation de la
socit Ipnotic sans enrichir lexistant. .
Un audit rcent a identifi plus dune trentaine de projets pour raliser la fusion du SI
dOptimitel. Ce chiffre doit tre mis en rapport avec la ncessit absolue, dans le march des
tlcom, de sortir rapidement des produits novateurs. Dans un entretien pour le Journal du Net,
Georges Penalver, directeur excutif en charge du marketing stratgique dOrange France
Tlcom, rappelait quen 2007, Orange tait sur un rythme dun lancement majeur par semaine
et par pays .
Pour Global Concept, lacquisition dOptimitel est un enjeu stratgique pour simposer sur le
march des oprateurs. Elle implique que la DSI conduise de nombreux projets informatiques
dintgration ou dadaptation dans un dlai le plus court possible.
1.2.3. Les besoins
La premire ncessit pour Global Concept est de sassurer de la qualit de lanalyse des besoins
et des spcifications des projets raliser. Parce que cette phase amont dexpression des besoins
conditionne le succs du projet2 et que le cot dune erreur est 5 10 fois plus important que
durant la phase de ralisation, il est important d'augmenter le nombre de MOE chargs de la
dfinition des spcifications techniques. Lorganisation actuelle (cf. 1.2.1. Prsentation de
l'organisation de la DSI) dnote la volont de la DSI de renforcer ses quipes en prvision de
leffort fournir pour les prochains projets. Nanmoins, les personnes qui sont engages sont
pour la plupart des dveloppeurs et un MOA. Le MOE reste unique et ne peut pas produire
rapidement des spcifications techniques de qualit pour tous les projets.
La direction informatique doit structurer la gestion de projet et le processus de mise en
production. La gestion de projet informatique implique la mise en production, cest dire la mise
disposition des utilisateurs du logiciel dvelopp et test, conformment aux spcifications
fonctionnelles et techniques tablies. Elle nest pas la seule activit dans ce cas. Bien que plus
courte, la maintenance ncessite galement la gestion de projet et la mise en production de
corrections ou dvolutions. Dans la mesure o cette tape prsente des risques pour les activits
de lentreprise, les bonnes pratiques suggrent de grer les mises en production comme un
processus part entire. On rappelle quun processus implique un responsable ainsi que des

1 Les socits intgres verticalement sont unies par l'intermdiaire d'une hirarchie et ont un propritaire commun. En gnral, chaque membre de cette
hirarchie labore un produit ou un service diffrent, ces produits et services se combinant pour satisfaire un besoin final commun.
2 13,1% des projets chouent car les exigences sont incompltes. http://www.standishgroup.com

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 15 / 92

acteurs pour excuter les diffrentes tches ou actions. Actuellement, aucun responsable ou
acteur pour le processus de mise en production nest identifi dans lorganisation de la DSI. Le
risque dapparition dincidents conscutifs une mise en production mal matrise est donc plus
important.
Le processus de maintenance applicative doit tre organis et renforc. Actuellement, il nexiste
pas de responsable de la maintenance qui contrle et coordonne lensemble des niveaux. Le
rfrentiel de bonnes pratiques ITIL (Information Technology Infrastructure Library)
recommande de hirarchiser lorganisation de maintenance en niveaux.
-

Le niveau 1 est charg de la prise dappel, de sa qualification et de sa rsolution si ce dernier

est connu et ncessite peu de comptence technique.


-

Le niveau 2 est charg de la rsolution des incidents que le niveau 1 narrive pas rsoudre.

On parle descalade pour dsigner lassignation dun incident du niveau n au niveau n+1.
-

Le niveau 3 est compos dexperts qui interviennent soit pour rsoudre des incidents

techniques ardus, soit pour mettre en uvre la cause relle dun ensemble dincidents ayant une
mme cause. On parle alors de problme.
-

Le niveau 4, sil existe, dsigne les prestataires extrieurs lorganisation dont lintervention

est encadre par un engagement contractuel.


Lorganisation actuelle de la maintenance respecte le principe de niveaux. Le niveau 1 est
constitu par deux personnes de linfrastructure. Les niveaux 2 et 3 sont indistinctement
constitus dun chef de projet et de dveloppeur(s) de lquipe de direction projet. Ce manque de
clart dans les niveaux autres que 1 doit tre questionn. Le principe descalade nest pas observ,
puisque les utilisateurs peuvent directement sadresser aux personnes du niveau 1 puis, selon la
rponse, celles des niveaux 2 et 3.
Enfin, lorganisation de lactivit de maintenance est contrainte par la stratgie de la direction
informatique qui souhaite :
- Privilgier le dveloppement dapplications mtiers spcifiques plutt que des solutions

dditeurs. Par consquent, les personnes engages doivent tre formes sur chacun des logiciels
avant de pouvoir tre productives.
- Faire monter en comptence les ressources internes, au contact de prestataires seniors par

exemple, plutt que dengager des experts techniques. Ce transfert de comptences doit tre
matris notamment en privilgiant la formation dune quipe mixte prestataire senior - interne
junior.
- Maintenir les personnes en charge des niveaux 2 et 3 au contact des projets de dveloppement

afin dentretenir leur connaissance des futurs logiciels maintenir et de faire remonter au chef de
projet les demandes et les tendances des utilisateurs.
Etude des solutions damlioration de la maintenance applicative
Par lintgration de briques applicatives open source en entreprise Page 16 / 92

1.3 LES SOLUTIONS CIBLES


1.3.1. Processus de maintenance existant
Le schma ci-dessous dcrit le processus de maintenance existant. Il ne sagit pas dun processus
officiel, mais de la modlisation rsultant dentretiens avec chacun, dans le dpartement de la
direction technique, de la direction des projets et de lInfrastructure. Les niveaux de maintenance
sont indicatifs.
Dans le processus actuel, lutilisateur de Viatelease rencontrant une anomalie avec une
application interne peut sadresser par mail ou par tlphone soit au centre dappel ou support de
niveau 1, soit directement aux experts techniques du support niveau 3. Il nexiste pas de support
distinct de niveau 2.
Quand le support de niveau 3 a rsolu lincident, il peut directement le clturer en informant (par
mail) ou non le demandeur. Si ce dernier ne le rappelle pas, cela confirme que lincident t
rsolu dfinitivement.

Figure 5 : Processus existant de gestion des incidents


Etude des solutions damlioration de la maintenance applicative
Par lintgration de briques applicatives open source en entreprise Page 17 / 92

Cette mthodologie a de nombreux inconvnients :


-

Surcot du support, qui peut recevoir plusieurs fois la mme demande.

Pas de trace de lhistorique dune demande.

Pas de dtection des incidents rcurrents.

Opacit du processus de rsolution pour les utilisateurs.

Non capitalisation des connaissances du support dans une base de connaissances.

Limpact business nest pas un critre de priorisation des tches de rsolution des incidents du
support de niveau 3. Le directeur de projet, qui a une connaissance des priorits des mtiers,
intervient pour ajouter et prioriser de nouveaux projets pour la rsolution dincidents complexes.
La mise en production nest pas un processus, mais une simple tche. Le plus souvent, elle est
ralise par la mme personne qui a effectu les dveloppements. De fait, il ny a pas de mise en
production groupe mais une multiplication de mises en production unitaires. Ceci a pour
consquence de diminuer la stabilit de lenvironnement de production et dinduire des incidents
ou des rgressions dans lexistant.

1.3.2. Cartographie applicative existante


Le schma ci-dessous reprsente la cartographie applicative actuelle pour la maintenance
applicative de Viatelease.

Figure 6 : Cartographie applicative existante

Elle comporte 2 applications : Altiris Helpdesk 6 et Dotproject. La participation de chacune de


ces applications au process de maintenance existant (cf. 1.2.1) est figure par leur reprsentation
Etude des solutions damlioration de la maintenance applicative
Par lintgration de briques applicatives open source en entreprise Page 18 / 92

dans des carrs symbolisant les niveaux de support. Elles ne sinterfacent aucunement entre elles.
Nous allons prsent dcrire leur utilit pour les diffrents niveaux de support.

1.3.2.1 Altiris
Altiris est un logiciel dditeur payant de gestion de tickets.
Le support de niveau 1 lutilise pour enregistrer les demandes de rsolution dincidents et de
services des utilisateurs, y compris celles concernant les applications internes de Viatelease : SIV
et lExtranet.
Lors de lenregistrement, le niveau 1 qualifie les lments suivants :
-

La catgorie dincident : exemple Application interne, SIV

Le type de demande : rsolution dincident, demande de service, etc.

Limpact de lincident : lev, moyen, faible

Ltat de lincident : en attente, planifie, en traitement, etc.

Le titre de lincident

Les commentaires de lutilisateur

La date de cration.

La demande est ensuite transmise au niveau 3, cest--dire aux rfrents mtiers du Dpartement
informatique. Lescalade peut tre adresse lensemble des personnes du niveau 2 ou un
rfrent mtier particulier, suivant la connaissance de lorganisation de la personne du support
niveau 1.
Les personnes du support niveau 3 utilisent Altiris pour communiquer avec le demandeur ou/et
le bnficiaire de la demande afin de lui demander des informations complmentaires ou de
laccompagner dans la rsolution de lincident.

1.3.2.2 Dotproject
Dotproject est une application open source gratuite de gestion de projets.
Un projet correspond une srie de tches, effectues par une ou plusieurs personnes et
possdant une date de dbut et une date de fin. Le statut dune tche correspond un
pourcentage davancement. DotProject rpond aux besoins de surveillance du planning et des
cots de projet importants (effort suprieur 10 jours homme).

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 19 / 92

Il est moins adapt au suivi de gestion de projets de maintenance dans lesquels la dure des
tches est dfinie de manire dynamique et ncessite une grande ractivit de la part des
diffrents acteurs du processus.
La structure de projet dans DotProject est statique. Les utilisateurs indiquent le niveau de
ralisation des tches qui leur incombent.
Le directeur de projet utilise DotProject pour raliser les tches suivantes :
-

Enregistrement du planning prvisionnel de projet, de maintenance volutive ou corrective,

impliquant au moins un dveloppeur


-

Assignation des tches dun projet un ou plusieurs dveloppeurs

Consultation des comptes rendus de tche des dveloppeurs (dure relle, rsum des actions

ralises)
-

Enregistrement du temps consacr lanalyse fonctionnelle ou la recette de projet de

dveloppement.

Les projets de maintenance volutive et corrective saisis par le support niveau 3 dans DotProject
et les demandes de rsolution dincident ou de services renseigns par le mme support de niveau
2 ne sont pas lis, dans Altiris, par un identifiant commun.
Le support de niveau 3 utilise DotProject pour consulter les tches qui lui sont assignes et tracer
les actions qui sont ralises ainsi que leur dure. Ces tches peuvent tre relatives :
-

Un projet de nouvelle application

Un projet de maintenance volutive

Un projet de maintenance corrective.

Les informations saisies dans DotProject ne sont pas capitalisables comme base de
connaissances. En effet, la visibilit des informations saisies est limite aux personnes participant
au projet. DotProject ne propose pas de moteur de recherche

1.3.2. Processus de maintenance applicative cible


1.3.2.1 Processus de gestion des demandes de rsolution
Le diagramme ci-dessous illustre le processus cible de gestion des demandes de rsolution. Avant
dexposer les bnfices attendus de ce nouveau processus, il est important de rappeler quil ne
rpond pas des objectifs de conformit la norme ISO 20 000 ou un rfrentiel de bonnes
pratiques comme ITIL. Si ces outils permettent dorganiser une activit de maintenance, lattente

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 20 / 92

de la direction informatique tait de mettre rapidement en uvre des solutions pragmatiques en


limitant limpact du changement sur les quipes impliques.
Dans le rfrentiel ITIL, les processus de gestion dincident, de problme, de changement des
configurations, de gestion de connaissances et de mise en production sont distincts. Un
responsable

et des indicateurs de performance sont attribus chacun dentre eux. Un tel

dcoupage serait trop lourd dans lentreprise de notre tude de cas et ncessiterait un changement
contraire aux contraintes nonces en dbut de projet.

Figure 7 : Processus cible de gestion des incidents

Les utilisateurs ont un seul point de contact3, le support de niveau 1, pour demander la rsolution
dincident. Cette unique point permet de :
-

Simplifier et dharmoniser la transmission des demandes

Surveiller les dlais de rsolution de lensemble des incidents

Identifier les problmes et les incidents rcurrents

Mesurer lvolution des performances du processus.

3 Le Point de contact unique (Single Point Of Contact en anglais) est une des bonnes pratiques du rfrentiel unique pour la gestion des demandes

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 21 / 92

Seul, le support de niveau 1 est autoris clturer une demande aprs information/consultation
des utilisateurs. Lutilisateur est replac au centre du processus puisquil a le pouvoir de crer et
de clore les tickets.
Un support de niveau 2 distinct du niveau 1 et 3 est dfini. Il a pour fonction de rsoudre les
incidents dont la solution dfinitive ou de contournement est dj connue et documente dans la
base de connaissances.
On dsignera un responsable de la maintenance applicative qui rpondra de lensemble du
processus. En raison de la nouveaut du processus et notamment de la mise en uvre de
nouvelles applications, la nomination dune personne distincte du directeur de projet est
prconise.
On dsignera galement un responsable des Mises En Production (MEP) pour grer la
planification, la prparation, le regroupement et la mise en production des dveloppements
raliss dans le cadre de la gestion de projet et de la gestion des incidents. Il collaborera
troitement avec les chefs de projets et les dveloppeurs (MOE) qui lui fourniront les procdures
de mise en production.
On notera le recours une base de connaissances (BdC). Cette dernire est enrichie par le niveau
3 (tche en vert) aprs la dfinition dune solution de contournement. Elle est consulte par le
niveau 2 (tche en vert) qui, le cas chant, escaladera le ticket au niveau suprieur. Enfin elle est
galement enrichie par le chef de projet (MOA) et le responsable technique (MOE) durant le
processus de projet.
Le traitement des demandes prend en compte limpact mtier (rectangles en rouge) tous les
niveaux du support. La dfinition de limpact mtier est possible grce la base de connaissances
qui dfinira pour chaque application la criticit de lindisponibilit.
On note lexistence dun cycle de tches du support de niveau 2 pour lanalyse des demandes.
Cette analyse doit permettre de qualifier au mieux les lments suivants de la demande :
-

Description des impacts techniques de lincident (applications et matriel)

Description de limpact mtier de lincident.

Le support de niveau 2 sadresse directement lutilisateur et consulte la base de connaissance


avant de choisir descalader la demande au support niveau 3.

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 22 / 92

1.3.2.1 Processus de gestion des projets de maintenance applicative


Le diagramme ci-dessous illustre le processus de gestion de projet de maintenance. Il est mis en
uvre pour des projets entre 2 et 10 jours hommes. Au-del de cette dure, le projet est considr
comme un projet classique et doit suivre un processus qui ne fait pas partie du sujet de cette
tude.
On rappelle que les demandes de maintenance peuvent tre de deux types :
-

Correctif : le projet a pour objectif de corriger une anomalie sur une fonction dcrite dans les

spcifications fonctionnelles.
-

Evolutif : il sagit dajouter une fonctionnalit absente ou de modifier une fonctionnalit

existante dans les spcifications fonctionnelles.

Figure 8 : Processus cible de gestion des projets de maintenance applicative


Etude des solutions damlioration de la maintenance applicative
Par lintgration de briques applicatives open source en entreprise Page 23 / 92

Ce processus est initi soit par le processus de gestion des demandes de rsolution vu
prcdemment, soit par un rfrent mtier. Dans les deux cas, le responsable de TMA a pour
tche de (re)prioriser lensemble des projets en cours et de (r)assigner des tches au chef de
projet et aux dveloppeurs de lquipe de gestion de projet.
La priorisation des projets dpend de la qualit de lexpression des besoins ou de la qualification
de la demande de rsolution. Dans ce deuxime cas, la dfinition de limpact mtier, par le
support de niveau 2 partir de la base de connaissance, est un atout significatif. Le responsable
TMA est capable de lvaluer, mais la base de connaissance rend lgitime cette valuation en se
fondant sur des accords valids. La description de la criticit dune application dans la base de
connaissances facilite lordonnancement des projets de maintenance.
A linstar du processus parent de gestion des demandes de rsolution, on note la prsence dun
cycle de tches durant la ralisation de la solution entre le chef de projet charg des spcifications
fonctionnelles et les dveloppeurs du support niveau 3.
Ce cycle traduit la grande proximit et la grande ractivit entre le chef de projet et le
dveloppeur en charge de la ralisation de la solution de maintenance. En effet, si ce processus
s'inspire des mthodes de dveloppement par lot utilises (pour la gestion de projets complexes, il
est bien moins contraignant). Etant donn la culture de rapidit de lentreprise et la dure
moyenne des projets de 3 jours/homme, certaines phases de projets ont t simplifies dans ce
processus. La phase de conception ne fera pas lobjet dun cycle de validation impliquant
sponsor, rfrent mtier et directeur informatique. De plus, il nest prconis quune seule recette
fonctionnelle avant la demande de mise en production au lieu dune recette par itration du cycle
de dveloppement.
Autre point commun avec le processus de gestion des demandes de rsolution, il existe une tche
denrichissement de la base de connaissances. Elle vise pallier lune des principales difficults
pour toute direction des systmes dinformation : le maintien jour de la description des
applications en production pour les quipes en charge de lvolution ou de la correction du
systme dinformation.
Enfin, on notera que le processus sachve par la validation du bilan du projet par les rfrents
mtiers et le directeur informatique. Ce bilan comprend les spcifications fonctionnelles et le P.V.
de recette. On applique galement ici le principe de transparence voqu prcdemment dans la
gestion des demandes.

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 24 / 92

1.3.3. Cartographie applicative cible


Le schma ci-dessous reprsente la cartographie applicative cible pour la maintenance applicative
de Viatelease.

Figure 9 : Cartographie applicative cible

Elle comporte 4 applications : Altiris Helpdesk, Mantis, MdiaWiki et DotProject. La


participation de chacune de ces applications au process de maintenance existant (cf. 1.2.1), est
figure par leur reprsentation dans des carrs symbolisant les niveaux de support. Certaines de
ces applications communiquent entre elles deux par deux.
-

Altiris Helpdesk et Mantis

Mantis et MediaWiki.

Aprs une prsentation de Mantis dans la mise en uvre du processus cible de maintenance
applicative, nous dcrirons les nouvelles interfaces qui seront cres au cours de notre tude de
cas.
1.3.3.1 Mantis
Mantis permet de mettre en uvre des workflows pour le traitement de demandes dsignes sous
le nom de bogue dans lapplication.

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 25 / 92

Dans les processus cibles de gestion des demandes de rsolution et de gestion de projet de
maintenance, nous avons pu noter lexistence de cycles de tches. Ces cycles induisent la mise en
uvre de gestion de flux ou workflow 4.
Le diagramme UML 5 dtat transition ci-dessous reprsente les diffrents statuts dune demande

Figure 10 : Graphe cible des statuts dune demande de maintenance applicative

On remarque dans ce diagramme la prsence de deux chanes, correspondant aux deux types de
workflow possibles pour une demande de maintenance :
Chaine haute en pointills : workflow de traitement dune demande hors projet car sa dure est
infrieure 1 jour par homme. Elle est critique.
Chaine basse en trait plein : workflow de traitement dune demande dont la dure se situe entre 2
et 10 jours homme dans le cadre dun projet de maintenance.

1.3.3.2 Altiris - Mantis


Il existe une relation entre les demandes de rsolution dincident pour les applications internes
enregistres dans Altiris et les demandes traites par le niveau 3 et par les rfrents mtiers.

4 Nous retiendrons langlicisme de Worklow car il est la fois reprsentatif de la culture dentreprise du dpartement informatique de Global Concept et de la
littrature sur la gestion de projet.
5 Unified Modeling Langage est un langage de modlisation couramment utilis dans les projets logiciels (cf.
http://fr.wikipedia.org/wiki/Unified_Modeling_Language )

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 26 / 92

Bien que le workflow de traitement des tickets Altiris et celui des demandes Mantis soient
diffrents, il existe une relation base sur les statuts de dbut et de fin de gestion de demande ou
bogue, comme lillustre la figure ci-dessous.
Lapplication Mantis vient complter Altiris en prenant en charge la gestion de projet de
maintenance dont seuls les statuts terminaux (En production ou Rsolu) intressent le support
niveau 1.
Les personnes du support niveau 3, le rfrent mtier et le responsable de MEP (Mise En
Production) utiliseront uniquement Mantis pour consulter et traiter les demandes.
Le diagramme ci-dessous illustre ces relations.

Figure 11 : Diagramme de conversion des donnes entre Altiris et Mantis


Etude des solutions damlioration de la maintenance applicative
Par lintgration de briques applicatives open source en entreprise Page 27 / 92

1.3.3.3 Mantis - MediaWiki


MediaWiki est une solution open source gratuite de gestion de connaissances de type Wiki ,
linstar du clbre Wikipedia
Les objectifs de la base de connaissances sont les suivants :
-

Faciliter la qualification (impact, priorit) des demandes par la documentation fonctionnelle et

technique des applications maintenues.


-

Rechercher et consulter les solutions de contournement ou de rsolution connues par

application.
-

Maintenir jour la description fonctionnelle et technique des applications.

Enrichir la base des solutions de contournement et de rsolution.

Informer

les personnes du dpartement informatique de lactualit des oprations de

maintenance.

MediaWiki facilite la recherche dinformation grce


-

Un puissant moteur de recherche par mot cls et par catgorie dans les pages.

Une structuration des informations (cf. figure ci-dessous).

Figure 12 : Diagramme de conversion des donnes entre MediaWiki et Mantis

Lenrichissement de la base de connaissance est facilit par les mcanismes automatiques


dimportation de contenu depuis Mantis dans MediaWiki. Nous aborderons ces mcanismes lors
des chapitres suivants.
MediaWiki est une solution web. Une page de news peut tre tenue facilement jour par le
responsable de la maintenance (mise en production dune application, ordre du jour et compte
Etude des solutions damlioration de la maintenance applicative
Par lintgration de briques applicatives open source en entreprise Page 28 / 92

rendu de runion, etc.) et permettre aux personnes du dpartement informatique de sinformer


rapidement des dernires actualits de la maintenance.

Viatelease souhaite augmenter le nombre de contrats vendus des refinanceurs en dveloppant


son offre de demande de financement auprs dapporteurs daffaires hors groupe. Cette stratgie
implique la fois une consolidation et une volution des fonctionnalits des applications de son
systme dinformation.
Le processus de maintenance cible prsent dans ce premier chapitre rpond cette double
contrainte de maintenance en mode continu et en mode projet. Elle ncessite, dune part une
nouvelle organisation du dpartement informatique avec la cration de deux nouveaux postes :
un rfrent applicatif et un responsable de mise en production, et dautre part, la mise en uvre
de nouvelles applications open source : Mantis et MediaWiki. Nous allons prsent tudier en
quoi laccs au code de ces deux applications est un atout pour rpondre aux besoins de
structuration des tches (Mantis) et dorganisation des connaissances (MediaWiki) des projets de
maintenance applicative.

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 29 / 92

Chapitre 2 - tude sur lajout de briques applicatives open source


2.1. METHODE ET OUTILS DINTEGRATION DES APPLICATIONS OPEN SOURCE
2.1.1. Gestion des versions : Subversion
Avant dtudier comment modifier le code source des applications Mantis et Wiki afin de les
adapter aux processus dfinis prcdemment, nous allons rapidement prsenter les outils logiciels
qui nous ont permis de raliser le suivi des versions du code source, sa modification dans les
fichiers ainsi que la modification des bases de donnes associes aux traitements. Cela est
dautant plus pertinent que chacun de ces logiciels, savoir Subversion, Eclipse et Phpmyadmin,
est lui-mme open source et gratuit. De cette faon, nous prservons la cohrence de notre
dmarche de qualit et dconomie. En effet, lachat de solutions dditeur pour la modification
dapplications open source aurait sembl paradoxal.
Subversion est un logiciel open source de gestion de version de code source dvelopp par la
fondation Apache, une organisation but non lucratif amricaine existant depuis 1999. Il vise
faciliter le travail de dveloppement en quipe, notamment en permettant

lquipe de

dveloppement de :
-

Centraliser le code source de plusieurs applications sur un serveur unique. On parle de dpt

(repository en anglais).
-

Copier la version la plus rcente du code depuis un serveur centralis vers leur environnement

de dveloppement local
-

Mettre jour depuis leur poste le code archiv sur le serveur central.

Garder un historique des modifications du code source avec leur nature, leur date et leur

auteur.
-

Revenir quelque version antrieure que ce soit.

La gestion des versions dans Subversion se base sur la gestion du code de lapplication en tronc,
branche et release.
Le tronc reprsente la version la plus stable des fichiers de code applicatif. En cours de
dveloppement, pour rpondre aux besoins dvolution ou de corrections, les fichiers de code
sont amens tre modifis. Plutt que de les modifier directement dans le tronc et
compromettre la stabilit de lapplication, le dveloppeur va crer, dans SVN, une branche qui
reprendra une copie du tronc au moment de la cration. Il disposera ainsi dun code similaire
pour pouvoir raliser et tester les dveloppements ncessaires. A terme, la branche sera fusionne
avec le tronc ou abandonne par les dveloppeurs.
Etude des solutions damlioration de la maintenance applicative
Par lintgration de briques applicatives open source en entreprise Page 30 / 92

Une Release correspond lenregistrement du code du tronc ou dune branche un moment


donn dans le temps. On parle galement de marquage (tag en anglais) du code. Lors de la mise
en production, une release dite candidate est copie sur le serveur. En cas de dysfonctionnement,
un retour arrire la release prcdente est facilit. On notera que chaque release a un nom
unique comportant la date du jour et si cela est ncessaire le numro de version. Cette fonction
est automatique avec SVN.

2.1.2. Modification des fichiers de code sources : Eclipse


L'adaptation des applications Mantis et MediaWiki ncessite la consultation et ldition du code
source en PHP (cf. les paragraphes ....). Eclipse est un environnement de dveloppement intgr
open source crit en Java par la fondation Eclipse cre en 2001. Son comit de direction est
compos de reprsentants de grandes socits comme HP, IBM, Intel ou SAP.
La particularit dEclipse est sa modularit. Elle accepte de nombreux modules (plugin), dont le
PHP Development Tools Framework (PDT) destin au dveloppement dapplications web bases
sur le langage PHP ct serveur. Les principaux avantages de ce framework sont :
-

Ldition en onglets des fichiers PHP, qui facilite le travail sur de nombreux fichiers source

La coloration syntaxique du PHP, qui amliore la lisibilit du code source

La cration automatique de la documentation des classes, mthodes, fonctions et variables de

PHP crites par les dveloppeurs de lapplication (phpdoc)


-

Lauto compltion des noms de classes, mthodes, fonctions et variables de la phpdoc, qui

rduit les fautes de syntaxe


-

Laffichage des paramtres et valeurs de retour des mthodes, qui permet une quipe de

dveloppeurs de pouvoir rapidement utiliser des mthodes dveloppes par dautres


-

La navigation entre les fichiers de code source par mthodes, fonctions et variables, qui

permet, lors de lanalyse dune anomalie, de trouver rapidement la partie du code source
lorigine de lerreur.

La recherche par expression lintrieur des fichiers du code. Le rsultat de cette recherche se
reprsente sous forme darborescences de lignes de fichiers et de fichiers de branches ditables
dans un nouvel onglet. La partie de code correspondant lexpression est surligne pour une
lecture rapide.
Autre particularit dEclipse, il existe un module dintgration avec Subversion. Depuis le menu
contextuel de chaque fichier ou rpertoire de l'arborescence dune application, comme lillustre la
figure ci-dessous, il est possible de raliser rapidement les principales actions suivantes :
Etude des solutions damlioration de la maintenance applicative
Par lintgration de briques applicatives open source en entreprise Page 31 / 92

Check out, cest--dire la copie en local, pour la premire fois, des fichiers existants sur un dpt
Update, cest--dire la mise jour de la copie de travail locale des fichiers avec la dernire
version des fichiers du dpt
Commit, cest--dire la mise jour du dpt depuis la copie de travail des fichiers en local. Un
texte court contenant une description des modifications effectues est associ cette mise jour
dun ou plusieurs fichiers. En cas de conflit, un message derreur apparatra lors du commit.

Figure 13 : Fonctionnalit du menu contextuel dans Eclipse

2.1.3. Manipulation des donnes : PhpMyadmin


Eclipse et SVN facilitent la manipulation du code pour laffichage et le traitement des donnes.
PhpMyadmin vient complter ces deux applications en fournissant une interface graphique pour
la dfinition et la manipulation des donnes du serveur de base de donnes relationnelles open
source gratuit Mysql.
PhpMyadmin est une application web open source gratuite cre en 1998 et crite en PHP. Elle
fournit une interface graphique web, donc multiplateforme, partir de client lger pour
ladministration des serveurs Mysql et la cration de requte de traitement des donnes. Il est
toujours maintenu par lensemble de la communaut de la plateforme dhbergement et de
distribution de logiciel open source Sourceforge.

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 32 / 92

Limage ci-dessous illustre linterface de gestion dune table. Le menu de gauche liste lensemble
des tables dune base de donnes, pendant que la partie centrale fournit des onglets de gestion
dune table, dans cet exemple, la table archive. On notera que les dveloppeurs ont le choix entre
les outils graphiques de dfinition, de traitement des donnes et la cration de requte en langage
SQL.

Figure 14 : Fonctionnalit de gestion des donnes avec phpMyadmin

SVN, Eclipse et PhpMyadmin, sont trois solutions open source gratuites offrant une trousse
outils complte pour le dveloppement rapide et professionnel dapplications web en PHP.
Nous allons prsent tudier leur mise en uvre pour lajout de solution damlioration du suivi
des anomalies et de gestion des connaissances.

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 33 / 92

2.2. ETUDE SUR LAJOUT DUNE SOLUTION DAMELIORATION DU SUIVI DES


ANOMALIES : MANTIS BUG TRACKER
2.2.1. Installation de Mantis
2.2.1.1. Architecture technique

Le schma ci-dessous dcrit larchitecture de Mantis.

Figure 15 : Architecture technique de Mantis

On notera quil nexiste quun seul environnement de production pour le dveloppement de


lapplication. En effet, cette dernire nest destine qu lquipe informatique et nest dveloppe
que par une personne.
Les cots dun environnement de dveloppement ou/et de test sur les serveurs de Paritel ne sont
pas justifis. Le poste de travail local tient lieu denvironnement de dveloppement et de test
avant de valider une rvision sur le serveur SVN et de mettre jour le code source du serveur de
production.
Le poste de travail local est dot dun environnement complet de dveloppement et de test
compos des lments suivants : Un serveur web Apache, un serveur applicatif PHP, un serveur
de gestion de base de donnes Mysql pour lexcution de lapplication ct serveur, Eclipse et ses
extensions PHP et SVN pour le dveloppement de lapplication proprement dite.
Tous les serveurs sont dots dun serveur Apache. Il est utilis pour
-

Prsenter le rsultat de l'excution du code PHP dans le serveur de production.

Manipuler les donnes avec PhpMyadmin dans le serveur de bases de donnes.

Faciliter la gestion des droits daccs et le transfert de fichiers dun client un dpt et vice et

versa dans le serveur Subversion.


Etude des solutions damlioration de la maintenance applicative
Par lintgration de briques applicatives open source en entreprise Page 34 / 92

Tous les changes sont raliss sur le protocole http. Dans cette cartographie, tous les ordinateurs
sont sur la mme classe dadresse. Nanmoins, les flux pourraient tre routs entre rseaux de
classes dadresse diffrentes.
2.2.1.2. Description des flux sur le serveur SVN
Les numros indiqus sur la figure sont ici dtaills.
1. Depuis le client Eclipse, cration dun nouveau dossier et dfinition de ce dossier comme un
nouveau projet PHP. SVN va crer un tronc, des branches et des releases.
2. Copie du tronc de ce nouveau projet en local sur le poste de dveloppement : checkout.
Cration dun espace de travail (workspace) sur lenvironnement local.
3. Ajout des fichiers de Mantis tlchargs sur l'espace de travail.
4. Installation de Mantis en local (avec cration dune base de donnes sur le serveur Mysql de
production).
5. Mise jour du dpt central avec le code du tronc en local par la commande commit.
6. Cration dune release partir du tronc du dpt.
7. Cration dun rpertoire Mantis dans le dossier projet du serveur de production. On notera
que les droits sont modifis pour que le serveur Apache puisse excuter les fichiers dans ce
rpertoire. La commande ci-dessous illustre la mise jour des droits.

Extrait de code 1 : mise jour des droits pour le checkout

8. Copie de cette release sur le serveur de production et test de la release depuis le navigateur du
poste de dveloppement

Par la suite, les flux 9 et 10 seront uniquement ritrs


Les volutions seront ralises et testes sur le poste de dveloppement.
9. Mise jour du dpt central avec le code du tronc en local par la commande SVN update.
10. Mise jour du serveur Mantis avec le code du tronc sur le serveur SVN par la commande
check out.

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 35 / 92

Comme il a t dit prcdemment, vu le nombre rduit et limit dimpact limit de lapplication


sur les utilisateurs finaux, il ne sera mis en uvre ni branche de dveloppement, ni serveurs de
test.
Les mises jour ne feront pas lobjet de release, mais seront directement copies sur le serveur de
production.

2.2.2. Paramtrage de Mantis


Nous avons dfini, dans le paragraphe 1.3.2., un processus cible mettant en jeu des acteurs
chargs dexcuter des tches pour grer les demandes de maintenance applicative. Avant
dtudier comment le code peut tre modifi pour rendre Mantis le plus conforme possible ce
processus cible, nous allons expliquer comment les acteurs et les anomalies peuvent dj tre
personnaliss sans modification de code, uniquement par paramtrage contredisant la-priori
dexpertise en programmation que peut susciter le monde de lopen source et de lusage de ses
applications

2.2.2.1. Personnalisation des demandes


La maintenance applicative repose sur la notion centrale de demande ou bogue. Nous allons
prsent voir les paramtrages que Mantis offre pour la description des anomalies (bogues)
conformes au processus cible.
Ajout de champs personnaliss
Par dfaut, une demande, ou bogue dans le vocabulaire de Mantis, est dcrite par les lments
suivants :
-

Numro unique de la demande.

Catgorie de la demande.

Impact de la demande.

Reproductibilit.

Date de soumission.

Date de la dernire mise jour.

Nom du rapporteur, cest--dire la personne ayant cr la demande dans Mantis.

Statut de la demande.

Rsum ou titre.

Description.

Balise ou mots cls.

Bien que cette liste dattributs soit dj consquente, de nouveaux attributs sont ncessaires :
Etude des solutions damlioration de la maintenance applicative
Par lintgration de briques applicatives open source en entreprise Page 36 / 92

ID Altiris : Dans le cadre du processus cible, certaines demandes sont cres dans Mantis la
suite dune escalade du niveau 2 vers le niveau 3. Une demande cre dans Mantis est lie au
moins une demande dans Altiris. Cest le numro unique de cette demande qui sera saisi dans ce
champ.
La date de cration de la demande : Dans le cas dune escalade, elle est antrieure la date de
cration de la demande dans Mantis. Cette information est intressante en particulier en termes
de rapport de performance sur la dure totale de traitement dune demande. Pour distinguer les
deux dates de cration dans Altiris et dans Mantis, nous dsignerons la premire comme le
champ Demand et la seconde comme Cr .
Un numro dordonnancement : Plusieurs demandes peuvent avoir la mme priorit. Dans la
plupart des cas, priorit gale, la mthode de traitement est FIFO. Nanmoins, dans certains
cas, limpact mtier permet de dfinir un ordre de traitement des demandes de mme priorit. On
utilisera ce champ cet effet.
Mantis propose un formulaire pour crer rapidement ces champs personnaliss et les attribuer
un ou plusieurs projets. Les utilisateurs de Mantis, autrement dit les personnes du support
niveau 3, le responsable de la TMA et le directeur informatique, seront amens saisir et/ou
consulter ces nouveaux champs.
Comme lindique la capture dcran ci-dessous, le type du champ Demand est date. Lors de la
cration dun nouveau bogue, lutilisateur pourra saisir la date laquelle a t cre la demande
en remplissant successivement un champ pour le jour, le mois et lanne.

Figure 16 : paramtrage dun champ personnalis dans Mantis


Etude des solutions damlioration de la maintenance applicative
Par lintgration de briques applicatives open source en entreprise Page 37 / 92

Nous verrons dans la partie modification du code source de Mantis comment allger cette saisie
en proposant un calendrier lutilisateur qui remplira alors tous les champs en un seul clic
comme le reprsente la figure ci-dessous.

Figure 17 : champ date cible dans Mantis

Paramtrage des projets et sous-projets


Dans lapplication Mantis, un bogue est rattach un projet et un seul. Chaque projet est
unique par son nom, mais peut tre lui-mme rattach un autre projet formant ainsi une
arborescence.
Il est possible de paramtrer cette arborescence de fichiers en allant dans le menu administration
et en s'authentifiant en tant quadministrateur de lapplication. Il faut alors saisir, comme lillustre
la figure ci-dessous, les attributs du projet :
-

Le nom du projet

Ltat du projet : les valeurs possibles sont dveloppement , livr , stable ou

obsolte .
-

Laffichage de ltat : les valeurs possibles sont public ou priv .

Lhritage des catgories globales : oui ou non .

Le chemin pour le dpt de fichier: exemple pour le projet Viatelease dans un systme de

fichier linux du serveur de production : /var/www/mantis/Viatelease/


-

La description

Figure 18 : paramtrage dune arborescence de projet dans Mantis

Dans notre cas dtude, chaque application est considre comme un projet racine. Chaque
application ou projet peut avoir autant de sous-projets que ncessaire. Chaque sous-projet
correspond un regroupement de bogues traits ensemble dans le cadre dune opration de
maintenance importante.
Etude des solutions damlioration de la maintenance applicative
Par lintgration de briques applicatives open source en entreprise Page 38 / 92

Mantis fournit les outils pour crer facilement des sous-projets. Pour crer un sous-projet, il faut
que le projet pre existe. A partir du menu de gestion des projets existants du module
administration de Mantis, on saisit les informations ncessaires dans le bloc sous-projets
reprsent dans la capture dcran ci-dessous.

Figure 19 : Paramtrage des sous projets dans Mantis

Pour toutes les applications, un sous-projet Incidents de production sera cr afin de faciliter
limportation de bogue depuis Altiris. En effet, la notion de sous-projet tant absente dans Altiris,
il est ncessaire de crer un sous-projet invariable par application pour simplifier linterface entre
les deux applications. Tous les tickets dincidents applicatifs enregistrs dans Altiris et escalads
au niveau 2 seront galement enregistrs dans le sous-projet Incidents de production de
lapplication correspondante.
Paramtrage des catgories
Nous avons identifi les incidents de production comme une premire catgorie de bogue. Les
autres bogues sont :
-

Evolution fonctionnelle.

Evolution non fonctionnelle.

Correction fonctionnelle.

Correction non fonctionnelle.

Une volution dfinit lajout de fonctionnalits non prvues dans le cahier des charges de
lapplication.
Une correction dfinit la modification de fonctions existantes mais dont lexcution est source
danomalies et dysfonctionnements.
Un bogue est qualifi de fonctionnel sil se rapporte directement aux tches mtiers.
Un bogue est qualifi de non fonctionnel sil se rapporte au contexte technique, lgal, etc. du
mtier.
La capture dcran ci-dessous illustre le bloc de cration de catgorie dans le menu gestion des
projets du module administration.

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 39 / 92

Figure 20 : Paramtrage des catgories dans Mantis

Le rsum, la description et la date de dernire mise jour ne ncessitent pas de paramtrage


particulier. Le rsum et la description sont des champs de saisie libre.
La date de dernire mise jour est directement gre par lapplication.
Le bloc Svrit fournit par dfaut les valeurs suivantes : fonctionnalit , simple , texte ,
cosmtique , mineur , majeur , critique et bloquant.
Ces valeurs ne dpendent ni du mme champ (cosmtique et bloquant) ni du mme paradigme
smantique (texte, critique). Il nest pas possible de modifier ces valeurs depuis le module
dadministration. Nous

tudierons la modification de cet attribut dans la partie Modification

du code source . Il en va de mme pour le champ cible Impact qui nest pas propos comme
attribut par dfaut par lapplication Mantis.
Le champ Affect relve du paramtrage des utilisateurs. Nous allons laborder dans le
paragraphe suivant en traitant la personnalisation de la gestion des utilisateurs.
Lors de lajout dun nouveau bogue, dans le formulaire de qualification du bogue, le champ de
Reproductibilit apparat. A linstar du champ Svrit , ce champ nest pas paramtrable
dans le module administration. Dans un souci dconomie de champs, afin dallger la saisie des
bogues et de faciliter le changement auprs des utilisateurs, nous verrons dans la partie
Modification du code source de Mantis comment supprimer ce champ du formulaire dajout
de nouveau bogue.

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 40 / 92

2.2.2.2. Personnalisation de la gestion des utilisateurs/acteurs


Un processus est mis en uvre par des acteurs. Chaque acteur doit raliser des tches un
moment donn. Mantis met la disposition de ladministrateur des outils de paramtrage des
utilisateurs qui seront acteurs du processus de maintenance applicative.
Mantis propose les 6 types dutilisateurs suivants :
-

Invit

Rapporteur

Testeur

Dveloppeur

Gestionnaire

Administrateur

Chaque profil se distingue par des droits daccs diffrents. Les sous menus Seuil de
cheminement de travail et Rapport de permission du menu Configuration du module
Administration permettent de personnaliser les droits de chacun de ces profils. Le tableau cidessous reprsente les droits par dfaut de chacun des utilisateurs.
Droits

Tableau 1 : Les droits des utilisateurs dans Mantis


Inv Rap Test Dv Gest

Rapporter un bogue

Mettre jour linformation dun bogue

Adm

Permettre aux demandeurs de fermer un bogue

Dmarrer la surveillance d'un bogue

Grer un bogue

Assigner un bogue

Dplacer un bogue

Supprimer un bogue

Mettre jour un bogue qui est en lecture seule

Mettre jour le statut d'un bogue

Voir les bogues privs

Dfinir l'tat d'affichage lors du rapport d'un nouveau bogue ou note

Afficher la liste des utilisateurs surveillant un bogue

Changer l'tat de l'assignement

Mettre jours les notes

Permettre aux utilisateurs de modifier leurs propres notes de bogue

Effacer une note

Voir les notes prives des autres utilisateurs

Mettre jour l'tat d'affichage des bogues ou notes existantes

Ajouter des notes

Voir Changements

Voir Assign

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 41 / 92

Droits
Voir Historique du bogue

Inv Rap Test Dv Gest


x

Envoyer des rappels

Adm

Afficher la liste des pices jointes

Tlcharger les pices jointes

Supprimer les pices jointes


Mettre jour les pices jointes

Enregistrer les filtres


Enregistrer et partager les filtres
Utiliser les filtres enregistrs

Crer un projet

Supprimer un projet

Grer les projets

Grer les droits daccs aux utilisateurs

Automatiquement inclus dans les projets prvus


Afficher les documents du projet

x
x

Envoyer les documents du projet

Grer les champs personnaliss

Lis des champs personnaliss aux projets

Voir la synthse

Voir les adresses de courriel des autres utilisateurs


Envoyer des rappels
Ajouter des profils

Grer les utilisateurs

Signaler la cration dune nouvelle utilisation

On note que les profils Dveloppeurs ont lgrement moins de droit que les administrateurs et
notamment :
-

Ils nont pas le droit de fermer un bogue.

Ils nont pas de droit sur la gestion dun projet.

Ils nont pas de vision de synthse.

Lapplication Mantis est utilise en interne par la DSI de Paritel. Si on se rfre au processus
dapplication cible (cf. 1.1.2.), les acteurs suivants interviennent dans lapplication Mantis :
-

Support de niveau 3

Rfrent mtier

Rfrent Mise en production

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 42 / 92

A la diffrence du support et du rfrent de mise en production, le rle du rfrent mtier le


conduit crer, supprimer, modifier des projets. Il aura un profil de gestionnaire.
Les deux autres acteurs sont amens essentiellement modifier des bogues en ajoutant du
contenu (rsum de rsolution, demande dinformations supplmentaires) et en changeant le
statut. Ils ont un profil quivalent au dveloppeur.
On constate donc que le paramtrage par dfaut est suffisant pour lutilisation interne la DSI de
Mantis comme solution de maintenance applicative.

2.2.2.3. Gestion des notifications

Mantis va faciliter la mise en uvre de Workflow ractif grce son mcanisme de notification.
Lors de ltude de la cartographie cible, nous avons indiqu que Mantis permettait de mettre en
uvre une gestion de statuts des demandes de rsolution ou de projet de maintenance. Certains
changements de statut conditionnent le dbut dune tche dun acteur.
La liste des statuts est la suivante :
Rsolu indique que le support niveau 1 doit clturer la demande dans Altiris et le chef de projet
dans Mantis.
Commentaire indique que le chef de projet doit fournir des informations supplmentaires au
support niveau 3.
Affect indique au support niveau 3 quil doit commencer / poursuivre lanalyse et le traitement
dune demande.
Test indique au chef de projet le dbut de la recette.
Mise en production normale indique au responsable des MEP la prise en compte de ce
dveloppement pour la prochaine MEP.
Mise en production urgente

indique au responsable des MEP la ncessit de mettre en

production le correctif le soir mme.


En production indique au chef de projet quil doit rdiger un bilan de projet et informer le
directeur informatique du nouveau statut.

Mantis intgre un mcanisme de gestion de notification afin dinformer chaque utilisateur des
changements de statuts qui le concerne. La figure ci-dessous illustre lcran de gestion des
notifications par utilisateur
Etude des solutions damlioration de la maintenance applicative
Par lintgration de briques applicatives open source en entreprise Page 43 / 92

Tableau 2 : gestion des notifications dans Mantis

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 44 / 92

2.2.3. Modification du code source de Mantis

Il est possible de modifier le code source de lapplication Mantis pour personnaliser les
demandes. Cette modification vise faciliter la saisie et la consultation des demandes
conformment aux workflow dcrit dans le processus cible.

2.2.1.1. Prsentation du code source de Mantis

Mantis tant un logiciel open source, nous pouvons facilement inspecter son code source afin de
mieux comprendre son architecture
La figure ci-dessous illustre larborescence du code source de Mantis.

Figure 21 : Arborescence du code source de Mantis

Lapplication est principalement compose de fichiers PHP, cest dire de fichiers crits en
langage de script pour produire des pages web via un serveur de pages web (cf. 2.2.1.1
Architecture technique). PHP est un langage interprt, il est donc possible de consulter, diter et
modifier le code source de lapplication Mantis sans avoir le recompiler.
On notera, au premier niveau de larborescence, des rpertoires dont les noms dnotent des
fonctions architecturales.
-

Core (cur en anglais) dnote une fonction centrale et critique de lapplication.

Api, fait cho labrviation Application Programming Interface frquemment utilise en

ingnierie. Elle dnote des fonctions mises disposition par les dveloppeurs pour le reste de
lapplication.
-

Lang, dnote des fonctions linguistiques, certainement pour proposer des interfaces dans

diffrents langages.
Nous allons prsent dtailler cette architecture, en abordant notamment les relations de
dpendance existantes entre les fichiers pour lamlioration de la saisie de la date et la
personnalisation du workflow des demandes.




Etude des solutions damlioration de la maintenance applicative
Par lintgration de briques applicatives open source en entreprise Page 45 / 92

2.2.1.1. Ajout dun calendrier de saisie de date


Nous avons tabli la ncessit dajouter un champ personnalis Demand dans les attributs
des projets de Mantis. Lors de la cration dune nouvelle demande dans Mantis, lutilisateur doit
saisir le jour, le mois et lanne pour renseigner ce champ. Il est possible den amliorer
lergonomie en proposant un calendrier pour dfinir simultanment la valeur de ses 3 champs.

La page affiche lors de la saisie du champ Demand est bug_report_page.php. La figure cidessous illustre les pages associes cette page par le serveur lors de son interprtation. En effet,
PHP permet la rutilisation de code. Les fonctions require_once et include rendent possible le
chargement de fichiers dans un script PHP et ainsi la centralisation des fonctions rcurrentes.

Figure 22 : Relation de dpendances pour lajout dun calendrier

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 46 / 92

Le schma ci-dessus reprsente les relations entre les pages de code de Mantis pour laffichage
dun calendrier de saisie du champ Demand. Chaque rectangle blanc reprsente un fichier
PHP. Les rectangles jaunes reprsentent des rpertoires. Enfin, les rectangles dont la bordure est
colore en rouge sont les fichiers et rpertoires modifis pour la mise en uvre dun calendrier
pour la saisie des dates.
La fonction require_once qui est utilise au dbut du fichier bug_report_page.php inclut
dynamiquement le fichier core.php lors de lexcution du code par le serveur Apache. A la
diffrence de linstruction include utilise dans le fichier meta_inc.php pour incorporer le
fichier html_api.php, cette instruction sassure que le fichier na pas dj t appel
prcdemment avant de linclure et ne rvalue quune fois le code appel. Require_once permet
dviter les erreurs de redclaration.
Le fichier core.php et les fichiers api contiennent des fonctions qui visent tre frquemment
rutilises par le reste des fichiers de lapplication, cest pourquoi elles sont appeles par
linstruction require_once.
Laffichage dun calendrier depuis la page bug_report_page.php repose sur lappel de script
javascript, lors de la saisie dune date dans le champ Demand. Ces scripts sont contenus dans
le rpertoire jscalendar. Le fichier meta_inc.php dfinit le contenu des mtadonnes des pages
html gnres par le serveur. Le code ci-dessous est un extrait du fichier meta_inc.php. Il illustre
lintgration des fichiers javascript depuis le nouveau rpertoire jscalendar grce aux balises
caractristiques <script>

Extrait de code 2 : Mta_inc.php, ajout dun calendrier javascript

Le fichier meta_inc.php est inclus dans le fichier html_api.php par la fonction config_get(),
dfinie dans le fichier config_api.php et appele dans la fonction html_page_top1().
Comme lindique le commentaire en gris, la fonction html_page_top1() gnre les mtadonnes
dans la page html qui sera lue par le navigateur du client.

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 47 / 92

Extrait de code 3 : html_api.php, fonction daffichage de page mantis

La fonction config_get() (cf. extrait de code ci-dessus) a pour argument la chaine


meta_include_file qui renvoie la variable globale $g_meta_include_file dfinie dans le fichier
de configuration par dfaut config_defaults_inc.php
La logique de larchitecture est respecte. Laffichage dun calendrier dans la page de saisie des
demandes, comme lillustre la capture dcran ci-dessous, se fonde sur le fichier core.php
(cur) qui contient lensemble des modifications, savoir :
-

la modification des mtadonnes dfinie dans le fichier meta_inc.php, ce dernier faisant

dynamiquement rfrence aux scripts contenus dans le rpertoire jscalendar.


-

la modification du comportement des champs date dont laffichage est dfini dans le fichier

date_api.php.

Figure 23 : Un calendrier javascript dans une fentre pop up de Mantis

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 48 / 92

Le fichier filter_api.php permet laffichage de champs de recherche par date dans la page
Afficher les bogues. Son code, notamment la fonction print_filter_do_filter_by_date(), sera
modifi de manire quivalente bug_report_page.php
2.2.1.2. Modification du workflow de statuts
Dans le chapitre 1.3.3.1, nous avons dfini les tats ncessaires pour la gestion des demandes
conformment au processus cible. Mantis ne fournit pas dans son menu dadministration, de
fonction de modification du worklow des statuts par dfaut.
Tableau 3 : matrice des statuts dune demande dans Mantis

La matrice ci-dessus reprsente les transitions possibles dun tat un autre dans le workflow par
dfaut et dans le workflow cible. Les cellules en vert correspondent aux statuts cible tandis que
celles en violet correspondent aux statuts anciens qui nont pas t conservs dans la cible. Nous
allons prsent tudier comment crer et supprimer les statuts des demandes, puis comment
modifier le workflow par dfaut.
La dclaration de ces nouveaux tats de transition, autrement dit les statuts de la demande, est
faite dans le fichier custom_constant_inc.php comme lillustre lextrait de code ci-dessous.
<?php
define ( 'ANALYSED', 52 );
define ( 'RUNNING', 54 );
define ( 'TOTEST', 82 );
define ( 'TOPUBLISHNORMAL', 84 );
define ( 'TOPUBLISHNOW', 85 );
define ( 'INPRODUCTION', 86 );
Etude
?> des solutions damlioration de la maintenance applicative
Par lintgration de briques applicatives open source en entreprise Page 49 / 92

Extrait de code 4 : Custom_constant_inc.php, dfinition des nouveaux statuts de demande:

Le fichier custom_strings_inc.php permet dinstancier la variable $s_status_enum_string par


lensemble des statuts, en franais et en anglais. On crit le code ci-aprs :
if ( lang_get_current() == 'french' ) {
$s_status_enum_string =
'10:nouveau,20:affect,30:commentaire,52:en cours d\'analyse,54:en cours de
traitement,80:rsolu,82: tester,84:mise en prod normale,85:mise en prod urgente,86:en
production,90:ferm';

Extrait de code 5 : custom_strings_inc.php, instanciation des valeurs de statut de demande

Au cours du processus de rsolution ou de mise en production dune demande, Mantis affiche


des informations sur les statuts prsents et futurs dans la page ddition de la demande. Par
dfaut, il nexiste pas de labels correspondants aux nouveaux statuts que nous avons crs, nous
allons donc galement ajouter et instancier les variables ncessaires :
-

label du bouton dans la page ddition de la demande

titre de la page lors de ldition de la demande

titre du mail de notification lors de la validation du changement de statut

Lextrait de code ci-dessous illustre comment ces variables sont cres pour le statut Mise en
production normale . Enfin, il reste crer les chemins du graphe reprsent dans le graphe
dtat transition du processus cible.
$s_topublishnormal_bug_button = "Mise en production normale";
$s_topublishnormal_bug_title = "Mise en production normale";
$s_email_notification_title_for_status_topublishnormal ="Mise en production normale.";

Extrait de code 6 : Custom_strings_inc.php, instanciation des variables de prsentation:

Nous allons pour cela modifier le fichier config_inc.php en indiquant pour chaque statut les
chemins possibles, comme lillustre lextrait de code ci-dessous pour les premiers statuts :
$g_status_enum_workflow[NEW_]=
'20:assigned,30:feedback,52:analysed,54:running,80:resolved,82:totoest,84:topublishnormal,85:t
opublishnow,86:inproduction';
$g_status_enum_workflow[ASSIGNED] =
'30:feedback,52:analysed,54:running,80:resolved,82:totoest,84:topublishnormal,85:topublishnow,
86:inproduction';
$g_status_enum_workflow[FEEDBACK] =
'20:assigned,52:analysed,54:running,80:resolved,82:totoest,84:topublishnormal,85:topublishnow,
86:inproduction';
$g_status_enum_workflow[ANALYSED] =
'20:assigned,30:feedback,54:running,80:resolved,82:totoest,84:topublishnormal,85:topublishnow,
86:inproduction';
$g_status_enum_workflow[RUNNING] =
'52:analysed,80:resolved,82:totoest,84:topublishnormal,85:topublishnow,86:inproduction';
$g_status_enum_workflow[RESOLVED] =
'30:feedback,84:topublishnormal,85:topublishnow,86:inproduction,90:closed';

Extrait de code 7 : config_inc.php, configuration du workflow


Etude des solutions damlioration de la maintenance applicative
Par lintgration de briques applicatives open source en entreprise Page 50 / 92

De mme que pour la cration du calendrier, nous pouvons synthtiser les relations de
rutilisation et dappel des fichiers par le diagramme ci-dessous.

Figure 24 : Relations de dpendances pour la gestion dun workflow

On notera la souplesse du mcanisme dallocation des variables de Mantis. Le fichier Core.php,


qui est charg en premier, va parcourir en priorit les fichiers dans lesquels le dveloppeur est
susceptible de dclarer des variables de personnalisation Custom_constant__inc.php et
Custom_settings_inc.php. Dans le cas contraire, il va parcourir les fichiers de configuration par
dfaut.
Le code ci-dessous est un extrait du fichier Core.php et illustre lappel et le parcours des fichiers
personnaliss crs par le dveloppeur.
# Load constants and configuration files
require_once(dirname(__FILE__
).DIRECTORY_SEPARATOR.'core'.DIRECTORY_SEPARATOR.'constant_inc.php' );
if
( file_exists( dirname( __FILE__ ).DIRECTORY_SEPARATOR.'custom_constant_inc.php' ) )
{require_once( dirname( __FILE__ ).DIRECTORY_SEPARATOR.'custom_constant_inc.php' );}
$t_config_inc_found = false;
require_once( dirname( __FILE__ ).DIRECTORY_SEPARATOR.'config_defaults_inc.php' );
# config_inc may not be present if this is a new install
if ( file_exists( dirname( __FILE__ ).DIRECTORY_SEPARATOR.'config_inc.php' ) )
{require_once( dirname( __FILE__ ).DIRECTORY_SEPARATOR.'config_inc.php' );
$t_config_inc_found = true;}

Extrait de code 8 : core.php, chargement des fichiers personnaliss



Etude des solutions damlioration de la maintenance applicative
Par lintgration de briques applicatives open source en entreprise Page 51 / 92

Dans ce chapitre, nous avons pu tudier comment Mantis pouvait tre rapidement et simplement
mis en uvre dans un environnement de production dun service informatique. Cette simplicit
dcoule des nombreuses interfaces de paramtrage fournies par lapplication aux utilisateurs
avancs de type administrateur, mais galement de larchitecture du code qui, par sa modularit,
permet lajout dextensions ou la dclaration de nouvelles variables (au sens objet) avec peu de
modifications.

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 52 / 92

2.3. ETUDE SUR LAJOUT DUNE SOLUTION DE GESTION DES CONNAISSANCES :


MEDIAWIKI
2.3.1. Installation de MediaWiki

2.3.1.1 Architecture technique

Comme lillustre la figure ci-dessous, larchitecture technique de MediaWiki est similaire celle
de Mantis.

Figure 25 : Architecture technique de MediaWiki

La base de donnes Mysql et le serveur PHP - Apache sont installs sur la mme machine. En
effet, ces deux applications sont destines des activits de support peu critiques. En labsence de
Datacenter ou de politique de virtualisation, cest lhbergement mutualis qui est le plus adapt
en termes de cots.
Les fichiers sources de MediaWiki sont tlchargeables depuis le site franais de lapplication6.
On notera quil existe galement une procdure de mise jour de lapplication. Elle se base sur :
-

Un script de base de mise jour des bases de donnes qui va inspecter le schma et le mettre

jour en ajoutant des tables et des colonnes si ncessaire.

6 http://www.mediawiki.org/wiki/MediaWiki/fr

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 53 / 92

La copie des nouveaux fichiers, dans le respect de larborescence des rpertoires de

lapplication.
Lutilisation du mcanisme de release de Subversion rend lopration sre et rapide.
2.3.2. Paramtrage de MediaWiki
2.3.2.1 Principes dorganisation des connaissances
MediaWiki est un site web permettant dorganiser des volumes importants et riches (multimdia)
de connaissances. Il permet dorganiser les connaissances la fois par arborescence, la manire
dun fond bibliothcaire, et par association de pages ou de termes, la manire dun thesaurus.
Les utilisateurs disposent dune syntaxe spcialise pour structurer le contenu quils produisent.
Les principales notions de cette syntaxe sont les suivantes :
Les espaces de nom : Ils permettent un dcoupage, un partitionnement des pages. Ils sont
remarquables dans lurl dune page du site. Les espaces de nom ont t crs lorigine pour
sparer les connaissances des discussions leur propos. Leur utilisation peut tre tendue
dautres fonctions telles que le regroupement de pages par droit daccs, par mise en forme, par
type de contenu, etc.
Par dfaut, MediaWiki fournit les 17 espaces de noms suivants :
Name

Tableau 4 : liste des espaces de nom dans MediaWiki


Sujet

Main

Connaissances, ensemble darticles

Talk

Discussions sur les articles

User

Pages de comptes utilisateurs

User Talk

Discussions Pages de comptes utilisateurs

Project

Information sur le site

Project Talk

Discussions Information sur le site

File

Description du contenu multimdia

File Talk

Discussions Description du contenu multimdia

MediaWiki

Paramtrage de linterface du site

MediaWiki Talk

Discussions Paramtrage de linterface du site

Template

Modle de page

Template Talk

Discussions Modle de page

Help

Aide

Help Talk

Discussions Aide

Category

Description des catgories

Category Talk

Discussions Description des catgories

Special

Pas dadministration du site

Media

Alias des liens vers les fichiers multimdia

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 54 / 92

Il est possible dajouter dautres espaces de nom mais cela requiert une lgre modification du
code source de MediaWiki.

Les catgories : Elles permettent une organisation par association entre les pages dun mme
espace de nom. Une page peut appartenir plusieurs catgories diffrence dune arborescence
classique. En effet, en thorie des graphes, une arborescence est un arbre comportant un sommet
racine partir duquel il existe un chemin unique vers tous les autres sommets. Dans cette
organisation, ce chemin nest pas unique puisquun sommet enfant peut avoir plusieurs
sommets parents . Elles sont remarquables dans lurl dune page du site.
Pour crer une nouvelle catgorie, il faut publier une page vierge dont lurl se termine par le tag
souhait Par exemple pour crer la catgorie CNAM, on cre une page dont lurl sera :
http://{urldusite}/catgorie:CNAM

Pour ajouter une nouvelle page, ou un nouvel article une catgorie, le contenu de la page doit
contenir le code wiki suivant [[Catgorie:{nom}]] o nom est lappellation de la catgorie
laquelle on souhaite lajouter.
Par exemple, pour ajouter la rubrique mon mmoire la rubrique CNAM, on cre une page
mon mmoire la fin de laquelle on crit :
[[Catgorie:CNAM]]

La page mon mmoire sera automatiquement indexe dans la page de la catgorie CNAM
Les liens : Ils sont de diffrents types (internes, externes, inter wikis, inter langues) et permettent
la navigation vers un article ou une page regroupant les catgories.
En plus de cette organisation des connaissances, MediaWiki permet de grer des modles de
prsentation (templates en anglais) auxquels une feuille de style peut tre associe.
Dans notre tude de cas, lensemble des connaissances doit tre accessible aux personnes du
support et aux dveloppeurs pour faciliter la recherche ou/et la production et/ou la mise jour
dinformations sur les applications en production. De mme, il nest pas ncessaire dadapter la
prsentation en fonction des types dutilisateurs. Par consquent, la cration despace de noms
supplmentaires a t carte.
On a privilgie lorganisation des articles par catgorie. Les catgories retenues sont conformes
lorganisation des connaissances prsente au paragraphe 1.3.3.3 Mantis MediaWiki

2.3.2.2 Adaptation de linterface

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 55 / 92

La puissance de MediaWiki rside dans lutilisation conjointe dune syntaxe structure pour
lorganisation des connaissances dans un site et de la syntaxe HTML qui structure la prsentation
de ces connaissances dans une page.

Lors de ltude de lexistant ralise lors du chapitre 1, nous avions mis en avant le besoin de
capitaliser les connaissances du support dans une base de connaissances qui permettrait la
consultation rapide des solutions de contournement par le support niveau 2, avant lescalade au
niveau suprieur.
Le premier lment dorganisation des connaissances mis la disposition dun utilisateur de
lapplication MediaWiki est le menu de gauche.
-

Il est toujours prsent lcran : pendant la recherche ou la consultation dinformations.

Il propose un premier niveau dorganisation des connaissances.

La capture dcran ci-dessous reprsente lcran daccueil par dfaut de lapplication MediaWiki.

Figure 26 : cran daccueil par dfaut de MediaWiki

Le menu de gauche nest pas conforme lorganisation dfinie dans le processus cible (chapitre 1,
3.3.3 Mantis - MediaWiki) puisquil nexiste pas dentre pour chaque mtier ou filiale de
Global Concept.

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 56 / 92

La gestion des catgories, telle que vue au paragraphe prcdent, est une entre supplmentaire.
Elle est compatible au principe dorganisation en arborescence quelle enrichit en fournissant une
vision transverse de lensemble des applications du SI. A titre dexemple, le menu cible
contiendra les entres suivantes :
-

Accueil

Filiales : redirige vers une page qui liste lensemble des filiales pour lesquelles il existe des

articles (Viatelease, Paritel, Paricom, etc.).


-

Applications : redirige vers une page qui liste lensemble des applications pour lesquelles il

existe des articles.


-

Modifications rcentes : redirige vers une page qui liste lensemble des articles rcemment

modifis.
-

Aide : redirige vers une page qui liste des articles daide.

Pour modifier ce menu gauche, il suffit un utilisateur possdant les droits dadministration de
modifier la page menu gauche dans le nom de domaine rserv MediaWiki7 :
http://{urldusite}/MediaWiki:Sidebar.

Cette page contient la description de larborescence du

menu de gauche avec le titre affich et la page de redirection correspondante comme lillustre
lextrait suivant :
* navigation
** mainpage|mainpage-description
** portal-url|portal

Cette

page

fait

partie

des

pages

spciales.

Elle

est

charge

par

la

fonction

initializeSpecialCases() qui est une mthode de la classe MediaWiki contenue dans la page
Wiki.php appele lors du chargement de la page Index.php, qui est le principal point daccs
au Wiki.
Elle est galement appele par la page Autoloader.php, incluse dans la page Webstart.php,
elle mme incluse dans la page Index.php.
Le schma ci-dessous illustre lensemble des dpendances entre les fichiers PHP pour mettre en
uvre la personnalisation du menu gauche dans MediaWiki.

7 Cf. la description des espaces de nom

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 57 / 92

Figure 27 : Relation de dpendance pour la personnalisation du menu gauche MediaWiki

2.3.2.3 Ajout dun diteur convivial

Aprs avoir vu le paramtrage de linterface de consultation, nous allons prsent voir comment
amliorer linterface de saisie des articles contenant les connaissances.
Les personnes du support niveau 3 et les responsables fonctionnels sont amens ajouter du
contenu dans lapplication.
Le formatage du texte dans MediaWiki se base sur lutilisation dune syntaxe normalise appele
syntaxe wiki. Elle utilise des caractres normaux comme des astrisques et des apostrophes ou
accolades qui ont une fonction spciale sur le wiki. Par exemple pour formater le terme mmoire
en gras traduit par '''mmoire''' en syntaxe wiki alors que ''mmoire (espace) le prsentera en
italique.

La figure ci-dessous reprsente les outils ddition de texte par dfaut :


Cet diteur dispense lutilisateur de connaitre par cur la syntaxe wiki. Nanmoins, les

Figure 28 : diteur de texte par dfaut de MediaWiki

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 58 / 92

possibilits de formatage sont pauvres compares un diteur de texte comme Microsoft Word
ou Writer dOpen Office.
Lergonomie est un des facteurs cls du succs pour un projet dintgration dun nouveau logiciel.
Il est ncessaire de fournir aux utilisateurs de MediaWiki, habitus des diteurs de texte
riches , un diteur de qualit quivalente.

Nous allons installer FCKeditor, un diteur intuitif de type WYSWYG8 qui fournit aussi
lutilisateur des fonctions de mise avances, comme lillustre le diagramme suivant 9 :

Figure 29 : Editeur de texte cible de MediaWiki

Pour installer FCKeditor, il faut rcuprer les fichiers soit sur le serveur SVN partir du client
install dans Eclipse et utilis pour grer les versions (cf. 2.3.1.1 Architecture technique), soit
partir du site communautaire. Aprs avoir import ces fichiers dans le rpertoire Extension de
lapplication, on obtient larborescence suivante :
[MEDIAWIKI ROOT]
-- AdminSettings.php
-- LocalSettings.php
-- extensions
-- FCKeditor
-- FCKeditor.php
-- fckeditor
-- editor

8 What You See is What You Get : vous avez ce que vous voyez. Autrement dit, ce qui est affich lcran est identique ce qui sera consult
9 http://rdac.zoomacom.org/wiki/

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 59 / 92

-- _source
...

Il suffit de modifier le fichier de configuration en ajoutant la ligne suivante :

require_once("$192.168.0.10/extensions/fckeditor/fckeditor.php");

Extrait de code 9 : appel dune extension diteur de texte riche dans MediaWiki

On considrera que lajout de cette ligne et limport de fichiers dans le rpertoire de Mediawiki ne
sont pas quivalents une modification du code source par un dveloppeur. En effet, ces actions
sinsrent dans une stratgie modulaire prvue dans MediaWiki.

On retrouve le principe dj vu lors de notre tude de lajout dun calendrier dans Mantis (cf.
2.2.1.1) de cur applicatif et dextension. Dans le cas de Mantis, ce cur tait le rpertoire Core.
Dans le cas de MediaWiki, ce cur applicatif est le rpertoire includes qui contient lensemble
des classes fondamentales.
Le rpertoire extension est prvu pour contenir des groupes de fichiers PHP qui ajouteront de
nouvelles fonctionnalits, telles quun diteur riche, adapt aux besoins des personnes du support
niveau 2 et 3.

2.3.3. Modification du code source de MediaWiki


Lajout dun diteur riche a permis de mettre en vidence lusage dextension pour ajouter des
nouvelles fonctionnalits de MediaWiki. Nous allons prsent voir comment amliorer les
fonctionnalits existantes sans importer de fichiers dextension. Il sagit :
-

Damliorer la scurit des donnes de lenvironnement de production

Damliorer la consultation des articles avec des images dans la base de connaissances.

2.3.3.1.

Modification du code de localsetting.php : scurisation des donnes de

production

Larchitecture dcrite lors de linstallation de MediaWiki se base sur lutilisation dun serveur
Subversion pour la gestion des versions. Grace lui, chaque dveloppeur peut facilement
dvelopper et tester en local des extensions ou des volutions du code de MediaWiki sans risque
pour lenvironnement de production mis disposition des utilisateurs. Le serveur Subversion
Etude des solutions damlioration de la maintenance applicative
Par lintgration de briques applicatives open source en entreprise Page 60 / 92

garantit la scurit du code source. Par contre, il ne garantit pas la scurit des donnes. En effet,
cest la mme base de donnes qui est utilise dans lenvironnement de dveloppement et de
production.

Le schma ci-dessus reprsente lvolution de larchitecture existante pour amliorer la scurit


des donnes.

Figure 30 : Architecture cible des environnements MediaWiki

Un serveur Mysql de test est ajout dans lenvironnement de dveloppement local. Les
dveloppeurs peuvent ainsi ajouter, modifier, supprimer des connaissances (catgories, articles,
images) sans risque pour lenvironnement de production. On note que cette base de donnes de
test peut, tout moment, tre mise jour pour tre quivalente celle en production.
Le serveur Apache de dveloppement doit tre capable de se connecter aussi bien la base de
donnes mysql de dveloppement que de production. Ceci nest pas possible sans modification du
code pour deux raisons :
-

Par dfaut, la connexion la base de donnes dans lenvironnement local de dveloppement


est la mme que dans lenvironnement de production. En effet, cette connexion est
paramtre linstallation et est importe lors du check out du code depuis le serveur
subversion.

Il nexiste pas dInterface Homme Machine (IHM) pour le re-paramtrage de cette connexion.

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 61 / 92

Il est ncessaire de modifier le code source du cur de lapplication MediaWiki pour modifier la
connexion par dfaut. Le fichier localsetting.php contient les variables de connexion. Il est
ncessaire de modifier les variables suivantes :
-

$wgDBserver : adresse logique ou adresse ip du serveur de gestion de base de donnes

$wgDBpassword : mot de passe, en clair, de connexion au serveur de gestion de base de


donnes.

Les extraits de code ci-dessous illustrent la modification effectuer dans le fichier


localsetting.php aprs le premier check out. Par la suite, si le fichier Localsetting.php nest pas
modifi par le dveloppeur, il sera exclu des fichiers prendre en compte lors du commit et du
check out sur le client et serveur SVN.

## Localsetting.php de PRODUCTION

## Localsetting.php de DEVELOPPEMENT

## Database settings

## Database settings

$wgDBtype
= "mysql";
Fig
$wgDBserver
= "Localhost";
$wgDBserver
= "192.168.1.133";
ure
$wgDBname
= "wikidb";
$wgDBname
= "wikidb";
31
:
$wgDBuser
= "root";
$wgDBuser
= "root";
arc
$wgDBpassword
= "passwordlocal";
$wgDBpassword
= "passwordrseau";
hit
ect
Extrait de code 10 : localsetting.php,
ureconfiguration des accs aux SGBD
cibl
e
de
2.3.3.2. Modification linker.php : amlioration
sc
de la consultation des images
uri
sati
on
Nous allons prsent amliorer la gestion de des
la consultation des articles et en particulier celle des
do
images contenues dans les articles. Nous avons dj mis en vidence limportance de lergonomie
nn
es comme base de connaissance pour les personnes
de consultation pour ladoption de MediaWiki
$wgDBtype

= "mysql";

du support de niveau 2 et 3 lors de la modification du menu gauche.


Nous ne traiterons pas des fonctions de tlchargement qui sappuient largement sur lutilisation
dextensions linstar de lajout dun diteur riche.
La consultation dimages est un lment important de lergonomie. Nous allons voir comment
amliorer la consultation des articles contenant des images. En effet, lors de sa consultation, un
utilisateur peut cliquer volontairement ou non sur une image. Par dfaut, toutes les images sont

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 62 / 92

galement des hyperliens10. Il est alors redirig vers une page qui dcrit les proprits de cette
image savoir : sa date et heure dajout, ses dimensions et lidentit de lutilisateur qui la
ajoute.
Hormis le fait que cette redirection peut venir perturber la lecture des articles, il nest pas
pertinent de fournir ces informations tous les utilisateurs. Cest pourquoi, nous allons dsactiver
la fonction dhyperlien associe automatiquement aux images dans les articles. Les personnes du
support de niveau 3 et ladministrateur du site pourront les diter partir des pages spciales
leur disposition depuis le menu gauche.

Figure 31 : Edition dune image MediaWiki depuis la consultation dune page

La capture dcran ci-dessus illustre une page de redirection obtenue partir dun clic sur limage
Matrice des tats contenu dans larticle sur les spcifications fonctionnelles de SIV.
Pour dsactiver la proprit dhyperlien, nous allons modifier le code source de la mthode
makeImageLink2 du fichier Linker.php dans le rpertoire Includes, cest dire dans le cur
applicatif de MediaWiki.

10 Un hyperlien ou lien hypertexte ou simplement lien, est une rfrence dans un systme hypertexte permettant de passer automatiquement d'un document
consult un document li. Les hyperliens sont notamment utiliss dans le World Wide Web pour permettre le passage d'une page Web une autre d'un simple
clic. http://fr.wikipedia.org/wiki/Hyperlien

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 63 / 92

if ( !$thumb )
{ $s = $this->makeBrokenImageLinkObj( $title );
}
else
{ $s = $thumb->toHtml( array( 'desc-link'

=>

False,'alt'

=>

$fp['alt'],'valign'

=>

isset(

$fp['valign'] ) ? $fp['valign'] : false ,'img-class' => isset( $fp['border'] ) ? 'thumbborder'


: false ) );
}

Extrait de code 11 : linker.php, modifiation de la fonction dhyperlien daffichage des images

Dans le code ci-dessus, on change en faux la valeur par dfaut du paramtre desc-link de la
mthode toHtml applique lobjet $thumb. Autrement dit, la prsentation de limage dans
larticle (qui peut tre diffrente de limage elle-mme do le terme de thumbnail qui signifie
vignette en anglais) ne cumule pas, dans le code HTML, de tag dhyperlien vers une page de
proprit.

On notera que dans les versions les plus rcentes de MediaWiki, cette amlioration peut tre
obtenue sans modifier le fichier linker.php du cur applicatif. Cela confirme deux points :
-

La gestion de la consultation des images est suffisamment importante pour tre traite sans

modification dun fichier du cur applicatif


-

La personnalisation de lapplication doit se faire indpendamment de la modification des

fichiers du cur applicatif afin de prserver la stabilit de lapplication et rduire les rgressions
fonctionnelles en cas de mise jour de lapplication.

Dans ce chapitre, nous avons tudi des cas concrets et reprsentatifs dadaptation de Mantis
pour la gestion des anomalies et de MediaWiki pour la gestion des connaissances. Pour chacun
deux, nous avons pu constater la fois la richesse des outils de paramtrage intgrs dans les
IHM et la possibilit dajouter des nouvelles fonctionnalits en utilisant des extensions
dveloppes indpendamment des fichiers de base ou du cur applicatif. Lorsquaucune
extension ne rpondait aux besoins de lentreprise, nous avons vu quil tait galement possible
pour un dveloppeur de modifier directement les fonctions du cur sans avoir dvelopper une
extension. Cette solution, qui est la plus rapide, implique des risques, proportionnels
limportance des modifications apportes. Les volutions et les nombreuses extensions proposes
rgulirement par la communaut open source risquent de ne plus tre compatibles avec le code
source modifi spcifiquement pour lentreprise. Il sagit dune limite importante qui impose une
expertise du dveloppeur qui doit comprendre et respecter larchitecture logicielle dans laquelle
sinscriront ses dveloppements. On notera que Subversion fournit dans tous les cas des outils de
journalisation des modifications apportes au code sources quelle que soit la logique retenue.

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 64 / 92

Chapitre 3 - tude de linterconnexion des applications open source

Linstallation et le paramtrage de Mantis et MediaWiki permettent dapprocher le processus


cible de support que nous avons expos dans le premier chapitre. Aprs avoir constat, dans le
chapitre deux, les facilits et les limites de la mise en uvre de chacun de ces applications, nous
allons prsent tudier leur capacit pouvoir sintgrer dans le systme dinformation de Global
Concept.
Un systme dinformation dsigne lensemble des moyens humains, financiers, organisationnels
et technologiques qui concourent la ralisation dactivits (oprationnelles, tactiques,
stratgiques) et de fonctions (vente, marketing, etc.) de lentreprise11. MediaWiki et Mantis sont
deux applications du Systme dinformation de support informatique de Global Concept. Ltude
de leur capacit dintgration permet de mesurer comment elles partagent des donnes et des
rgles de gestion avec les autres applications et galement entre elles puisquelles font partie du
mme systme dinformation.
Nous allons, dans un premier temps, tudier lintgration de Mantis et MediaWiki avec
lapplication dannuaire de Global Concept puis leur interconnexion entre elles. Enfin, nous
terminerons ce dernier chapitre par un retour dexprience sur lutilisation de ces deux
applications par les personnes du service informatique charges du dveloppement et de la
maintenance applicative.

3.1. INTEGRATION AVEC LANNUAIRE DE LENTREPRISE : ACTIVE DIRECTORY


3.1.1. Objectif de lintgration avec lannuaire Active Directory
Un annuaire est un recueil de donnes dont le but est de pouvoir retrouver facilement les
personnes et/ou les organisations laide dun nombre limit de critres. Active Directory est la
mise en uvre par Microsoft des services dannuaire Lightweight Directory Access Protocol.
LDAP est, lorigine, un protocole permettant l'interrogation des services dannuaire. Ce
protocole a volu pour reprsenter une norme pour les systmes dannuaires, incluant un
modle de donnes, un modle de nomination, un modle fonctionnel bas sur le protocole
Active Directory, un modle de scurit et un modle de rplication.
Lannuaire Active Directory de Global Concept centralise lensemble des informations sur les
utilisateurs de lentreprise. Il est sollicit en particulier pour leur authentification et la gestion de

11 Dfinition issue du cours Systme dinformation Web de Jacky Akoka

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 65 / 92

leurs droits daccs aux diffrentes applications et sources de donnes (serveurs de fichiers,
Systme de gestion de base de donnes) de lentreprise
Mantis et MediaWiki, conformment aux processus cibles, ncessitent une gestion des
utilisateurs qui peuvent avoir des profils de rfrents mtiers, directeur de projet, support niveau 2
et 3, responsable TMA, chef de projet. Lintgration avec lannuaire Active Directory vite aux
utilisateurs la multiplication des mots de passe mmoriser et simplifie la gestion de ceux-ci pour
les administrateurs informatiques : le mot de passe sera commun aux diffrentes applications.

3.1.2. Architecture Active Directory - Mantis - MediaWiki


3.1.2.1. Architecture Active Directory existante
Le schma ci-dessous reprsente les diffrentes connections ncessitant des mots de passe. Il
nexiste aucun mcanisme de rplication par dfaut. Chaque couple (nom dutilisateur, mot de
passe)12 est reprsent par une couleur diffrente.

Figure 32 : Couples dauthentification des utilisateurs avant intgration

12 Traduit dans le schma par le couple (login, password). Ici, on suppose que le login est le mme dans toutes les connexions.

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 66 / 92

3.1.2.2. Architecture Active Directory cible


Dans cette architecture cible, le serveur Active Directory est le rfrentiel matre pour toutes les
authentifications, que ce soit pour lenvironnement de dveloppement ou de production. Par
commodit graphique, les mcanismes de rplication au sein des bases Mysql des applications
Mantis et MediaWiki ne sont pas reprsents. Ils seront dtaills dans la description de
lintgration.
On constate dans cette architecture, illustre ci-dessous, quil nexiste plus quun seul couple pour
lensemble des applications.

Figure 33 : Couples dauthentification des utilisateurs aprs intgration

Cette architecture technique cible rduit le nombre de mots de passe retenir pour chaque
utilisateur et facilite la gestion du changement, autrement dit la scurit du systme
dinformation.

3.1.2.3. Intgration de Mantis


Il nexiste pas de plugin ou dextension pour interconnecter Mantis et lActive Directory.
Cependant, il existe dans le core, un fichier dAPI qui contient les fonctions de gestion
dauthentification des utilisateurs : authentification_api.php ainsi quun fichier pour la gestion
Etude des solutions damlioration de la maintenance applicative
Par lintgration de briques applicatives open source en entreprise Page 67 / 92

des changes conforme au protocole LDAP : ldap_api.php. Enfin, il existe dans le fichier de
paramtrage gnral par dfaut : config_default_inc.php, une variable globale dont la valeur
dfinit le type dauthentification
/**
* login method
* CRYPT or PLAIN or MD5 or LDAP or BASIC_AUTH
* You can simply change this at will. MantisBT will try to figure out how the passwords were
encrypted.
* @global int $g_login_method
*/
$g_login_method = MD5;

Extrait de code 12 : config_default_inc.php, dclaration de la mthode dauthentification

Le code ci-dessus est extrait du fichier config_default_inc.php. On y voit dcrites les diffrentes
valeurs possibles pour la mthode dauthentification : LDAP, MD5. Par dfaut, la mthode est
MD5. A la connexion, lutilisateur va entrer dans la mire dauthentification son nom dutilisateur
et son mot de passe. Mantis va alors crer partir deux une chaine chiffre unique en utilisant la
fonction de hachage MD513. Cette chaine unique est compare celle stocke en base (Mysql)
pour autoriser ou non la connexion de lutilisateur. Si la comparaison est positive, alors la chaine
issue du hachage est stocke dans un cookie14 sur le poste de l'utilisateur afin dviter Mantis de
la recalculer au cours de la navigation lorsque le systme vrifie lidentit de l'utilisateur. Le
schma ci-dessous illustre cette squence dauthentification.

Figure 34 : Squence technique


dauthentification aprs intgration

13 MD5 (Message Digest 5) est une fonction de hachage cryptographique qui calcule, partir d'un fichier numrique, son empreinte numrique (en l'occurrence
une squence de 128 bits ou 32 caractres en notation hexadcimale) avec une probabilit trs forte que deux fichiers diffrents donnent deux empreintes
diffrentes. Cf. http://fr.wikipedia.org/wiki/Md5
14 En informatique, un cookie (aussi appel tmoin) est dfini par le protocole de communication HTTP comme tant une suite d'informations envoye par un
serveur HTTP un client HTTP, que ce dernier retourne lors de chaque interrogation du mme serveur Cf. HTTP. http://fr.wikipedia.org/wiki/Cookie

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 68 / 92

Pour permettre aux utilisateurs de sauthentifier en utilisant leur nom dutilisateur et le mot de
passe enregistrs dans lActive Directory, nous allons modifier cette mthode dauthentification.
En effet, le mot de passe de lActive Directory nest plus stock en base de donnes mais dans
lActive Directory. La fonction comparaison sera ds lors toujours ngative.
Dans notre cas dtude, lapplication Mantis tait dj utilise par de nombreux utilisateurs. Or
les noms dutilisateur employs pour sauthentifier sur Mantis ne sont pas les mmes que dans
Active Directory.
Dans AD, le nom dutilisateur est form par la premire lettre du prnom suivie dun point suivi
du nom de la personne. Ex : s.glattleider pour Stphane Glattleider.
Dans Mantis, le nom dutilisateur est form par la premire lettre du prnom directement suivie
du nom. Ex : sglattleider pour Stphane Glattleider.
Nous devrons nous assurer que la compatibilit descendante est prserve, le temps dinformer
tous les utilisateurs. Autrement dit, les utilisateurs devront toujours sauthentifier avec leur ancien
nom dutilisateur et mot de passe.
Nous

allons

dabord

modifier

la

fonction

dauthentification

dans

le

fichier

authentification_api.php dans le core.


#

true is returned.
#

If $p_perm_login is true, the long-term

cookie is created.
function auth_attempt_login( $p_username, $p_password, $p_perm_login=false ) {
$t_user_id = user_get_id_by_name( $p_username );
$t_login_method = config_get( 'login_method' );
if ( false === $t_user_id ) {
if ( BASIC_AUTH == $t_login_method || LDAP == $t_login_method ) {
if ( BASIC_AUTH == $t_login_method) {
$t_cookie_string = user_create( $p_username, $p_password );
}
elseif ( LDAP == $t_login_method ) {
$t_cookie_string = user_create( $p_username, '');
}
if ( false === $t_cookie_string ) {
# it didn't work
return false;
}
if ( BASIC_AUTH == $t_login_method ) {
# attempt to create the user if using BASIC_AUTH
$t_cookie_string = user_create( $p_username, $p_password );
if ( false === $t_cookie_string ) {
# it didn't work
return false;

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 69 / 92

Extrait de code 13 : authentification_api.php, modification de la fonction dauthentification

Dans lextrait de code ci-dessus, le code en bleu a t ajout la partir du code en noir et vert qui
est celui dorigine. Si le mode d'authentification LDAP est retenu, la chaine unique est cre
partir du nom dutilisateur ($p_username) et non plus partir du nom dutilisateur et du mot de
passe comme dans le mode dauthentification basique, en vert. Le principe de cration du
cookie est conserv.
Par dfaut, Mantis nautorise pas les noms dutilisateur avec un point. Cette contrainte peut tre
contourne en modifiant les caractres accepts dans le fichier de configuration gnral par
dfaut config_default_inc.php
$g_user_login_valid_regex = '/^[\w \.\-]+$/';

La variable $g_user_login_valid_regex est utilise par la fonction native php preg_match dans la
fonction

user_is_name_valid,

ci-dessous,

qui

est

elle-mme

appele

par

la

fonction

user_ensure_name_valid visant vrifier la validit du nom dutilisateur saisi dans la mire


dauthentification dans le fichier api, user_api.php du core
# Check if the username is a valid username (does not account for uniqueness)
#

realname can match

# Return true if it is, false otherwise


function user_is_name_valid( $p_username ) {
# The DB field is hard-coded. USERLEN should not be modified.
if( utf8_strlen( $p_username ) > USERLEN ) {
return false;
}
# username must consist of at least one character
if( is_blank( $p_username ) ) {
return false;
}
# Only allow a basic set of characters
if( 0 == preg_match( config_get( 'user_login_valid_regex' ), $p_username ) ) {
return false;
}
# We have a valid username
return true;
}

Extrait de code 14 : user_api.php, validation de la forme du login

Cette partie de code permet Mantis de vrifier lexistence de lutilisateur et le mode


dauthentification mettre en uvre. Nous devons nous questionner prsent sur la squence
dauthentification en cas de mode Active Directory.
Etude des solutions damlioration de la maintenance applicative
Par lintgration de briques applicatives open source en entreprise Page 70 / 92

Pour pouvoir interroger lActive Directory conformment au protocole LDAP, il faut fournir
Mantis :
-

Le chemin de larborescence interroger.

Le compte et le mot de passe systme autoris interroger lActive Directory.

La version du protocole LDAP utiliser.

# look in README.LDAP for details


# --- using openldap ------------$g_ldap_server = 'ldap://192.168.1.99/';
$g_ldap_port

= '389';

$g_ldap_root_dn = 'CN=Users,DC=globalconcept,DC=fr';
$g_ldap_organization

= '';

$g_ldap_uid_field = 'sAMAccountName'; # Use 'sAMAccountName' for Active Directory


$g_ldap_bind_dn = 'CN=ldap,CN=Users,DC=globalconcept,DC=fr';
$g_ldap_bind_passwd = 'Password';
$g_use_ldap_email = OFF;
$g_ldap_protocol_version = 3;

Extrait de code 15 : config_defaults_inc.php, configuration de laccs LDAP pour Mantis

Les lignes de code ci-dessus sont ajoutes au fichier de configuration par dfaut
config_defaults_inc.php. Elles fournissent toutes les variables ncessaires Mantis :
-

Ladresse du serveur LDAP

Le port de communication

La description de la branche contenant les utilisateurs dans lannuaire

Le nom et le mot de passe du compte systme pour interroger Active Directory

Le type de protocole LDAP utiliser avec un serveur Active Directory Microsoft 2000.

Enfin, on notera que dans ce mode dauthentification, lunicit des noms dutilisateur (seul
lment prsent en base) qui est garantie par Active Directory.
3.1.2.3. Intgration de MediaWiki

Dans le cas de MediaWiki, Lintgration avec le serveur Active Directory ncessite linstallation
dune extension disponible depuis le site officiel de lapplication15. A linstar de lextension
FCKeditor, on importe les fichiers dans le rpertoire extension.
Le fichier localsetting.php qui est charg lors de laccs lapplication doit tre modifi pour
prendre en compte lextension Active Directory.

15 http://www.mediawiki.org/wiki/Extension:Active Directory_Authentication#Installation

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 71 / 92


#DNs in $wgActive DirectoryRequiredGroups must be lowercase, as search result attribute values
are...
$wgActive DirectoryDomainNames = array( "Active Directory");
$wgActive DirectoryServerNames = array("Active Directory"=>"192.168.1.99");
$wgActive DirectoryEncryptionType = array("Active Directory"=>"clear");
$wgActive

DirectorySearchStrings

array("Active

Directory"=>"CN=USER-

NAME,CN=Users,DC=globalconcept,DC=fr"
);
require_once( "$IP/extensions/Active DirectoryAuthentication.php" );
$wgAuth = new Active DirectoryAuthenticationPlugin();

Extrait de code 16 : localsetting.php, configuration de laccs LDAP pour MediaWiki

Lextrait de code illustre la dfinition des variables propres Global Concept pour la connexion
au Active Directory, savoir :
-

Le nom du domaine Active Directory

Le nom du serveur Active Directory qui est ici dsign par son adresse IP plutt que par son

nom logique DNS


-

Le type de chiffrement utilis pour la communication. Dans notre cas, la communication

nutilise ni le protocole Secure Socket Layer (SSL), ni le protocole Transport Layer Security
(TLS).
-

Les lments, common name (cn) et domain component (dn) recherchs pour

lauthentification. Dans notre cas, la connexion au serveur Active Directory est directe et ne
passe pas par un serveur proxy.

Aprs avoir instanci ces variables, on inclut par la fonction require_once, le code source du
fichier Active Directory authentification.php qui constitue notre extension. On peut alors
instancier une nouvelle classe de Active DirectoryAuthentificationPlugin afin de fournir
Mantis les mthodes ncessaires pour assurer son intgration avec le serveur Active Directory.
3.2. INTERCONNEXION DE MEDIAWIKI ET MANTIS
3.2.1. Valeur ajoute de la solution
Linterconnexion de Mantis et MediaWiki avec lActive Directory simplifie lauthentification des
utilisateurs qui nont plus quun seul nom dutilisateur et un seul mot de passe retenir pour
utiliser toutes ces applications. De plus, elle amliore le support de ces applications puisque le
support na pas assur la synchronisation de plusieurs rfrentiels dauthentification.

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 72 / 92

Linterconnexion entre Mantis et MediaWiki prsente dautres avantages pour la maintenance


des applications. En liant un ticket Mantis un article de la base de connaissance dans
MediaWiki, on amliore les points suivants :
-

Ajout simple et rapide de contenus la base de connaissances

Mise jour rapide des articles de la base de connaissances par rapport lexistant en

production et son volution.


-

Amlioration de la recherche de solutions de contournement ou de solutions de rsolution par

les supports niveau 2 et 3 grce une documentation complte et jour des applications
maintenir.
Il est donc souhaitable de mettre en place la cartographie applicative cible dcrite au paragraphe
1.3.3.3 dont le schma ci-dessous rappelle les principes.

Figure 35 : architecture applicative cible

Les incidents et problmes grs dans Mantis sont une partie des connaissances abordes dans
MediaWiki. Tous les tickets dans Mantis nont pas vocation tre rfrencs dans la base de
connaissances. Le schma ci-dessus dcrit lorganisation des connaissances et des tickets ainsi
que les quivalences de notions qui garantissent la pertinence de linterconnexion. La notion
dapplication est transverse. Les tickets portant sur les volutions fonctionnelles sont quivalents
aux articles portant sur les volutions des applications dans la base de connaissances. Idem pour
les volutions non fonctionnelles.

On notera que dans lorganisation cible de MediaWiki, nous ne faisons pas apparatre
dquivalence entre les incidents correctifs et les articles. Il sagit dun choix fonctionnel et non
technique. La base de connaissances a pour objectif de dcrire lexistant. Pour une meilleure
Etude des solutions damlioration de la maintenance applicative
Par lintgration de briques applicatives open source en entreprise Page 73 / 92

adoption des outils, nous souhaitons viter une confusion entre les outils de suivi des demandes
(Mantis, Altiris) et loutil de gestion des connaissances (MediaWiki) pouvant servir lanalyse et
au diagnostic de ces demandes.

3.2.2. Ralisation de la solution


Il sagit de permettre MediaWiki dafficher le contenu dun ticket Mantis ou dune partie dun
ticket Mantis. Pour ce faire, il faut fournir les fonctionnalits suivantes :
-

Permettre MediaWiki de consulter la base de donnes de Mantis.

Slectionner dans la base de donnes de Mantis un ticket et son contenu ou une partie de son

contenu (Titre, Rsum, Date de mise jour, date de cration, personne affecte et description)
-

Dfinir une syntaxe spcifique dans MediaWiki pour spcifier le ticket et le contenu de ce

ticket afficher.

En nous basant sur le principe dajout dextension, nous allons rutiliser une extension existante
que nous allons amliorer pour mieux rpondre nos besoins.

3.2.2.1 Analyse de lextension MantisIntegration.php

Il existe sur le site communautaire de MediaWiki16, une extension crite par Alexander Botero
qui permet linterconnexion de Mantis avec MediaWiki. Elle se base sur 2 fonctions :
wfMantisExtension et showMantis .

wfMantisExtension ajoute la classe de l'analyseur syntaxique (Parser) les mots cls mantis.
Le code source est reproduit ci-dessous
function wfMantisExtension() {
global $wgParser;
$wgParser->setHook( "mantis", "showMantis" );

Extrait de code 17 : mantisIntegration.php, fonction wfMantisExtension

ShowMantis contient les paramtres pour se connecter sur le serveur Mantis, slectionner un
ticket et retourner le contenu de ce ticket dans MediaWiki. Il est important de noter que la

16 http://www.mediawiki.org/wiki/Extension:MantisIntegration

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 74 / 92

fonction ne permet pas de slectionner une partie du ticket tel que dfini dans les besoins. Nous
allons nous baser sur lextrait de code ci-dessous pour tudier le mcanisme de cette fonction.
function showMantis( $input, $argv, &$parser) {
$mantisDBSERVER="";
$mantisDBUSER="";
$mantisDBUSERPW="";
$mantisDBNAME="";
$mantisDBPrefix="mantis_";
$mantis_home = "http://mantis.xxxxxx.de/mantis/view.php?id=";

Extrait de code 18: mantisIntegration.php, fonction showMantis

On dfinit dans la fonction les variables pour se connecter au serveur Mysql de Mantis.
$input est le premier argument de la fonction, il reprsente le numro du ticket dont le contenu
est recherch depuis MediaWiki. Il est appel lors de la requte principale de la fonction.
$sql

sprintf("SELECT

id,

convert(convert(summary

using

utf8),

binary),

status

FROM

".$mantisDBPrefix."bug_table where id=%d", mysql_real_escape_string($input));


$qryres = mysql_query($sql);

Extrait de code 19 : mantisIntegration.php, slection du contenu dune demande

La requte correspond la slection dun identifiant, du rsum (summary) et du statut dun


enregistrement de la table mantis_bug_table dont lid est le numro correspondant la variable
$input.
La variable $sql correspond la requte sous forme de chane formate. Elle est ensuite excute
et son rsultat est stock, sous forme de tableau, dans la variable $qryres (abrviation de query
result, rsultat de requte en anglais).

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 75 / 92

Limage ci-dessous illustre la structure de la table mantis_bug_table et des champs qui la


constituent.
Figure 34 : Structure de la table de gestion des demandes de Mantis

Le rsultat affich est la chaine constitue du numro identifiant du ticket, son statut et son
rsum. Le libell du statut ntant pas stock dans la table (qui ne contient que sa valeur
numrique), la fonction, dont lextrait de code est affich ci-dessous, contient une structure
conditionnelle qui permet de dduire et dafficher le libell correspondant.
if ($row = mysql_fetch_row($qryres)) {
switch ($row[2]) {
case 10:
$state_msg="new";
break;
case 20:
$state_msg="feedback";
break;
case 30:
$state_msg="acknowledged";
break;
case 40:
$state_msg="confirmed";
break;
case 50:
Etude des solutions damlioration de la maintenance applicative
Par lintgration de briques applicatives open source en entreprise Page 76 / 92

$state_msg="assigned";
break;
case 60:
$state_msg="working on";
break;
case 80:
$state_msg="resolved";
break;
case 90:
$state_msg="closed";
break;
default:
$state_msg="unkown";
}
$res = "Bug ID:".$row[0]." (".$state_msg.") : ".$row[1];

Extrait de code 20 : mantisIntegration.php, slection simple de contenu de ticket

Ce rsultat sera soumis une mthode de la classe $Parser et instanci comme variable $output
par lillustration du code ci-dessous.
$output

$parser->parse("[$bug_page

$res]",

$parser->mTitle,

$parser->mOptions,

false,

false);
return $output->getText();

3.2.2.2 Modification du code de lextension


Nous allons prsent modifier le code de cette extension pour permettre une slection plus fine
et un affichage plus prcis des attributs dun ticket. Il existe plusieurs faons denvisager la mise
en uvre de cette modification. Nous allons privilgier celle qui a limpact le plus faible sur le
code existant.
Nous nous baserons sur la possibilit de passer un tableau dargument $argv la fonction en plus
du numro de ticket reprsent par $input. Les arguments correspondent aux lments du ticket
que nous souhaitons spcifiquement afficher :
-

Le titre

le rsum

La dernire date de mise jour

La date de cration

Le nom de la personne qui a rsolu le ticket ou qui est en charge de le rsoudre

La description.

Puisque nous avons adopt la stratgie la moins impactante sur le code, la requte initiale nest
pas suffisante pour remonter la valeur de tous les lments du ticket. Plutt que de modifier cette
requte initiale, nous allons crer une nouvelle structure conditionnelle base sur la valeur de la
Etude des solutions damlioration de la maintenance applicative
Par lintgration de briques applicatives open source en entreprise Page 77 / 92

variable $argv en fonction de llment spcifi afficher. Une nouvelle requte sera excute et
son contenu sera retourn pour tre affich.
if(!empty($argv))
{
$fields = array_values($argv);
$field = $fields[0];
$res = '';
switch($field)
{
case 'summary':
case 'resume':
$sql = "SELECT b.id, b.summary FROM ".$mantisDBPrefix."bug_table b where
b.id=".mysql_real_escape_string($input);
$qryres = mysql_query($sql);
if (!$qryres) { return "<hr><b>Erreur pendant la requte :". mysql_error() ;}
if($row = mysql_fetch_row($qryres)) {
$res = $row[1];
}
else{
$res = "Aucun bug mantis

ce numro.";

}
break;
case 'lastupdate':
case 'lastup':
case 'maj':
case 'dateup':
case 'dateupdated':
$sql

"SELECT

b.id,

b.last_updated

FROM

".$mantisDBPrefix."bug_table

where

b.id=".mysql_real_escape_string($input);
$qryres = mysql_query($sql);
if (!$qryres) { return "<hr><b>Erreur pendant la requte :". mysql_error() ;}
if($row = mysql_fetch_row($qryres)) {
$res = $row[1];
}
else{
$res = "Aucun bug mantis

ce numro.";

}
break;

Extrait de code 21 : mantisIntegration.php, slection avance de contenu dans les demandes

Lextrait de code ci-dessus illustre une partie de la nouvelle structure conditionnelle. La variable
$field, extraite du tableau dargument $argv pass par lutilisateur, est teste. En fonction de sa
valeur, une nouvelle requte, $sql dont la condition id est la mme que la requte initiale, est

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 78 / 92

cre puis excute. Le rsultat est stock dans un variable de type tableau $res17. Si aucun
argument nest pass, le code initial de la fonction est excut.

On notera dans la structure conditionnelle et la possibilit dutiliser plusieurs mots cl pour


laffichage de la mme valeur. Cela permet MediaWiki de sadapter aux habitudes de saisie des
diffrents utilisateurs. Par exemple les mots cls resume et summary retournent tous les deux
le titre du ticket.

3.2.3. Limites de la solution


La mise en uvre de linterconnexion entre Mantis est MediaWiki est conforme aux
spcifications fonctionnelles que nous avions dcrites. Elle permet depuis MediaWiki un
affichage dune grande finesse des lments pertinents qui facilitent, pour le support niveau 2 et 3,
la recherche, le diagnostic et la rsolution dune demande de maintenance. Nanmoins, malgr
cette richesse, deux limites importantes sont souligner :

Lenrichissement de la base de connaissance nest pas automatique. Les utilisateurs doivent crer
les articles et/ou les liens vers le contenu de Mantis quils jugent significatif. Dans le cas
contraire, la base de connaissances restera faible et sa valeur ajoute peu importante.

Les sources denrichissement de la base de connaissances sont limites. Le schma de la base de


donnes de lapplication de gestion des anomalies doit tre accessible et interrogeable depuis
MediaWiki. Dans notre cas dtude, les deux applications tant open source, il est ais dtudier
le schma de la base de donnes de Mantis et de dfinir la requte de slection. Mais, dans le cas
dune application dditeur plus ferme, cette tche peut tre plus difficile, voire impossible.

17 Il sagit dune chane de caractres

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 79 / 92

3.3. RETOUR SUR EXPERIENCE


Avant de tirer une conclusion de lensemble de cette tude, nous allons dresser un bilan sur
lutilisation des applications Mantis et MediaWiki. Lintgration de ces deux logiciels t
ralise dans lentreprise Global Concept durant les mois de fvrier et mars 2010. Cela fait donc
plus de 6 mois que l'ensemble des personnes du service de direction projet a t sensibilis et
form leur utilisation.
Il est noter que si les applications dcrites dans cette tude ont t mises en uvre, les processus
et lorganisation cibles dcrits dans la premire partie, impliquant lembauche de nouvelles
personnes sur de nouveaux postes, nont pas t suivis par la direction.
Notre tude de retour dexprience vise mesurer auprs des personnes de la direction de projet,
pour lactivit de maintenance applicative, la valeur ajoute de la mise en uvre technique des
applications open sources Mantis et MediaWiki pour lentreprise.

3.3.1. Mthode de retour dexprience


La mthodologie retenue se base sur les 6 points suivants :

1. Dfinition des objectifs


Notre retour dexprience vise les trois objectifs suivants :
-

Mesurer la valeur ajoute quantitativement et qualitativement, de la mise en uvre des

applications Mantis et MediaWiki sur le processus de maintenance applicative de niveaux 2 et 3.


-

Identifier quelles sont les limites techniques et organisationnelles actuelles

Dterminer les actions poursuivre avec la direction au vu de ces rsultats.

2. Dfinition du primtre
Le pilote de ltude est lauteur de la prsente. Les personnes interroges sont celles utilisant
directement au moins lune des applications au sein de la direction projet, directeur compris. Les
utilisateurs mtiers internes lorigine des demandes de rsolution dincident sont exclus. En
effet, cest le logiciel Altiris qui gre les tickets dincident. Nous navons ni paramtr ni modifi
ce logiciel dditeur.

3. Dfinir les sources de collecte


Nous avons identifi 3 sources dinformation pour cette tude :
Etude des solutions damlioration de la maintenance applicative
Par lintgration de briques applicatives open source en entreprise Page 80 / 92

Lapplication Mantis

Lapplication Altiris

Les questionnaires semi directifs distribus aux 9 personnes de notre primtre.

4. Recueillir les expriences


Le recueil se base la fois sur linterrogation des bases de donnes des applications Mantis et
MediaWiki et sur lanalyse des rponses au questionnaire
a) Requtes SQL18 :
REQ 1 : volution du nombre de tickets crs par mois
SELECT count( id ) , year( date_submitted ) , month( date_submitted )
FROM `mantis_bug_table`
GROUP BY year( date_submitted ) , Month( date_submitted )

REQ 1 : volution de la dure moyenne de rsolution des tickets clos


SELECT

year(

date_submitted)

month(

date_submitted),

sec_to_time(avg(Timestampdiff(Second,`date_submitted`, `last_updated`)))
from mantis_bug_table where
status = 90 OR status = 86 OR status = 80
group by year( date_submitted) , month( date_submitted)

REQ 2 : volution du nombre darticles crs par mois


Select

year(ar_timestamp), month(ar_timestamp), count(ar_title) from wiki_archive

group by year(ar_timestamp), month(ar_timestamp)

REQ 2 : volution du nombre darticles crs partir de rfrence Mantis, par mois
Select

year(ar_timestamp), month(ar_timestamp), count(ar_title) from wiki_archive

where ar_comment like "%mantis%"


group by year(ar_timestamp), month(ar_timestamp)

b) Questionnaire

18 SQL (sigle de Structured Query Language) est un langage informatique normalis qui sert demander des oprations sur des bases de donnes.
http://fr.wikipedia.org/wiki/Structured_Query_Language

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 81 / 92

Le questionnaire sera compos de deux parties. La premire mesure la satisfaction des


utilisateurs. Pour chacune des questions suivantes, les utilisateurs pourront choisir de noter de 1
4 leur niveau de satisfaction. Plus le chiffre est lev, plus le niveau de satisfaction est lev.
Lutilisateur est satisfait partir de 2.
-

Comment jugez-vous lergonomie de lapplication ?

tes-vous satisfait des fonctions de recherche et de consultation ?

tes-vous satisfait des fonctions de saisie et dajout ?

Comment jugez-vous lapplication dans son ensemble ?

Les questions portent sur les applications modifies conformment aux chapitres prcdents de
cette tude.

La deuxime partie du questionnaire permet aux utilisateurs de saisir librement du texte en


rpondant au deux questions suivantes :
-

Quelles sont les fonctionnalits que vous souhaiteriez voir dveloppes sur lapplication

Mantis (citez en 5 au maximum)


-

Quelles sont les fonctionnalits que vous souhaiteriez voir dveloppes sur lapplication

MediaWiki (citez en 5 au maximum)

On exploitera ces rsultats en crant des nuages de mots-cls. Cette technique issue des sites
internet permet de reprsenter visuellement les termes saisis, dans les recherches ou dans les
contenus du site. Les mots saffichent dans des polices de caractres dautant plus grandes quils
apparaissent souvent.
Le nuage de mots cls est gnr par le site http://www.wordle.net/

cr par Jonathan

Feinberg, chercheur chez IBM.

5. Analyser et synthtiser les donnes


6. Partager et discuter sur les rsultats obtenus

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 82 / 92

3.3.2. Exploitation des rsultats de retour dexprience de Mantis

Les graphiques ci-dessous illustrent les rsultats obtenus partir des requtes SQL (Mysql) et du
questionnaire (premire partie du questionnaire).

Les mesures dmarrent avec la mise en service de Mantis, en octobre 2009.


Le nombre de ticket connat une acm
la fin de lanne. Cette volution
sexplique la fois par la mise en
production dune nouvelle application
et par le contrle, par le directeur de
projet, de la bonne utilisation de Mantis
auprs

des

maintenance.

responsables

de

la

Par la suite, la courbe

dcrot et se stabilise autour de 60


tickets par mois. Encore une fois,
labsence

de

nouvelle

mise

en

production en dbut danne est la


cause principale de cette baisse.

On note une volution proportionnelle entre le nombre de tickets ouverts et leur dure de
traitement, lexception du mois de fvrier 2010 o la dure de traitement des tickets augmente
lgrement. Cette singularit peut sexpliquer la fois par le transfert du suivi des indicateurs
Etude des solutions damlioration de la maintenance applicative
Par lintgration de briques applicatives open source en entreprise Page 83 / 92

Mantis aux personnes du niveau 2 et par mon affectation sur dautres projets tels que la mise en
uvre dune base de connaissances MediaWiki

Lapplication est juge satisfaisante de faon gnrale par les membres de la direction projet.
Mais cette apprciation est nuancer par la proximit entre les personnes interroges et
l'enquteur. On soulignera que la recherche dans Mantis est le point le moins satisfaisant et que
les termes de reporting et causes sont les lments qui reviennent le plus souvent dans les
demandes dvolutions comme lillustre le nuage de mots ci-contre.

3.3.3. Exploitation des rsultats de retour dexprience de MediaWiki

Les graphiques ci-dessous illustrent les rsultats obtenus partir des requtes SQL (Mysql) et du
questionnaire (premire partie du questionnaire).

Les mesures dmarrent avec la mise en service de MediaWiki, en janvier 2010.


On remarque une progression importante de nouveaux articles depuis le mois de janvier, date de
la mise en production de lapplication, jusquau mois davril. Cette augmentation est due la
formation des personnes du niveau 2 et 3 et au soutien de la direction dans la mise en uvre de la
base de connaissances. Un comit de pilotage bihebdomadaire a t organis en prsence du
directeur des systmes dinformation et des personnes charges de la maintenance durant le mois
davril et de mai. Ceci explique le nombre trs important de nouveaux articles cette priode.

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 84 / 92

A partir du mois davril, on constate dabord une chute importante du nombre de tickets, puis
leur absence. Une fois encore, cette volution peut sexpliquer par le manque dencadrement et de
contrle du processus de gestion des connaissances. En effet, forte du succs des deux premiers
mois,

la

direction

souhait

maffecter un nouveau projet


applicatif, ne dsignant aucun autre
responsable

du

suivi

de

lenrichissement de lapplication.
Paradoxalement,

le

niveau

de

satisfaction

utilisateurs

est

des

encore plus lev que pour Mantis.


Cette satisfaction traduit sans doute
labsence de critiques pour cause
de non utilisation. Ce paradoxe se traduit travers les termes cls du nuage de mots ci-contre :
article ou MediaWiki renvoie au fondement mme de lapplication.

Enfin on notera les mots code et intgration qui laissent penser que le dveloppement
dinterconnexion avec loutil de dveloppement Eclipse, un outil open source, pourrait motiver
les utilisateurs, savoir les dveloppeurs, rutiliser la base de connaissances.

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 85 / 92

Conclusion
Au cours du premier chapitre, nous avons dcrit la cible technique, organisationnelle et
fonctionnelle de la maintenance applicative. Il a t expos notamment les conditions, difficiles,
dans lesquelles la socit Viatelease a acquis ses applications mtiers et les besoins en termes de
gestion des corrections et dvolutions qui en dcoulent. Il sagit dune forme de ranon du succs
pour le groupe Global Concept dont la DSI doit accompagner la forte croissance de lactivit. Le
besoin dune maintenance applicative performante trouve son origine dans la multiplication
rapide des projets qui doivent tre mis en production cote que cote. La mise en uvre des
solutions gratuites open source MediaWiki et Mantis rpond aux contraintes organisationnelles
et financires de la DSI pour la mise en uvre rapide dune maintenance applicatives. Si notre
tude de cas sattache par la suite aux aspects techniques de cette mise en uvre, nous avons
souhait dans ce premier chapitre dcrire les processus cibles qui ont guid le choix, la
modification et lintgration de Mantis et MediaWiki.

Dans le deuxime chapitre, nous avons mesur la facilit avec laquelle il est possible dapporter
des amliorations fonctionnelles, conformment aux processus de maintenance cibles. En
premier lieu, nous avons constat la facilit dobtention de ces applications et des outils logiciels
pour les adapter. En effet, que ce soit la gestion des versions avec Subversion, ldition du code
source avec Eclipse ou la manipulation des donnes avec PhpMyadmin, tous ces outils sont
gratuits et reconnus pour leurs qualits professionnelles (fonctionnalit, fiabilit, scurit). Il sagit
ensuite des nombreuses possibilits de paramtrage dans les menus dadministration de Mantis et
de MediaWiki pour rpondre des demandes frquentes mais nanmoins importantes pour leur
utilisation en entreprise. Enfin, il sagit de souplesse fonctionnelle procure par larchitecture
logicielle. En effet, ldition du code source de chacune de ces applications nous a permis
didentifier, dans les deux cas, la prsence dun cur applicatif charg de fournir les
fonctionnalits de bases. Ces fonctions peuvent tre amliores ou enrichies par lajout ou la
modification de code source dans des fichiers supplmentaires. Larchitecture applicative est faite
de sorte que ce nouveau code source est automatiquement pris en compte et que ces nouvelles
fonctionnalits sont immdiatement disponibles sans risque de rgression pour celles de base.
Cette architecture incite les utilisateurs changer et partager leurs connaissances et leurs
dveloppements, comme le prouve la richesse des extensions disponibles sur les sites de la
communaut open source. Nanmoins, cette architecture a galement quelques limites. Elle
implique, comme cest le cas dans notre cas dtude, la prsence de personnes suffisamment
comptentes techniquement pour participer ou tout du moins sapproprier le contenu mis sa
Etude des solutions damlioration de la maintenance applicative
Par lintgration de briques applicatives open source en entreprise Page 86 / 92

disposition par la communaut. Enfin, elle implique un choix de mthode de dveloppement des
nouvelles fonctionnalits. Dans le cas ou il nexiste aucune rponse aux besoins de lentreprise
travers les extensions ou les forums de lapplication, le dveloppeur est contraint danalyser les
fonctions dinterfaces fournies par le cur applicatif pour dvelopper une extension conforme
larchitecture logicielle. Il peut sagir dun effort non ngligeable, mais qui conditionne la
compatibilit de lapplication avec les futures versions que la communaut proposera.

Dans le dernier chapitre, nous avons apprci la capacit de Mantis et de MediaWiki


sinterconnecter dautres applications du systme dinformation, y compris entre elles.
Autrement dit, nous avons apprci leur capacit dintgration. Sagissant du premier point, nous
avons pu constater que Mantis et MediaWiki sont facilement capables de dlguer lannuaire
dentreprise, Active Directory, la tche dauthentification des utilisateurs. Ceci permet de
simplifier la gestion des mots de passe et dviter un accroissement des demandes de services au
support charg de leur administration, un comble pour des applications visant amliorer le
processus de maintenance. Sagissant du deuxime point, nous avons prsent comment
aisment enrichir la base de connaissances partir du contenu des demandes traites dans
Mantis. Cette fonctionnalit permet de maintenir jour la liste des erreurs connues avec un effort
de saisie moindre pour les personnes du support. Lintgration de Mantis et MediaWiki a ici une
valeur plus fondamentale, puisquelle permet de simplifier le processus de maintenance et de
convaincre les utilisateurs de la valeur ajoute de leur utilisation dans leurs pratiques. Les
rsultats mdiocres du retour dexprience exposs la fin de ce chapitre pourraient mettre en
vidence quune solution technique performante sera peu utilise et aura un impact faible sur les
performances de maintenance si elle nest pas accompagne de modifications organisationnelles
et dune implication durable de la direction. Cette conclusion pourra tre nuance par des
lments rcents. En effet, depuis novembre 2010, cinq mois aprs la fin de lenqute de retour
dexprience, un service de maintenance applicative a t cr ainsi quune direction de
linnovation charge, entre autre, de la gestion des connaissances dans lentreprise. Sil nexiste
pas de relation directe de cause effet entre la mise en uvre de Mantis et ces changements
organisationnels, on peut y voir une volont forte damliorer la maintenance applicative dans
laquelle les briques open sources servent de fer de lance.

En conclusion, il apparat que le choix technique de solutions applicatives open source est
pertinent pour lamlioration de la maintenance applicative de Viatelease. Il sagit d'applications
fiables, maintenables et rapides mettre en uvre. Paradoxalement, ce sont ces atouts qui
reprsentent le plus grand risque pour le succs du projet. Lun des principaux facteurs de succs
dun projet est limplication de la direction gnrale. Cette implication est souvent
Etude des solutions damlioration de la maintenance applicative
Par lintgration de briques applicatives open source en entreprise Page 87 / 92

proportionnelle linvestissement financier que reprsente ce projet. Dans ces conditions, le


faible cot dacquisition des briques open sources peu reprsenter un vritable handicap. La
russite du projet repose alors sur la capacit de la DSI conduire le changement et convaincre
les mtiers de sy impliquer.

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 88 / 92

INDEX DES FIGURES


Figure 1 : Processus existant de gestion des incidents ................................................................ 9
Figure 2 : Cartographie des applications de la socit Ipnotic Optimitel ....................................10
Figure 3 : Organisation de la DSI charg de la maintenance de Viatelease ................................13
Figure 4 : Cartographie des applications de la socit Ipnotic Optimitel ....................................14
Figure 5 : Processus existant de gestion des incidents ...............................................................17
Figure 6 : Cartographie applicative existante ............................................................................18
Figure 7 : Processus cible de gestion des incidents ....................................................................21
Figure 8 : Processus cible de gestion des projets de maintenance applicative..............................23
Figure 9 : Cartographie applicative cible ..................................................................................25
Figure 10 : Graphe cible des statuts dune demande de maintenance applicative .......................26
Figure 11 : Diagramme de conversion des donnes entre Altiris et Mantis ................................27
Figure 12 : Diagramme de conversion des donnes entre MediaWiki et Mantis ........................28
Figure 13 : Fonctionnalit du menu contextuel dans Eclipse .....................................................32
Figure 14 : Fonctionnalit de gestion des donnes avec phpMyadmin .......................................33
Figure 15 : Architecture technique de Mantis ...........................................................................34
Figure 16 : paramtrage dun champ personnalis dans Mantis.................................................37
Figure 17 : champ date cible dans Mantis ................................................................................38
Figure 18 : paramtrage dune arborescence de projet dans Mantis ...........................................38
Figure 19 : Paramtrage des sous projets dans Mantis ..............................................................39
Figure 20 : Paramtrage des catgories dans Mantis .................................................................40
Figure 21 : Arborescence du code source de Mantis .................................................................45
Figure 22 : Relation de dpendances pour lajout dun calendrier..............................................46
Figure 23 : Un calendrier javascript dans une fentre pop up de Mantis ....................................48
Figure 24 : Relations de dpendances pour la gestion dun workflow ........................................51
Figure 25 : Architecture technique de MediaWiki ....................................................................53
Figure 26 : cran daccueil par dfaut de MediaWiki ................................................................56
Figure 27 : Relation de dpendance pour la personnalisation du menu gauche MediaWiki ........58
Figure 28 : diteur de texte par dfaut de MediaWiki ...............................................................58
Figure 29 : Editeur de texte cible de MediaWiki .......................................................................59
Figure 30 : Architecture cible des environnements MediaWiki .................................................61
Figure 31 : architecture cible de scurisation des donnes .........................................................62
Figure 32 : Couples dauthentification des utilisateurs avant intgration....................................66
Figure 33 : Couples dauthentification des utilisateurs aprs intgration ....................................67
Figure 34 : Structure de la table de gestion des demandes de Mantis .........................................76

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 89 / 92

INDEX DES EXTRAITS DE CODE


Extrait de code 1 : mise jour des droits pour le checkout ........................................................35
Extrait de code 2 : Mta_inc.php, ajout dun calendrier javascript.............................................47
Extrait de code 3 : html_api.php, fonction daffichage de page mantis.......................................48
Extrait de code 4 : Custom_constant_inc.php, dfinition des nouveaux statuts de demande: ......49
Extrait de code 5 : custom_strings_inc.php, instanciation des valeurs de statut de demande .......50
Extrait de code 6 : Custom_strings_inc.php, instanciation des variables de prsentation: ...........50
Extrait de code 7 : config_inc.php, configuration du workflow .................................................50
Extrait de code 8 : core.php, chargement des fichiers personnaliss ...........................................51
Extrait de code 9 : appel dune extension diteur de texte riche dans MediaWiki .......................60
Extrait de code 10 : localsetting.php, configuration des accs aux SGBD ..................................62
Extrait de code 11 : linker.php, modifiation de la fonction dhyperlien daffichage des images ...64
Extrait de code 12 : config_default_inc.php, dclaration de la mthode dauthentification .........68
Extrait de code 13 : authentification_api.php, modification de la fonction dauthentification .....70
Extrait de code 14 : user_api.php, validation de la forme du login ............................................70
Extrait de code 15 : config_defaults_inc.php, configuration de laccs LDAP pour Mantis ........71
Extrait de code 16 : localsetting.php, configuration de laccs LDAP pour MediaWiki ...........72
Extrait de code 17 : mantisIntegration.php, fonction wfMantisExtension ..................................74
Extrait de code 18: mantisIntegration.php, fonction showMantis..............................................75
Extrait de code 19 : mantisIntegration.php, slection du contenu dune demande......................75
Extrait de code 20 : mantisIntegration.php, slection simple de contenu de ticket ......................77
Extrait de code 21 : mantisIntegration.php, slection avance de contenu dans les demandes ....78

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 90 / 92

Index des tableaux


Tableau 1 : Les droits des utilisateurs dans Mantis ...................................................................41
Tableau 2 : gestion des notifications dans Mantis .....................................................................43
Tableau 3 : matrice des statuts dune demande dans Mantis .....................................................48
Tableau 4 : liste des espaces de nom dans MediaWiki ..............................................................54
Tableau 5 : structure de la table mantis_bug_table de Mantis ....................................................75

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 91 / 92

BIBLIOGRAPHIE

Ouvrages
Benot C., Logiciels libres, 2005. Open source: qu'est-ce que c'est ?
Editions H&K.
Elie F., 2009. conomie du logiciel libre.
ditions Eyrolles, Collection : Accs libre.
Yvon R., 2008. Le logiciel libre dans les PME.
Herms Science Publications, Collection : Etudes logiciels informatiques
Lerdorf R., Tatroe K., MacIntyre P., 2006. Programming PHP, Second Edition
O'Reilly Media.
Barrett D. J., 2008. MediaWiki, Wikipedia and Beyond
O'Reilly Media.
Nawrocki C., 2007. Gestion des Incidents du Si - Cadrage et Mise en uvre Base Sur Itil V2/V3
ditions Eyrolles.

Sites internet
Marlalapocket, 2009, Personnalisation de Mantis BT.
http://www.commentcamarche.net/faq/16960-personnalisation-de-mantis-bt
Rus, 2005, Add support for using jscalendar.
http://www.mantisbt.org/bugs/view.php?id=5774

2010, MediaWiki pour dbutants


http://fr.wikibooks.org/wiki/MediaWiki_pour_d%C3%A9butants/Configuration_de_votre_wiki

2010, FCKeditor integration guide


http://mediawiki.fckeditor.net/index.php/FCKeditor_integration_guide

Etude des solutions damlioration de la maintenance applicative


Par lintgration de briques applicatives open source en entreprise Page 92 / 92