• Aucun résultat trouvé

Informatique S6-MIS Mod`ele pour l’Ing´enierie des Syst`emes

N/A
N/A
Protected

Academic year: 2022

Partager "Informatique S6-MIS Mod`ele pour l’Ing´enierie des Syst`emes"

Copied!
221
0
0

Texte intégral

(1)

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

(2)

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

(3)

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

(4)

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

(5)

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

(6)

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

(7)

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

(8)

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

(9)

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

(10)

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

(11)

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

(12)

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

(13)

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)

(14)

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

(15)

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

(16)

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

(17)

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

(18)

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

(19)

Transition — d´ efinition

Indique un changement possible d’´ etat du classifier

Une transition relie un ´ etat source ` a un ´ etat cible

(20)

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

(21)

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

(22)

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

(23)

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

(24)

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

(25)

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

(26)

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

(27)

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

(28)

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

(29)

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)

(30)

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

(31)

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

(32)

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

(33)

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

(34)

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

(35)

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

(36)

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

(37)

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

(38)

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

(39)

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)

(40)

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

(41)

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

(42)

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

(43)

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

(44)

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

(45)

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

(46)

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

(47)

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

(48)

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

(49)

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

(50)

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

(51)

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

(52)

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

(53)

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

(54)

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

(55)

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

(56)

Diagramme d’´etats-transitions Activit´es et transitions internes

Activit´ es / Transitions

internes

– Exemple

C´edric Buche (ENIB) MIS 28 janvier 2014 26 / 152

(57)

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

(58)

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

(59)

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.

(60)

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

(61)

Point de choix — notation (exemple)

(62)

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

(63)

Point de jonction — notation (exemples)

(64)

Diagramme d’´etats-transitions Alternatives

Point de jonction — notation (exemple)

C´edric Buche (ENIB) MIS 28 janvier 2014 33 / 152

(65)

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

(66)

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

(67)

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.

(68)

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

(69)

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.

(70)

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

(71)

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.

(72)

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

(73)

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.

(74)

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

(75)

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)

(76)

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

(77)

R´ egions orthogonales : illustration

E1

E2 EA1 EA2

EC1 EC2

E3

EB1 EB2 EB3

(78)

Diagramme d’´etats-transitions Parall´elisme

R´ egions orthogonales : exemple

C´edric Buche (ENIB) MIS 28 janvier 2014 42 / 152

(79)

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)

(80)

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

(81)

Transition complexe : exemple

(82)

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

(83)

Etat hi´ ´ erarchique : illustration

E2C E2

E2B

E3 E2A

E1

E2Bi E2Bj

E2Bk

(84)

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

(85)

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

(86)

Diagramme d’´etats-transitions Hi´erarchie

Hi´ erarchie – historique : exemple

C´edric Buche (ENIB) MIS 28 janvier 2014 50 / 152

(87)

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

(88)

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

(89)

Hi´ erarchie – points de connexion : exemple

(90)

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

(91)

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

(92)

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

(93)

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

(94)

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

(95)

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

(96)

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

(97)

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

(98)

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

(99)

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

(100)

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

(101)

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

(102)

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

(103)

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

(104)

Diagramme d’activit´es Activit´es : concepts de base

Activit´ es : notation

C´edric Buche (ENIB) MIS 28 janvier 2014 64 / 152

(105)

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

(106)

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

(107)

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

(108)

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

(109)

Action : propri´ et´ es

Contraintes : conditions devant ˆ etre satisfaites (ne pas confondre avec une condition de garde)

localPrecondition : quand l’action d´ emarre localPostcondition : quand l’action est termin´ ee Leur traitement est un point de variation s´ emantique Entr´ ees et Sorties : pins

ensembles ordonn´ es de variables nomm´ ees input pin

output pin

Exception(s) : exception pin

Si une exception survient, l’action est abandonn´ ee

et aucune sortie n’est g´ en´ er´ ee

Références

Documents relatifs

Elle est d’autant plus importante que la masse de la charge est grande et s’oppose à la mise en mouvement. Elle est caractérisée par le moment d’inertie J, qui s’exprime en

Ils sont ensuite émis sans vitesse par la source S, puis accélérés par un champ électrostatique uniforme qui règne entre S et P tel que.. U sp

Les élèves ne disposant pour l’instant que d’informations qualitatives sur l’énergie potentielle et l’énergie cinétique d’un système, le but de

Pour cela (figure 1), on émet dans le local I avec une source de bruit normalisée, et on mesure dans le local II, séparé de I par la paroi étudiée, le niveau acoustique par

 A chaque type et chaque degré est affecté un nombre de points La méthode permet de calculer le poids du projet en points de

Capacité : vérifier expérimentalement les conditions d'équilibre d'un solide soumis à deux ou trois forces de droites d'action non parallèles.. Dans la suite du document, ce

La batterie d’accumulateur fournit l’énergie électrique au moteur qui propulse le véhicule.. La capacité de la batterie est de 100 Ah et la tension à ses

Dans ce réseau, il y a trois possibilités de câbles d’un seul tenant (backbones) avec chaque fois un seul branchement en T :. FGJI : branchement en G vers les autres nœuds du