8.Maintenance&Re-ingenerie Flashcards

(26 cards)

1
Q

Quelle est la définition de la maintenance logicielle ?

A

Ensemble des activités effectuées pour modifier un logiciel après sa mise en opération.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Pourquoi est-il nécessaire de faire évoluer les logiciels ?

A

Pour maintenir leur valeur et répondre aux changements des besoins et des technologies.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Quelles sont les trois principales raisons de faire de la maintenance ?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Quelle est la loi du changement continuel selon Lehman ?

A

Un programme doit constamment évoluer sinon il devient obsolète.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Que stipule la loi de la complexité croissante selon Lehman ?

A

Plus un logiciel est modifié, plus sa structure devient complexe et difficile à maintenir.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Quels sont les trois types de maintenance logicielle ?

A

Corrective, adaptative et perfective.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Quelle est la maintenance corrective ?

A

Réparation des erreurs découvertes durant l’exploitation du logiciel.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Quelle est la maintenance adaptative ?

A

Modification du logiciel suite à des changements de l’environnement technique.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Qu’est-ce que la maintenance perfective ?

A

Modification ou amélioration du logiciel selon les besoins évolutifs des usagers.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

En quoi consiste la réingénierie de logiciels ?

A

Restructurer et réécrire un logiciel existant sans changer ses fonctionnalités principales.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Qu’est-ce qu’un système patrimonial (legacy system) ?

A

Un ancien logiciel toujours utilisé mais difficile à maintenir à cause de sa technologie obsolète.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Quel est l’avantage principal de la réingénierie par rapport à un nouveau développement ?

A

Réduction des coûts et des risques liés au développement de nouveaux systèmes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Quels critères définissent la maintenabilité d’un logiciel ?

A

Facilité à corriger les erreurs, agrandir, modifier pour satisfaire les nouveaux besoins.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Quels facteurs affectent la maintenabilité d’un logiciel ?

A

Complexité cyclomatique, taille du code et couplage entre les modules.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Quelles pratiques favorisent une bonne maintenabilité logicielle ?

A

Documentation à jour, commentaires utiles, normes de programmation, réutilisation de code.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Quel est l’objectif de la rétro-ingénierie (reverse engineering) ?

A

Analyser un logiciel existant pour retrouver ses spécifications et conception.

17
Q

Quelle est l’approche IEEE pour la maintenance logicielle ?

A

Processus structuré incluant analyse, conception, implantation, tests et livraison contrôlée.

18
Q

Pourquoi la maintenance urgente est-elle déconseillée ?

A

Car elle est peu structurée, peu documentée et conduit souvent à une mauvaise qualité logicielle.

19
Q

Énoncez trois des “lois” ou observations de Lehman concernant l’évolution des programmes logiciels

A

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).

20
Q

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?

A

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.

21
Q

Décrivez brièvement les trois principaux types de maintenance logicielle

A

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.

22
Q

Comparez brièvement le modèle de maintenance “urgente” avec l’approche IEEE en termes de structure et de documentation.

A

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.

23
Q

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.

A

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.

24
Q

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é?

A

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.

25
Qu'est-ce que la réingénierie logicielle, et dans quel contexte devient-elle une option plus attrayante que la maintenance continue ou le développement d'un nouveau logiciel?
La réingénierie logicielle consiste à réaliser une nouvelle implémentation d'un logiciel à partir de la version existante, sans changer significativement ses fonctionnalités. Elle devient plus économique lorsque le coût de maintenance du système existant augmente considérablement ou lorsque le développement d'un nouveau logiciel présente des risques et des coûts plus élevés.
26
Décrivez brièvement deux des niveaux de réingénierie logicielle mentionnés dans le texte, en illustrant par un exemple concret pour chacun.
La réingénierie au niveau du code implique la restructuration ou la traduction du code source, par exemple pour passer d'un langage obsolète à un langage plus moderne afin de faciliter la maintenance et de trouver du personnel compétent. La réingénierie au niveau des données se concentre sur la restructuration des modèles de données et des données elles-mêmes, comme la standardisation des formats ou la migration vers une base de données pour améliorer la cohérence et l'accessibilité.