Diagramme d`états

Download Report

Transcript Diagramme d`états

Génie Logiciel 2
Julie Dugdale
[email protected]
Modèle dynamique

UML propose quatre types de diagramme pour
établir le modèle dynamique d'un système :
2
types de diagramme pour la description
“générique” :
 les
diagrammes d'états,
 les diagrammes d'activités,
2
types de diagramme pour la description de
scénarios :
 les
diagrammes de séquence
 les diagrammes de collaboration.
Master ICA
Génie Logiciel 4-13
Diagrammes d'états

Two important aspects:
 Notion
d'état
 Notion
d'événement
Master ICA
Génie Logiciel 4-16
Exemples d'états
Employé
notation d'un état
Retraité
DemandeurDEmploi
Les instances de la classe Personne peuvent
être dans l'un des trois états ci-dessus

Autres exemples :
 transmission
automatique : Démarrage, PointMort,
Avant, AvantRapide, MarcheArrière.
 appareil quelconque : Marche, Arrêt.
Master ICA
Génie Logiciel 4-18
Diagrammes d'états

Two important aspects:
 Notion
d'état
 Notion
d'événement
Master ICA
Génie Logiciel 4-20
Diagramme
Sous-état d'états
mise sous tension
mise hors tension
Veille
[ trop froid ]
[ trop chaud ]
[ bonne temp.]
[ bonne temp.]
Refroidissement
événement
/ action
[ trop chaud ]
[ trop froid ]
sous-état
Chauffage
Activation
prêt /
activerVent()
Actif
Exemple de modélisation dynamique d'un climatiseur
Master ICA
Génie Logiciel 4-27
Transition

Une transition est une relation orientée entre 2
états, qui indique qu'un objet dans le premier état
effectuera certaines actions avant de passer dans
le deuxième état. Cette action prend place en
réaction à un événement particulier et/ou à des
conditions particulières.
État1
Événement [garde] / action1(); action2()
État2
Forme générale de la notation d'une transition
Master ICA
Génie Logiciel 4-29
Transitions internes
SaisieMotDePasse
transition d'entrée
transitions
internes
activité
{
entry / motDeP.raz()
exit / motDeP.test()
chiffre / gestionChiffre()
annul / motDeP.raz()
aide /afficherAide()
imprime / defer
do / supprimeEcho()
transition
de sortie
événement
différé
Exemple de saisie d'un mot de passe à chiffres.
entry, exit, defer et do sont des mots réservés.
Une transition interne sur événement n'a pas le même effet
qu'une transition externe sur le même événement (on ne
passe pas par les transitions de sortie et d'entrée.
Master ICA
Génie Logiciel 4-34
État composite et
sous-états concurrents
DemandeurDEmploi
prospection ANPE
EnCoursDInscriptionANPE
prospection personnelle
InscritANPE
inscription validée
sortie en OU
logique
CandidatSpontané
état composite
proposition ANPE
EnPhaseDEmbauche
proposition
entreprise
prospection ANPE et prospection personnelle sont 2 sousétats concurrents de DemandeurDEmploi
Master ICA
Génie Logiciel 4-35
État composite et
sous-états concurrents
EtudiantMaster
CoursControleContinu
[n<10]
[n10]
UE1
[n<10]
Rattrapage
[n10]
validé
CoursControleContinu
[n<10]
[n10]
UE2
[n10]
validé
Stage
[n<10]
Rattrapage
… autres modules ...
Stage
Master
échoué
validé
Master
obtenu
sortie en
ET logique
Il faut valider tous les modules et le stage pour réussir
Master ICA
Génie Logiciel 4-36
État composite et
sous-états concurrents
EtudiantMaster
EtudiantMaster
validé
validé
validé
validé
validé
EtudiantMaster
Master ICA
validé
notations équivalentes
également valable sans
sous-états concurrents
Il y a plusieurs notations possibles.
Génie Logiciel 4-37
État historique


Si un état composite est atteint puis abandonné
prématurément, il peut être utile de recommencer
un état composite par le sous-état qui était actif en
dernier
Un état historique et un état historique profond
sont utilisés pour représenter ceci.
Master ICA
Génie Logiciel 4-38
État historique
ÉtatEnglobant
SousÉtat1
ÉtatExtérieur
interruption
SousÉtat2
H
état historique
SousÉtat3
état historique profond
H*
L'état historique permet de revenir au dernier sous-état visité
lors du retour à un état englobant.
Master ICA
Génie Logiciel 4-39
Pseudo-états d'historique
Pseudo-état d'historique
profond
Pseudo-état d'historique
Superficiel
H
Master ICA
H*
Fonctionne de manière similaire
à l’historique superficiel, mais
permet à un état composite de
recommencer au dernier état
actif dans chaque machine
emboitée, à n’importe quelle
profondeur d’emboitement
Génie Logiciel 4-40
Préparer les machines
d'états
Master ICA
Génie Logiciel 4-41

Différentes approches :

Regarder chaque classe dans le diagramme de classe
Identifier les différents états pour chaque classe

Regarder les évènements majeurs du système.
Identifier chaque classe qui pourrait réagir à ces évènements
différemment selon son état.

Un groupe de différents diagrammes UML est utilisé pour
concevoir un système (use case, diagrammes d’interaction,
etc.)

On peut utiliser ces autres diagrammes pour s’aider
pendant le développement des diagrammes d’états

Plus de détails sur les slides sur le BV
Master ICA
Génie Logiciel 4-42
Vérifications de consistance



Un ensemble de diagrammes d’UML (Diagrammes d’état,
Diagrammes de séquences, Diagrammes de Use Case,
etc.) décrit la conception d’un système.
Chaque type de diagramme est utilisé pour montrer
différents aspects du système.
Il y a des liens entre les diagrammes!
Ce qui apparait sur un type de diagramme devrait apparaitre
sur un autre type de diagramme.
 Par exemple une action (sur un diagramme d’état) devrait
apparaitre comme une opération (sur le diagramme de
classe).

Master ICA
Génie Logiciel 4-58
Vérifications de consistance


Sur les slides du cours (sur le BV) j’ai mis de
l’information sur des manières de vérifier la
consistance entre les diagrammes.
Je vais revenir sur ce point plus tard quand on
aura couvert tous les différents types de
diagrammes!
Master ICA
Génie Logiciel 4-59
Vérifications de consistance



Les vérifications de consistance sont une tâche
importante dans la préparation d'un ensemble
complet de modèles.
Pourquoi?
Souligne les oublis et les erreurs, et encourage la
clarification de toute ambigüité ou incomplétude
dans les spécifications.
Master ICA
Génie Logiciel 4-60