E.D. de Génie Logiciel
Conception avec U.M.L.
IV - Analyse: Point de vue dynamique (Diagrammes
d'états)
EXERCICE I:
On considère une montre digitale simplifiée, munie au départ
de 2 boutons:
| |
|
|
|
|
Bouton
Mode |
|
17:35:22 |
|
Bouton
Avance |
| |
|
|
|
Le bouton Mode commande le type d'affichage, comprenant
les situations de mise à jour; le bouton Avance permet
d'effectuer les mises à jour.
- Le mode usuel est le mode Affichage (de l'heure
courante).
- Quand on appuie une fois sur le bouton Mode,
la montre passe en mode modification de l'heure. Chaque
pression sur le bouton Avance incrémente
ensuite l'heure d'une unité;
- quand on appuie une nouvelle fois sur le bouton Mode,
la montre passe en mode modification des minutes.
Chaque pression sur le bouton Avance
incrémente alors les minutes d'une unité;
- quand on appuie une nouvelle fois sur le bouton Mode,
la montre revient au mode Affichage.
QUESTIONS:
- Réaliser un Diagramme d'états correspondant
aux spécifications ci-dessus, sans oublier les actions
accompagnant certaines des transitions.
- On enrichit maintenant les spécifications initiales de
la manière suivante:
Quand on appuie sur le bouton Avance
plus de 2 secondes, les heures ou les minutes (selon le
cas) s'incrémentent rapidement jusqu'à ce qu'on relâche
la pression sur le bouton.
Modifier le diagramme d'états précédent en conséquence,
en introduisant les nouveaux événements (notamment temporels)
et états nécessaires.
- On revient aux spécifications initiales (Q. 1), mais la
montre reçoit 2 boutons supplémentaires:
- un bouton d'alarme, qui confère
à la montre une fonctionnalité classique
d'alarme: quand l'heure courante devient égale
à l'heure d'alarme, la montre sonne (la sonnerie
s'arrête d'elle-même au bout d'un certain
temps, ou lorsqu'on l'interrompt par le bouton Alarme).
- un bouton d'éclairage: en
le pressant, le cadran de la montre s'éclaire
jusqu'à ce qu'on relâche ce bouton;
Donner les Diagrammes d'états décrivant
chacun des trois comportements de la montre (gestion de:
l'affichage / mises à jour (étendues à l'heure
d'alarme); l'alarme; l'éclairage).
- Comment modéliser l'existence simultanée de 3
diagrammes d'états pour un même objet? On envisagera 2
solutions:
- à l'aide d'un Diagramme de classes
composite,
- ou avec un Diagramme d'états à régions
simultanées (parallèles) (ou:
à vecteur d'états).
EXERCICE 2: Diagramme d'états hiérarchique
complexe
Soit le fragment de diagramme d'états suivant, décrivant le
comportement dynamique d'un certain objet:
| |
| _ |
_______ |
_ |
| | |
E3 / act3 |
| |
| | |
|
V |
|
E1 / act1
... ------------->E2
/ act2
... <-------------
|
| Super-état A |
| entry / A_ent E4
/ A_interne
exit / A_sor
|
|
|
| état B |
| entry
/ B_ent exit / B_sor
|
|
E5
------>E6
<------
|
| état C |
| entry
/ C_ent exit / C_sor
|
|
|
|
|
En désigne un événement,
et actn (ou L_xxx) une action
(ou effet)
accompagnant une transition.
QUESTIONS :
1) Compléter le tableau ci-après pour
expliquer le comportement de l'objet en réaction à la suite d'événements
E1, E5, E4, ..., E2. On suppose que l'on part de l'état, à
gauche du diagramme, symbolisé par ... ; à partir
de la ligne 2, l'état de départ est l'état d'arrivée de la
ligne précédente.
2) Que devient ce tableau si la transition propre commandée par l'événement
E3 conduit vers le pseudo-état History à l'intérieur du super-état A ?