8.Maintenance&Re-ingenerie Flashcards
(26 cards)
Quelle est la définition de la maintenance logicielle ?
Ensemble des activités effectuées pour modifier un logiciel après sa mise en opération.
Pourquoi est-il nécessaire de faire évoluer les logiciels ?
Pour maintenir leur valeur et répondre aux changements des besoins et des technologies.
Quelles sont les trois principales raisons de faire de la maintenance ?
la correction d’erreurs résiduelles, l’adaptation aux changements de l’environnement technique (comme le passage à un nouveau système d’exploitation), et l’amélioration du logiciel en termes de performance ou de conception.
Quelle est la loi du changement continuel selon Lehman ?
Un programme doit constamment évoluer sinon il devient obsolète.
Que stipule la loi de la complexité croissante selon Lehman ?
Plus un logiciel est modifié, plus sa structure devient complexe et difficile à maintenir.
Quels sont les trois types de maintenance logicielle ?
Corrective, adaptative et perfective.
Quelle est la maintenance corrective ?
Réparation des erreurs découvertes durant l’exploitation du logiciel.
Quelle est la maintenance adaptative ?
Modification du logiciel suite à des changements de l’environnement technique.
Qu’est-ce que la maintenance perfective ?
Modification ou amélioration du logiciel selon les besoins évolutifs des usagers.
En quoi consiste la réingénierie de logiciels ?
Restructurer et réécrire un logiciel existant sans changer ses fonctionnalités principales.
Qu’est-ce qu’un système patrimonial (legacy system) ?
Un ancien logiciel toujours utilisé mais difficile à maintenir à cause de sa technologie obsolète.
Quel est l’avantage principal de la réingénierie par rapport à un nouveau développement ?
Réduction des coûts et des risques liés au développement de nouveaux systèmes.
Quels critères définissent la maintenabilité d’un logiciel ?
Facilité à corriger les erreurs, agrandir, modifier pour satisfaire les nouveaux besoins.
Quels facteurs affectent la maintenabilité d’un logiciel ?
Complexité cyclomatique, taille du code et couplage entre les modules.
Quelles pratiques favorisent une bonne maintenabilité logicielle ?
Documentation à jour, commentaires utiles, normes de programmation, réutilisation de code.
Quel est l’objectif de la rétro-ingénierie (reverse engineering) ?
Analyser un logiciel existant pour retrouver ses spécifications et conception.
Quelle est l’approche IEEE pour la maintenance logicielle ?
Processus structuré incluant analyse, conception, implantation, tests et livraison contrôlée.
Pourquoi la maintenance urgente est-elle déconseillée ?
Car elle est peu structurée, peu documentée et conduit souvent à une mauvaise qualité logicielle.
Énoncez trois des “lois” ou observations de Lehman concernant l’évolution des programmes logiciels
la loi du changement continuel (un programme doit changer pour rester utile), la loi de la complexité croissante (la structure d’un programme tend à se complexifier avec les modifications), et la loi de l’évolution des grands programmes (les attributs évoluent de manière auto-régulatrice).
Comment les coûts de maintenance se comparent-ils généralement aux coûts de développement d’un logiciel, et quels sont deux facteurs qui peuvent influencer ces coûts?
Les coûts de maintenance sont généralement plus élevés que les coûts de développement, avec un ratio pouvant varier considérablement. Deux facteurs influençant ces coûts sont l’âge et la structure du programme, ainsi que la stabilité et les compétences de l’équipe de maintenance.
Décrivez brièvement les trois principaux types de maintenance logicielle
Les trois principaux types de maintenance sont la maintenance corrective (environ 20%), qui corrige les erreurs; la maintenance adaptative (environ 25%), qui adapte le logiciel aux changements de l’environnement technique; et la maintenance perfective (environ 55%), qui répond aux nouveaux besoins des utilisateurs ou améliore le logiciel.
Comparez brièvement le modèle de maintenance “urgente” avec l’approche IEEE en termes de structure et de documentation.
La maintenance urgente est une approche peu structurée, axée sur la rapidité et le coût minimal, avec peu ou pas de documentation des changements. L’approche IEEE est un processus plus structuré qui permet la planification, le contrôle des versions et inclut des étapes d’analyse, de conception et de tests, avec une documentation plus complète.
Identifiez trois problèmes courants associés à la maintenance logicielle, en mettant l’accent sur les aspects organisationnels ou les défis rencontrés par le personnel de maintenance.
Trois problèmes liés à la maintenance incluent le manque de motivation et la forte rotation du personnel affecté à la maintenance, la difficulté d’évaluer et de valoriser leur travail, et le problème de l’arriéré de travail et de l’urgence des demandes qui peuvent empêcher une approche structurée.
Comment la maintenabilité d’un logiciel est-elle définie dans le texte, et quels sont deux indicateurs qui peuvent suggérer une dégradation de cette maintenabilité?
La maintenabilité est la facilité avec laquelle un logiciel peut être corrigé en cas d’erreurs et modifié pour répondre à de nouveaux besoins. Deux indicateurs d’une dégradation de la maintenabilité pourraient être l’augmentation du nombre de requêtes de maintenance corrective ou l’augmentation du temps moyen nécessaire pour analyser l’impact d’une demande de changement.