1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs...

55
1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi

Transcript of 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs...

Page 1: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

1

Chapitre 5

SDL et MSC

w3.uqo.ca/luigi

Page 2: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

2

Modèles à états étendus

Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons parlé surtout de l’aspect contrôle

Dans les machines à états finis, dans le LOTOS de base, on ne peut communiquer que des messages avec un très petit vocabulaire Des constantes

Les protocoles transportent des données, et prennent des décisions sur la base de ces données

Les modèles d’états doivent donc été étendus pour représenter les données Utilisation de variables

Page 3: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

3

Les variables comme abréviations

Les variables représentant les données peuvent être enlevées mais la machine à états pourrait devenir infinie

?x

!x

Machine à états qui accepte une valeur pour une variable x (disons un entier) et l’émet ensuite

?1?2

?3

!1 !2 !3 etc . . .

Machine équivalente qui n’utilise que des constantes (c’est une machine infinie…).

Elle restera finie si on fait une hypothèse sur la valeur max de x, p.ex. 4

?4

!4

Page 4: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

4

EFSM models, extended finite state machines

Pour cette raison, tout formalisme de description de protocoles utilise les variables

On parle donc de extended state models SDL est le mieux connuESTELLE fut développé par l’ISO en parallèle avec

LOTOS et est encore utilisé Il est semblable à l’SDL mais utilise le langage Pascal

comme baseIl y a aussi des autres langages pour les EFSMs, mais

ils ont été d’utilisation beaucoup plus limitée

Page 5: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

5

Introduction à SDL

Page 6: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

6

Histoire

SDL est une norme de l’UIT-T (ou en anglais ITU-T) Specification and Description Language

Le projet fut amorcé par le CCITT (ancien nom de l’ITU) en 1972L’idée était de créer un langage pour la description des protocoles

de signalisation téléphoniqueVers la fin des années 1980, le langage fut étendu pour pouvoir

spécifier les protocoles, surtout OSIComme toutes les normes ITU, le langage est révisé tous les

quatre ansCependant les révisions sont toujours compatibles, donc ce que

vous pourriez apprendre sur les vieilles versions est encore valable

Page 7: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

7

Développement

Au début (1972) SDL était un simple formalisme graphique pour spécifier les machines à états finis des protocoles téléphoniques Relativement simples à cette époque

En 1984, on ajouta les processus et les donnéesSDL 1988 vit une stabilisation sur laquelle on a bâti

ultérieurementEn 1992 on ajouta l’orientation objetEn 1996 on ajouta

ASN.1, une notation pour la spec des structures de données et les Message Sequence Charts

Aujourd’hui SDL et MSC sont deux notations intégréesÀ partir de SDL2000 il y a eu un effort d’intégration avec

UMLPeu de changements dans les dernières années

Page 8: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

8

Utilisation et outils

À cause de la grande autorité de l’ITU, le langage fut bientôt adopté par l’industrie des télécom, cependant encore aujourd'hui il y a peu de boîtes qui l’utilisent à fond Elles sont surtout en Europe

La compagnie Telelogic (maintenant IBM) a développé une suite d’outils appelée Tau Inclut:

support pour l’utilisation de SDL et MSC Pour voir si un scénario MSC est compatible avec une spec SDL

support pour l’implémentation (génération de code)

La compagnie PRAGMADEV a développé un outil semblable, Real Time Development Studio que nous pourrons voir dans des projets

Page 9: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

9

Brève intro à l’SDL (remerciements au prof. Alan Williams)

L’SDL est essentiellement une notation graphique, même si une notation textuelle existe

Il est une notation très riche, on pourrait lui dédier un cours entier! Deux éléments primaires:

Structure Identifie les différentes composantes du système, et les voies de communication

Composantes: Blocks, Processes Communication:

Channels (entre blocs): communication qui prend du temps (mais on peut spécifier aussi nodelay) Signal routes (dans un bloc): communication instantanée

Les points de connexion: Gates Tous les éléments structuraux peuvent être types, pour permettre l’orientation

objet Behaviour - Comportement

Seulement les processus ont un comportement Basé sur le modèle des machines à états finis étendues

Page 10: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

10

Block_1

Block_2

System SDLexample

canal

environnement

Structure à haut niveau: système, contient des blocks

path

toEnv1 toEnv2

[m2]

[m3][m1]

[m4]

bloc

Signaux permisdans ce canal

nom de canal

signaux en sortie

signaux en entrée

Les canaux sont des mileux de transm. avec files d’attente

Page 11: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

11

Déclarations de signaux (dans un système ou bloc ou processus)

SIGNAL m1, m2, m3(INTEGER), m4, m5;

System SDLexample

paramètres Signaux sans paramètres

Page 12: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

12

Dans un Bloc (un système est composé de blocs, les blocs sont composés de processus)

Block Block_1

nom de bloc

Process_1

Process_2

[m1]

[m4]

[m5]signal route

processus

sr1

sr2

sr3

nom de signal route

SIGNALm4, m5;

Signal routes livrent aux files d’entrée des processus

Page 13: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

13

Processus

À moins de spécification explicite, une instance d’un processus est créée à l’amorçage du système, et continuera jusqu’à ce que le processus décide de se terminer

Chaque processus reçoit (automatiquement par le système) son propre Process Identifier ou PID

Les processus peuvent être créés dynamiquement:

P(1,3)

No d’instances à l’initialisation

P(0, )

No max d’instances

No illimité d’instances

Page 14: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

14

Block_3:aType

Block_4:aType

System SDLexample2Block Types

path

toEnv1 toEnv2

[m1]

[m1]

[m4] [m4]g1

g2g1g2

aType

block type block instances

typeofinstancegate

references

Un système qui consiste en deux Blocks ayant la même structure, décrite dans aType.Un gate est un point de connexion abstrait qui se reproduit dans toutes les instances d’un type

Page 15: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

15

Intérieur d’un Block Type

Block Type aType

block type name

Process_3

Process_4

[m4]

[m1]

[m5]gatereference

gate

sr4

sr5

sr6

gate name

g1

g2

[m4]

[m1]

[m4]

Signaux permis à travers porte

g2

[m4]

g1

Page 16: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

16

Détails

Les blocs peuvent contenir des sous-blocs ou aussi des processus

Les déclarations de signaux, listes de signaux, etc., peuvent être à tous les niveaux Encourage la bonne pratique de faire les déclarations au

niveau le plus interneUML 2000 a introduit le concept d’agent, qui peut

fonctionner comme un système, un block, un processus Des agents peuvent inclure des agents

Page 17: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

17

Behaviour, Comportement

Seulement les processus peuvent avoir un comportement Le comportement définit une machine à états finis étendue (EFSM) Modèle:

Chaque processus a une (et seulement une) file d’entrée à travers laquelle il peut recevoir des signaux

Cette file est infinie théoriquement, mais finie en pratique Signaux de sources différentes sont ajoutés à la même file à leur arrivée

Tandis que dans le modèle CFSM pur (Chap. 2) un proc a deux canaux pour chaque processus qui lui est connecté – un par direction

Quand un signal en tête d’une file d’entrée d’un processus est égal au signal d’entrée qui cause une transition d’état possible pour l’état courant du processus, cette transition est effectuée et le signal est enlevé de la file

Page 18: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

18

Communication entre processus en SDL

P1

P2

P3…

Chaque proc a sa propre file d’entrée, une seule

Un proc peut insérer des signaux dans sa propre file

Page 19: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

19

Communication dans modèle CFSM (Chap. 2)

P1

P2

P3…

Modèle CFSM ≠ Modèle SDL!Dans CFSM, un proc a une file d’entrée (et de sortie) pour chaque autre proc avec lequel il communique

Page 20: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

20

Transitions d’états en SDL

En principe, le modèle d’automate de SDL est le modèle Mealy:

Cependant ce modèle a été très élargi en SDL. Les transitions peuvent être des programmes de complexité

arbitraire

entrée / sortie

Page 21: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

21

Transitions en SDL

Une transition contient une entrée au début Sauf pour le cas de garde… (à voir)

Et peut contenir 0 ou plusieurs sorties Même une boucle de sorties…

Page 22: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

22

SDL Behaviour – Comportement

state1

m5

m2

state2

état

entrée

m4

m4

state3

prochain état

Process p1

state1

état initial

sortie

Observez les symboles pour les entrées, les sorties, et les états

Page 23: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

23

Variables

Les déclarations sont séparées par des virgules, à la fin de toutes il y a un ;

DCL v1 INTEGER, v2 PID, v3 BIT, v4 OCTET, v5 DURATION;

Identificateur de proc

Pour la minuterie

0 ou 1

huit bits

Nom de variable

Type de variable: entier

Page 24: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

24

Entrée de valeurs

http://www.sdl-forum.org/sdl88tutorial/3/signals.htm

Page 25: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

25

Mécanismes d’interaction et transitions

Si à un moment donné la file d’entrée n’est pas vide, le premier signal en est enlevé

S’il y a une transition correspondante, elle est exécutée

Sinon le message est écarté, à moins que… (save!) Observez différence par rapport au modèle CFSM

Dans CFSM, ceci serait une réception non-spécifiée

Page 26: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

26

SAVEDans cet exemple, le signal reste dans le canal. Si p.ex. il a un C suivi par un A, * la transition A est effectuée, A est enlevé du canal * mais C reste dans le canal dans l’ordre d’arrivée.Il sera reproposé au prochain état (au lieu d’être écarté).

save

http://sdl-forum.org/sdl88tutorial/4/semantics_of_the_communication.htm

Page 27: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

27

Variables PID (v. Unix)

Chaque signal d’entrée porte automatiquement le PID du proc qui l’a envoyé Chaque processus a une var prédéfinie SENDER Quand un signal d’entrée est reçu, la value du PID de l’envoyeur est

affecté à SENDER Autres PIDs prédéfinis:

SELF: le PID de ce processus PARENT: le processus qui a créé ce processus OFFSPRING: le processus le plus récemment créé par ce processus

Les PIDs sont générés automatiquement par le système d’exécution, donc l’usager pourrait avoir quelque difficulté à les reconnaître…

Page 28: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

28

Minuterie

Actions avec minuterie SET: Une minuterie est amorcée avec une valeur

Le langage ne spécifie pas les unités de temps Les outils normalement utilisent les millisecondes

RESET: Annule une minuterie déjà amorcée EXPIRY: Notification que la minuterie a expiré

Résultat: un message d’expiration avec un nom qui est celui de la minuterie est mis dans la file d’entrée du processus (!) Ceci veut dire que une temporisation pourra être reçue

quelque temps après

Page 29: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

29

Minuteries, timers

set(now+5.0,t1) Amorce minuterie t1Temporisation 5.0 “unités de temps” de maintenant

state1

t1 m2

reset(t1)

TIMER t1;

Rec. message d’expiration de t1Annulation de minuterie

Déclaration de t1

Page 30: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

30

SDL Process with Timers and Queues (O.Monkewich)

SDL Process

Input Queue (per process)

Timer

Synchronize withglobal time

Get valueof NOW

Ask for valueof NOW

Send signal to another process

Get signal fromanother process

(queue always open)

Place timer signal into the queue

SET, RESET

Send signal to processas soon as have one

current timeNB: diagramme utile, mais simplifié.

Page 31: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

31

Critique du concept de file en SDL

Les files premier-arrivé-premier servi en SDL fournissent un mécanisme fixe de communication entre blocs et processus

Dans la vie réelle, nous pouvons avoir plusieurs types de files: Avec priorité, p.ex. messages peuvent se dépasser Avec perte de messages . . .

Ces différents types de files sont difficiles à exprimer en SDL, qui ne connaît qu’un seul type de file

Page 32: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

32

Programmer les transitions

Une transition, causée par une entrée du canal ou une garde, peut contenir un programme entier, impliquant 0 ou plusieurs sorties en positions différentes

Pour programmer ces transitions, plusieurs éléments sont fournis, correspondant aux bien connus organigrammes (flow-charts)

programme

état

état

Page 33: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

33

Exemples d’éléments qui peuvent être utilisés dans une transition

x := 0 Affectation de variables

Prcd_name Appel de procédures

Prcs_name Création d’instance de processus

Stop

Page 34: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

34

Décisions dans transitions

Opérateurs: <, <=, >, >=, =, /=

x = 3true

false

x

=2= 1 else

variable

conditions

Condition logique

Page 35: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

35

Gardes

state1

m3

state2

m4

m1

state3

x = 5

x < 0

Nous venons ici s’il n’y a pas d’entrée appropriée pour l’état et la cond est vraie

DCL x INTEGER;

Condition garde

Si condition vraie on vient ici

La garde n’est pas nécess. reliée à la dernière entrée

Page 36: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

36

Fonctionnement des transitions avec gardes

On contrôle la file d’entréeS’il y a un signal approprié dans la file d’entrée, on suit

la transition pour ce signalSi la file est vide ou il n’y a pas un signal attendu, mais

la garde est vraie, on suit la transition de la garde

Page 37: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

États imbriqués, types d’états (diagramme par Rolv Braek)

En SDL 2000, un état peut contenir des autres états et même des processus entiers

Nous pouvons aussi avoir des ‘types’ d’états qui peuvent être instanciés

Page 38: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

38

Environnement

L’environnement est connecté au système comme un autre processus

L’environnement est supposé savoir quels messages envoyer à un moment donné, sinon ils seront écartés

Page 39: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

39

SDL/GR et SDL/PR http://www.sdl-forum.org/sdl2000present

Erreur ici…

Page 40: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

40

Compilation, validation, test, etc

Le meilleurs outils SDL permettent de Compiler du C++, ou Java… à partir de SDL Valider l’SDL par rapport à des scénarios présentés comme

MSC (voir après) Générer des données de test qui peuvent être utilisées pour

voir si une implantation correspond à la spec SDL Outil TTCN à discuter plus tard

Page 41: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

41

Beaucoup de ressources dans le www http://www.sdl-forum.org/ http://www.sdl-forum.org/sdl88tutorial/ http://www.sdl-forum.org/sdl2000present/ http://www.sintef.no/time/elb40/html/elb/sdl/sdl_t01.htm http://www.sintef.no/time/elb40/html/elb/sdl/sdl_t01.htm#30345 www.cs.tut.fi/kurssit/TLT-9806/RolvBraekSDL.pdf

Sources utilisées dans ce cours, merci!

La norme officielle SDL est disponible:

http://www.itu.int/ITU-T/studygroups/com10/languages/Z.100_1199.pdf

Page 42: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

42

Message Sequence Charts

Figures prises dehttp://www.item.ntnu.no/fag/ttm4115/MSC_HTML-version/

Site utilisé Avec remerciements!

Malheureusement ce site n’a pas été gardé à jour et quelques liens ne fonctionnent pas

Page 43: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

43

Introduction à MSC

Langage graphique et textuel pour spécifier les séquences d’événements dans un système Semblables aux Diagrammes de séquence (sequence diagrams) de

UML Utilisé depuis longtemps en télématique, puis normalisé par l’ITU Utilisé avec l’SDL, est la notation par laquelle les scénarios d’un

système SDL sont présentés Les outils SDL supportent la notation MSC Normalisation amorcée en 1990, stable depuis 1996 Notation aussi assez complexe Deux parties:

MSC réguliers montrent directement les messages possibles

MSC haut niveau (HLMSC) montrent la corrélation entre MSC réguliers

Page 44: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

44

MSC notation de base 1: instances

Page 45: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

45

MSC Notation de base 2: messages

Page 46: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

46

MSC Notation de Base 3: conditions

L’AC system fait ‘Card out’ avant d’envoyer l’OK, mais l’usager voit les deux événements dans l’ordre inverse

Page 47: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

47

Boucles et choix dans MSC

boucle infinie

choix

Les boîtes arrondies sont des références à des MSC

Page 48: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

La sémantique est assez complexe

loop: nous pouvons avoir des conditions complexes d’itération Exemple simple: loop <0,3>

alt: Une seule des alternatives est exécutée Normalement les alternatives ont des conditions de garde, et

seulement les alternatives pour lesquelles la garde est vraie peuvent être exécutées

48

Page 49: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

49

High-Level MSC (HMSC)Un HLMSC est essentiellement une carte topographique qui combine plusieurs MSCs. Il ne montre pas de messages.

La flèche veut dire que après la fin d’un MSC il y a l’autre

Dans chaque boîte il y a un MSC

condition

Page 50: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

50

Parallel merge dans HMSC

Cet HLMSC définit l’entrelacement des actions indiquées dans les deux MSC qu’il contient

par

Page 51: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

51

L’outil montre les séquences d’événements correspondant aux comportements d’une spec SDL sous forme d’MSC

On peut aussi donner une spec SDL et un MSC à l’outil et lui demander si cet MSC est un comportement permis pour une spec donnée

MSC et SDL dans les outils de simulation SDL

Page 52: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

52

Flèches horizontales ou diagonales?

Dans les MSC, la dimension verticale représente le temps, donc il serait plus logique de dessiner les flèches en diagonale ! Temps qui passe pendant la transmission du message

Cependant la norme MSC représente les flèches en horizontal, probablement pour simplifier et sauver de l’espace…

Page 53: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

53

Conclusions sur SDL et MSC

Deux notations très expressives Beaucoup de syntaxe pour représenter différents concepts utiles dans la

conception de protocoles Relation directe avec l’implémentation (contrairement aux algèbres de proc.) Excellent outils

Qui intègrent les deux notations Utilisation industrielle Cependant, la simplicité est illusoire

Un protocole réel peut demander un volume plein de dessins, il ne sera pas facile à lire…

Étant donné la complexité du langage, la sémantique est aussi très complexe Absence de propriétés puissantes comme les règles de simplification que nous

avons vu au sujet des algèbres de processus

Page 54: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

54

Rélation avec UML (Universal Modeling Language)

UML: une norme de l’OMG pour des notations de conception de logiciel

Au moins13 notations graphiques sont incluses dans UML!Notations reliées à ce que nous avons vu dans ce cours:

UML State Machine Diagrams sont semblables à SDL UML Interaction Diagrams sont semblables aux MSC

SDL et MSC restent dominants dans le domaine des télécoms, les notations UML sont plutôt dans le domaine du génie logiciel

Vivaces discussions sur comment intégrer ces notationsBeaucoup de ressources web dédiées à ce sujethttp://www.item.ntnu.no/fag/ttm4115/sdl-2000.htm

Page 55: 1 Chapitre 5 SDL et MSC w3.uqo.ca/luigi. 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons.

Sources

Nombreuses sources sur MSC, faciles à trouver par des recherches web

Norme MSC officielle: http://www.itu.int/rec/T-REC-Z.120-200404-I/fr

55