Escolar Documentos
Profissional Documentos
Cultura Documentos
Stphane GLATTLEIDER
Jury:
PRESIDENT :
I. WATTIAU (CNAM)
MEMBRES :
N. LAMMARI (CNAM)
J. AKOKA (CNAM)
L. MOUKOUKENOFF (Paritel)
P. SUAEZ (Paritel)
REMERCIEMENTS
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.
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.
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
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.
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
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
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.
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.
Une personne rcemment engage pour dvelopper les relations avec les fournisseurs hors
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
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
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).
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.
Le dpartement dinfrastructure qui assure, avec 5 emplois temps plein, ladministration des
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.
-
quipements de tlcommunication chez les clients finaux ainsi que le test des nouveaux modles
du catalogue produit vendu au client.
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
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
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 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
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
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.
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 :
-
Le titre de lincident
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).
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 :
-
Consultation des comptes rendus de tche des dveloppeurs (dure relle, rsum des actions
ralises)
-
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 :
-
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
dcoupage serait trop lourd dans lentreprise de notre tude de cas et ncessiterait un changement
contraire aux contraintes nonces en dbut de projet.
Les utilisateurs ont un seul point de contact3, le support de niveau 1, pour demander la rsolution
dincident. Cette unique point permet de :
-
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
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 :
-
Correctif : le projet a pour objectif de corriger une anomalie sur une fonction dcrite dans les
spcifications fonctionnelles.
-
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.
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.
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
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.
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
)
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.
application.
-
Informer
maintenance.
Un puissant moteur de recherche par mot cls et par catgorie dans les pages.
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.
-
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
Ldition en onglets des fichiers PHP, qui facilite le travail sur de nombreux fichiers source
Lauto compltion des noms de classes, mthodes, fonctions et variables de la phpdoc, qui
Laffichage des paramtres et valeurs de retour des mthodes, qui permet une quipe de
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.
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.
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.
Faciliter la gestion des droits daccs et le transfert de fichiers dun client un dpt et vice et
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.
8. Copie de cette release sur le serveur de production et test de la release depuis le navigateur du
poste de dveloppement
Catgorie de la demande.
Impact de la demande.
Reproductibilit.
Date de soumission.
Statut de la demande.
Rsum ou titre.
Description.
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.
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.
Le nom du projet
obsolte .
-
Le chemin pour le dpt de fichier: exemple pour le projet Viatelease dans un systme de
La description
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.
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.
Correction 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.
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.
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
Rapporter un bogue
Adm
Grer un bogue
Assigner un bogue
Dplacer un bogue
Supprimer un bogue
Voir Changements
Voir Assign
Droits
Voir Historique du bogue
Adm
Crer un projet
Supprimer un projet
x
x
Voir la synthse
On note que les profils Dveloppeurs ont lgrement moins de droit que les administrateurs et
notamment :
-
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
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
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
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.
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.
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.
-
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
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.
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>
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.
la modification du comportement des champs date dont laffichage est dfini dans le fichier
date_api.php.
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
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.";
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';
De mme que pour la cration du calendrier, nous pouvons synthtiser les relations de
rutilisation et dappel des fichiers par le diagramme ci-dessous.
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.
Comme lillustre la figure ci-dessous, larchitecture technique de MediaWiki est similaire celle
de Mantis.
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
6 http://www.mediawiki.org/wiki/MediaWiki/fr
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
Main
Talk
User
User Talk
Project
Project Talk
File
File Talk
MediaWiki
MediaWiki Talk
Template
Modle de page
Template Talk
Help
Aide
Help Talk
Discussions Aide
Category
Category Talk
Special
Media
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
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.
-
La capture dcran ci-dessous reprsente lcran daccueil par dfaut de lapplication 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.
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
Applications : redirige vers une page qui liste lensemble des applications pour lesquelles il
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.
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.
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.
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 :
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/
-- _source
...
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.
Damliorer la consultation des articles avec des images dans la base de connaissances.
2.3.3.1.
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.
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 :
-
Il nexiste pas dInterface Homme Machine (IHM) pour le re-paramtrage de cette connexion.
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 :
-
## 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";
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.
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
if ( !$thumb )
{ $s = $this->makeBrokenImageLinkObj( $title );
}
else
{ $s = $thumb->toHtml( array( 'desc-link'
=>
False,'alt'
=>
$fp['alt'],'valign'
=>
isset(
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
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.
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.
12 Traduit dans le schma par le couple (login, password). Ici, on suppose que le login est le mme dans toutes les connexions.
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.
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;
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.
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
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
true is returned.
#
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;
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
Pour pouvoir interroger lActive Directory conformment au protocole LDAP, il faut fournir
Mantis :
-
= '389';
$g_ldap_root_dn = 'CN=Users,DC=globalconcept,DC=fr';
$g_ldap_organization
= '';
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 :
-
Le port de communication
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
#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();
Lextrait de code illustre la dfinition des variables propres Global Concept pour la connexion
au Active Directory, savoir :
-
Le nom du serveur Active Directory qui est ici dsign par son adresse IP plutt que par son
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.
Mise jour rapide des articles de la base de connaissances par rapport lexistant en
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.
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.
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.
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" );
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
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=";
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
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];
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();
Le titre
le rsum
La date de cration
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;
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
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.
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.
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.
Lapplication Mantis
Lapplication Altiris
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 partir de rfrence Mantis, par mois
Select
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
Les questions portent sur les applications modifies conformment aux chapitres prcdents de
cette tude.
Quelles sont les fonctionnalits que vous souhaiteriez voir dveloppes sur lapplication
Quelles sont les fonctionnalits que vous souhaiteriez voir dveloppes sur lapplication
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
Les graphiques ci-dessous illustrent les rsultats obtenus partir des requtes SQL (Mysql) et du
questionnaire (premire partie du questionnaire).
des
maintenance.
responsables
de
la
de
nouvelle
mise
en
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.
Les graphiques ci-dessous illustrent les rsultats obtenus partir des requtes SQL (Mysql) et du
questionnaire (premire partie du questionnaire).
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
du
suivi
de
lenrichissement de lapplication.
Paradoxalement,
le
niveau
de
satisfaction
utilisateurs
est
des
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.
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.
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
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