Maintenance du logiciel
La maintenance du logiciel (ou maintenance logicielle) désigne, en génie logiciel, les modifications apportées à un logiciel après sa mise en œuvre, pour en corriger les fautes, en améliorer l'efficacité ou autres caractéristiques, ou encore adapter celui-ci à un environnement modifié.
Processus
modifierLa norme ISO (ISO/IEC 14764, Software Engineering—Software Life Cycle Processes—Maintenance) décrit en détail les processus de maintenance logicielle. Cette norme distingue six processus de maintenance logicielle :
- L'implémentation ;
- L'analyse et la résolution de problèmes ;
- La modification du logiciel ;
- L'acceptation de la modification par le demandeur ;
- La migration ;
- Et finalement, la mise à la retraite (Application retirement (en)).
Il y a un certain nombre de processus, d'activités et de règles qui sont propres à la maintenance du logiciel, par exemple :
- La transition : la passation coordonnée du logiciel, de l'équipe de développement à l'équipe de maintenance ;
- Les ententes de services applicatives ;
- La priorisation des requêtes de modification et des rapports de problèmes ;
- L'acceptation ou le rejet d'une demande de modification selon le travail et la complexité plus ou moins grandes qu'elle implique; son renvoi à l'équipe de développement.
Une idée répandue est que le maintenanceur ne fait que corriger des défauts (bugs). Pourtant des études et des enquêtes indiquent depuis des années que plus de 80 % des efforts de maintenance sont consacrés à des interventions autres que correctives (Pigosky 1997). Cette notion est perpétuée par des utilisateurs qui font état de problèmes alors qu'ils ont affaire, en réalité, à des améliorations fonctionnelles du logiciel.
La maintenance et l'évolution des logiciels furent abordées pour la première fois par le Dr. Lehman, en 1969. S'étendant sur une vingtaine d'années, ses recherches aboutirent à la formulation de huit règles de l'évolution d'un logiciel (1997). Elles ont mis en lumière le fait que la maintenance est un processus évolutif et que les logiciels évoluent avec le temps. En évoluant, ils deviennent plus complexes à moins qu'une action spécifique soit engagée pour en réduire la complexité.
E.B. Swanson a identifié, au départ, trois catégories de maintenance : la corrective, l'adaptative et la perfective. Ces catégories ont été mises à jour par l'équipe de ISO/IEC 14764, avec l'ajout d'une quatrième catégorie :
- Maintenance corrective : modification d'un progiciel effectuée après livraison afin de corriger les défauts rencontrés.
- Maintenance adaptative : modification d'un progiciel effectuée après livraison pour qu'il reste utilisable dans un environnement qui change ou a changé.
- Maintenance perfective : modification d'un progiciel effectuée après livraison pour en améliorer l'efficacité ou la maintenabilité.
- Maintenance préventive : modification d'un progiciel effectuée après livraison pour en déceler et corriger les défauts latents avant qu'ils ne se manifestent.
La maintenance corrective et la maintenance préventive visent à corriger des erreurs ; la maintenance adaptative et la maintenance perfective répondent à une demande d'amélioration du logiciel[1].
Problèmes
modifierLes problèmes majeurs de la maintenance du logiciel relèvent autant de la gestion que du domaine technique.
Les problèmes de gestion sont :
- l'alignement sur les priorités de la clientèle ;
- le choix des employés ;
- le choix de l'entité chargée de la maintenance ;
- la justification de la valeur ajoutée et des coûts de l'équipe.
Les problèmes techniques sont liés à l'insuffisance :
- de la compréhension du logiciel ;
- de la documentation ;
- des tests ;
- de la mesure de la maintenabilité.
Les modèles de maturité du savoir-faire qui visent spécifiquement la maintenance du logiciel sont :
- le modèle de maturité de la maintenance du logiciel S3M ();
- le modèle de maturité de la maintenance corrective (Kajko-Mattsson 2001).
Notes et références
modifier- Software Engineering — Software Life Cycle Processes — Maintenance / Ingénierie du logiciel — Processus du cycle de vie du logiciel — Maintenance, International Standard ISO/IEC 14764 IEEE Std 14764-2006, Second edition, 2006-09-01, page 4.
Voir aussi
modifierBibliographie
modifier- April & Abran, Améliorer la maintenance du logiciel, Montréal, Loze-Dion éditeur, , 2e éd., 341 p. (ISBN 978-2-924601-01-3) [1]
- (en) Pigosky T.M., Practical Software Maintenance, New York, John Wiley & Sons, (ISBN 978-0-471-17001-3, LCCN 96025884)
- (en) Martin Fowler, Kent Beck, Refactoring: Improving the Design of Existing Code, Addison-Wesley Professional, 1999, 464 p., (ISBN 0201485672)
- Bensoussan A., La maintenance des systèmes informatiques et le droit, Paris, Hermes, , p. 236
Articles connexes
modifierLiens externes
modifier- Publication de la Maintenance du Logiciel dans le cycle de vie (de l'Université Tufts, USA)
- Journal of Software Maintenance