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.

  1. Notions
  2. Questions
  3. Ranger et relier
  4. 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.