naux
9Nous 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)