Diagrammes de communications, de séquence et de machine à états
- réponses
Instructions pour le QCM :
Pour chacune des questions, plusieurs réponses peuvent être
correctes, vous pouvez donc cocher plusieurs cases !
Les questions sont de trois niveaux de difficultés. Les niveaux
« intermédiaire » et « difficile » sont précédés
des signes « * » et « ** », respectivement.
-
L'affirmation suivante est-elle correcte ? Un message
« 2.3.i » peut provoquer la réaction
« 2.3.j ».
| FAUX :
OUI
(
La réaction à un message est un message imbriqué. Donc, un message de
la forme « 2.3.i.1 ».
) |
| VRAI :
NON
|
-
L'affirmation suivante est-elle correcte ? Un message
« 2.3.i » peut être suivie en séquence par le
message « 2.3.j ».
| FAUX :
OUI
(
Une séquence de messages est numérotée avec des chiffres, et non des
lettres. Ici, le « i » indique un choix (le
ième choix) ou une itération (d'indice i). Le message
suivant dans la séquence est donc de la forme
« 2.4 ».
) |
| VRAI :
NON
|
-
Voici le diagramme de communications utilisé par les questions qui
suivent.
Dans le diagramme, « Theme » est
| VRAI :
Une classe.
(
L'intitulé ne possède pas de nom d'instance, ni n'est souligné.
) |
| FAUX :
un objet.
(
L'intitulé ne possède pas de nom d'instance, ni n'est souligné.
) |
-
L'opération « rechercher(utilisateur) » est-elle une opération
| FAUX :
d'instance ?
(
Une opération d'instance ne peut pas être appelée sur une classe, mais
doit être appelée sur une instance.
) |
| VRAI :
de classe ?
|
-
Le message « 6 » est-il un message
| FAUX :
imbriqué ?
(
Un message imbriqué est de la forme « *.*... ». Donc, le
message « 6 » n'est pas imbriqué.
) |
| VRAI :
en séquence ?
(
Il vient après le message « 5 ».
) |
-
Le message « 6 » est-il toujours émis ?
| FAUX :
OUI.
|
| VRAI :
NON.
(
Il est uniquement émis si la condition de garde « [p !=
null] » est vraie.
) |
-
L'objet « g »
| FAUX :
existe-t-il au début de la collaboration ?
(
Le stéréotype « new » stipule que l'objet « g »
est créé lors de la collaboration. Donc, il n'existe pas au début.
) |
| FAUX :
existe-t-il avant l'objet « p » ?
(
L'opération de construction « create » est appelée par
l'objet « p » (action imbriquée « 5.1 » après
l'action « 5 »). Donc, l'objet « g » n'existe pas
si l'objet « p » n'existe pas.
) |
| VRAI :
existe-t-il uniquement si l'objet « p » existe ?
(
L'opération de construction « create » est appelée par
l'objet « p » (action imbriquée « 5.1 » après
l'action « 5 »). Donc, l'objet « g » n'existe que
si l'objet « p » est créé lors de la collaboration.
) |
-
Existe-t-il une association entre la classe « Projet » et la
classe « Groupe » ?
| VRAI :
OUI.
|
| FAUX :
NON.
(
La présence de communications entre les deux objets « p » et
« g » indique qu'il existe dans le diagramme de classes une
association entre les deux classes.
) |
-
Voici le diagramme de séquence utilisé par les questions qui suivent.
Dans le diagramme, « Projet » est-il
| VRAI :
Une classe ?
|
| FAUX :
un objet ?
(
L'intitulé ne possède pas de nom d'instance, ni n'est souligné.
) |
-
L'opération « envoyerCourriel() » est-elle une opération
| VRAI :
d'instance ?
|
| FAUX :
de classe ?
(
L'opération utilise les informations du groupe pour déterminer la
liste des destinataires du courriel. C'est donc une opération
d'instance.
) |
-
Le message « envoyerCourriel() » est-il un message
| VRAI :
imbriqué ?
|
| FAUX :
en séquence ?
(
Un message imbriqué fait suite à la réception d'un autre
message. Donc, le message « envoyerCourriel() » est
imbriqué.
) |
| FAUX :
asynchrone ?
(
La flêche du message étant pleine, le message est un message
synchrone, même si les retours d'appels synchrones ne sont pas
représentés dans le diagramme de séquence.
) |
-
Le message « envoyerCourriel() » est-il toujours émis ?
| FAUX :
OUI.
(
Il est uniquement émis si la condition de garde du fragment de
séquence « opt » est vraie.
) |
| VRAI :
NON.
|
-
Voici le diagramme de machine à états utilisé par les questions qui suivent.
La transition entre l'état « EnConstruction » et l'état
« ProjetProposé » est-elle une transition
| VRAI :
Implicite ?
|
| FAUX :
Réflexive ?
(
Une transition réflexive est une transition ayant les mêmes états de départ
et d'arrivée. Ce n'est pas le cas de cette transition.
) |
-
Sur la transition « [projet accepté]/accepterProjet() »,
« [projet accepté] » est-il
| FAUX :
Un événement ?
|
| VRAI :
Une condition ?
|
| FAUX :
Une action ?
|
-
L'action « accepterProjet() » telle que positionnée dans le
diagramme est-elle
| VRAI :
Une action de transition ?
(
Elle est sur la transition.
) |
| VRAI :
Une action immédiate ?
(
Les actions des transitions sont des actions de courte durée, donc
immédiates.
) |
| FAUX :
Une action interruptible ?
(
Les actions des transitions étant immédiates, le corollaire est que
par définition elles ne peuvent pas être interrompues.
) |
-
Si l'on retire la transition « [dateDuJour > dateClôture +
2ans] », quelles que soient les règles de gestion de l'étude de
cas, le diagramme de machine à états
| VRAI :
Devient-il incorrect ?
|
| FAUX :
Reste-t-il correct.
(
Une fois entrée dans l'état « ProjetActif », l'état terminal
n'est plus atteignable.
) |
-
Si l'on retire la transition « [projet
refusé]/rejeterProjet() », quelles que soient les règles de
gestion de l'étude de cas, le diagramme de machine à états
| FAUX :
Devient-il incorrect ?
(
Si cette transition disparaît, il reste possible d'atteindre
l'état terminal en passant par l'état « ProjetActif ».
) |
| VRAI :
Reste-t-il correct ?
|