|
|
6.12 Traduction des diagrammes de
machine à états
-
Attributs utilisés dans la machine à états
- dateDébut : date
- dateLimite : date
- dateLimiteExistence :
date
- ouvert : boolean = false
- ouvertureAvancée :
boolean = false
- fermetureAvancée :
boolean = false
- destructionAvancée
: boolean = false
-
Valeur des attributs dans les différents états
- EnConstruction : valeurs par
défaut
- ScrutinOuvert : ouvert =
true
- ScrutinFermé : ouvert = false
et
(dateJour > dateLimite ou fermetureA =
true)
- EnDestruction : ouvert = false
et
(dateJour > dateLE ou destructionA =
true)
|
précédent suivant
Rappelons que les attributs d’une classe, ici la classe
Scrutin, d’un diagramme de classes
servent à construire un diagramme de machine à états, et vice versa (dans le sens où la construction d’un
diagramme de machine à états peut permettre de découvrir des attributs non
extraits directement du cahier des charges). Pour notre exemple de la classe
Scrutin, il est fort probable que la première
liste des attributs de la classe Scrutin
construite lors de la première construction du diagramme de classes n’ait
pas fait apparaître les attributs booléens qui permettent de gérer le cycle de
vie par des actions de l’organisatrice, qui peut avancer
l’ouverture, la fermeture, ou la destruction d’un scrutin.
La traduction d’un diagramme de machine à états lors de
la conception consiste en deux activités : premièrement, compléter la liste des
attributs afin de permettre la gestion de tous les états et de toutes les
transtions, et deuxièmement, compléter la liste des opérations afin de
permettre de faire évoluer les valeurs des attributs pour respecter le
diagramme de machine à états. Tout d’abord, concernant la liste des
attributs, selon le diagramme de machine à états de cette diapositive, nous
pouvons nous poser la question suivante : une ouverture avancée par
l’organisatrice fait-elle changer la valeur de l’attribut
dateOuverture ou ajoute-t-on un attribut pour
distinguer une ouverture automatique d’une ouverture avancée ? Comme
montré dans cette diapositive, nous avons choisi d’ajouter les attributs
ouvertureAvancée, fermetureAvancée, et destructionAvancée. Ensuite, concernant la liste des
opérations, les actions du diagramme de classes deviennent des opérations de la
classe, et les contraintes sur les attributs deviennent aussi des opérations
(par exemple, le passage du temps est modélisé par l’ajout d’une
opération vérifierAuQuotidien). Les opérations
avec leur algorithme sont décrits dans la diapositive qui suit.
D. Conan, C. Taconet, C. Bac,
Télécom SudParis, CSC 4002, Octobre 2015
|
|