Hiver 2004SEG2501 Chapître 41 Chapître 4 SDL – structure d’un système et son comportement
Hiver 2004SEG2501 Chapître 42 Contenu (1) SDL – langage normalisé par l’UIT (2) Les concepts principaux (3) Les composants: Block et Processus (4) Comportement d’un Processus Sommaire des symboles SDL
Hiver 2004SEG2501 Chapître 43 (1) SDL – langage normalisé par l’UIT Normalisé par l’Union Internationale des Télécommunications (Genève), première version (assez rudimentaire) en 1976, depuis de nouvelles versions tous les 4 ans Actuellement, intégration avec UML: SDL étant un profil de la version 2 de UML (à sortir) But du langage: Permettre la description précise des propriétés fonctionnelles –d’un système à construire –d’un système tel qu’il est construit
Hiver 2004SEG2501 Chapître 44 Portée du langage Peut être utilisé dans différentes phases du processus de développement Peut être utilisé à différents niveaux d’abstraction, en commençant par une vue orientée usager, et en allant vers des descriptions plus concrètes dépendant des décisions de conception N’est pas suggéré comme langage d’implantation, mais permet la génération automatique de code d’implantation SDL, c’est un langage, et non pas une méthodologie
Hiver 2004SEG2501 Chapître 45 (2) Les concepts principaux Comportement: –Un système décrit en SDL modélise le comportement par des processus concurrents, appelés Processus –Les dépendences comportementales entre les différentes composantes d’un système SDL sont modélisées par l’échange de messages, appelés Signaux –Le comportement d’un Processus est modélisé comme un automate d’états finis avec entrées et sorties (automate de type Mealy, aussi appellé Finite State Machine (FSM) en anglais, voir livre de Haugen, section 2.5.5) avec une file d’entrée de messages et étendu avec des variables d’états et de messages avec paramètres
Hiver 2004SEG2501 Chapître 46 (2) Les concepts principaux (suite) Structure: –La structure d’un système est décrite comme une hiérarchie d’agrégation de composantes –SDL distingue entre deux types de composantes: Un Block est une composante qui est décrite comme une composition de un ou plusieurs sous-composantes; des liens pour l’échange de message (entre sous-composantes et avec l’environnement de la composante) sont indiqués. Le système au complet est décrit comme un Block. Un Processus est une composante pour laquelle le comportement dynamique est défini explicitement (en forme d’automate). Les liens associés à un Processus sont appelés Signalroute, les autres (entre Blocks) sont appelés Channel. –En SDL, on peut définir un Block ou Processus individuel (instance unique) ou des types de Block ou Processus, c’est-à-dire des « classes ». Des instances des Processus définis comme types peuvent être créées dynamiquement lors de l’exécution d’un système SDL; les instances uniques sont créées lors de l’initialisation du système SDL.
Hiver 2004SEG2501 Chapître 47 Modèle d’un Processus SDL File d’entrée de messages (Signal) et automate étendu (EFSM)
Hiver 2004SEG2501 Chapître 48 (3) Les composantes: Block et Processus Définition des signaux Définitions du système et de ses composantes (Blocks) Définition des Processus définissant le comportement d’un Block Note: un bloc contient ou d’autres blocs ou des processus, mais jamais les deux.
Hiver 2004SEG2501 Chapître 49 Définition de signaux Il est nécessaire de déclarer chaque signal pour qu’il soit visible pour les blocs et processus qui les utilisent. La “chose” montrée dans la figure 4.8 ci-haut est appelée un symbole texte en SDL. Un diagramme SDL de Block ou Processus peut contenir plusieurs symboles de texte. Des commentaires peuvent être donnés en /* … */ dans un symbole texte ou en forme d’un symbole de commentaire graphique Une SIGNALLIST est une liste de signaux.
Hiver 2004SEG2501 Chapître 410 Exemple de définition de système Le système est défini en forme de Block
Hiver 2004SEG2501 Chapître 411 Explications Ceci représente une instance de Block unique nommée CentralUnit et en même temps une référence à sa définition donnée dans un document séparé Ceci représente un canal (Channel) nommé C sur lequel les messages de type Code vont vers la droite, et les messages contenus dans la liste de signaux validity vont vers la gauche
Hiver 2004SEG2501 Chapître 412 Explications (ii) Ceci représente un ensemble de 100 instances de blocs de type LocalStation. e et C sont des portes (Gate en anglais) qui représentent une terminaison de canal. Ceci représente une référence à la définition du type de bloc LocalStation. Cette référence définit la portée de la définition de type
Hiver 2004SEG2501 Chapître 413 Esquisse d’une LocalStation
Hiver 2004SEG2501 Chapître 414 Définition du type de bloc LocalStation
Hiver 2004SEG2501 Chapître 415 Correspondance entre description informelle et description en SDL
Hiver 2004SEG2501 Chapître 416 Esquisse d’un Panel
Hiver 2004SEG2501 Chapître 417 Définition d’une instance de bloc Panel
Hiver 2004SEG2501 Chapître 418 Explications Ceci représente une instance de processus, nommé PanelControl Ceci représente une SignalRoute (lien) entre processus, nommé K sur laquelle des signaux nommés Digit passent vers la gauche.
Hiver 2004SEG2501 Chapître 419 Définition du bloc LSControl (il contient seulement un processus, aussi nommé LSControl)
Hiver 2004SEG2501 Chapître 420 Vue d’ensemble de la structure du système de contrôle d’accès
Hiver 2004SEG2501 Chapître 421 (4) Comportement d’un Processus “The SDL way of describing an extended finite state machine (E-FSM)” Un processus en SDL est un objet acteur exécutant des actions (faisant partie de sa définition) qui dépendent des messages (signaux) qui se trouvent dans sa file d’entrée, et des valeurs des variables locales.
Hiver 2004SEG2501 Chapître 422 Exemple d’un FSM Notation: La transition de S1 à S2 est exécutée quand le message A est en tête de la file d’entrée, et une sortie C sera créée par la transition (et l’entrée A est consommée)
Hiver 2004SEG2501 Chapître 423 Définition d’un processus SDL équivalent au FSM ci-haut
Hiver 2004SEG2501 Chapître 424 Forme d’un diagramme de processus SDL En général, chaque transition a la forme suivante: Dans un état, normalement plusieurs transitions sont définies pour différents messages d’entrée. Le processus attend dans l’état actuel jusqu’à ce qu’une entrée se présente dans la file d’entrée. Le traitement des messages dans la file est FIFO, sauf pour les signaux sauvés (SAVE)
Hiver 2004SEG2501 Chapître 425 Définition du processus LSControl (partie 1)
Hiver 2004SEG2501 Chapître 426 Définition du processus LSControl (partie 2)
Hiver 2004SEG2501 Chapître 427 Notes L’annotation TO et FROM dans les diagrammes ci-hauts sont des commentaires. Les définitions des canaux et routes de signaux définissent déjà la transmission des messages. Voir ci-dessous pour la définition formelle de la transmission des messages en général. Le caractère * dans un symbole d’entrée représente tous les signaux qui ne sont pas explicitement mentionnés pour l’état en question. Le caractère – dans un symbole d’état suivant veut dire que l’état suivant est l’état d’où la transition est partie.
Hiver 2004SEG2501 Chapître 428 Différentes options pour définir la destination des sorties
Hiver 2004SEG2501 Chapître 429 Un canal peut être détaillé
Hiver 2004SEG2501 Chapître 430 Sommaire des symboles SDL
Hiver 2004SEG2501 Chapître 431 Sommaire des symboles SDL (II)