avec les différents besoins temporels qui sont considérés dans cette thèse.
2
Figure8.1 – Nouvelle classification des besoins temporels
Comme la Figure 8.1 le montre nous considérons les contraintes temporelles vis-à-vis des
3
événements mais également dans les états. La classification (présente dans laFigure 8.1) comporte
4
deux types de contraintes : contraintes quantitatives (contraintes temporelles) et contraintes
5
qualitatives (contraintes logiques). La première partie permet de représenter le délai (minimum
6
et maximum), la ponctualité ainsi que la latence. La seconde partie permet de représenter la
7
séquence et la précédence entre événements. La représentation des contraintes temporelles
vis-8
à-vis les événements est faite en utilisant les deux parties. En revanche, la représentation des
9
contraintes temporelles dans les états est faite en utilisant uniquement la première partie
(c’est-10
à-dire les contraintes quantitatives).
11
Nous présentons dans ce qui suit la syntaxe et la sémantique basée sur cette classification.
12
Nous présentons également la combinaison des contraintes qualitatives et des contraintes
quan-13
titatives.
14
Syntaxe et sémantique des annotations temporelles
15Nous présentons dans cette sous-section la syntaxe/sémantique correspondantes à la
classi-16
fication que nous proposons dans le cadre de cette thèse. Nous illustrons cette syntaxe par une
17
grammaire (voir la Figure 8.4) avec sa description. Nous accompagnons cette grammaire par le
18
Tableau 8.1qui comporte les différents terminaux utilisés.
19
Nous avons besoins de définir certains concepts que nous utiliserons pour la description de
20
notre syntaxe comme suit. Soit S1 et S2 deux états et soit Transit une transition entre S1 et
21
S2. L’état S1 comporte un comportement do noté doexp. E est l’événement qui étiquette la
22
transitionTransit. Ces éléments seront utilisés pour l’explication des différentes annotations du
23
Tableau 8.1. Deux points à noter :
24
• Les temps utilisés dans notre syntaxe (par exemple,E at T) sont des temps relatifs et les
25
intervalles pour l’évaluation des contraintes sont fermés.
26
• L’événement dans une transition est enrichi par une contrainte temporelle, donc c’est
27
toujours l’événement tout à gauche de la contrainte qui est celui de la transition.
28
Notre choix de la classification proposée dans la Figure 8.1 est basé sur la gestion des
29
contraintes temporelles portant sur les événements (mais également sur les états voirSection 8.3.3).
Chaque événement peut apparaître au plus T unités de temps (at_most), au minimum T d’unités
1
de temps (at_least), exactement T unités de temps (at), ou bien en séquence/précédence avec
2
d’autres événements (after,before). Il faut noter que la contrainte temporelle est vérifiée pour
3
un événement donné dans le cas où l’état source de la transition étiquetée par l’événement (sous
4
cette contrainte) est actif (c’est-à-dire l’état dans lequel se trouve le système). Donc le temps est
5
mesuré à partir du moment où l’état source de la transition est actif. Dans le cas où la transition
6
a comme source un pseudo-état join alors il faut que tous les états sources des transitions allant
7
vers le pseudo-état join soient actifs afin que la contrainte de la transition puisse être évaluée.
8
En se basant sur cette classification, nous définissons les annotations suivantes (Tableau 8.1).
9
Éléments Annotation Contrainte
punctuality at Quantitative
maximumDelay at_most Quantitative
minimumDelay at_least Quantitative
latency between Quantitative
sequence after Qualitative
precedence before Qualitative
Table 8.1 – Syntaxes des terminaux utilisés dans la grammaire de la Figure 8.4
Afin d’exprimer la sémantique informelle de chaque annotation syntaxique présentée dans le
10
Tableau 8.1, nous présentons dans ce qui suit la description annotation :
11
• Dans le cas de at : E at T, c’est-à-dire l’événement E apparaît exactement T unités
12
de temps après l’activation de l’état source de cette transition étiquetée par l’événement
13
E. Dans le cas où l’événement E n’apparaît pas exactement T unités de temps après
14
l’activation de l’état S1, la contrainte ne sera pas satisfaite. Nous avons également doexp 15
atT, c’est-à-dire l’exécution du comportement do doit se terminer exactementT unité de
16
temps après l’activation de l’état concerné par le comportement do.
17
• Dans le cas de at_most : E at_most Tmax, c’est-à-dire l’événement E apparaît au plus
18
Tmax unités de temps après l’activation de l’état source de cette transition. Dans le cas
19
du comportement do, nous avons doexp at_most Tmax, c’est-à-dire l’exécution du
com-20
portement do doit se terminée au plus Tmax unités de temps après l’activation de l’état
21
concerné par le comportement do.
22
• Dans le cas de at_least : E at_least Tmin, c’est-à-dire l’événement E apparaît au
23
minimumTminunités de temps après l’activation de l’état source de cette transition. Nous
24
avons également doexp at_most Tmin, c’est-à-dire l’exécution du comportement do doit
25
se terminer au minimum Tmin unités de temps après l’activation de l’état concerné par le
26
comportement do.
27
• Dans le cas de between :E between [Tmin, Tmax], c’est-à-dire l’événement E apparaît au
28
minimumTminunités de temps et au plusTmaxunités de temps après l’activation de l’état
29
source de cette transition. Dans le cas du comportement do, nous avons doexp between
30
[Tmin, Tmax], c’est-à-dire l’exécution du comportement do doit se terminer au minimum
31
Tmin unités de temps et au plusTmax unités de temps après l’activation de l’état concerné
32
par le comportement do.
33
• Dans le cas de after:E2 afterE1 (où E2 est l’événement de la transition enrichi par la
34
contrainte), c’est-à-dire l’événementE2 apparaît après l’événementE1. La sémantique que
nous considérons par rapport auafterest que pour chaque occurrence de l’événementE1
1
on peut avoir au plus une occurrence de l’événement E2.
2
Afin d’expliquer la sémantique que nous considérons pour l’élément syntaxique after (le
3
même principe sera pour l’élément syntaxique before), nous présentons l’exemple de la
4
Figure 8.2. Dans cet exemple, l’occurrence de l’événement e1 est conditionnée par
l’occur-5
rence de l’événement e2. Nous présentons les séquences de franchissement de transitions
6
possibles et impossibles que nous autorisons ou interdisons.
7
– La séquence d’occurrence d’événementse1 e2 e1 e2 best autorisée car pour chaque
oc-8
currence de l’événemente1il est possible de franchir une transition ayant la contrainte
9
e2 af ter e1 (autrement dit avoir une occurrence de l’événement e2). La séquence
10
d’occurrence d’événements suivantee1e2 e1 e1 e1 e2 best également autorisée car on
11
considère la dernière occurrence de l’événement e1.
12
– La séquence d’occurrence d’événementse1 e2 e2 bn’est pas autorisée car la première
13
occurrence e1 permet l’occurrence e2, par contre la seconde occurrence e2 n’est pas
14
autorisée car il n’y a eu aucune occurrence de l’événement e1.
15
Un cas particulier que nous avons remarqué dans cet exemple est la présence d’une situation
16
d’inter-blocage dans le cas où l’événementbn’apparaît pas, que l’événement e1n’apparaît
17
qu’une fois. Cette situation implique que la transition entre l’état S12 et l’état S13 peut
18
être franchie par contre le reste des transitions non.
19
• Dans le cas debefore:E1beforeE2(oùE1 est l’événement de la transition enrichi par la
20
contrainte), c’est-à-dire si l’événementE2 apparaît, alors il y a l’occurrence de l’événement
21
E1 avant au moins une fois. Nous illustrons la sémantique du before avec un exemple
22
et nous présentons les séquences de transitions autorisées. Dans la Figure 8.3 un exemple
23
diagramme états-transitions utilisant l’élément syntaxique before. Dans ce qui suit les
24
séquences de transitions autorisées et non autorisées avec un cas d’inter-blocage.
25
– La séquence d’occurrence d’événementse2, e1, e2, e1, best autorisée car pour chaque
26
occurrence de l’événemente1 il y a eu une occurrence de l’événemente2.
27
– La séquence d’occurrence d’événementse2, e1, e1, e1, b n’est pas autorisée car afin
28
que la deuxième occurrence de e1 soit possible il est nécessaire que e2 soit apparu
29
avant au moins une fois.
30
– Dans le cas où l’événement b n’apparaît pas et dans le cas où on a la séquence de
31
transitions e2, e2, e1, alors on ne peut plus franchir de transitions car l’événement
32
e1 ne peut apparaître que si l’événement e2 apparaît juste avant.
33
Il est nécessaire que cette contrainte soit évaluée au moment où l’étatS1 est actif.
34
Remarques Une remarque à prendre en compte est la non présence des contraintes
tempo-35
relles exprimées avec les éléments syntaxiques afteretbeforedans les états. Nous considérons
36
que l’exécution du comportement do ne dépend pas de l’occurrence des événements mais dépend
37
de son temps d’exécution.
38
Nous présentons dans ce qui suit la grammaire représentant l’expressivité de la syntaxe que
39
nous proposons au-dessus (voirFigure 8.4).
Figure 8.2 – Exemple d’explication pour l’élément syntaxiqueafter
Figure8.3 – Exemple d’explication pour l’élément syntaxique before
Description de la grammaire 1
Nous décrivons dans ce qui suit les différentes clauses de la grammaire proposée dansFigure 8.4.
2
Nous supposons qu’il y a contrainte pour préciser que la clause EventExpo est destinée pour les
3
expressions temporelles concernant les événements et que la clause StateExp est destinée pour
4
les expressions temporelles concernant les états.
5
• val est une variable avec une valeur rationnelle représentant une valeur temporelle.
6
• e,e1 ete2 sont des événements.
7
• TimeExp : := EventExp | StateExp, une expression temporelle (TimeExp) qui peut être :
8
(i) EventExp une expression temporelle par rapport aux événements (ii) StateExp une
9
expression temporelle par rapport aux comportements do des états.
10
• EventExp : := e TimedAnnotation | e LogicalAnnotation | e CombinationAnnotation, une
11
expression temporelle par rapport aux événements qui peut être : (i)TimedAnnotation une
12
annotation temporelle qui utilise des contraintes quantitatives (c’est-à-dire at,at_least,
13
etc) (ii) LogicalAnnotation une annotation logique qui utilise des contraintes qualitatives
• a at_least 5 représente une expression temporelle pour les événements. Cette
expres-1
sion est incluse dans la clause EventExp : := e TimedAnnotation. Le diagramme
états-2
transitions de la Figure 8.5 comporte d’autres expressions incluses dans la même clause,