Département de génie logiciel et des TI
Systèmes d’information dans les entreprises (GTI515)
Chargé: JF Couturier
Cours # 12
GTI515 Été 2012 JF Couturier 1
Département de génie logiciel et des TI
Retour sur le dernier cours
ITILService Strategy
Service Design
Service Transition
Service Operation
Continual Service Improvement
GTI515 Été 2012 JF Couturier 2
Département de génie logiciel et des TI
Plan
Rappel de RUP et ITIL Problèmes avec la maintenance Définition de la maintenance Perception de la maintenance Environnement de la maintenance S3M
GTI515 Été 2012 JF Couturier 3
Département de génie logiciel et des TI
Rappel : RUP
GTI515 Été 2012 JF Couturier 4
Département de génie logiciel et des TI
ITIL : Rappel
GTI515 Été 2012 JF Couturier 5
Département de génie logiciel et des TI
Sources
Le contenu de ce cours est inspiré des notes du cours MGL-804 d’Alain April.
April, A. et Abran, A. Améliorer la maintenance du logiciel. Loze-Dion éditeur, ISBN 292118088X, 2006, 337 p.
GTI515 Été 2012 JF Couturier 6
Département de génie logiciel et des TI
Plan
Rappel de RUP, ITIL et ASL Problèmes avec la maintenance Définition de la maintenance Perception de la maintenance Environnement de la maintenance
GTI515 Été 2012 JF Couturier 7
Département de génie logiciel et des TI
Quelques définitions
GTI515 Été 2012 JF Couturier 8
Département de génie logiciel et des TI
Problème avec la maintenance vue par le client
Coût élevé de la maintenance Service de maintenance lent Ne comprend pas comment le service
de maintenance est priorisé et assigné
GTI515 Été 2012 JF Couturier 9
Département de génie logiciel et des TI
Opinion d’experts
La maintenance logicielle souffre plus d’un manque de gestion que d’un simple problème de connaissances techniquesOn ne reconnait pas la maintenance
On ne structure pas la maintenance
On ne mesure pas la maintenance
GTI515 Été 2012 JF Couturier 10
Département de génie logiciel et des TI
Perceptions des clients sur le coût de la maintenance Sur le coût total du cycle de vie
Foster-Monroe = 60 %-90 %
Hall = 75 %
Scott = 50 %-80 %
Hanna > 60 %
Erlikh = 90 %
GTI515 Été 2012 JF Couturier 11
Département de génie logiciel et des TI
Collecte inadéquate des données Les gestionnaires de la maintenance
ont de la difficulté à expliquer leurs coûts
Les gestionnaires de la maintenance ont de la difficulté à expliquer la valeur ajoutée de la maintenance.
GTI515 Été 2012 JF Couturier 12
Département de génie logiciel et des TI
Maintenance matérielle VS Maintenance logicielle?
GTI515 Été 2012 JF Couturier 13
VS.
Remplacer une composante
On pèse sur le bouton pour vérifier
?
Département de génie logiciel et des TI
Maintenance matérielle VS Maintenance logicielle? Le matériel se dégrade sans
maintenance Le logiciel se dégrade lorsqu’il est
maintenu
GTI515 Été 2012 JF Couturier 14
Département de génie logiciel et des TI
Maintenance matérielle VS Maintenance logicielle?Matériel Photocopier Repair $15/hr
PC Repair $17/hr
Camera Repair $20/hr
TV Repair $20/hr
Audio Repair $25/hr
Logiciel Web maintenance $40/hr
Cobol Maintenance $50/hr
Database maintenance $60/hr
OS maintenance $70/hr
ERP maintenance $125/hr
GTI515 Été 2012 JF Couturier 15
Département de génie logiciel et des TI
Plan
Rappel de RUP, ITIL et ASL Problèmes avec la maintenance Définition de la maintenance Perception de la maintenance Environnement de la maintenance S3M
GTI515 Été 2012 JF Couturier 16
Département de génie logiciel et des TIGTI515 Été 2012 JF Couturier 17
Département de génie logiciel et des TI
Perception
Coût élevé et mauvais service Le client paie beaucoup
Il ne voit pas la valeur pour son argent Pannes en production
Erreurs logicielles
Longs délais d'attente
Coût élevé associé à un petit changement
GTI515 Été 2012 JF Couturier 18
Département de génie logiciel et des TI
SLA flous
La personne à la maintenance doit mettre fin à tous les autres travaux lorsqu'une défaillance en production se produit Perception : l’entretien ne se fait pas selon la
priorité des utilisateurs
Les utilisateurs ont tendance à classer toutes les demandes en tant que hautes
Les utilisateurs envoient beaucoup de demandes
GTI515 Été 2012 JF Couturier 19
Département de génie logiciel et des TI
Est-ce que ces perceptions sont réelles?
Plusieurs réponses possibles!Maturité du mainteneur
Maturité du client
Quel type de logiciel
GTI515 Été 2012 JF Couturier 20
Département de génie logiciel et des TI
Temps de développement vs. Temps de maintenance Un projet de développement typique
prend entre 1 et 2 ans La maintenance requiert un temps
additionnel de 5 à 6 ans Règle du 80-20 (Pareto):
20 % de l’effort dans le développement
80 % de l’effort dans la maintenance.
GTI515 Été 2012 JF Couturier 21
Département de génie logiciel et des TI
Mauvaise perception
GTI515 Été 2012 JF Couturier 22
0 50 100 150 200 250 300 350 400 450 500
System 1
System 2
Development costs Maintenance costs
$
Oui, la maintenance est le coût le plus élevé!!
©Ian Sommerville 2004
Département de génie logiciel et des TI
Les coûts de la maintenance
GTI515 Été 2012 JF Couturier 23
Yann-Gaël Guéhéneuc, IFT3902 :Gestion de projet pour le développement et la maintenance des logiciels
Département de génie logiciel et des TI
Coût de la maintenance
Habituellement plus élevé que le développement 2 à 100 fois plus, dépendant de l’application
Touché par des facteurs techniques et non techniques
Augmente au fur et à mesure que le logiciel est maintenu.
La maintenance dégrade la structure du logiciel, rendant la maintenance plus difficile.
Les vieux systèmes peuvent avoir des coûts plus élevés
vieux langages, compilateurs
GTI515 Été 2012 JF Couturier 24
Département de génie logiciel et des TI
Fausse perception des coûts
Le service de maintenance n’est pas clair lorsque:Les parties et les processus sont
immatures (pas de SLA); Symptômes
priorités confuses, délais, coûts non justifiés
Oui, la main d’œuvre est chère, mais lorsqu’elle est utilisée pour ajouter de nouvelles fonctionnalités…
GTI515 Été 2012 JF Couturier 25
Département de génie logiciel et des TI
Perception interne
Logiciel très mal conçu et programmé Conception douteuse
Absence de documentation Pas de système de test automatisé
GTI515 Été 2012 JF Couturier 26
Département de génie logiciel et des TI
Réalité de mainteneur
Logiciels large et complexe avec peu de documentation;
Doit être changé rapidement sans interrompre le service;
GTI515 Été 2012 JF Couturier 27
Département de génie logiciel et des TI
Les lois de Lehman
Changement continue
Un logiciel doit continuellement être adapté. Sinon la satisfaction du client diminuera.
Ces changements se font sous l’effet de la pression de l’environnement (les utilisateurs) dans lequel le système évolue et par l’écart qui existe entre les caractéristiques du système et les besoins du domaine.
Complexité croissante
La complexité du logiciel augmente à chaque évolution à moins que cette évolution soit faite pour maintenir ou diminuer cette complexité. Les interactions et les dépendances augmentent, le couplage croit et le risque d’erreur croit.
Si beaucoup d’effort est consacré à éviter la croissance de la complexité, alors ce sont moins de ressources et de temps disponibles pour la transformation du système.
GTI515 Été 2012 JF Couturier 28
Département de génie logiciel et des TI
Lois de Lehman
Croissance continue
Le contenu fonctionnel d’un logiciel doit continuellement croître afin de satisfaire les besoins des utilisateurs durant toute sa vie utile.
Qualité décroissante
La qualité d’un logiciel va être perçue comme décroissante à moins d’une maintenance rigoureuse et adaptée aux changements dans l’environnement opérationnel.
GTI515 Été 2012 JF Couturier 29
Département de génie logiciel et des TI
Conclusion sur les lois
Observations:Les logiciels évoluent ou disparaissentUn logiciel qui grossit implique une
complexité qui va limiter sa capacité de croître.
Solutions: Nécessité de gérer la complexité Revoir périodiquement le design
Activités de refactoring pour rajeunir le logiciel
GTI515 Été 2012 JF Couturier 30
Département de génie logiciel et des TI
Classification des problèmes selon Dr. Bennet Problèmes d’alignement (A)
Problèmes de processus (P)
Problèmes techniques (T) (A) Et (P) sont des problèmes de management
(T) Sont des problèmes techniques
Est-ce qu’il est vrai que la plupart des problèmes de maintenance sont des problèmes de management?
GTI515 Été 2012 JF Couturier 31
Département de génie logiciel et des TIGTI515 Été 2012 JF Couturier 32
Sondage de Dakleva
Département de génie logiciel et des TI
Le système est imposé
Imposé aux mainteneurs Il a souvent beaucoup de problèmes
Un grand nombre de problèmes à résoudre Un backlog qui vient avec
Pas de support du management pour vous aider dans cette situation Faites-le!
GTI515 Été 2012 JF Couturier 33
Département de génie logiciel et des TI
Le conflit
Les clients ont besoin d’un système maintenant! Les attentes sont élevées.
Les développeurs construisent rapidement (plus vite et en deçà du budget si possible)
Les mainteneurs veulent un système sans défaut, venant avec une documentation pour la maintenance du système pour les prochaines années
GTI515 Été 2012 JF Couturier 34
Département de génie logiciel et des TI
REQUIREMENTSANALYSIS
SYSTEMDESIGN
PROGRAMDESIGN
CODING
UNIT & INTE-GRATION TESTING
SYSTEMTESTING
ACCEPTANCETESTING OPERATION
& MAINTENANCE
Points de pression
GTI515 Été 2012 JF Couturier 35
La pression sur le développement résulte en un logiciel de mauvaise qualité qui est transféré à la maintenance lors de la phase de transition
Transition
Département de génie logiciel et des TI
Coûts d’une faute
Le coût de correction d’une faute croît avec le temps
Si trouvée, combien elle coûte à réparer?
Prenons un problème dans les exigences, mais que nous identifions plus tard…
4x si trouver et corriger pendant le design
10x si trouver et corriger pendant l’implémentation
30 – 52 x si trouver…lors de l’intégration
200 – 368 x si trouver … lors de la maintenance
GTI515 Été 2012 JF Couturier 36
Département de génie logiciel et des TI
Processus immatures
Âge moyen des codeurs en inde: 26-27
En afrique du sud : 28-32
Il y a toujours une grande proportion de développeurs/processus de développement immatures.
Les processus matures permettent de créer des logiciels plus faciles à maintenir
Ces logiciels arrivent souvent avec un gros backlog Clients insatisfaits
GTI515 Été 2012 JF Couturier 37
Département de génie logiciel et des TI
Les méthodes agiles ne règlent rien
GTI515 Été 2012 JF Couturier 38
Specification Implemention
ValidationOperation
Start
Release 1
Release 2
Release 3
©Ian Sommerville 2004
Département de génie logiciel et des TI
Plan
Rappel de RUP, ITIL et ASL Problèmes avec la maintenance Définition de la maintenance Perception de la maintenance Environnement de la maintenance S3M
GTI515 Été 2012 JF Couturier 39
Département de génie logiciel et des TI
L’environnement de travail de la maintenance
GTI515 Été 2012 JF Couturier 40
DéveloppeurDéveloppeur
MainteneurMainteneur
Département de génie logiciel et des TI
Problème: Le morale
11.9 % des problèmes pendant la maintenance sont le résultat d’un mauvais moral
Pendant la maintenance, 8 % des problèmes proviennent d’un programmeur poussé dans trop de dossiers, l’empêchant de se concentrer suffisamment longtemps pour régler un seul problème.
GTI515 Été 2012 JF Couturier 41
Sari Lawrence Pfleeger
Département de génie logiciel et des TI
Inexpérience
Qui fait la maintenance: 25 % des étudiants 61 % des programmeurs
d’expériences (Swanson-Beath) Dans une autre étude
60 % à 80 % - personnes récemment engagées.
GTI515 Été 2012 JF Couturier 42
Département de génie logiciel et des TI
Qui fait la maintenance
Parfois des développeurs:Moins d’intérêts, il veulent quitter pour un
meilleur travail (créatif)Difficile d’embaucherProblème de continuité (roulement)Moins d’indépendance
Moins bonne qualité Moins de transparence
GTI515 Été 2012 JF Couturier 43
Département de génie logiciel et des TI
Qui fait la maintenance
Parfois des mainteneurs:Grandes organisationsPlus d’indépendance
Qualité et transparence accrues
Compétition pour résoudre les problèmes entre développeurs et mainteneurs
Besoin d’établir la frontière entre le développement et la maintenance
GTI515 Été 2012 JF Couturier 44
Département de génie logiciel et des TI
Sommaires
19 problèmes identifiés par Dekleva
Point de vue divergent avec client/utilisateur
Grande proportion de problèmes de management
Les rapports de maintenance ne montrent pas réellement ce qui se passe.
La complexité des logiciels est croissante
Le coût de la maintenance est élevé et en croissance
La mauvaise qualité du développement est toujours un problème (Agile…)
La maintenance n’est pas un travail intéressant (morale)
Manque de méthodologies/Outils/Formation
GTI515 Été 2012 JF Couturier 45
Département de génie logiciel et des TI
Processus de la maintenance
Nécessité d’identifier le travail correspondant à une maintenance versus un projet de développement
Une modification qui prend 5 mois n’est sûrement pas de la maintenance
Le processus n’est pas le même
GTI515 Été 2012 JF Couturier 46
Département de génie logiciel et des TIGTI515 Été 2012 JF Couturier 47
Département de génie logiciel et des TI
Qu’est-ce qui est petit?
UKSMA : Moins de 5 jours ISBSG : Moins de 5 jours Company A : Moins de 45 jours L’important est de définir une limite
GTI515 Été 2012 JF Couturier 48
Département de génie logiciel et des TI
Catégoriser les billetsDéfinitions: Haute
Le problème est sérieux Le client ne peut plus travailler Il n’y a pas de voie de contournement connue
Élevée La majorité des problèmes des applications Représente 80 % du volume
Basse Problèmes mineurs
GTI515 Été 2012 JF Couturier 49
http://www.lgc.com/customersupport/supportservices/servicelevels/default.htm
Département de génie logiciel et des TI
La réponse au billet Réponse : L’intervalle de temps entre une
demande de support et la réponse d’un analyste technique. Au téléphone : Temps d’attente d’un client pour
parler à un analyste du soutien technique.
Boîte de messagerie: Temps entre l’enregistrement du message et la réponse de l’analyste.
Courriel – Temps entre la réception du courriel et la réponse de l’analyste au client.
GTI515 Été 2012 JF Couturier 50
http://www.lgc.com/customersupport/supportservices/servicelevels/default.htm
Département de génie logiciel et des TI
Résolution d’un billet
Résolution: L’intervalle de temps entre la demande de support et lorsque l’analyste technique trouve une solution et ferme le billet. Répondre à une question Expliquer un processus Proposer une solution de rechange Signaler un défaut à corriger ou une
amélioration à apporter pour le compte du client.
GTI515 Été 2012 JF Couturier 51
http://www.lgc.com/customersupport/supportservices/servicelevels/default.htm
Département de génie logiciel et des TI
Centre de support
Centre de service centralisé ou:Tous les problèmes et les demandes de
services sont acheminés
Ces problèmes et demandes sont réglés ou assignés
Ces problèmes et demandes de services sont suivis
GTI515 Été 2012 JF Couturier 52
Département de génie logiciel et des TIGTI515 Été 2012 JF Couturier 53
http://tecfa.unige.ch/~roiron/recherche/memoire/memoire.htm
Département de génie logiciel et des TI
Le niveau 1
Le niveau 1 doit avoir la responsabilité de chaque demande du client.
Le help desk devrait être habilité à résoudre autant de demandes que possible.
Le niveau 1 fournit le point de contact client (CCP), qui est le point de contact unique pour l'utilisateur de demander un service.
Les organisations devraient toujours superviser le niveau 1 afin de garantir la qualité de la relation client.
GTI515 Été 2012 JF Couturier 54
http://irm.state.nc.us/techarch/chaps/chap11-04.htm
Département de génie logiciel et des TI
Le niveau 2
Le soutien à la clientèle fournit l'expertise technique.
Leur responsabilité est d'étudier les demandes acheminées vers eux et de résoudre les problèmes.
Les ressources à ce niveau peuvent être composées de spécialistes du personnel et/ou des tiers fournisseurs / vendeurs.
GTI515 Été 2012 JF Couturier 55
http://irm.state.nc.us/techarch/chaps/chap11-04.htm
Département de génie logiciel et des TI
Le niveau 3
Le niveau 3 est composé d’experts techniques spécialisés.
Les appels qui ne peuvent pas être résolus aux niveaux 1 et 2 sont acheminés à ce niveau.
Les ressources à ce niveau peuvent être composées de spécialistes du personnel et/ou des tiers fournisseurs et vendeurs
GTI515 Été 2012 JF Couturier 56
Département de génie logiciel et des TI
Processus
Gestion des problèmes et des demandes Communiquer Documenter Évaluer (en fonction des politiques) Résoudre ou assigner Suivre Clore / Fermer
GTI515 Été 2012 JF Couturier 57
Département de génie logiciel et des TI
Niveau de service à l’interne
Peut-être très utile pour prioriser la maintenance des systèmes patrimoniaux
Peut aussi être utilisé pour mettre au rencart graduellement un vieux système.
GTI515 Été 2012 JF Couturier 58
Département de génie logiciel et des TI
Catégorie de requête
GTI515 Été 2012 JF Couturier 59
Département de génie logiciel et des TI
Types de maintenance Corrective
La correction d’une défectuosité découverte par la clientèle
Préventive Modifier un logiciel pour détecter et corriger des fautes
avant qu’elles ne deviennent des défaillances
Perfective Améliorer les fonctionnalités d’un logiciel
Adaptative Modifier un logiciel afin de le mettre en relation avec
d’autres applications
GTI515 Été 2012 JF Couturier 60
Département de génie logiciel et des TI
Types de maintenance
Perfective: 50 %
Adaptative: 25 %
Corrective: 21 %
Préventive: 4 %
GTI515 Été 2012 JF Couturier 61
http://www.massworkforce.org/ResourceCenter/SteeringCommMinutes/2006/Word/June06A.doc
Département de génie logiciel et des TI
Les défaillances ne sont pas la première source Les défaillances ne représentent pas le plus
gros pourcentage de maintenance.
Lorsque correctement mesuré: 55 % requêtes sont des améliorations (Lientz)
Le plus gros pourcentage d’effort est dépensé dans l’ajout de fonctionnalité en réponse à un besoin d’affaires (Pressman)
GTI515 Été 2012 JF Couturier 62
Département de génie logiciel et des TI
Ian Sommerville’s %
GTI515 Été 2012 JF Couturier 63
Functionalityaddition or
modification(65%)
Fault repair(17%)
Softwareadaptation
(18%)
©Ian Sommerville 2004
Département de génie logiciel et des TI
Similitude avec logiciel
Processus définis Il y a du code et des tests Il y a de l’assurance qualité Il y a de la gestion de la configuration
GTI515 Été 2012 JF Couturier 64
Alain April & al., Software Maintenance MaturityModel,: the software maintenance process model
Département de génie logiciel et des TI
Activités distinctes
Gestion du service et des évènements Existence d’un SLA (parfois…) Transition Support opérationnel Résolution de problème Analyse d’impact Évolution et retrait
GTI515 Été 2012 JF Couturier 65
Alain April & al., Software Maintenance MaturityModel,: the software maintenance process model
Département de génie logiciel et des TI
Caractéristiques de la maintenance
Réception des requêtes aléatoires Budget difficile à évaluer
Charge de la maintenance Gestion par files d’attente et non par gestion de projet
Taille des requêtes limitées
Assignation du travail dynamique
Arrêt des travaux quand il y a une panne
Contraintes face à une application déjà développée
Attentes du client élevées
GTI515 Été 2012 JF Couturier 66
Alain April, Log-240, cours 1
Département de génie logiciel et des TI
Différence avec le développement
La situation est beaucoup moins favorable pour le mainteneur.
Le système existe, avec ses défauts et ses contraintes architecturales. Il faut vivre avec.
Les outils sont parfois désuets et ne supportent pas les techniques modernes de maintenance.
Conséquemment, il y a moins d’options pour les améliorations.
Les délais sont souvent courts.
GTI515 Été 2012 JF Couturier 67
ASL, Application Service Library – A Management Guide , p55
Département de génie logiciel et des TI
Plan
Rappel de RUP, ITIL et ASL Problèmes avec la maintenance Définition de la maintenance Perception de la maintenance Environnement de la maintenance S3M
GTI515 Été 2012 JF Couturier 68
Département de génie logiciel et des TI
S3M
S3M Software Maintenance Maturity Model
Exemple
GTI515 Été 2012 JF Couturier 69
Département de génie logiciel et des TI
Niveau de maturité
GTI515 Été 2012 JF Couturier 70
Alain April & al., Software Maintenance MaturityModel,: the software maintenance process model
Département de génie logiciel et des TI
Exercice
Une nouvelle infrastructure réseau a été déployée pendant le week-end.
Le service des opérations vous appelle ce matin et vous demande de vérifier si les logiciels vont fonctionner sur le nouveau réseau
Dans quelle catégorie de maintenance classez-vous ce travail?
Devez-vous demander l’autorisation à vos clients avant de commencer le travail?
GTI515 Été 2012 JF Couturier 71
Département de génie logiciel et des TI
Ressources
MGL-804 S3M April, A. et Abran, A.
Améliorer la maintenance du logiciel. Loze-Dion éditeur, ISBN 292118088X, 2006, 337 p.
GTI515 Été 2012 JF Couturier 72
Département de génie logiciel et des TI
Conclusion
La maintenance est un élément essentiel dans le fonctionnement des TI
Le cycle de la maintenance est distinct d’un cycle de développement logiciel
Plus de détails dans le cours MGL-804 portant sur la maintenance.
GTI515 Été 2012 JF Couturier 73