• Aucun résultat trouvé

naux

9

Nous présentons dans cette section l’introduction de la hiérarchie dans la méthode de de

10

spécification avec les diagrammes états-transitions. Nous présentons dans un premier temps les

11

différentes situations où il est possible d’intégrer de la hiérarchie (et par conséquent les états

12

composites). Ensuite nous présentons, sous forme de phases, comment introduire les états

com-13

posites.

14

Nous avons modifié légèrement le diagramme états-transitions correspondant à l’exemple de

15

la barrière de péage présenté dans laFigure 4.15pour introduire un cas particulier de hiérarchie :

16

nous avons ajouté dans chaque état une transition allant vers l’état d’échecfailureet modélisant

17

l’occurrence de l’événement d’échecerror (voir Figure 4.17).

18

Situations La question que nous pouvons nous poser est : quelles sont les situations où il est

19

pertinent d’introduire un état composite ? Nous avons identifié trois situations où introduire de

20

la hiérarchie, et par conséquent des états composites, que nous présentons ci-dessous :

21

• Situation 1 : il s’agit d’une situation où une étape du processus est décomposée en plusieurs

22

parties contribuant à son exécution. En terme d’événement, c’est un “macro” événement

23

(en anglais macro-event) composé de plusieurs événements, par exemple, le paiement se

24

fait en trois temps : l’insertion de la carte bancaire, l’attente de la réponse de la banque

25

et la validation du paiement. On peut donc rassembler ces différentes étapes au sein d’un

26

état composite (par exemple, paymentdans laFigure 4.17).

27

Cette situation peut être détectée en examinant le diagramme états-transitions et à l’aide

28

de l’analyse du texte. D’autre part, les états qui sont rassemblés dans un état composite

29

doivent bien sûr être connectés entre eux par des transitions.

30

• Situation 2 : c’est une situation où la valeur d’un observateur d’état permet de délimiter

31

un ensemble de composantes qui sont connectées, c’est-à-dire les regrouper dans une seule

32

composante. Par exemple, la présence de la voiture permet de regrouper un ensemble de

33

situations liées tels que : l’insertion du ticket, la lecture de la carte bancaire, etc. Pour

34

détecter cette situation il faut disposer de la table des états fournie par la méthode (avec

35

les valeurs des observateurs d’états pour chaque état). Toutefois, dans le Tableau 4.15on

36

voit que les observateurs d’états conservent une même valeur pour plusieurs états et donc

37

ce seul critère ne suffit pas : il faut que les états sélectionnés soient connectés. Par exemple,

38

la lecture du ticket ne permet le regroupement que d’un seul état qui est le traitement du

39

ticket et donc il n’est pas intéressant.

40

• Situation 3 : c’est une situation où des éléments du système partagent un événement

41

qui change l’état de du système vers un autre état (le même pour tous les éléments). Par

42

exemple, le cas où l’événementerrorconduit à l’état d’échecfailuredans laFigure 4.17.

Figure4.17 – Diagramme états-transitions de la barrière de péage : nouvelle version

En se basant sur les trois situations présentées ci-dessus, nous formalisons les règles suivantes :

1

• Règle 1 : est définie en se basant sur la première situation : pour toute étape composée de 2

plusieurs parties, on définit un état composite la représentant, en précisant les sous-états 3

qui seront contenus (en utilisant le diagramme états-transitions et l’analyse du texte).

4

• Règle 2 : est définie en se basant sur la deuxième situation : pour tout observateur d’état 5

délimitant un ensemble d’état connectés, on définit un état composite qui contiendra ces 6

états (nous utilisons la table des états et le diagramme états-transitions).

7

• Règle 3 : est définie en se basant sur la troisième situation :pour tout ensemble d’états ayant 8

une transition avec le même événement et allant vers le même état destination, on définit 9

un état composite qui contiendra ces états (nous utilisons le diagramme états-transitions). 10

L’ordre d’application de ces règles n’est pas défini ce qui peut laisser de l’indéterminisme par

11

rapport au résultat. Chaque résultat engendré par un ordre d’application est considéré comme

12

une possibilité de modéliser le système. Cependant il se peut que deux règles (ou plus) soient

13

incompatibles, c’est-à-dire que l’intersection des deux états composites engendrés par deux règles

14

contienne des états (simples ou composites) en commun. Dans ce cas de figure, une seule règle

(et non pas deux) sera appliquée. Le choix de la règle à appliquer n’est pas déterminé (cela laisse

1

un choix à l’utilisateur).

2

Notez que l’état composite introduit (par l’une des règles ci-dessus) doit avoir un nom différent

3

des états existants dans le diagramme (qu’ils soient simples ou composites).

4

Condition 5

En plus des règles que nous définissons au-dessus, nous présentons dans ce qui suit une règle

6

que nous pensons nécessaire pour compléter ces règles.

7

Pour chaque état composite S1 ∈Srésultat de l’application des règles d’introduction de la 8

hiérarchie, ∀ s1∈S1,∃ s2 ∈S1, ∃ t∈T tel que test une transition entre s1 ets2

9

Les sous-états d’un état composite (engendré par l’application de la règle 1) doivent être liés

10

par des transitions, en effet leur présence dans le même état composite signifie qu’ils traitent le

11

même événement. Par exemple dans la Figure 4.17, dans le cas de la présence de la voiture, il y

12

a une situation où la voiture est présente (carPresent) et une autre où la voiture est absente

13

(carGone), alors une première réflexion est d’avoir un état composite qui inclut ces deux états

14

(carPresentetcarIn). Cependant nous remarquons qu’il n’y a aucune transition directe entre

15

ces deux états ni de transitions semblables allant vers un état d’échec, de ce fait l’état composite

16

sera rejeté car sa présence est inutile.

17

En se basant sur le résultat de l’application de la méthode de spécification ainsi que les trois

18

règles d’introduction de la hiérarchie, nous définissons les deux phases suivantes (introduction

19

de la hiérarchie) :

20

Phase 1 [identification des états composites candidats et de leurs sous-états] 21

Rappelons que nous nous basons sur les résultats obtenus par la méthode de spécification ainsi

22

que les règles d’introduction afin d’introduire la hiérarchie et par conséquent les états composites.

23

Nous utilisons dans cette phase la table des états, le diagramme états-transitions et le description

24

textuelle afin d’introduire les états composites. Dans un premier temps, nous détectons les états

25

composites candidats possibles à introduire en se basant sur les deux premières situations ainsi

26

que les deux premières règles. En utilisant la première règle nous définissons les états composites

27

qui modélisent les états du système décomposables en sous états. Par exemple, l’état composite

28

payment correspond à la phase de paiement de l’entrée au parking qui se déroule en trois étapes :

29

l’insertion de la carte bancaire, le contact de la banque et la validation du paiement. En utilisant

30

la seconde règle nous définissons les états composites qui modélisent le regroupement d’états en

31

se basant sur la valeur des observateurs d’états. Par exemple, l’état composite carIn modélise le

32

phase d’exécution du système à la présence de la voiture au niveau de la barrière (la valeur de

33

l’observateur d’état carAtGateest égale à true).

34

Dans un second temps, et en utilisant le diagramme états-transitions, nous définissons les

35

sous-états qui vont être inclus dans chaque état composite. Nous définissons une table

indi-36

quant, pour chaque état composite à ajouter, les états (composites ou simples) qui y sont

37

contenus comme montré dans le Tableau 4.16. Le Tableau 4.16 sera mis à jour à chaque fois

38

qu’un état composite est ajouté. L’application de la règle 1 permet de définir les états

com-39

posites qui vont contenir d’autres états simples (ou composites). Par exemple, l’état composite

40

payment (l’exemple de la barrière de péage) contiendra les états : waitCard,waitBankAnswer

41

et paymentValidated (voir Figure 4.17). L’était composite carIn va contenir : carPresent,

42

ticketProcessing,payment,gateRaised.

État composite in cp tp wc wba pv gr cg fl pa ci

payment X X X

carIn X X X X

Abréviations utilisées pour les noms d’état dans la table in : init cp : carPresent tp : ticketProcessing

wc : waitCard wba : waitBankAnswer pv : paymentValidated

gr : gateRaised cg : carGone fl : failure

pa : payment ci : carIn

Table 4.16 – Table des états composites

Phase 2 [Identification des transitions dans les états composites] Une fois les

1

états composites déterminés, un problème qui se pose est la prise en compte éventuelle de

l’in-2

troduction des états composites pour modifier la définition des transitions (état source et

desti-3

nation). Dans quel cas serait-il pertinent ou non de proposer l’état composite introduit comme

4

état source ou cible d’une transition ?

5

Une première solution serait de conserver la définition des transitions en utilisant que les

6

états simples (donc cela n’inclut pas les états composites). Dans la Figure 4.21 l’état composite

7

payment n’est ni source ni destination pour aucune des transitions allant ou sortant de ses

sous-8

états. Il est possible d’ajouter un pseudo-état initial ou un état final dans l’état composite (même

9

en absence de transitions allant ou sortant de cet état). Cette possibilité est un choix qui n’ajoute

10

pas de sémantique ou de sens au diagramme mais permet d’indiquer l’entrée et la sortie de l’état

11

composite. Dans la Figure 4.18 l’état composite S comporte un état final sans qu’il y ait de

12

transitions sortant de ce dernier.

13

La seconde solution consiste à introduire, dans la définition des transitions, les états

compo-14

sites en respectant certaines conditions.

15

• Dans le cas des transitions en entrée : si un état simple est un état lié à un pseudo-état

16

initial (S2 dans le bas de la Figure 4.18) dans un état composite alors les transitions

17

entrantes vers cet état auront comme destination l’état composite qui le contient (Sdans

18

laFigure 4.18).

19

• Dans le cas des transitions en sortie :

20

– Toute transition allant d’un sous-état (lié à un état final) d’un état composite aura

21

comme source cet état composite. Par exemple, la transition allant de l’état S2vers

22

l’étatS3(dans le haut de laFigure 4.19) aura comme source l’état compositeS(dans

23

le bas de laFigure 4.19).

24

– Toute transition avec événement allant d’un sous-état d’un état composite sera

in-25

changé. Par exemple, la transition avec événementaentre l’étatS2etS4en haut de

26

laFigure 4.19 gardera le même état source car si elle avait S pour état source, cela

27

changerait la sémantique (avec de multiples possibilités d’interrompre l’activité deS

28

dès l’occurrence de l’événement a).

29

Si l’état S2était remplacé par S alors à l’occurrence de l’événementa ou bien il y a

30

la sortie de l’étatS à partir de S1 ou bien à partir de S2 (sachant que la transition

31

de base est entre l’étatS2 et l’étatS4). Afin d’éviter cette situation la source de la

32

transition sera inchangée et ainsi la sémantique du diagramme sera conservée.

l’entrée dans l’état Success implique l’entrée dans l’étatcarIn.

1

Figure 4.23 – Diagramme états-transitions de la barrière de péage avec hiérarchie (ver-sion erronée)

Qualité du diagramme états-transitions