UML 2 Pratique de la modélisation - lix.polytechnique.frroda/StateDiagram.pdf · UML 2 Pratique de...

Post on 11-Sep-2018

223 views 1 download

Transcript of UML 2 Pratique de la modélisation - lix.polytechnique.frroda/StateDiagram.pdf · UML 2 Pratique de...

UML 2 Pratiquede la

modelisation

Fabio Roda, LeoLiberti

UML 2 Pratique de la modelisation

Fabio Roda1 Leo Liberti1

[1] LIX, Ecole Polytechnique, 91128 Palaiseau, France

June 2-5, 2009

1 / 31

UML 2 Pratiquede la

modelisation

Fabio Roda, LeoLiberti

State Diagram: introdution

Le diagramme d’etats-transition illustre l’ensembre des etats ducycle de vie d’un objet.

La description du cycle de vie est realisee separement pourchacun des objets.

Un etat correspond a un moment d’activite ou d’inactivite del’objet.

Un evenement est un fait qui declenche le changement d’etat.

Une transition est un lien oriente qui exprime le fait que l’objet ala possibilite de passer de l’etat d’origine de la transition a sonetat de destination.

2 / 31

UML 2 Pratiquede la

modelisation

Fabio Roda, LeoLiberti

State Diagram: etat

Un etat correspond a un moment d’activite ou d’inactivite del’objet.

3 / 31

UML 2 Pratiquede la

modelisation

Fabio Roda, LeoLiberti

State Diagram: etat initial final

Un etat initial est unique.

Les objets permanents n’ont pas d’etat final.

4 / 31

UML 2 Pratiquede la

modelisation

Fabio Roda, LeoLiberti

State Diagram: transition

L’ evenement est un fait qui declenche le changement d’etat.

Si la transition est automatique aucun evenement n’est pasindique.

5 / 31

UML 2 Pratiquede la

modelisation

Fabio Roda, LeoLiberti

State Diagram: etat reflexive

Une transition reflexive possede le meme etat d’origine et dedestination.

6 / 31

UML 2 Pratiquede la

modelisation

Fabio Roda, LeoLiberti

State Diagram: exemple 1

Dans un concours d’obstacles, l’epreuve consiste a demander achaque concurrent de sauter deux ou trois obstacles differents.

Il arrive que le cheval refuse de sauter un obstacle. Leconcurrent peut alors recommencer le saut.

Les deux obstacles sont respectivement le mur e la barriere.

Le concurrent peut se trouver dans les etats suivants: Attentedu depart, Course Avant Mur, Saut Mur, Course Avant Barriere,Saut Barriere, FinEpreuve.

Construire le State Diagram d’une instance de la classeConcurrent de l’epreuve.

7 / 31

UML 2 Pratiquede la

modelisation

Fabio Roda, LeoLiberti

State Diagram: exemple 1

8 / 31

UML 2 Pratiquede la

modelisation

Fabio Roda, LeoLiberti

State Diagram: condition garde

Il est possible d’associer une condition a une transition

9 / 31

UML 2 Pratiquede la

modelisation

Fabio Roda, LeoLiberti

State Diagram: exemple (condition garde)

10 / 31

UML 2 Pratiquede la

modelisation

Fabio Roda, LeoLiberti

State Diagram: activities

Il est possible de specifier differentes activites

a l’entree d’un etat (entry/...)

au sein d’un etat, lors de reception d’un evenement(evenement/...)

pendant un etat (do/...)

a et la sortie d’un etat (exit/...)

lors du franchissement d’une transition11 / 31

UML 2 Pratiquede la

modelisation

Fabio Roda, LeoLiberti

State Diagram: exemple (activities)

12 / 31

UML 2 Pratiquede la

modelisation

Fabio Roda, LeoLiberti

State Diagram: etat compose

Un etat peut etre decrit lui-meme par un diagrammed’etats-transitions. Un tel etat est appele un etat compose.

Des que l’object passe dans l’etat compose, il passe egalementdans le sous-etat initial du diagramme interne d’etats-transitions.

Si l’objet franchit une transition qui fait sortir de l’etat compose,il quitte egalment les sous-etats.

13 / 31

UML 2 Pratiquede la

modelisation

Fabio Roda, LeoLiberti

State Diagram: etat compose

14 / 31

UML 2 Pratiquede la

modelisation

Fabio Roda, LeoLiberti

State Diagram: exemple (etat compose)

15 / 31

UML 2 Pratiquede la

modelisation

Fabio Roda, LeoLiberti

State Diagram: sous etat de memoire

16 / 31

UML 2 Pratiquede la

modelisation

Fabio Roda, LeoLiberti

State Diagram: exemple (sous etat de memoire)

17 / 31

UML 2 Pratiquede la

modelisation

Fabio Roda, LeoLiberti

State Diagram: sous etats paralleles

Au sein d’un objet compose il est possible d’avoir des sous-etatsqui evoluent en parallele.

Il existe une transition de type fourche qui possede plusieurssous-etats de destination.

Une fois franchie l’objet se trouve dans tous le sous-etats dedestination.

La transition de type synchronisation possede plusieurssous-etats d’origine et un seul etat de destination.

Il faut que l’objet se trouve dans tous les sous-etats d’originepour que la transition soit franchie.

18 / 31

UML 2 Pratiquede la

modelisation

Fabio Roda, LeoLiberti

State Diagram: sous etats paralleles

19 / 31

UML 2 Pratiquede la

modelisation

Fabio Roda, LeoLiberti

State Diagram

20 / 31

UML 2 Pratiquede la

modelisation

Fabio Roda, LeoLiberti

Exercices

Exercices

21 / 31

UML 2 Pratiquede la

modelisation

Fabio Roda, LeoLiberti

State Diagram: ex. 1

Un ticket de course peut se trouver dans les etats suivants:Vierge, Rempli, Valide, Perdant, Gagnant, Paye.

Construire le State Diagram d’une instance de la classe Ticket.

22 / 31

UML 2 Pratiquede la

modelisation

Fabio Roda, LeoLiberti

State Diagram: ex.1

23 / 31

UML 2 Pratiquede la

modelisation

Fabio Roda, LeoLiberti

State Diagram: ex. 2

Une course de chevaux peut se trouver dans les etats suivants:Attente de chevaux, Attente du depart, Course en cours, Arrivee,Annulee.

Construire le State Diagram d’une instance de la classe Course.

Considerer l’evenement Faux Depart.

24 / 31

UML 2 Pratiquede la

modelisation

Fabio Roda, LeoLiberti

State Diagram: ex.2

25 / 31

UML 2 Pratiquede la

modelisation

Fabio Roda, LeoLiberti

State Diagram: ex. 3

Le but de l’exercice est de decrire les differents etats de lasituation professionnelle d’une personne et les transitionscorrespondantes.

La personne peut etre :etudiante, salarie, sans activite, independante ou retraitee.Au debut de sa situation professionnelle, une personne estetudiante.

Ne prenez pas en compte les activites simultanees comme lapossibilite d’etre simultanement salarie et independant.

Construisez le diagramme d’etats-transitions correspondant.

INDICE : Utilisez les conditions de garde pour differencier lespossibilites multiples

26 / 31

UML 2 Pratiquede la

modelisation

Fabio Roda, LeoLiberti

State Diagram: ex.3

27 / 31

UML 2 Pratiquede la

modelisation

Fabio Roda, LeoLiberti

State Diagram: ex. 4

Representez par un diagramme d’etats les etats que peutprendre un individu du point de vue de l’INSEE (Institut nationalde la statistique et des etudes economiques)

Vivant, decede, mineur, majeur, celibataire, marie, veuf, divorce.

Il faut etre majeur pour se marrier.

28 / 31

UML 2 Pratiquede la

modelisation

Fabio Roda, LeoLiberti

State Diagram: ex.4

29 / 31

UML 2 Pratiquede la

modelisation

Fabio Roda, LeoLiberti

State Diagram: ex. 5

Une course de chevaux peut se trouver dans les etats suivants:Attente du depart, Course en cours, Course Avant Mur, SautMur, Course Avant Barriere, Saut Barriere, FinEpreuve.

Apres l’ordre de depart et jusqu’au dernier saut, un concurrentest dans l’etat Concours.

A tout moment, il peut etre disqualifie mais cettedisqualification doit etre confirmee (par exemple, en cas decontestation). Si elle est annulee, l’epreuve repart de l’etat danslequel elle s’etait arretee.

Construire le State Diagram d’une instance de la classeConcurrent de l’epreuve.

30 / 31

UML 2 Pratiquede la

modelisation

Fabio Roda, LeoLiberti

State Diagram: ex.5

31 / 31