Vous êtes sur la page 1sur 20

Introduction au langage de description formelle (LOTOS)

LOTOS : Language of Temporal Ordering Specification (OSI/ISO)

=> Modelisation d’architecture de communication


- Description formelle : analyse de propriétés sur ces modélisations
- Comportements : regarder les interactions observables du système
- Analyse des propriétés : analyse des relations temporelles des interactions
observables

Relation d’ordre : temps qualitatif, pas d’horloge

Sémantique d’entrelacement : exemple: deux événements se produisent


en parallèle => soit le premier qui suit le second, soit l’inverse
Pas de vrai parallélisme

Algèbre de processus :
=> Arbres d’action ou de comportement (enchaînement ou l’ensemble des
enchaînements possible d'événements) => Relations entre ces arbres
=> Vérification / validations des propriétés en raisonnant sur des arbres

( I ) ←----------------- ( I + 1)
Implémente

Full LOTOS -> Basic LOTOS (comportement)


-> ADT ACT ONE : Abstract Data Types

=> Types algébriques de données : Type = valeurs, operations, propriétés


caractéristiques

Basic LOTOS = comportements


Objectifs du langage:
- Avoir une description précise et non ambigu, si possible complète et
indépendante des implémentations
- Produire des documents lisibles de référence
- Base formelle bien définie servant à la vérification et à la validation des
standards OSI et à la conformité des tests des implémentations.
Les critères qui ont conduit à la définition du langage :
- Pouvoir d’expression : possibilité de décrire et représenter un nombre important
de propriétés pertinentes dans la description du service communiquant et des
protocoles de communication et de leurs interfaces.
- Définition formelle : sémantique formellement définie
- Abstraction : raffinement -> fournir l’analyse
- Structure : descriptions adaptées à l’organisation logique ou même physique
d’une solution

LOTOS : standardisé ISO 8807

Remarque : pas de langage graphique standardisé

1 - Processus : bloc de construction de base, activité à laquelle on donne un nom (on


va pouvoir l’instancier dans la définition d’un autre processus). C’est également une
entité capable de réaliser des actions non observables (interne) mais aussi et surtout
d’interagir avec d’autres processus formant son environnement.

2 - Activité : Séquence ou suite d’actions observables ou non.


Actions observables -> c’est une interaction avec au moins le processus environnement
Exemple :

Des interactions complexes entre processus sont bâties à partir d'unités élémentaires
de synchronisation appelées événements, interactions ou simplement actions.
Les événements induisent la synchronisation de processus parce que les processus
participent à l'exécution (à l'occurrence) en même temps.

Les événements se produisent dans des ports ou des points d'échange ou encore
d’interaction.

Basic Lotos: Lorsque la synchronisation se fait sans échange, le nom de l'événement et


le nom du port sont confondus.

Une interaction est issue de la composition de différents processus


Description architecturale de Max 3

Description du comportement de Max3 :


process: Max3 [ in1, in2, in3, out]

Hide mid in
Max2 [I1,I2,mid][mid ] |
Max2[mid,I3,out]

Where
Process Max2 [a,b,c] :=
a ; b ; c stop
[]
a ; b ; c ; stop
end proc
end proc

2 - Basic LOTOS
Version simplifiée ( alphabet fini d’action observables)
Les actions observables sont identifiées par les ports où elles se produisent et les
processus ne pourraient avoir qu’un nombre fini de ports.
Basic Lotos décrit la synchronisation de processus alors que full lotos pourra décrire
des communications inter process.
Basic lotos va nous permettre de nous concentrer sur :
- Les opérateurs du lge et le (pourvri ou fourni ou pourvoi wallah c illisible)
d’expression associer
- Equivalences de comportement V&V → pouvoir d’analyse

Liste des opérateurs du langage :


- stop : inaction
- Prefixe d'action/enchaînement d’actions
Non observable i ; B
Observable g : B
- Choix
B1[ ] B2
- Composition parallèle
Cas general B1| [g1,g2,gn] | B2
Synchronisation sur une liste d’action g1,g2,gn
- Entrelacement
composition sans synchronization
Comportement indépendants
Liste des actions de requêtes vides!!!
B1||| B2

- Synchronisation totale
Liste des actions syncro recouvrant la totalité des actions définis
B1||B2

- Hiding / masquage (rendre non observable des actions)


Hide g1,g2, gn on B

- Hheudzdiid de processus P[g1, g2, gn]

- Terminaison réussi exit

- Composition sequentielle B1 >> B2


- préemption ( disabling) B1[ > B2
- Priorité entre les opérateur
Prefixe d’action > choix >composition > préemtion > enchainement sequentiel
> masquage
Hide a in (((a; P)[ ] Q )>>(( R || S) [ > T)))

Sémantique opérationnelle du langage


On cherche à se doter d’un fournisseur d’analyse sur les expressions du comportement
LOTOS
On a besoin de dériver des transitions étiquetées , des triplés de type (B,x,b’) de la
forme
B-X → B’
Ou x est une action , B et B’ des expressions de comportements le tout signifiant
B est capable de se transformer en B’ lorsque l’action x est offerte

Soit G ensemble des ports actions définissable par l’utilisateurs par l’expression
G1,g2,......gn
I action interne non observable
ACT G U {i}
U élément de Act
Delta action spéciale non définis par user indiquant la permission de réussie d’1
processus autorisant un autre processus

G + → G Union { Delta }
g+ element de G +
Act+ Act Union { Delta }
U+ ( mu + ) element de Act+

On cherche à définir formellement les opérateurs du langage. Cela passe par la


définition d’actions et de règles d'inférence de la sémantique opérationnelle conduisant
à la définition de la relation transition étiquetée ‘ -> ‘ qui sont un sous-ensemble du
produit cartésien
BE x Act x BE
BE lus des comportements
Cette relation de transition étiquetée peut être représentée à l'aide d’1 arbre où
les nœuds sont des expressions de comportements et les axes aux actions offertes. Un
tel arbre étant lourd à manipuler on peut se réduire à représenter un arbre d’actions où
seuls les arcs sont étiquetés.

Operateurs

Reaction stop ROND


Préfixe d’action
axiome μ; B - μ –> B (mu suivit de B )
§§§§§§§§§

CHOIX:

B1 - μ+ → B’1 ⇒ B1 [] B2 - μ+ → B’1

B2 - μ+66 → B’2 ⇒ B1 [] B2 - μ+ → B’2

A; b; c; stop
OU []
B ; a ; c ; stop
Sémantique du choix .

INSTANTIATION

B - g’ → B ;
Phi = [ g1/g’1, —----, gn/ g’n ] et g/g’ є φ
===> B φ - g → B’ φ

B - u+ → B’ app {g’,gn}
=> B φ u+ → B’ φ

Si process P [ g’1, - g’n ] : = Bp est un process


Un définition de process alors:

Bp [ g1 / g’1, - - - -, gn / g’n ] - μ+ → B’ ⇒ P [ g1 - - - - - gn ] - μ+ -> B’

Max 2 [ mid 1 / 2 mid 2 / 2 mid / 2 ]


mid / a mid /b mind / c
Opérateur général de parallélisme

B1 [ g1, g2, - – - gn] / B2


S = [ g1 , g2 , - - - - gn ] B1 / S / B2

B1 - μ → B’1 et μ ∉ S
⇒ B1 / S / B2 - μ → B’1 / S / B2 ( B’1 se comparera en composition parallèle
avec B2 )

B2 - μ → B’2 et μ є S ⇒ B1 / S / B2 - μ -> B1 / S / B’2

B1 - g+ → B’1 et B2 - g+ → B’2 et g+ appart S U { S }


⇒ B1 / S / B2 - g+ → B’1 / S / B’2

Max 2 [ in 1 , in 2 , in3 ]

On a rater klk choses ici ………………….. TANT PIS

Quel est l’arbre d’actions associé à cette expression de comportement ?


Quel est l'arbre résultant de cette composition ?

Reponses:
TP- 7 Janv 2023
Donner l’arbre d’actions:
1) A ; b ; stop [ ] c ; d ; stop
2) A ; b ;stop ||| c; d ; stop
3) A ; b ;stop ||| c ; b ; stop
4) A ; b ;stop |[b]| c ; b ; stop

1)
2)

3)

4)
Recursion = un process qui s’auto définie

Pour R[a;b] : =
a; b; R [a;b]
COURS - 16 Janv 2023
Modélisation/description de processus LOTOS

Soit le système S constitué d’1 site de diffusion et de 2 sites relais reliés par un
anneau unidirectionnel.
Le site diffuseur prélève une entrée auprès de l’environnement et la diffuse sur
l’anneau.
Lorsque celle-ci lui revient, cela l’autorise à prélever une nouvelle entrée. On
suppose que les communications sont fiables.

1- Donner une description monolithique de S


Reponse:

Process S [ entrée, DR, RR, RD] : =


entree; DR; RR; RD; S [entrée,DR RR,RD]
End proc
2- Donner une description modulaire de S
Reponse:

Process D [input,s,r] :=
Input;s;r;
D [input,s,r]
End Proc

Process R [a,b] :=
a;b;R[a,b]
End Proc

Process S_mod[entrée,DR,RR,RD] :=
(D [entrée,DR,RD] | [DR] | R[DR,RR])
| [RR, RD] |
R [RR,RD]
Where
Process D [input, s, r] :=
Input; s; r; D [input, b, r]
End Proc

Process R [a,b] :=
a;b;R[a,b]
End Proc
3- Montrer que la description modulaire implémente la description monolithique,
les communications étant fiables
Reponse:

19/01

Le système S est désormais constitué de 3 sites diffuseurs reliés par 1 anneau


unidirectionnel.
Chaque site diffuseur gère une entrée auprès de l’environnement et le diffuse sur
l’anneau.
Chaque site diffuseur agit comme relais des données géré par un autre site.
Les communications sont fiables.
Donner une description modulaire d’un tel système.
process S[entrée1, entrée2, entrée3, d1d2, d2d3, d3d1] :=
d1[entrée1, d1d2, d2d3, d3d1] ||| d2[entrée2, d1d2, d2d3, d3d1] ||| d3[entrée3, d1d2,
d2d3, d3d1]

Where

Process d1[entrée1, d1d2, d2d3, d3d1] :=


entrée1; d1d2; d2d3; d3d1; d1[entrée1, d1d2, d2d3, d3d1];
end proc;
Process d2[entrée2, d1d2, d2d3, d3d1] :=
entrée2; d2d3; d3d2; d1d2; d2[entrée2, d1d2, d2d3, d3d1];
end proc;

Process d3[entrée3, d1d2, d2d3, d3d1] :=


entrée3; d2d3; d3d2; d1d2; d3[entrée3, d3d1, d1d2, d2d3];
end proc;
end proc;

Vous aimerez peut-être aussi