Maintenance logicielle
La maintenance logicielle est la modification d'un produit logiciel après sa livraison afin de corriger des défauts, de l'adapter à un environnement changeant et d'améliorer sa fonction, ses performances ou sa maintenabilité.
Definition
La maintenance logicielle est l'ensemble des activités nécessaires pour fournir un support rentable à un logiciel après sa livraison, incluant la correction des défauts, l'adaptation à de nouveaux environnements et l'amélioration des capacités tout en préservant son intégrité.
Scope
Ce sujet couvre les quatre catégories de maintenance (corrective, adaptative, perfective, préventive) ; le processus de maintenance, de la demande de changement à l'analyse d'impact, la modification, les tests et la livraison ; la compréhension des programmes et les défis liés à la modification de code inconnu ; la maintenabilité en tant qu'attribut de qualité ; ainsi que les normes et les métriques qui régissent le travail de maintenance.
Core questions
- Comment les changements de maintenance sont-ils classifiés et priorisés ?
- Quelles sont les étapes du processus qui mènent une demande de changement à une modification livrée ?
- Comment l'impact d'un changement proposé est-il analysé avant sa mise en œuvre ?
- Qu'est-ce qui rend un logiciel maintenable, et comment la maintenabilité est-elle mesurée ?
Key theories
- Catégories de maintenance
- La maintenance corrective corrige les défauts, la maintenance adaptative s'adapte aux changements d'environnement, la maintenance perfective améliore ou étend les fonctions et les performances, et la maintenance préventive améliore la maintenabilité future ; les catégories non correctives dominent l'effort.
- Analyse d'impact
- Avant la mise en œuvre d'un changement, l'analyse d'impact identifie les composants, les interfaces et les tests affectés, en utilisant les informations de dépendance et la traçabilité pour estimer l'effort et les effets en cascade, et pour circonscrire les risques.
Clinical relevance
Étant donné que la maintenance domine le coût total d'un logiciel et qu'elle est majoritairement adaptative et perfective plutôt que corrective, la conception axée sur la maintenabilité et le suivi d'un processus de maintenance discipliné régissent directement l'économie à long terme d'un système.
Evidence & guidelines
La norme ISO/IEC 14764 définit le processus de maintenance et ses activités, et la norme ISO/IEC 25010 spécifie les sous-caractéristiques de la maintenabilité telles que la modularité, la modifiabilité et la testabilité.
History
Des enquêtes menées dans les années 1970 et 1980 ont révélé que la maintenance consomme la majeure partie des budgets logiciels et que le travail adaptatif et perfectif l'emporte sur la correction des défauts ; cela a transformé la maintenance d'une activité secondaire en une phase centrale, régie par des processus, et ultérieurement normalisée dans la norme ISO/IEC 14764.
Key figures
- Meir M. Lehman
- Bennet Lientz
- Ian Sommerville
Related topics
Seminal works
- iso14764
- swebok2014
- sommerville2015
Frequently asked questions
- Quel type de maintenance consomme le plus d'efforts ?
- Des études montrent constamment que la maintenance adaptative et perfective — l'adaptation du logiciel à de nouveaux environnements et son amélioration — représentent ensemble la majorité de l'effort de maintenance, bien au-delà de la correction des bogues.
- Pourquoi est-il si difficile de modifier du code ancien ?
- Les mainteneurs doivent d'abord comprendre un code qu'ils n'ont souvent pas écrit, où la logique originale et la documentation peuvent faire défaut ; comprendre le système existant et les effets en cascade d'un changement coûte fréquemment plus cher que d'effectuer le changement lui-même.