La rétroconception
Retrouver la conception d'un logiciel à partir du code : rétroconception, redocumentation, restructuration, réingénierie, graphe d'appels et diagramme de classes.
- 25 cartes
- 4 thèmes
- Gratuit
Le programme, thème par thème
Le poids de chaque thème suit celui que lui donne l'examen.
- Notions
- Questions
- Ranger et relier
- Mises en situation
Quelques cartes du deck
Rétroconception : de quoi s'agit-il ?
Voir la réponse
Analyse d'un logiciel existant pour en retrouver la conception (structure, composants, relations), sans rien modifier.
Elle part du code, souvent seul survivant, et remonte vers un niveau d'abstraction plus élevé : un diagramme, un graphe, une description.
D'après ce code Java, quelle relation un diagramme de classes montre-t-il de Commande vers Ligne ?
```java
class Commande {
private Client client;
private List<Ligne> lignes = new ArrayList<>();
}`- Une association de multiplicité 0..* vers Ligne
- Un héritage : Commande est une sorte de Ligne
- Une réalisation : Commande implémente l'interface Ligne
- Une association avec la multiplicité 1 (une seule ligne par commande)
Voir la réponse
Une association de multiplicité 0..* vers Ligne
Un champ de type
List<Ligne>traduit une association vers plusieurs. Le code seul ne dit pas si c'est une composition : seul le cycle de vie des lignes, lié à la commande ou non, permet de le décider.La rétroconception … le logiciel analysé ; la réingénierie, elle, … sous une nouvelle forme.
Voir la réponse
La rétroconception ne modifie pas le logiciel analysé ; la réingénierie, elle, le reconstruit sous une nouvelle forme.
Comprendre d'abord, reconstruire ensuite : la rétroconception est l'étape d'analyse sur laquelle s'appuie la réingénierie.
Redocumentation : de quoi s'agit-il ?
Voir la réponse
Production ou mise à jour de la documentation d'un logiciel à partir de l'analyse de son code, sans changer le code.
C'est la forme la plus légère de rétroconception : le code reste intact, on rend seulement lisible ce qu'il fait.
Une entreprise veut migrer un logiciel écrit il y a vingt ans, sans documentation, vers une architecture web. Quelle démarche respecte l'ordre logique ?
- Écrire la nouvelle version d'après les souvenirs de l'équipe, puis comparer avec l'ancienne
- Retrouver la conception par rétroconception, puis reconstruire sur la nouvelle plateforme
- Traduire le code ligne à ligne vers le nouveau langage, sans chercher à le comprendre
- Reprendre le cahier des charges d'origine et repartir de zéro, sans lire l'ancien code
Voir la réponse
Retrouver la conception par rétroconception, puis reconstruire sur la nouvelle plateforme
Le code ancien contient des règles que plus personne ne connaît. La rétroconception les fait remonter avant la reconstruction, qui est le deuxième temps de la réingénierie.