Exercice: Pacman

Tiré de l’examen de 2010

Énoncé

Questions

  1. Calculez la métrique I-A en utilisant la méthode de calcul de Robert C. Martin.

  2. À la lumière de vos calculs, recommanderiez-vous au développeur de faire un réusinage? Pourquoi?

  3. Trouvez toutes les violations des principes SOLID à partir du diagramme donné.

  4. Pour le principe du DIP qui n’est pas respecté, proposez une solution possible pour corriger la situation.

  5. À la suite de votre réusinage pour le DIP, que prévoyez-vous comme impact sur les métriques I (instabilité) et A (abstraction) du package « persistance » ? Est-ce une amélioration par rapport aux résultats initiaux ? Justifiez votre réponse.

Diagramme

Énoncé - Exercice sur les principes SOLID

Solutions

Métrique I-A

Package C_a C_e I A
modele 0 1 1 1/6
persistance 1 0 0 0

Réusiner ?

Les réponses suivantes dépendent de la justification.

SOLID

:warning: Il ne s’agit pas des seules bonnes réponses possibles, tout dépend de la justification que vous fournirez sur les principes SOLID.

Réusinage du DIP

Une solution possible simple:

[Damier] --> [RepresentationDamier <I>]
                ^
                |
================|=======================
                |
        +-------+---------+
        |                 |
    [DamierXML]         [DamierASCII]

Nous pourrions aussi considérer le fait que le modèle OO devrait d’abord être modifié pour constituer un domaine et utiliser quelque chose comme un Repository, etc.

[DamierSpecification <I>]  - - -> [Damier] 
    ^
    |
====|=====================================
    |
    +-----------------+
    |                 |
  [DamierXMLSpec] [DamierASCIISpec]