Module 3

Concevoir une solution orientée objet

Cahier d’exercice sur la conception

Exercice 1 :
Les diagrammes d’interaction

  1. …permettent de modéliser les échanges d’événements entre les instances des classes et entre une instance de classe et un acteur.
  2. …permettent de spécifier les liens entre des classes du modèle.
  3. …permettent de voir les différents états d’un objet au cours d’une activation.
  4. …permettent d’identifier quelles associations du modèle du domaine sont des agrégations ou des compositions.
  5. …permettent de spécifier les besoins du client et la façon dont le système répond à ces besoins.
Réponse

Réponse : 1

Explications
Les diagrammes d’interaction modélisent la dynamique des objets; ils servent à valider et à compléter le diagramme de classes de conception, qui lui, décrit les liens entre les classes (option 2.). Un autre diagramme d’UML, le diagramme d’états, montre les états d’un objet (option 3.). Les diagrammes d’interaction, contrairement aux diagrammes de séquence système, ne sont pas des outils de spécification (option 5.) mais d’aide à la conception.

Exercice 2 :
Laquelle des affirmations suivantes est fausse :

  1. Les diagrammes d’interaction sont des outils pour visualiser graphiquement les interactions entre des objets du domaine.
  2. Les diagrammes d’interaction peuvent être vus comme un macro-algorithme visuel.
  3. Les diagrammes d’interaction sont des outils pour synchroniser les messages des différents objets du domaine.
  4. Les diagrammes d’interaction visent à déterminer les responsabilités des différents objets dans l’atteinte d’un but.
  5. Les diagrammes d’interaction sont des outils pour supporter la conception des aspects dynamiques du modèle de conception.
Réponse

Réponse : 3

Explications
Les diagrammes d’interaction sont des outils graphiques pour supporter la conception des aspects dynamiques du modèle. Ils décrivent la séquence des messages échangés entre des objets du domaine pour atteindre un but (un macro-algorithme visuel). Bien qu’un des diagrammes d’interaction, le diagramme de séquence, permette de voir la séquence chronologique des messages, aucun des diagrammes d’interaction ne vise à forcer la synchronisation entre des messages concurrents.

Exercice 3 :
Indiquez, pour chacune des affirmations suivantes, s’il est question des diagrammes de collaboration ou des diagrammes de séquence :

  1. Ils indiquent clairement la séquence et l’ordonnancement des méthodes.
  2. Ils sont plus proches du scénario des cas d’utilisation.
  3. Ils sont plus proches du modèle de classe du domaine.
  4. Ils permettent de voir la durée de vie d’un objet.
  5. Ils se prêtent mieux à la représentation des itérations et des branchements complexes.
Réponse

Réponse :
Diagrammes de séquence : 1., 2. et 4.
Diagramme de collaboration : 3. et 5.

Explications

Exercice 4 :
Dans un diagramme d’interaction, l’image suivante représente :

  1. Une instance anonyme de la classe Vidéo.
  2. La classe Vidéo.
  3. Une collection d’objets Vidéo.
  4. Une instance de la classe Vidéo ayant deux boîtes d’activation à un moment donné.
  5. Ce symbole n’est pas utilisé dans les diagrammes d’interaction.
Réponse

Réponse : 3

Explications

Exercice 5 :
Dans un diagramme de collaboration, le sous-diagramme suivant implique que dans le diagramme de classes :

  1. La classe D a un lien d’association avec C avec une cardinalité 1 du coté de la classe D.
  2. La classe D a un lien d’association avec C avec une cardinalité 1 du coté de la classe C.
  3. La classe C est une sous-classe de la classe D.
  4. La classe C a un attribut nommé « id ».
  5. Aucun lien d’association, ni attribut, n’est impliqué car les diagrammes d’interaction traitent des aspects dynamiques et le diagramme de classes des aspects statiques.
Réponse

Réponse : 2

Explications
Les diagrammes d’interaction servent à valider et à compléter, en observant la dynamique des objets, le diagramme de classes : on doit garantir à tout moment que ces diagrammes sont cohérents. Ainsi, pour qu’une instance de la classe D puisse, à un moment donné, envoyer un message à une instance de la classe C, ces deux classes doivent être liées, ce qui s’exprime dans le modèle de classes par un lien d’association.

Comme le message est adressé a une seule instance de C, l’association doit avoir une cardinalité de 1 du coté de C (ou de 0..1). L’option 3. n’est pas correcte : dans la partie opérations de la classe C, on doit retrouver la méthode « mes » ; id, par contre, est une information connue par l’instance de C et passée comme paramètre à la méthode, non pas une information interne de D.

Exercice 6 :
Indiquez l’affirmation correcte parmi la liste suivante. Dans un diagramme de collaboration :

  1. On doit créer un lien entre deux objets pour chaque message circulant entre ces objets.
  2. On doit créer un lien entre deux objets s’il y a au moins un message qui circule entre eux, indépendamment du nombre et de la direction de ces messages.
  3. On doit designer un lien entre deux objets pour tous les messages qui circulent dans une direction et un autre lien s’il y a des messages qui circulent dans l’autre direction.
  4. On doit créer un lien entre deux objets indépendamment du nombre et de la direction des messages, si dans le diagramme de classes il y a au moins une association entre ces classes.
  5. On doit créer un lien entre deux objets lorsqu’il y a au moins un message autre que le message constructeur (ou avec stéréotype « create ») entre ces objets.
Réponse

Réponse : 2

Explications
Dans les diagrammes de collaboration, on crée un et un seul lien entre deux objets s’il y a au moins une interaction entre eux, indépendamment du nombre, direction ou nature (message de création ou autre) des messages échangés. L’option 4. n’est pas tout à fait fausse, bien que cette création exhaustive ne soit pas obligatoire. Pour élaborer un diagramme de collaboration, deux approches sont possibles. Dans la première, on identifie les classes intervenant dans l’interaction, on trace un objet anonyme pour chacune et on ajoute un lien entre tous deux objets ayant une association dans le diagramme de classes, puis on commence à développer le diagramme. La deuxième approche consiste à ajouter des objets et des liens au fur et à mesure qu’on les identifie lors de l’élaboration du diagramme de collaboration, tout en ayant à coté le diagramme de classes pour vérifier que les objets qui interagissent se connaissent. Cette deuxième approche a l’avantage de ne créer que les liens nécessaires au cas décrit par le diagramme de collaboration.

Exercice 7 :
Un jeu de stratégie sur ordinateur comporte, entre autres, les classes stratege, soldat et diplomate; le premier coordonne la plupart des actions des autres deux. élaborez la partie d’un diagramme de collaboration indiquant l’algorithme « stratégie de guerre » du stratège face à l’ennemi nn, qui est le suivant : si nous sommes très forts, dire auxsoldats d’attaquer, si nous sommes moyennement forts ou faibles, leur dire de reculer. Si nous sommes faibles, dire au diplomate de dialoguer avec l’ennemi. N’oubliez pas de bien numéroter les messages et d’indiquer leur direction.

Réponse

Réponse :

Exercice 8 :
Dans le diagramme de séquence suivant :

  1. Un objet de la classe C crée un objet de la classe D.
  2. Un objet de la classe C envoie le message « create(red) » à un objet de la classe D déjà créé.
  3. Un objet de la classe C demande à un objet de la classe D de créer un objet de la classe red.
  4. Un objet de la classe D active un objet de la classe D.
  5. Le diagramme a une erreur : aucune classe, autre que D peut faire appel à la méthode de création des objets de la classe D.
Réponse

Réponse : 1

Exercice 9 :
Dans un diagramme de séquence, une boîte d’activation représente :

  1. La durée de vie d’un objet.
  2. La durée de vie d’une classe d’objets.
  3. L’instant durant lequel un objet est activé par un message.
  4. L’instant durant lequel un objet envoie un message.
  5. L’intervalle durant lequel un objet est actif.
Réponse

Réponse : 5

Exercice 10 :
Indiquez la bonne réponse. Un diagramme de séquence ne permet pas d’exprimer :

  1. La destruction explicite d’un objet par un autre.
  2. L’exécution de deux branches d’une structure conditionnelle.
  3. Un appel récursif sur un objet.
  4. La cardinalité d’une association.
  5. Des itérations.
Réponse

Réponse : 4

Exercice 11 :
Créez la partie du diagramme de séquence correspondant à l’action : « Un objet de la classe Prescription envoie le message getdose (age) à une collection d’objets de type Medicament.

Réponse

Réponse :

Exercice 12 :
Faites le diagramme de séquence correspondant au diagramme de collaboration suivant :

Réponse

Réponse :

Designs patterns

Diagramme de classes de conception

Exercice 13 :
Les types possibles de visibilité d’un objet par rapport à un autre sont :

1. Publique, protégée et privée.
2. D’attribut, de paramètre, locale et globale.
3. D’instance, de classe et de surclasse.
4. Permanente, temporaire.
5. D’attribut, de méthode et d’objet.

Réponse

Réponse : 2

Explications
Voir page 363.

Exercice 14 :
Pour qu’un objet A envoie un message à un objet B :

  1. A doit être visible par B.
  2. B doit être visible par A.
  3. A doit être visible par B et B doit être visible par A.
  4. Il existe une visibilité d’attribut de A à B.
  5. L’objet B a dû être créé auparavant par l’objet A lui envoyant le message.
Réponse

Réponse : 2

Explications
Voir page 363.

Exercice 15 :
Dans le Processus Unifié, le diagramme de classes de conception fait partie d’un artefact de :

  1. Spécification.
  2. Conception.
  3. Implémentation.
  4. D’un artefact qui concerne les disciplines spécification et conception.
  5. D’un artefact qui concerne les disciplines conception et implémentation.
Réponse

Réponse : 2

Explications
Voir pages 219 à 224.

Exercice 16 :
Dans l’itération en cours, quand doit-on créer le diagramme de classes de conception?

  1. En parallèle avec les diagrammes de classes conceptuelles ou modèle du domaine, car le diagramme de classe de conception est un enrichissement de ce diagramme.
  2. Après le modèle du domaine et avant les diagrammes d’interaction, car ceux-ci permettront de valider le diagramme de classes de conception.
  3. Après les diagrammes d’interaction pour refléter dans les diagrammes de classes de conception les responsabilités identifiées dans les diagrammes d’interaction.
  4. En parallèle avec les diagrammes d’interaction.
  5. Après le diagramme de pattern.
Réponse

Réponse : 4

Explications
Bien qu’on puisse commencer par le diagramme de classes de conception ou commencer par les diagrammes d’interaction et puis compléter l’autre et retourner sur le premier pour le valider, le mieux est de travailler en parallèle sur ces diagrammes. Cela permet, d’une part, d’enrichir le diagramme de classes en fonction des choix d’assignation de responsabilités faits dans les diagrammes d’interaction, et d’autre part, d’orienter les choix d’assignation des responsabilités en partant des associations déjà identifiées dans le diagramme de classes.

Exercice 17 :
Un diagramme de classe de conception contient :

  1. La spécification des classes logicielles et des interfaces de l’application.
  2. Les classes conceptuelles enrichies avec la spécification des méthodes identifiées dans les diagrammes d’interaction.
  3. Les classes logicielles avec le code des méthodes qui font appel à d’autres objets.
  4. La spécification des classes conceptuelles et des classes d’interface utilisateur.
  5. L’état des objets (instances de classes) intervenant dans chaque diagramme d’interaction.
Réponse

Réponse : 1

Explications
Voir pages 251 à 271.