Informatique S6-MIS
Mod` ele pour l’Ing´ enierie des Syst` emes
— UML —
C´ edric Buche
Ecole Nationale d’Ing´ ´ enieurs de Brest (ENIB)
28 janvier 2014
Diagramme d’´etats-transitions
1 Diagramme d’´ etats-transitions
2 Diagramme d’activit´ es
3 G´ en´ eration de code
C´edric Buche (ENIB) MIS 28 janvier 2014 2 / 152
D´ efinitions — rˆ oles
Vue dynamique : ´ evolutions possibles des ´ etats d’un classifier Objectifs : d´ ecrire le comportement interne d’un classifier
Ensemble des ´ etats possibles (pertinents)
Possibilit´ es de changements d’´ etat sur occurrence d’´ ev´ enement
Origine : Statecharts (David Harel , 1987) Machine ` a ´ etats :
le comportement ne d´ epend pas uniquement des entr´ ees du syst` eme, mais aussi de son
histoire
, son ´ etat interne Type de mod` ele : syst` eme discret :
comportement caract´ erisable (= observable) par une succession
d’´ etats
Diagramme d’´etats-transitions Introduction
D´ efinitions — rˆ oles
Vue dynamique : ´ evolutions possibles des ´ etats d’un classifier Objectifs : d´ ecrire le comportement interne d’un classifier
Ensemble des ´ etats possibles (pertinents)
Possibilit´ es de changements d’´ etat sur occurrence d’´ ev´ enement
Origine : Statecharts (David Harel , 1987) Machine ` a ´ etats :
le comportement ne d´ epend pas uniquement des entr´ ees du syst` eme, mais aussi de son
histoire
, son ´ etat interne Type de mod` ele : syst` eme discret :
comportement caract´ erisable (= observable) par une succession d’´ etats
avec changement d’´ etat discontinu (= discret)
C´edric Buche (ENIB) MIS 28 janvier 2014 3 / 152
D´ efinitions — rˆ oles
Vue dynamique : ´ evolutions possibles des ´ etats d’un classifier Objectifs : d´ ecrire le comportement interne d’un classifier
Ensemble des ´ etats possibles (pertinents)
Possibilit´ es de changements d’´ etat sur occurrence d’´ ev´ enement
Origine : Statecharts (David Harel , 1987) Machine ` a ´ etats :
le comportement ne d´ epend pas uniquement des entr´ ees du syst` eme, mais aussi de son
histoire
, son ´ etat interne Type de mod` ele : syst` eme discret :
comportement caract´ erisable (= observable) par une succession
d’´ etats
Diagramme d’´etats-transitions Introduction
D´ efinitions — rˆ oles
Vue dynamique : ´ evolutions possibles des ´ etats d’un classifier Objectifs : d´ ecrire le comportement interne d’un classifier
Ensemble des ´ etats possibles (pertinents)
Possibilit´ es de changements d’´ etat sur occurrence d’´ ev´ enement
Origine : Statecharts (David Harel , 1987) Machine ` a ´ etats :
le comportement ne d´ epend pas uniquement des entr´ ees du syst` eme, mais aussi de son
histoire
, son ´ etat interne Type de mod` ele : syst` eme discret :
comportement caract´ erisable (= observable) par une succession d’´ etats
avec changement d’´ etat discontinu (= discret)
C´edric Buche (ENIB) MIS 28 janvier 2014 3 / 152
Notion et exemple d’automate ` a ´ etats finis
Exemple : t´ el´ erupteur dans une maison
Description du comportement : Lorsque l’on appuie sur un bouton poussoir, la r´ eaction de l’´ eclairage associ´ e d´ epend de son
´
etat courant (donc de son historique) : si la lumi` ere est allum´ ee, elle s’´ eteint, si elle est ´ eteinte, elle s’allume.
El´ ´ ements du comportement du syst` eme : 2 ´ etats : Allum´ e et Eteint ´
2 transitions : Allum´ e 7→ Eteint ´ et Eteint ´ 7→ Allum´ e
1 ´ ev´ enement : pression sur un bouton poussoir
Diagramme d’´etats-transitions Introduction
Notion et exemple d’automate ` a ´ etats finis
Exemple : t´ el´ erupteur dans une maison
Description du comportement : Lorsque l’on appuie sur un bouton poussoir, la r´ eaction de l’´ eclairage associ´ e d´ epend de son
´
etat courant (donc de son historique) : si la lumi` ere est allum´ ee, elle s’´ eteint, si elle est ´ eteinte, elle s’allume.
El´ ´ ements du comportement du syst` eme : 2 ´ etats : Allum´ e et Eteint ´
2 transitions : Allum´ e 7→ Eteint ´ et Eteint ´ 7→ Allum´ e 1 ´ ev´ enement : pression sur un bouton poussoir
pression pression
Eteint
Allumé
C´edric Buche (ENIB) MIS 28 janvier 2014 4 / 152
Deux types de mod` elisation
Deux interpr´ etations du mod` ele
1
Machine ` a ´ etat comportementale :
behavioral statemachine : stm {behavior}
sp´ ecifier le comportement d’un classifier, instance d’une classe, cas d’utilisation, collaboration, m´ ethode
ce que fait un classifier quand on le sollicite
s´ emantique op´ erationnelle : impl´ ementable pour contrˆ oler le classifier
2
Machine ` a ´ etat de protocole :
protocol statemachine : stm {protocol}
sp´ ecifier les s´ equencements
l´ egaux
de sollicitations comment utiliser un classifier
sans effet sur une instance du classifier
Diagramme d’´etats-transitions Introduction
Deux types de mod` elisation
Deux interpr´ etations du mod` ele
1
Machine ` a ´ etat comportementale :
behavioral statemachine : stm {behavior}
sp´ ecifier le comportement d’un classifier, instance d’une classe, cas d’utilisation, collaboration, m´ ethode
ce que fait un classifier quand on le sollicite
s´ emantique op´ erationnelle : impl´ ementable pour contrˆ oler le classifier
2
Machine ` a ´ etat de protocole :
protocol statemachine : stm {protocol}
sp´ ecifier les s´ equencements
l´ egaux
de sollicitations comment utiliser un classifier
sans effet sur une instance du classifier
C´edric Buche (ENIB) MIS 28 janvier 2014 5 / 152
Concepts de base
Principes g´ en´ eraux des mod` eles ´ etats – transition Etat ´
Transition Ev´ ´ enement
Sp´ ecificit´ es du mod` ele UML Signal
Transition gard´ ee Effet : action – activit´ es
machine ` a ´ etat comportementale
Diagramme d’´etats-transitions Bases
Concepts de base
Principes g´ en´ eraux des mod` eles ´ etats – transition Etat ´
Transition Ev´ ´ enement
Sp´ ecificit´ es du mod` ele UML Signal
Transition gard´ ee Effet : action – activit´ es
machine ` a ´ etat comportementale
C´edric Buche (ENIB) MIS 28 janvier 2014 6 / 152
Etat — d´ ´ efinitions
Etat ´ simple (sens strict) :
potentiellement observable au cours de la vie d’un classifier dur´ ee d’activation non nulle
d´ efini par un invariant
les valeurs d’un ensemble de propri´ et´ es du classifier une situation d’attente
l’ex´ ecution d’un comportement
Pseudo-´ etat :
non observable, g´ en´ eralement de dur´ ee nulle rˆ ole : contrˆ ole des activations des ´ etats Etat composite ´
peut contenir (envelopper) des sous-´ etats
Etat hi´ ´ erarchique (voir concepts avanc´ es)
Diagramme d’´etats-transitions Bases
Etat — notations ´
optionnel NomEtat
TransitionInterne1 NomEtat
Machine à état Super−état décomposé en composite (optionnel) Région(s) d’un état
une machine à état
C´edric Buche (ENIB) MIS 28 janvier 2014 8 / 152
Etat initial et ´ ´ etat final
D´ efinitions – particularit´ es
Pseudo–´ etats
Caract´ erisent l’activation (initiale ou terminale) d’une r´ egion d’un
´ etat englobant
Etat initial ´ (dur´ ee nulle) :
Indique l’activation initiale de la r´ egion englobante en ciblant le premier ´ etat actif par d´ efaut ⇒ 1 seul par r´ egion
Transition : restrictions
non d´ eclench´ ee par un ´ ev´ enement,
´ eventuellement gard´ ee (sous r´ eserve...),
´ eventuellement associ´ ee ` a un effet
Etat final ´ :
Indique que l’activation de la r´ egion englobante est termin´ ee Aucun autre ´ etat n’est alors activable
Transition : pas de restriction
Diagramme d’´etats-transitions Bases
Etat initial et ´ ´ etat final
D´ efinitions – particularit´ es
Pseudo–´ etats
Caract´ erisent l’activation (initiale ou terminale) d’une r´ egion d’un
´ etat englobant
Etat initial ´ (dur´ ee nulle) :
Indique l’activation initiale de la r´ egion englobante en ciblant le premier ´ etat actif par d´ efaut ⇒ 1 seul par r´ egion
Transition : restrictions
non d´ eclench´ ee par un ´ ev´ enement,
´ eventuellement gard´ ee (sous r´ eserve...),
´ eventuellement associ´ ee ` a un effet
Etat final ´ :
Indique que l’activation de la r´ egion englobante est termin´ ee Aucun autre ´ etat n’est alors activable
Transition : pas de restriction
C´edric Buche (ENIB) MIS 28 janvier 2014 9 / 152
Etat initial et ´ ´ etat final
D´ efinitions – particularit´ es
Pseudo–´ etats
Caract´ erisent l’activation (initiale ou terminale) d’une r´ egion d’un
´ etat englobant
Etat initial ´ (dur´ ee nulle) :
Indique l’activation initiale de la r´ egion englobante en ciblant le premier ´ etat actif par d´ efaut ⇒ 1 seul par r´ egion
Transition : restrictions
non d´ eclench´ ee par un ´ ev´ enement,
´ eventuellement gard´ ee (sous r´ eserve...),
´ eventuellement associ´ ee ` a un effet
Etat final ´ :
Indique que l’activation de la r´ egion englobante est termin´ ee Aucun autre ´ etat n’est alors activable
Transition : pas de restriction
Diagramme d’´etats-transitions Bases
Etat initial et ´ ´ etat final
Notation et exemple d’utilisation
C´edric Buche (ENIB) MIS 28 janvier 2014 10 / 152
Transition — d´ efinition
Indique un changement possible d’´ etat du classifier
Une transition relie un ´ etat source ` a un ´ etat cible
Diagramme d’´etats-transitions Bases
Transition — d´ eclenchement
Le changement d’´ etat est instantan´ e (= atomique)
Le franchissement (= d´ eclenchement) d’une transition a lieu sur occurrence d’un ´ ev´ enement
il peut aussi d´ ependre d’une condition de garde Le franchissement peut avoir un effet sur le classifier
= r´ ealisation d’une action
Etat cible
Franchissement transition (déclenchement)
Etat source Ei
Ej
C´edric Buche (ENIB) MIS 28 janvier 2014 12 / 152
Transition — d´ eclenchement
Le changement d’´ etat est instantan´ e (= atomique)
Le franchissement (= d´ eclenchement) d’une transition a lieu sur occurrence d’un ´ ev´ enement
il peut aussi d´ ependre d’une condition de garde Le franchissement peut avoir un effet sur le classifier
= r´ ealisation d’une action
Etat cible
Franchissement transition (déclenchement)
Etat source Ei
Ej
Diagramme d’´etats-transitions Bases
Transition — d´ eclenchement
Le changement d’´ etat est instantan´ e (= atomique)
Le franchissement (= d´ eclenchement) d’une transition a lieu sur occurrence d’un ´ ev´ enement
il peut aussi d´ ependre d’une condition de garde Le franchissement peut avoir un effet sur le classifier
= r´ ealisation d’une action
Etat cible
Franchissement transition (déclenchement)
Etat source Ei
Ej
C´edric Buche (ENIB) MIS 28 janvier 2014 12 / 152
Transition — d´ eclenchement
Le changement d’´ etat est instantan´ e (= atomique)
Le franchissement (= d´ eclenchement) d’une transition a lieu sur occurrence d’un ´ ev´ enement
il peut aussi d´ ependre d’une condition de garde Le franchissement peut avoir un effet sur le classifier
= r´ ealisation d’une action
Etat cible
Franchissement transition (déclenchement)
Etat source Ei
Ej
Diagramme d’´etats-transitions Bases
Ev´ ´ enement — d´ efinition
Quelque chose qui se produit ` a un instant donn´ e lors de l’ex´ ecution Un ´ ev´ enement peut v´ ehiculer une information (param` etres) entre un objet ´ emetteur et un objet r´ ecepteur
Un ´ ev´ enement est associ´ e ` a une transition (ou plusieurs) Occurrence d’un ´ ev´ enement :
instance d’un type d’´ ev´ enement instantan´ e (dur´ ee nulle)
peut provoquer le d´ eclenchement d’une transition (´ eventuellement plusieurs)
E1 nomEvenement(liste_parametres)
E2
C´edric Buche (ENIB) MIS 28 janvier 2014 13 / 152
Ev´ ´ enement — types pr´ ed´ efinis
call event : nomOpe(parameter: type, ...) r´ eception d’un appel d’invocation d’une op´ eration
le d´ eclenchement de la transition provoque l’ex´ ecution de l’op´ eration l’´ emetteur retrouve le contrˆ ole lorsque l’op´ eration est ex´ ecut´ ee
change event : when(<expression>)
´ ev´ enement occurrent quand <expression> devient vraie pas de param` etre
signal event : nomSignal(parameter: type, ...) communication asynchrone entre objets
(voir la suite)
time event : after(<time>)
<time> : expression temporelle sp´ ecifiant un instant ou dur´ ee
Diagramme d’´etats-transitions Bases
Ev´ ´ enement — types pr´ ed´ efinis
call event : nomOpe(parameter: type, ...) r´ eception d’un appel d’invocation d’une op´ eration
le d´ eclenchement de la transition provoque l’ex´ ecution de l’op´ eration l’´ emetteur retrouve le contrˆ ole lorsque l’op´ eration est ex´ ecut´ ee
change event : when(<expression>)
´ ev´ enement occurrent quand <expression> devient vraie pas de param` etre
signal event : nomSignal(parameter: type, ...) communication asynchrone entre objets
(voir la suite)
time event : after(<time>)
<time> : expression temporelle sp´ ecifiant un instant ou dur´ ee
C´edric Buche (ENIB) MIS 28 janvier 2014 14 / 152
Ev´ ´ enement — types pr´ ed´ efinis
call event : nomOpe(parameter: type, ...) r´ eception d’un appel d’invocation d’une op´ eration
le d´ eclenchement de la transition provoque l’ex´ ecution de l’op´ eration l’´ emetteur retrouve le contrˆ ole lorsque l’op´ eration est ex´ ecut´ ee
change event : when(<expression>)
´ ev´ enement occurrent quand <expression> devient vraie pas de param` etre
signal event : nomSignal(parameter: type, ...) communication asynchrone entre objets
(voir la suite)
time event : after(<time>)
<time> : expression temporelle sp´ ecifiant un instant ou dur´ ee
Diagramme d’´etats-transitions Bases
Ev´ ´ enement — types pr´ ed´ efinis
call event : nomOpe(parameter: type, ...) r´ eception d’un appel d’invocation d’une op´ eration
le d´ eclenchement de la transition provoque l’ex´ ecution de l’op´ eration l’´ emetteur retrouve le contrˆ ole lorsque l’op´ eration est ex´ ecut´ ee
change event : when(<expression>)
´ ev´ enement occurrent quand <expression> devient vraie pas de param` etre
signal event : nomSignal(parameter: type, ...) communication asynchrone entre objets
(voir la suite)
time event : after(<time>)
<time> : expression temporelle sp´ ecifiant un instant ou dur´ ee
C´edric Buche (ENIB) MIS 28 janvier 2014 14 / 152
Ev´ ´ enement de type Signal
St´ er´ eotype de classifier
Un signal peut avoir des attributs
et ´ eventuellement des op´ erations (p. ex. pour sa cr´ eation) Un signal peut ˆ etre d´ efini comme une sp´ ecialisation d’un autre ; la r´ eception d’un signal event provoque le d´ eclenchement d’une transition ´ etiquet´ ee par une de ses g´ en´ eralisations
Sert ` a la communication asynchrone explicite entre objets Produit par une action send
Peut ˆ etre destin´ e ` a un ou plusieurs objets (explicites)
Diagramme d’´etats-transitions Bases
Transition d’ach` evement
Une transition d´ epourvue d’´ ev´ enement d´ eclencheur explicite Elle se d´ eclenche ` a la fin de l’ex´ ecution de l’activit´ e de l’´ etat source (y compris les ´ etats imbriqu´ es)
Elle peut avoir une condition de garde
Celle-ci est ´ evalu´ ee quand l’activit´ e de l’´ etat source s’ach` eve ; elle ne l’est plus ensuite
C´edric Buche (ENIB) MIS 28 janvier 2014 16 / 152
Transition d’ach` evement
Une transition d´ epourvue d’´ ev´ enement d´ eclencheur explicite Elle se d´ eclenche ` a la fin de l’ex´ ecution de l’activit´ e de l’´ etat source (y compris les ´ etats imbriqu´ es)
Elle peut avoir une condition de garde
Celle-ci est ´ evalu´ ee quand l’activit´ e de l’´ etat source s’ach` eve ; elle
ne l’est plus ensuite
Diagramme d’´etats-transitions Bases
Condition de garde d’une transition
expression bool´ eenne ´ evalu´ ee dans le contexte de l’objet (classifieur) d´ etenteur de la machine ` a ´ etat
expression logique sur les attributs de l’objet, ainsi que sur les param` etres de l’´ ev´ enement d´ eclencheur
´
evalu´ ee que si la transition est ´ eligible ` a son d´ eclenchement en pratique, peut correspondre ` a une op´ eration ayant un param` etre de retour de type boolean ; l’op´ eration doit ˆ etre une requˆ ete ({query})
E1 [expression garde] E2
C´edric Buche (ENIB) MIS 28 janvier 2014 17 / 152
Condition de garde d’une transition
expression bool´ eenne ´ evalu´ ee dans le contexte de l’objet (classifieur) d´ etenteur de la machine ` a ´ etat
expression logique sur les attributs de l’objet, ainsi que sur les param` etres de l’´ ev´ enement d´ eclencheur
´
evalu´ ee que si la transition est ´ eligible ` a son d´ eclenchement en pratique, peut correspondre ` a une op´ eration ayant un param` etre de retour de type boolean ; l’op´ eration doit ˆ etre une requˆ ete ({query})
E1 [expression garde] E2
Diagramme d’´etats-transitions Bases
Effet (action ou activit´ e) associ´ e ` a une transition
Machine ` a ´ etats comportementale
Comportement ex´ ecut´ e lors du franchissement d’une transition peut modifier l’objet d´ etenteur de la machine ` a ´ etat
peut utiliser les param` etres de l’´ ev´ enement d´ eclencheur (´ ev´ enement en cours)
s´ emantique run-to-completion = ⇒ aucun nouvel ´ ev´ enement n’est trait´ e pendant son ex´ ecution
plusieurs actions peuvent ˆ etre associ´ ees ` a la mˆ eme transition en pratique : se limiter ` a des actions
courtes
(voir transitions internes pour les actions
´ etendues
)
E1 / expression activité E2
C´edric Buche (ENIB) MIS 28 janvier 2014 18 / 152
Effet (action ou activit´ e) associ´ e ` a une transition
Machine ` a ´ etats comportementale
Comportement ex´ ecut´ e lors du franchissement d’une transition peut modifier l’objet d´ etenteur de la machine ` a ´ etat
peut utiliser les param` etres de l’´ ev´ enement d´ eclencheur (´ ev´ enement en cours)
s´ emantique run-to-completion = ⇒ aucun nouvel ´ ev´ enement n’est trait´ e pendant son ex´ ecution
plusieurs actions peuvent ˆ etre associ´ ees ` a la mˆ eme transition en pratique : se limiter ` a des actions
courtes
(voir transitions internes pour les actions
´ etendues
)
E1 / expression activité E2
Diagramme d’´etats-transitions Bases
Effet (action ou activit´ e) associ´ e ` a une transition
Machine ` a ´ etats comportementale
Comportement ex´ ecut´ e lors du franchissement d’une transition peut modifier l’objet d´ etenteur de la machine ` a ´ etat
peut utiliser les param` etres de l’´ ev´ enement d´ eclencheur (´ ev´ enement en cours)
s´ emantique run-to-completion = ⇒ aucun nouvel ´ ev´ enement n’est trait´ e pendant son ex´ ecution
plusieurs actions peuvent ˆ etre associ´ ees ` a la mˆ eme transition en pratique : se limiter ` a des actions
courtes
(voir transitions internes pour les actions
´ etendues
)
E1 / expression activité E2
C´edric Buche (ENIB) MIS 28 janvier 2014 18 / 152
Transition simple : synth` ese
Machine ` a ´ etats comportementale
[x>0 & y>0]
E0 evenement(params)[cond]/activite
E1
E3 after(2s)/selectionner(defaut)
E2
selection(item)/traiter(item)
E4 E5
when(x>0)[y>0]
E6 E7
Diagramme d’´etats-transitions Bases
Transitions — ´ Etat initial et ´ etat final
Exemples d’utilisation
E1 E3
E2
E4
[else] E5
evtX/a1
evtY/a2
E6
E7 /init
evtZ
stm1
stm2 [cond1]
stm3
C´edric Buche (ENIB) MIS 28 janvier 2014 20 / 152
S´ emantique des machines ` a ´ etat
Cas simples : bases du mod` ele
Sp´ ecification des s´ equences d’activation des ´ etats Comment traiter les occurrences d’´ ev´ enements ? Quand ? Dans quel ordre ?
Quelle(s) transition(s) d´ eclencher ? 0 ou 1 dans le cas simple ;
´
eventuellement plusieurs dans le cas g´ en´ eral Quels sont les ´ etats actifs ?
1 seul dans le cas simple
(plusieurs dans le cas des ´ etats composites ou hi´ erarchiques)
Diagramme d’´etats-transitions Bases
Occurrences d’´ ev´ enements
S´ emantique des machines ` a ´ etats – cas simples
Mod` ele asynchrone : deux ´ ev´ enements ne peuvent se produire simultan´ ement et ils sont ind´ ependants
Mod` ele discret : on ne traite qu’un ´ ev´ enement ` a la fois
Les ´ ev´ enements produits sont plac´ es dans un pool d’´ ev´ enements le pool peut ˆ etre vide ou contenir plusieurs ´ ev´ enements
conceptuellement, l’´ ev´ enement trait´ e est choisi arbitrairement une s´ emantique op´ erationnelle doit sp´ ecifier cet ordre al´ eatoire ou file (= Paps )
run–to–completion : on r´ epercute toutes les cons´ equences de l’occurrence d’un ´ ev´ enement avant d’en traiter un autre
C´edric Buche (ENIB) MIS 28 janvier 2014 22 / 152
Occurrences d’´ ev´ enements
S´ emantique des machines ` a ´ etats – cas simples
Mod` ele asynchrone : deux ´ ev´ enements ne peuvent se produire simultan´ ement et ils sont ind´ ependants
Mod` ele discret : on ne traite qu’un ´ ev´ enement ` a la fois
Les ´ ev´ enements produits sont plac´ es dans un pool d’´ ev´ enements le pool peut ˆ etre vide ou contenir plusieurs ´ ev´ enements
conceptuellement, l’´ ev´ enement trait´ e est choisi arbitrairement une s´ emantique op´ erationnelle doit sp´ ecifier cet ordre al´ eatoire ou file (= Paps )
run–to–completion : on r´ epercute toutes les cons´ equences de
l’occurrence d’un ´ ev´ enement avant d’en traiter un autre
Diagramme d’´etats-transitions Bases
Occurrences d’´ ev´ enements
S´ emantique des machines ` a ´ etats – cas simples
Mod` ele asynchrone : deux ´ ev´ enements ne peuvent se produire simultan´ ement et ils sont ind´ ependants
Mod` ele discret : on ne traite qu’un ´ ev´ enement ` a la fois
Les ´ ev´ enements produits sont plac´ es dans un pool d’´ ev´ enements le pool peut ˆ etre vide ou contenir plusieurs ´ ev´ enements
conceptuellement, l’´ ev´ enement trait´ e est choisi arbitrairement une s´ emantique op´ erationnelle doit sp´ ecifier cet ordre al´ eatoire ou file (= Paps )
run–to–completion : on r´ epercute toutes les cons´ equences de l’occurrence d’un ´ ev´ enement avant d’en traiter un autre
C´edric Buche (ENIB) MIS 28 janvier 2014 22 / 152
Occurrences d’´ ev´ enements
S´ emantique des machines ` a ´ etats – cas simples
Mod` ele asynchrone : deux ´ ev´ enements ne peuvent se produire simultan´ ement et ils sont ind´ ependants
Mod` ele discret : on ne traite qu’un ´ ev´ enement ` a la fois
Les ´ ev´ enements produits sont plac´ es dans un pool d’´ ev´ enements le pool peut ˆ etre vide ou contenir plusieurs ´ ev´ enements
conceptuellement, l’´ ev´ enement trait´ e est choisi arbitrairement une s´ emantique op´ erationnelle doit sp´ ecifier cet ordre al´ eatoire ou file (= Paps )
run–to–completion : on r´ epercute toutes les cons´ equences de
l’occurrence d’un ´ ev´ enement avant d’en traiter un autre
Diagramme d’´etats-transitions Bases
Occurrences d’´ ev´ enements
S´ emantique des machines ` a ´ etats – cas simples
Mod` ele asynchrone : deux ´ ev´ enements ne peuvent se produire simultan´ ement et ils sont ind´ ependants
Mod` ele discret : on ne traite qu’un ´ ev´ enement ` a la fois
Les ´ ev´ enements produits sont plac´ es dans un pool d’´ ev´ enements le pool peut ˆ etre vide ou contenir plusieurs ´ ev´ enements
conceptuellement, l’´ ev´ enement trait´ e est choisi arbitrairement une s´ emantique op´ erationnelle doit sp´ ecifier cet ordre al´ eatoire ou file (= Paps )
run–to–completion : on r´ epercute toutes les cons´ equences de l’occurrence d’un ´ ev´ enement avant d’en traiter un autre
C´edric Buche (ENIB) MIS 28 janvier 2014 22 / 152
Transitions d´ eclench´ ees / traitement d’un ´ ev´ enement
S´ emantique des machines ` a ´ etats – cas simples
1
Toutes les transitions ´ etiquet´ ees par cet ´ ev´ enement (ou par un
´
ev´ enement plus g´ en´ eral) et dont l’´ etat source est actif sont
´
eligibles (= potentiellement d´ eclenchables)
2
Qu’il y ait ou non une transition ´ eligible, l’´ ev´ enement est consomm´ e (retir´ e du pool)
3
Les gardes associ´ ees aux transitions ´ eligibles sont ´ evalu´ ees (l’ordre est indiff´ erent) ;
seules les transitions ´ eligibles dont les conditions de garde sont satisfaites sont d´ eclench´ ees
4
Les effets associ´ es aux transitions ´ eligibles sont ex´ ecut´ es
5
L’´ etat cible est activ´ e
Diagramme d’´etats-transitions Bases
Transitions d´ eclench´ ees / traitement d’un ´ ev´ enement
S´ emantique des machines ` a ´ etats – cas simples
1
Toutes les transitions ´ etiquet´ ees par cet ´ ev´ enement (ou par un
´
ev´ enement plus g´ en´ eral) et dont l’´ etat source est actif sont
´
eligibles (= potentiellement d´ eclenchables)
2
Qu’il y ait ou non une transition ´ eligible, l’´ ev´ enement est consomm´ e (retir´ e du pool)
3
Les gardes associ´ ees aux transitions ´ eligibles sont ´ evalu´ ees (l’ordre est indiff´ erent) ;
seules les transitions ´ eligibles dont les conditions de garde sont satisfaites sont d´ eclench´ ees
4
Les effets associ´ es aux transitions ´ eligibles sont ex´ ecut´ es
5
L’´ etat cible est activ´ e
C´edric Buche (ENIB) MIS 28 janvier 2014 23 / 152
Transitions d´ eclench´ ees / traitement d’un ´ ev´ enement
S´ emantique des machines ` a ´ etats – cas simples
1
Toutes les transitions ´ etiquet´ ees par cet ´ ev´ enement (ou par un
´
ev´ enement plus g´ en´ eral) et dont l’´ etat source est actif sont
´
eligibles (= potentiellement d´ eclenchables)
2
Qu’il y ait ou non une transition ´ eligible, l’´ ev´ enement est consomm´ e (retir´ e du pool)
3
Les gardes associ´ ees aux transitions ´ eligibles sont ´ evalu´ ees (l’ordre est indiff´ erent) ;
seules les transitions ´ eligibles dont les conditions de garde sont satisfaites sont d´ eclench´ ees
4
Les effets associ´ es aux transitions ´ eligibles sont ex´ ecut´ es
5
L’´ etat cible est activ´ e
Diagramme d’´etats-transitions Bases
Transitions d´ eclench´ ees / traitement d’un ´ ev´ enement
S´ emantique des machines ` a ´ etats – cas simples
1
Toutes les transitions ´ etiquet´ ees par cet ´ ev´ enement (ou par un
´
ev´ enement plus g´ en´ eral) et dont l’´ etat source est actif sont
´
eligibles (= potentiellement d´ eclenchables)
2
Qu’il y ait ou non une transition ´ eligible, l’´ ev´ enement est consomm´ e (retir´ e du pool)
3
Les gardes associ´ ees aux transitions ´ eligibles sont ´ evalu´ ees (l’ordre est indiff´ erent) ;
seules les transitions ´ eligibles dont les conditions de garde sont satisfaites sont d´ eclench´ ees
4
Les effets associ´ es aux transitions ´ eligibles sont ex´ ecut´ es
5
L’´ etat cible est activ´ e
C´edric Buche (ENIB) MIS 28 janvier 2014 23 / 152
Transitions d´ eclench´ ees / traitement d’un ´ ev´ enement
S´ emantique des machines ` a ´ etats – cas simples
1
Toutes les transitions ´ etiquet´ ees par cet ´ ev´ enement (ou par un
´
ev´ enement plus g´ en´ eral) et dont l’´ etat source est actif sont
´
eligibles (= potentiellement d´ eclenchables)
2
Qu’il y ait ou non une transition ´ eligible, l’´ ev´ enement est consomm´ e (retir´ e du pool)
3
Les gardes associ´ ees aux transitions ´ eligibles sont ´ evalu´ ees (l’ordre est indiff´ erent) ;
seules les transitions ´ eligibles dont les conditions de garde sont satisfaites sont d´ eclench´ ees
4
Les effets associ´ es aux transitions ´ eligibles sont ex´ ecut´ es
5
L’´ etat cible est activ´ e
Diagramme d’´etats-transitions Activit´es et transitions internes
Activit´ es
internes
Objectif : meilleure encapsulation de la mod´ elisation des
comportements en distinguant ce qui d´ epend de l’environnement (´ ev´ enements – transitions) et de l’´ etat intrins` eque d’un classifier do / activity : activit´ e effectu´ ee quand l’´ etat est actif
elle se termine d’elle-mˆ eme ou quand l’´ etat n’est plus actif entry / activity : activit´ e ex´ ecut´ ee lorsque l’´ etat devient actif elle est ex´ ecut´ ee apr` es les activit´ es des transitions d’entr´ ee et avant les activit´ es do et exit
exit / activity : activit´ e ex´ ecut´ ee lorsque l’´ etat devient inactif include / activity : permet d’invoquer un sous-diagramme d’´ etats-transitions
C´edric Buche (ENIB) MIS 28 janvier 2014 24 / 152
Activit´ es
internes
Objectif : meilleure encapsulation de la mod´ elisation des
comportements en distinguant ce qui d´ epend de l’environnement (´ ev´ enements – transitions) et de l’´ etat intrins` eque d’un classifier do / activity : activit´ e effectu´ ee quand l’´ etat est actif
elle se termine d’elle-mˆ eme ou quand l’´ etat n’est plus actif entry / activity : activit´ e ex´ ecut´ ee lorsque l’´ etat devient actif elle est ex´ ecut´ ee apr` es les activit´ es des transitions d’entr´ ee et avant les activit´ es do et exit
exit / activity : activit´ e ex´ ecut´ ee lorsque l’´ etat devient inactif
include / activity : permet d’invoquer un sous-diagramme
d’´ etats-transitions
Diagramme d’´etats-transitions Activit´es et transitions internes
Activit´ es
internes
Objectif : meilleure encapsulation de la mod´ elisation des
comportements en distinguant ce qui d´ epend de l’environnement (´ ev´ enements – transitions) et de l’´ etat intrins` eque d’un classifier do / activity : activit´ e effectu´ ee quand l’´ etat est actif
elle se termine d’elle-mˆ eme ou quand l’´ etat n’est plus actif entry / activity : activit´ e ex´ ecut´ ee lorsque l’´ etat devient actif elle est ex´ ecut´ ee apr` es les activit´ es des transitions d’entr´ ee et avant les activit´ es do et exit
exit / activity : activit´ e ex´ ecut´ ee lorsque l’´ etat devient inactif include / activity : permet d’invoquer un sous-diagramme d’´ etats-transitions
C´edric Buche (ENIB) MIS 28 janvier 2014 24 / 152
Activit´ es
internes
Objectif : meilleure encapsulation de la mod´ elisation des
comportements en distinguant ce qui d´ epend de l’environnement (´ ev´ enements – transitions) et de l’´ etat intrins` eque d’un classifier do / activity : activit´ e effectu´ ee quand l’´ etat est actif
elle se termine d’elle-mˆ eme ou quand l’´ etat n’est plus actif entry / activity : activit´ e ex´ ecut´ ee lorsque l’´ etat devient actif elle est ex´ ecut´ ee apr` es les activit´ es des transitions d’entr´ ee et avant les activit´ es do et exit
exit / activity : activit´ e ex´ ecut´ ee lorsque l’´ etat devient inactif
include / activity : permet d’invoquer un sous-diagramme
d’´ etats-transitions
Diagramme d’´etats-transitions Activit´es et transitions internes
Activit´ es
internes
Objectif : meilleure encapsulation de la mod´ elisation des
comportements en distinguant ce qui d´ epend de l’environnement (´ ev´ enements – transitions) et de l’´ etat intrins` eque d’un classifier do / activity : activit´ e effectu´ ee quand l’´ etat est actif
elle se termine d’elle-mˆ eme ou quand l’´ etat n’est plus actif entry / activity : activit´ e ex´ ecut´ ee lorsque l’´ etat devient actif elle est ex´ ecut´ ee apr` es les activit´ es des transitions d’entr´ ee et avant les activit´ es do et exit
exit / activity : activit´ e ex´ ecut´ ee lorsque l’´ etat devient inactif include / activity : permet d’invoquer un sous-diagramme d’´ etats-transitions
C´edric Buche (ENIB) MIS 28 janvier 2014 24 / 152
Transitions
internes
transition attach´ ee ` a un ´ etat
(doit ˆ etre actif pour qu’elle soit d´ eclench´ ee) ne provoque pas de changement d’´ etat
donc pas de r´ ealisation des activit´ es internes entry ni exit
Notation : expression d’une transition mais pas d’arc :
nomEVT(liste param)[garde]/activites
Diagramme d’´etats-transitions Activit´es et transitions internes
Activit´ es / Transitions
internes
– Exemple
C´edric Buche (ENIB) MIS 28 janvier 2014 26 / 152
Point de choix et point de jonction
Objectif : notation mettant en ´ evidence les alternatives dans les mod` eles ´ Etats–Transitions
Pseudo-´ etat correspondant ` a une alternative li´ ee ` a l’´ evaluation des conditions de garde
Dans un mod` ele bien form´ e, exactement une condition de garde des transitions de sortie d’un point de choix doit ˆ etre valide Les transitions ayant comme ´ etat cible ou ´ etat source un point de choix (de jonction) sont appel´ ees segments de transition
(cf. s´ emantique machine ` a ´ etat)
Diff´ erence : moment auquel les gardes des segments de transition
en aval du point de choix sont ´ evalu´ ees
Diagramme d’´etats-transitions Alternatives
Point de choix (= de d´ ecision)
Un pseudo-´ etat
point de choix
poss` ede exactement un segment de transition entrant et au moins deux segments sortants
les gardes situ´ ees sur les segments apr` es le point de d´ ecision sont
´ evalu´ ees au moment o` u ce dernier est atteint
Il est possible d’utiliser une garde particuli` ere, not´ ee [else], sur un des segments en sortie d’un point de choix.
Ce segment n’est franchissable que si les gardes des autres segments sont toutes fausses.
L’utilisation d’une clause [else] est recommand´ ee apr` es un point de d´ ecision car elle garantit un mod` ele bien form´ e.
C´edric Buche (ENIB) MIS 28 janvier 2014 28 / 152
Point de choix (= de d´ ecision)
Un pseudo-´ etat
point de choix
poss` ede exactement un segment de transition entrant et au moins deux segments sortants
les gardes situ´ ees sur les segments apr` es le point de d´ ecision sont
´ evalu´ ees au moment o` u ce dernier est atteint
Il est possible d’utiliser une garde particuli` ere, not´ ee [else], sur un des segments en sortie d’un point de choix.
Ce segment n’est franchissable que si les gardes des autres segments sont toutes fausses.
L’utilisation d’une clause [else] est recommand´ ee apr` es un point
de d´ ecision car elle garantit un mod` ele bien form´ e.
Diagramme d’´etats-transitions Alternatives
Point de choix — notation (exemple)
[cond4]
E1
[else]/a4
evtX[cond1]/a1
E2 [cond2]/a2
E4 [!cond2 & cond3]/a3
C´edric Buche (ENIB) MIS 28 janvier 2014 29 / 152
Point de choix — notation (exemple)
Diagramme d’´etats-transitions Alternatives
Point de jonction – d´ efinition
Un pseudo-´ etat
Un point de jonction
peut avoir plusieurs segments de transition entrants et plusieurs segments de transition sortants
seuls les segments entrants peuvent ˆ etre synchronis´ es sur des
´ ev´ enements
il ne peut pas avoir d’activit´ e interne, ni des transitions sortantes dot´ ees de d´ eclencheurs d’´ ev´ enements
´ evaluation des gardes : au moment du d´ eclenchement du segment entrant
C´edric Buche (ENIB) MIS 28 janvier 2014 31 / 152
Point de jonction — notation (exemples)
Diagramme d’´etats-transitions Alternatives
Point de jonction — notation (exemple)
C´edric Buche (ENIB) MIS 28 janvier 2014 33 / 152
Etat composite – Pr´ ´ esentation
Un ´ etat simple ne poss` ede pas de sous-structure mais uniquement,
le cas ´ ech´ eant, un jeu d’activit´ es et/ou de transitions internes
Un ´ etat composite est un ´ etat d´ ecompos´ e en r´ egions contenant
chacune un ou plusieurs sous-´ etats
Diagramme d’´etats-transitions Etat composite´
Etat composite – Exemple ´
Composer num´ ero est un ´ etat composite
C´edric Buche (ENIB) MIS 28 janvier 2014 35 / 152
Etat composite – Notation abr´ ´ eg´ ee
L’utilisation d’´ etats composites permet de d´ evelopper une sp´ ecification par raffinement.
Il n’est pas n´ ecessaire de repr´ esenter les sous-´ etats ` a chaque utilisation de l’´ etat englobant
Une notation abr´ eg´ ee permet d’indiquer qu’un ´ etat est composite
et que sa d´ efinition est donn´ ee sur un autre diagramme.
Diagramme d’´etats-transitions Etat composite´
Etat composite – transition ´ [1/2]
Une transition peut avoir pour cible la fronti` ere d’un ´ etat composite
≡ transition ayant pour cible l’´ etat initial de l’´ etat composite cible Une transition peut avoir pour source la fronti` ere d’un ´ etat
composite
≡ la transition s’applique ` a tout sous-´ etat de l’´ etat composite source.
Relation est transitive :
la transition est franchissable depuis tout ´ etat imbriqu´ e, quelque soit sa profondeur.
C´edric Buche (ENIB) MIS 28 janvier 2014 37 / 152
Etat composite – transition ´ [1/2]
Une transition peut avoir pour cible la fronti` ere d’un ´ etat composite
≡ transition ayant pour cible l’´ etat initial de l’´ etat composite cible Une transition peut avoir pour source la fronti` ere d’un ´ etat
composite
≡ la transition s’applique ` a tout sous-´ etat de l’´ etat composite source.
Relation est transitive :
la transition est franchissable depuis tout ´ etat imbriqu´ e, quelque
soit sa profondeur.
Diagramme d’´etats-transitions Etat composite´
Etat composite – transition ´ [1/2]
Une transition peut avoir pour cible la fronti` ere d’un ´ etat composite
≡ transition ayant pour cible l’´ etat initial de l’´ etat composite cible Une transition peut avoir pour source la fronti` ere d’un ´ etat
composite
≡ la transition s’applique ` a tout sous-´ etat de l’´ etat composite source.
Relation est transitive :
la transition est franchissable depuis tout ´ etat imbriqu´ e, quelque soit sa profondeur.
C´edric Buche (ENIB) MIS 28 janvier 2014 37 / 152
Etat composite – transition ´ [1/2]
Une transition peut avoir pour cible la fronti` ere d’un ´ etat composite
≡ transition ayant pour cible l’´ etat initial de l’´ etat composite cible Une transition peut avoir pour source la fronti` ere d’un ´ etat
composite
≡ la transition s’applique ` a tout sous-´ etat de l’´ etat composite source.
Relation est transitive :
la transition est franchissable depuis tout ´ etat imbriqu´ e, quelque
soit sa profondeur.
Diagramme d’´etats-transitions Etat composite´
Etat composite – transition ´ [1/2]
Une transition peut avoir pour cible la fronti` ere d’un ´ etat composite
≡ transition ayant pour cible l’´ etat initial de l’´ etat composite cible Une transition peut avoir pour source la fronti` ere d’un ´ etat
composite
≡ la transition s’applique ` a tout sous-´ etat de l’´ etat composite source.
Relation est transitive :
la transition est franchissable depuis tout ´ etat imbriqu´ e, quelque soit sa profondeur.
C´edric Buche (ENIB) MIS 28 janvier 2014 37 / 152
Etat composite – transition ´ [2/2]
Si une transition ayant pour source la fronti` ere d’un ´ etat composite ne porte pas de d´ eclencheur explicite
(i.e. s’il s’agit d’une transition d’ach` evement),
elle est franchissable quand l’´ etat final de l’´ etat composite est atteint.
Une transition peut avoir comme source et cible des ´ etats de diff´ erents niveaux d’imbrication :
elle traverse donc les fronti` eres des ´ etats composites.
Diagramme d’´etats-transitions Etat composite´
Etat composite – transition : exemple ´
Depuis l’´ etat ´ Etat 1, la r´ eception de l’´ ev´ enement event1 produit la s´ equence d’activit´ es : QuitterE11, QuitterE1, action1, EntrerE2, EntrerE21, initialiser(), EntrerE22, et place le syst` eme dans l’´ etat
´ Etat22.
C´edric Buche (ENIB) MIS 28 janvier 2014 39 / 152
D´ efinitions
Parall´ elisme = concurrence :
´
evolutions ind´ ependantes de diff´ erents ´ el´ ements
Dynamique des ´ etats est ind´ ependante (= orthogonale) Mod´ elisation : ´ etat composite avec r´ egions orthogonales
R´ egion
Ensemble d’´ etats et de transitions
1 transition peut avoir un ´ etat source ou cible
traversant
l’´ etat composite
par d´ ef., aucune transition entre ´ etats de r´ egions orthogonales
1 et 1 seul ´ etat actif par r´ egion (si ´ etat composite englobant actif)
Diagramme d’´etats-transitions Parall´elisme
D´ efinitions
Parall´ elisme = concurrence :
´
evolutions ind´ ependantes de diff´ erents ´ el´ ements
Dynamique des ´ etats est ind´ ependante (= orthogonale) Mod´ elisation : ´ etat composite avec r´ egions orthogonales
R´ egion
Ensemble d’´ etats et de transitions
1 transition peut avoir un ´ etat source ou cible
traversant
l’´ etat composite
par d´ ef., aucune transition entre ´ etats de r´ egions orthogonales 1 et 1 seul ´ etat actif par r´ egion (si ´ etat composite englobant actif)
C´edric Buche (ENIB) MIS 28 janvier 2014 40 / 152
R´ egions orthogonales : illustration
E1
E2 EA1 EA2
EC1 EC2
E3
EB1 EB2 EB3
Diagramme d’´etats-transitions Parall´elisme
R´ egions orthogonales : exemple
C´edric Buche (ENIB) MIS 28 janvier 2014 42 / 152
Transitions complexes
d´ ebranchement et jointure
Transition ayant plusieurs ´ etats source et/ou cible
Une transition entrante active 1 et 1 seul ´ etat de chaque r´ egion soit l’´ etat initial (par d´ efaut)
soit un ´ etat sp´ ecifique cibl´ e par la transition et donc l’´´ etat composite (cf. entry)
Une transition sortante d´ esactive l’´ etat actif de chaque r´ egion ou l’´ etat terminal
et donc l’´´ etat composite (cf. exit)
Un seul d´ eclencheur par transition complexe
(ou aucun = transition d’ach` evement)
Diagramme d’´etats-transitions Parall´elisme
D´ ebranchement (fork ) – jointure (join)
Illustration
evtY E2
EA1 EA2
EC1 EC2
EB1 EB2 EB3
E1
E3 evtX
C´edric Buche (ENIB) MIS 28 janvier 2014 44 / 152
Transition complexe : exemple
Diagramme d’´etats-transitions Hi´erarchie
Hi´ erarchie : mod´ elisation
D´ ecomposition d’un ´ etat en une r´ egion, elle-mˆ eme ´ eventuellement d´ ecompos´ ee en une r´ egion
les
sous-r´ egions
sont donc non orthogonales : 1 seul ´ etat actif dans la hi´ erarchie
Objectif : structuration et raffinement de la mod´ elisation
décomposition d’un état Ei
Ej
Ek Ek1
Ek Ek2
C´edric Buche (ENIB) MIS 28 janvier 2014 46 / 152
Etat hi´ ´ erarchique : illustration
E2C E2
E2B
E3 E2A
E1
E2Bi E2Bj
E2Bk
Diagramme d’´etats-transitions Hi´erarchie
Hi´ erarchie : historique
Un pseudo–´ etat historique peut ˆ etre associ´ e ` a une r´ egion : quand elle est activ´ ee, c’est le dernier ´ etat actif qui est ` a nouveau activ´ e, et non l’´ etat initial.
Historique plat H ou profond H* :
r´ eactivation de l’´ etat au niveau courant (plat) et des ´ eventuels sous-´ etats (profond)
C´edric Buche (ENIB) MIS 28 janvier 2014 48 / 152
Hi´ erarchie – historique : illustrations
C1b
H
E1
A0 A3
H
A1 A2
B1
B2
A4 B0 B3 B4
E2 E3
H*
C1
C0
C2 C2a C2b C1
C1a
Diagramme d’´etats-transitions Hi´erarchie
Hi´ erarchie – historique : exemple
C´edric Buche (ENIB) MIS 28 janvier 2014 50 / 152
Hi´ erarchie : points de connexion
Pseudo-´ etats visibles ` a l’ext´ erieur d’un ´ etat composite et r´ ef´ eren¸cant un ´ etat
interne
Deux types : point d’entr´ ee et point de sortie Repr´ esentations graphiques :
point d’entr´ ee : cercle vide ◦
point de sortie : cercle avec une croix N
Diagramme d’´etats-transitions Hi´erarchie
Hi´ erarchie – points de connexion : illustration
Ek
Ek Ek1
Ek2 entrée_1
sortie_A sortie_B
entrée_1
sortie_A sortie_B
C´edric Buche (ENIB) MIS 28 janvier 2014 52 / 152
Hi´ erarchie – points de connexion : exemple
Diagramme d’´etats-transitions Hi´erarchie
Machine ` a ´ etat : concepts avanc´ es
D´ eclenchement : occurence d’un ´ ev´ enement
´
etape Run-To-Completion (RTC)
Evaluation des conditions de garde ´ et ex´ ecution des effets sur plusieurs segments de transition
Diff´ erence entre point de jonction et point de choix (´ etape interm´ ediaire : impact des effets sur les conditions de garde des segments sortants)
Ordre d’ex´ ecution des effets : en remontant depuis l’´ etat source jusqu’au premier ancˆ etre commun, puis en redescendant vers l’´ etat cible
C´edric Buche (ENIB) MIS 28 janvier 2014 54 / 152
Machine ` a ´ etat : concepts avanc´ es
D´ eclenchement : occurence d’un ´ ev´ enement
´
etape Run-To-Completion (RTC)
Evaluation des conditions de garde ´ et ex´ ecution des effets sur plusieurs segments de transition
Diff´ erence entre point de jonction et point de choix (´ etape interm´ ediaire : impact des effets sur les conditions de garde des segments sortants)
Ordre d’ex´ ecution des effets :
en remontant depuis l’´ etat source
jusqu’au premier ancˆ etre commun,
puis en redescendant vers l’´ etat cible
Diagramme d’´etats-transitions Hi´erarchie
Machine ` a ´ etat : s´ equencement
EA
exit/b entry/a
EB
entry/f exit/g
E2
E2a entry/h E2b
E1 E1a exit/c
/e
exit/i entry/j
X/d
Y/k
Ei
Ei1 exit/p
Ej1
Ej
entry/q
Z/m /n /r
U/s
C´edric Buche (ENIB) MIS 28 janvier 2014 55 / 152
Un mod` ele d’´ etats-transitions pour quelles classes ?
Toutes les classes ne requi` erent pas la mod´ elisation de leur comportement
Identifier celles qui ont un comportement complexe :
Les objets de la classe r´ eagissent diff´ erement ` a l’occurrence du mˆ eme ´ evenement
Chaque type de r´ eaction caract´ erise un ´ etat particulier La classe doit r´ ealiser certaines op´ erations dans un ordre pr´ ecis
Des ´ etats s´ equentiels permettent de pr´ eciser la chronologie forc´ ee
des op´ erations
Diagramme d’´etats-transitions Mise en œuvre
Un mod` ele d’´ etats-transitions pour quelles classes ?
Toutes les classes ne requi` erent pas la mod´ elisation de leur comportement
Identifier celles qui ont un comportement complexe :
Les objets de la classe r´ eagissent diff´ erement ` a l’occurrence du mˆ eme ´ evenement
Chaque type de r´ eaction caract´ erise un ´ etat particulier La classe doit r´ ealiser certaines op´ erations dans un ordre pr´ ecis
Des ´ etats s´ equentiels permettent de pr´ eciser la chronologie forc´ ee des op´ erations
C´edric Buche (ENIB) MIS 28 janvier 2014 56 / 152
Comment construire un diagramme d’´ etats-transitions ?
1
Repr´ esentez la s´ equence d’´ etats qui d´ ecrit le comportement nominal d’un objet, avec les transitions associ´ ees
2
Ajoutez progressivement les transitions qui correspondent aux comportements alternatifs ou d’erreur
3
Compl´ etez les activit´ es sur les transitions et dans les ´ etats
4
Structurez le diagramme en sous-´ etats s’il devient trop complexe
Diagramme d’´etats-transitions Mise en œuvre
Comment identifier les ´ etats d’une classe ?
Trois d´ emarches compl´ ementaires : Expertise m´ etier :
certains ´ etats fondamentaux font partie du vocabulaire des experts Etude des ´ attributs et des associations de la classe :
identifiez des invariants d’´ etat
cherchez les valeurs seuils d’attributs qui modifient la dynamique cherchez des comportements induits par l’existence ou l’absence de certains liens
Classe par classe
cherchez le diagramme d’interaction le plus repr´ esentatif du comportement des instances
associez un ´ etat ` a chaque intervalle entre ´ ev´ enements ´ emis ou re¸ cus par instance et placez les transitions
C´edric Buche (ENIB) MIS 28 janvier 2014 58 / 152
Quand utiliser les diagrammes d’´ etats-transitions ?
Compl´ ementarit´ e entre mod` eles
Convient bien pour d´ ecrire le comportement d’un objet ` a travers plusieurs cas d’utilisation
Convient mal pour d´ ecrire un comportement qui implique plusieurs objets qui collaborent
→ Les diag. d’interaction d´ ecrivent bien le comportement de plusieurs objets dans un cas d’utilisation
→ Les diag. d’activit´ es montrent bien l’organisation s´ equentielle
globale des activit´ es de plusieurs objets et cas d’utilisation
Diagramme d’activit´es
1 Diagramme d’´ etats-transitions
2 Diagramme d’activit´ es
3 G´ en´ eration de code
C´edric Buche (ENIB) MIS 28 janvier 2014 60 / 152
Objectifs du mod` ele
Le mod` ele des activit´ es – activity chart
Objectifs – utilisations en mod´ elisation :
Processus m´ etier : aspects conceptuels et organisationnels R´ ealisation des cas d’utilisation
Conception du logiciel : r´ ealisation des actions de base et structures de contrˆ ole
Algorithmique des m´ ethodes
Mod´ elisation du comportement du syst` eme, en mettant l’accent sur les traitements effectu´ es : les activit´ es du syst` eme
Approche flux de contrˆ ole et flux de donn´ ees
Diagramme d’activit´es Activit´es : introduction
Objectifs du mod` ele
Le mod` ele des activit´ es – activity chart
Objectifs – utilisations en mod´ elisation :
Processus m´ etier : aspects conceptuels et organisationnels R´ ealisation des cas d’utilisation
Conception du logiciel : r´ ealisation des actions de base et structures de contrˆ ole
Algorithmique des m´ ethodes
Mod´ elisation du comportement du syst` eme, en mettant l’accent sur les traitements effectu´ es : les activit´ es du syst` eme
Approche flux de contrˆ ole et flux de donn´ ees
C´edric Buche (ENIB) MIS 28 janvier 2014 61 / 152
Objectifs du mod` ele
Le mod` ele des activit´ es – activity chart
Objectifs – utilisations en mod´ elisation :
Processus m´ etier : aspects conceptuels et organisationnels R´ ealisation des cas d’utilisation
Conception du logiciel : r´ ealisation des actions de base et structures de contrˆ ole
Algorithmique des m´ ethodes
Mod´ elisation du comportement du syst` eme, en mettant l’accent sur les traitements effectu´ es : les activit´ es du syst` eme
Approche flux de contrˆ ole et flux de donn´ ees
Diagramme d’activit´es Activit´es : introduction
El´ ´ ements de mod´ elisation
El´ ´ ements de base : activit´ e et action
Flot de contrˆ ole et flot d’objet Nœud de contrˆ ole
Autres ´ el´ ements de contrˆ ole
C´edric Buche (ENIB) MIS 28 janvier 2014 62 / 152
Activit´ e : d´ efinition
El´ ´ ement de comportement d’un classifier
Traitement ex´ ecutable par une entit´ e du syst` eme
L’ex´ ecution d’une activit´ e conduit ` a l’ex´ ecution d’actions en respectant un certain s´ equencement
Dans ce mod` ele, l’ex´ ecution d’une activit´ e n’est pas instantan´ ee et il n’est pas atomique
Des activit´ es peuvent s’ex´ ecuter en parall` ele
Diagramme d’activit´es Activit´es : concepts de base
Activit´ es : notation
C´edric Buche (ENIB) MIS 28 janvier 2014 64 / 152
Action : d´ efinition
Unit´ e fondamentale d’ex´ ecution d’une activit´ e : plus petit ´ el´ ement de mod´ elisation d’un comportement en UML
Ex´ ecut´ ee dans le contexte d’un classifier L’ex´ ecution d’une action correspond ` a une transformation d’´ el´ ements du syst` eme
Syst. informatique : lecture / modification de variables ou de propri´ et´ es du classifier, appel d’une op´ eration, cr´ eation de nouveaux objets
Processus m´ etier : traitement d’une information, valeur ajout´ ee au processus
Une action est caract´ eris´ ee par un effet :
description textuelle des cons´ equences de son ex´ ecution sur les
´
el´ ements du syst` eme
Diagramme d’activit´es Activit´es : concepts de base
Action : d´ efinition
Unit´ e fondamentale d’ex´ ecution d’une activit´ e : plus petit ´ el´ ement de mod´ elisation d’un comportement en UML
Ex´ ecut´ ee dans le contexte d’un classifier L’ex´ ecution d’une action correspond ` a une transformation d’´ el´ ements du syst` eme
Syst. informatique : lecture / modification de variables ou de propri´ et´ es du classifier, appel d’une op´ eration, cr´ eation de nouveaux objets
Processus m´ etier : traitement d’une information, valeur ajout´ ee au processus
Une action est caract´ eris´ ee par un effet :
description textuelle des cons´ equences de son ex´ ecution sur les
´
el´ ements du syst` eme
C´edric Buche (ENIB) MIS 28 janvier 2014 65 / 152
Action : d´ efinition
Unit´ e fondamentale d’ex´ ecution d’une activit´ e : plus petit ´ el´ ement de mod´ elisation d’un comportement en UML
Ex´ ecut´ ee dans le contexte d’un classifier L’ex´ ecution d’une action correspond ` a une transformation d’´ el´ ements du syst` eme
Syst. informatique : lecture / modification de variables ou de propri´ et´ es du classifier, appel d’une op´ eration, cr´ eation de nouveaux objets
Processus m´ etier : traitement d’une information, valeur ajout´ ee au processus
Une action est caract´ eris´ ee par un effet :
description textuelle des cons´ equences de son ex´ ecution sur les
´
el´ ements du syst` eme
Diagramme d’activit´es Activit´es : concepts de base
Action : d´ efinition
Unit´ e fondamentale d’ex´ ecution d’une activit´ e : plus petit ´ el´ ement de mod´ elisation d’un comportement en UML
Ex´ ecut´ ee dans le contexte d’un classifier L’ex´ ecution d’une action correspond ` a une transformation d’´ el´ ements du syst` eme
Syst. informatique : lecture / modification de variables ou de propri´ et´ es du classifier, appel d’une op´ eration, cr´ eation de nouveaux objets
Processus m´ etier : traitement d’une information, valeur ajout´ ee au processus
Une action est caract´ eris´ ee par un effet :
description textuelle des cons´ equences de son ex´ ecution sur les
´
el´ ements du syst` eme
C´edric Buche (ENIB) MIS 28 janvier 2014 65 / 152