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

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.

Présentations similaires


Présentation au sujet: "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."— Transcription de la présentation:

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

2 2 Modèles à états étendus Nous avons décrit plusieurs méthodes de description de protocoles, mais nous avons parlé surtout de laspect 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 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 nutilise que des constantes (cest une machine infinie…). Elle restera finie si on fait une hypothèse sur la valeur max de x, p.ex. 4 ?4 !4

4 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 lISO en parallèle avec LOTOS et est encore utilisé Il est semblable à lSDL mais utilise le langage Pascal comme base Il y a aussi des autres langages pour les EFSMs, mais ils ont été dutilisation beaucoup plus limitée

5 5 Introduction à SDL

6 6 Histoire SDL est une norme de lUIT-T (ou en anglais ITU-T) S pecification and D escription L anguage Le projet fut amorcé par le CCITT (ancien nom de lITU) en 1972 Lidé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 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 lorientation objet En 1996 on ajouta ASN.1, une notation pour la spec des structures de données et les Message Sequence Charts Aujourdhui SDL et MSC sont deux notations intégrées À partir de SDL2000 il y a eu un effort dintégration avec UML Peu de changements dans les dernières années

8 8 Utilisation et outils À cause de la grande autorité de lITU, le langage fut bientôt adopté par lindustrie des télécom, cependant encore aujourd'hui il y a peu de boîtes qui lutilisent à fond Elles sont surtout en Europe La compagnie Telelogic (maintenant IBM) a développé une suite doutils appelée Tau Inclut: support pour lutilisation de SDL et MSC Pour voir si un scénario MSC est compatible avec une spec SDL support pour limplé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 9 Brève intro à lSDL (remerciements au prof. Alan Williams) LSDL 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 lorientation objet Behaviour - Comportement Seulement les processus ont un comportement Basé sur le modèle des machines à états finis étendues

10 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 permis dans ce canal nom de canal signaux en sortie signaux en entrée Les canaux sont des mileux de transm. avec files dattente

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

12 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 SIGNAL m4, m5; Signal routes livrent aux files dentrée des processus

13 13 Processus À moins de spécification explicite, une instance dun processus est créée à lamorç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 dinstances à linitialisation P(0, ) No max dinstances No illimité dinstances

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

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

16 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 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 dentré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 dune file dentrée dun processus est égal au signal dentré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 18 Communication entre processus en SDL P1 P2 P3 … Chaque proc a sa propre file dentrée, une seule Un proc peut insérer des signaux dans sa propre file

19 19 Communication dans modèle CFSM (Chap. 2) P1 P2 P3 … … Modèle CFSM Modèle SDL! Dans CFSM, un proc a une file dentrée (et de sortie) pour chaque autre proc avec lequel il communique

20 20 Transitions détats en SDL En principe, le modèle dautomate 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 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 22 SDL Behaviour – Comportement state1 m5 m2 state2 état entrée m4 state3 prochain état Process p1 state1 état initial sortie Observez les symboles pour les entrées, les sorties, et les états

23 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

24 24 Entrée de valeurs

25 25 Mécanismes dinteraction et transitions Si à un moment donné la file dentrée nest pas vide, le premier signal en est enlevé Sil 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 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 lordre darrivée. Il sera reproposé au prochain état (au lieu dêtre écarté). save

27 27 Variables PID (v. Unix) Chaque signal dentrée porte automatiquement le PID du proc qui la envoyé Chaque processus a une var prédéfinie SENDER Quand un signal dentrée est reçu, la value du PID de lenvoyeur 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 dexécution, donc lusager pourrait avoir quelque difficulté à les reconnaître…

28 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 dexpiration avec un nom qui est celui de la minuterie est mis dans la file dentrée du processus (!) Ceci veut dire que une temporisation pourra être reçue quelque temps après

29 29 Minuteries, timers set(now+5.0,t1) Amorce minuterie t1 Temporisation 5.0 unités de temps de maintenant state1 t1m2 reset(t1) TIMER t1; Rec. message dexpiration de t1 Annulation de minuterie Déclaration de t1

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

31 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 quun seul type de file

32 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

33 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 dinstance de processus Stop

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

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

36 36 Fonctionnement des transitions avec gardes On contrôle la file dentrée Sil y a un signal approprié dans la file dentrée, on suit la transition pour ce signal Si la file est vide ou il ny 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 38 Environnement Lenvironnement est connecté au système comme un autre processus Lenvironnement est supposé savoir quels messages envoyer à un moment donné, sinon ils seront écartés

39 39 SDL/GR et SDL/PR Erreur ici…

40 40 Compilation, validation, test, etc Le meilleurs outils SDL permettent de Compiler du C++, ou Java… à partir de SDL Valider lSDL 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 41 Beaucoup de ressources dans le www / / Sources utilisées dans ce cours, merci! La norme officielle SDL est disponible:

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

43 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 lITU Utilisé avec lSDL, est la notation par laquelle les scénarios dun 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 44 MSC notation de base 1: instances

45 45 MSC Notation de base 2: messages

46 46 MSC Notation de Base 3: conditions LAC system fait Card out avant denvoyer lOK, mais lusager voit les deux événements dans lordre inverse

47 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 ditération Exemple simple: loop 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

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

50 50 Parallel merge dans HMSC Cet HLMSC définit lentrelacement des actions indiquées dans les deux MSC quil contient par

51 51 Loutil montre les séquences dévénements correspondant aux comportements dune spec SDL sous forme dMSC On peut aussi donner une spec SDL et un MSC à loutil et lui demander si cet MSC est un comportement permis pour une spec donnée MSC et SDL dans les outils de simulation SDL

52 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 lespace…

53 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 limplé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 54 Rélation avec UML (Universal Modeling Language) UML: une norme de lOMG 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: 55


Télécharger ppt "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."

Présentations similaires


Annonces Google