La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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

Présentations similaires


Présentation au sujet: "Chapitre 5 SDL et MSC w3.uqo.ca/luigi."— Transcription de la présentation:

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 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

3 Les variables comme abréviations
Les variables représentant les données peuvent être enlevées mais la machine à états pourrait devenir infinie ?1 ?4 ?3 ?x ?2 !1 !2 !3 !4 etc . . . !x 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 Machine à états qui accepte une valeur pour une variable x (disons un entier) et l’émet ensuite

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 connu ESTELLE 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 base Il y a aussi des autres langages pour les EFSMs, mais ils ont été d’utilisation beaucoup plus limitée

5 Introduction à SDL

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 1972 L’idée était de créer un langage pour la description des protocoles de signalisation téléphonique Vers la fin des années 1980, le langage fut étendu pour pouvoir spécifier les protocoles, surtout OSI Comme toutes les normes ITU, le langage est révisé tous les quatre ans Cependant les révisions sont toujours compatibles, donc ce que vous pourriez apprendre sur les vieilles versions est encore valable

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ées SDL 1988 vit une stabilisation sur laquelle on a bâti ultérieurement En 1992 on ajouta l’orientation objet En 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 UML Peu de changements dans les dernières années

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

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

10 Structure à haut niveau: système, contient des blocks
System SDLexample signaux en sortie [m2] Block_1 nom de canal toEnv2 toEnv1 [m3] signaux en entrée [m1] Block_2 path bloc [m4] Signaux permis dans ce canal canal environnement Les canaux sont des mileux de transm. avec files d’attente

11 Déclarations de signaux (dans un système ou bloc ou processus)
System SDLexample SIGNAL m1, m2, m3(INTEGER), m4, m5; paramètres Signaux sans paramètres

12 Dans un Bloc (un système est composé de blocs, les blocs sont composés de processus)
nom de bloc Block Block_1 sr1 SIGNAL m4, m5; Process_1 sr3 [m1] [m4] sr2 Process_2 signal route [m5] nom de signal route processus Signal routes livrent aux files d’entrée des processus

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: No max d’instances P(1,3) P(0, ) No illimité d’instances No d’instances à l’initialisation

14 Block Types System SDLexample2 [m1] Block_3: aType toEnv2 toEnv1 g2
type of instance path g1 gate references [m4] [m4] aType block type block instances 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

15 Intérieur d’un Block Type
block type name gate name Block Type aType g1 gate g1 [m4] sr4 [m4] [m4] Process_3 sr6 g2 g2 [m1] [m4] sr5 [m1] Process_4 gate reference [m5] Signaux permis à travers porte

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 interne UML 2000 a introduit le concept d’agent, qui peut fonctionner comme un système, un block, un processus Des agents peuvent inclure des agents

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

18 Communication entre processus en SDL
Chaque proc a sa propre file d’entrée, une seule P1 P3 P2 Un proc peut insérer des signaux dans sa propre file

19 Communication dans modèle CFSM (Chap. 2)
P3 P2 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

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

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…

22 SDL Behaviour – Comportement
Observez les symboles pour les entrées, les sorties, et les états Process p1 état initial state1 état entrée m4 m2 m5 m4 state1 sortie state2 state3 prochain état

23 Variables DCL v1 INTEGER, v2 PID, v3 BIT, v4 OCTET, v5 DURATION;
Type de variable: entier Nom de variable DCL v1 INTEGER, v2 PID, v3 BIT, v4 OCTET, v5 DURATION; Identificateur de proc 0 ou 1 huit bits Pour la minuterie Les déclarations sont séparées par des virgules, à la fin de toutes il y a un ;

24 Entrée de valeurs

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

26 SAVE Dans 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

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…

28 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

29 Minuteries, timers set(now+5.0,t1) state1 TIMER t1; t1 m2 reset(t1)
Amorce minuterie t1 Temporisation 5.0 “unités de temps” de maintenant state1 TIMER t1; t1 m2 reset(t1) Déclaration de t1 Rec. message d’expiration de t1 Annulation de minuterie

30 SDL Process with Timers and Queues (O.Monkewich)
Place timer signal into the queue Get signal from another process (queue always open) SET, RESET Timer SDL Process Send signal to process as soon as have one Input Queue (per process) Get value of NOW Send signal to another process Synchronize with global time Ask for value of NOW current time NB: diagramme utile, mais simplifié.

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

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) état programme état

33 Exemples d’éléments qui peuvent être utilisés dans une transition
Affectation de variables Prcd_name Appel de procédures Stop Prcs_name Création d’instance de processus

34 Décisions dans transitions
variable Condition logique x = 3 true x false = 1 =2 else conditions Opérateurs: <, <=, >, >=, =, /=

35 Gardes state1 DCL x INTEGER; m1 x < 0 x = 5 m4 m3 state3 state2
Condition garde x = 5 m4 m3 state3 Si condition vraie on vient ici state2 Nous venons ici s’il n’y a pas d’entrée appropriée pour l’état et la cond est vraie La garde n’est pas nécess. reliée à la dernière entrée

36 Fonctionnement des transitions avec gardes
On contrôle la file d’entrée S’il y a un signal approprié dans la file d’entrée, on suit la transition pour ce signal Si 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

37 É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

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

39 SDL/GR et SDL/PR http://www.sdl-forum.org/sdl2000present
Erreur ici…

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

41 Beaucoup de ressources dans le www
Sources utilisées dans ce cours, merci! La norme officielle SDL est disponible:

42 Message Sequence Charts
Figures prises de Site utilisé Avec remerciements! Malheureusement ce site n’a pas été gardé à jour et quelques liens ne fonctionnent pas

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

44 MSC notation de base 1: instances

45 MSC Notation de base 2: messages

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

47 Boucles et choix dans MSC
boucle infinie choix Les boîtes arrondies sont des références à des MSC

48 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

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 condition Dans chaque boîte il y a un MSC

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

51 MSC et SDL dans les outils de simulation SDL
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

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…

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

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 notations Beaucoup de ressources web dédiées à ce sujet

55 Sources Nombreuses sources sur MSC, faciles à trouver par des recherches web Norme MSC officielle:


Télécharger ppt "Chapitre 5 SDL et MSC w3.uqo.ca/luigi."

Présentations similaires


Annonces Google