Vous êtes sur la page 1sur 18

Cours 4TC 2006

Les langages SDL et MSC

Jean-Philippe Babau

INSA Lyon

jean-philippe.babau@insa-lyon.fr CITI - IF - INSA 1

Cours 4TC 2006

Introduction
Modlisation
description abstraite
spcification, implantation

Validation / vrification
proprit du cahier des charges
proprits applicatives (absence de deadlock, )
analyse de performance

Langages formels
smantique non ambigu
LOTOS, Estelle, SDL

Techniques de validation
Simulation (exhaustive, alatoire, test)
Preuves (logiques temporelles, model-checking, on-the-fly)

jean-philippe.babau@insa-lyon.fr CITI - IF - INSA 2


Cours 4TC 2006

Plan

Les langage SDL et MSC


Principes

Vrification, tests

Gnration de code

UML / SDL

jean-philippe.babau@insa-lyon.fr CITI - IF - INSA 3

Cours 4TC 2006

SDL : Specification and Description Language

Langage standard
Smantique dfinie
Langage des tlcom (ITU)
Langage normalis (SDL 88, SDL 92, SDL 96, SDL2000)

Principes
Langage graphique et textuel
Machines tats finis communicantes

Outils
ObjectGode, RTDS de PragmaDev, Tau de Tllogic
Edition
Vrification/Validation/test
MSC
observateurs
Gnration de code

jean-philippe.babau@insa-lyon.fr CITI - IF - INSA 4


Cours 4TC 2006

Principes gnraux

- Dcomposition arborescente
- system, block, substructure, process, procedure

- Communication
- Canaux de communication (canaux et routes)
- Signaux avec paramtres optionnels

- Comportement dans les process et les procdures

- Typage des donnes (ADT : Abstract Data Type)

jean-philippe.babau@insa-lyon.fr CITI - IF - INSA 5

Cours 4TC 2006

Structure

jean-philippe.babau@insa-lyon.fr CITI - IF - INSA 6


Cours 4TC 2006

Le system

- Structure
- block, canaux de communication

- Dclaration des signaux, des types

System test signal s1,s2(integer);


c1
signal s3,s4 ;
[s1]
c2 c3
Block1 Block2
[s2] [s3] [s4]

jean-philippe.babau@insa-lyon.fr CITI - IF - INSA 7

Cours 4TC 2006

Le block

- Dcomposition arborescente
- substructure

- Machine tat fini


- process
- 1 ou plusieurs instances, un PID par instance
- (i,j) : cration statique de i instances, et j nb
max de cration dynamique dinstances
- Excution parallle des process

- Communication par les routes

- Dclarations
- Signaux internes
- procedure, types

jean-philippe.babau@insa-lyon.fr CITI - IF - INSA 8


Cours 4TC 2006

La communication
-Communication asynchrone par signal
- Le signal vhicule des paramtres
- Emis par une instance de process
- Destinataire
- une instance ou toutes les instances
- un seul consommateur (indterministe)
- gestion en FIFO sauf si signal prioritaire (priority)

Instance 2 de
processus P
Instance 1 de
processus P
Instance 1 de
processus Q

jean-philippe.babau@insa-lyon.fr CITI - IF - INSA 9

Cours 4TC 2006

Description du comportement des process

Etat
Un tat de dpart obligatoire dcl val T_val ;

Pas dtat hirarchique


Pas d tats concurrents e1
Un tat de fin
s1 s2

Transition Procedure1
Signal ou garde dclenchant
val := ;
Corps
Appel de procedure, task
Alternatives c
mission de signaux s2 s3
Retour dans un tat
- s4
Identique ou diffrent
e2
Hypothse RTC Run To Completion
i-e transition non premptible

jean-philippe.babau@insa-lyon.fr CITI - IF - INSA 10


Cours 4TC 2006

Description des process

- Transition
- (1) un signal non attendu est perdu sauf si sauvegarde explicite (save) du
signal
e1 e1 e1 e1
- (2) transition spontane S1 none < x >3> S1

- (3) transition continue < x >3>


- (4) garde (1) (2) (3) (4)
- (sauve s1 tant que x<3)

- Facilit dcriture
- Tous les tats, tous les signaux *

* e1
S1 *

jean-philippe.babau@insa-lyon.fr CITI - IF - INSA 11

Cours 4TC 2006

Gestion des identifiants de process

PID e1 e1
Type : pid
Identifiant du process : variable self s1 s1

communication Ack to sender Ack via C1


Rception
pid de lmetteur du dernier signal reu : sender e2 e2
Filtrage en rception : from
mission
Destinataire explicite : to
Canal explicite : via Process2
Process1

Cration dynamique lePID = offspring


dernier process cr : variable offspring
crateur : variable parent
Process2 PIDCreat = parent

jean-philippe.babau@insa-lyon.fr CITI - IF - INSA 12


Cours 4TC 2006

Paramtres formels de process

Process1 Process2

FPAR
e1

s1 etat BOOLEAN,
Val INTEGER ;
Process2(TRUE, 25)
DCL

e2

e1 Etat et Val
sont initialiss la cration
du process

jean-philippe.babau@insa-lyon.fr CITI - IF - INSA 13

Cours 4TC 2006

Les donnes
Type Abstrait de donnes
Type prdfinis (INTEGER, REAL, NATURAL, BOOLEAN,
CHARACTER, CHARSTRING, DURATION, TIME, Pid, ARRAY,
STRUCT, POWERSET)
SYNONYM, SYNTYPE, NEWTYPE, LITERALS

Donnes encapsules

Propre chaque instance de process

Dclaration : dcl val Type ;








jean-philippe.babau@insa-lyon.fr CITI - IF - INSA 14


Cours 4TC 2006

Les donnes

Les oprateurs
Comparaison = /= > <=
oprateurs logiques or and not xor
Oprateurs numriques + - * /
Affectation :=
tableau make! extract! modify!
utiliser uniquement dans les axiomes

jean-philippe.babau@insa-lyon.fr CITI - IF - INSA 15

Cours 4TC 2006

Les actions

Task
Affectations Val1 := v0,
Val2 : = v1

Appel de procdure
Suivant(3,4,I)
Local

Distant B := call Suivant(4,4,J)


mission implicite dun signal
tat implicite dattente
RPC

Conditionnelles
expboolenne valeur

(TRUE) (FALSE) (1) (2) (ELSE)

jean-philippe.babau@insa-lyon.fr CITI - IF - INSA 16


Cours 4TC 2006

Les actions

Labels
Utiles pour les boucles I := 0

goto : viter suiv

I=N

(TRUE) (FALSE)

Action

I := I + 1

suiv

jean-philippe.babau@insa-lyon.fr CITI - IF - INSA 17

Cours 4TC 2006

SDL exemple

[Dem,Libere]
tache ressource
(2,2) [OK] (1,1)

libre occupe occupe

Dem Dem Libere

occupant := SENDER bloque := SENDER


bloque = null
OK to SENDER occupe

(TRUE) (FALSE)
occupe
occupant = null occupant = bloque

DCL occupant PID ; bloque = null


libre
DCL bloque PID ;
OK to occupant

occupe

jean-philippe.babau@insa-lyon.fr CITI - IF - INSA 18


Cours 4TC 2006

SDL exemple

si Libere quand libre : ?


si re-demande : ?
si libere par mauvaise tche : ?
tat occupe / demande : ?
si plusieurs tches : ?

jean-philippe.babau@insa-lyon.fr CITI - IF - INSA 19

Cours 4TC 2006

Description de procdures

FPAR IN
Dclaration Suivant Index1 INTEGER,
Taille INTEGER,
IN/OUT
Algorithme Index2 INTEGER;
Dbut RETURNS BOOLEAN ;
DCL
Fin
tat

Index2=Index1 + 1

Paramtres formels Index1= Taille

Entre : IN
(TRUE) (FALSE)
Entre/sortie : IN/OUT
Retour : RETURNS Index2 = 1

TRUE FALSE

jean-philippe.babau@insa-lyon.fr CITI - IF - INSA 20


Cours 4TC 2006

Description de procdures
Appel de procdure externe C
Signature
Simulation
Gnration de code
dition de lien

procedure lireCapteur

fpar in / out X integer,


procedure lireCapteur;
fpar :
X:= call lireCapteur() returns X integer ;
;
external

dcl X integer ;
dcl Y integer;

jean-philippe.babau@insa-lyon.fr CITI - IF - INSA 21

Cours 4TC 2006

Description de procdures

tat implicite du process

Traitements amonts
Etat1

signal1 DemService()
Ce signe veut dire que les messages *
(soit tous sauf Rmessage() ) sont
AttenteReponse
procedure conservs dans la queue sans tre
traits

Rep1 R DemService () *

Etat2
Traitements avals

jean-philippe.babau@insa-lyon.fr CITI - IF - INSA 22


Cours 4TC 2006

Les donnes partages


Modles de partage
revealed/view
multi-lecteur/mono-crivain, partage dune donne entre 2 processus dun mme bloc
export/import + remote
multi-lecteur/multi-crivain,

P1 P2

dcl exported d1 integer; imported d1 integer;


dcl d4 integer;
dcl pidi1P1 pid;

export(d1) d4 :=
import(d1,pidi1P1)

export(d1) i1P1.d1

jean-philippe.babau@insa-lyon.fr CITI - IF - INSA 23

Cours 4TC 2006

SDL et le temps

Donnes
Deux types prdfinis: Time et Duration
Estampille locale en utilisant Now

Timer (temporisateur )
Dclar et utilis par un seul process
Actions : Armer ( set ), Arrter (reset)
Attente dun signal Now +10

set (reveil1);
timer reveil1 := 10 ; set (now + 100, reveil2);
reveil1
timer reveil2 ;
reset (reveil1);

jean-philippe.babau@insa-lyon.fr CITI - IF - INSA 24


Cours 4TC 2006

SDL et les types


Hritage simple
TP
Types paramtrs
Paramtre formel de contexte
System, block TNP Inst
Procdure, signal, synonyme, type de donnes
Process
Process, procdure, signal, synonyme, type de donnes
Procdure
Process, procdure, signal, synonyme, variable, rveil type de donnes

Type non paramtr


Instance de type non paramtr

Spcialisation (inherits)
Ajout
Modification (virtual / redefined)
Block, processus, procedure, transition
jean-philippe.babau@insa-lyon.fr CITI - IF - INSA 25

Cours 4TC 2006

Vrification ( Objectgode )
Simulation
Point d'arrt sur conditions (tats, valeurs)
Mode pas pas : mise au point
Mode alatoire : test
Mode simulation exhaustive
Preuve sur les tats
Si pas d'explosion
Tests si donnes (domaine d'entre non parcouru)

jean-philippe.babau@insa-lyon.fr CITI - IF - INSA 26


Cours 4TC 2006

Vrification avec ( Objectgode )


Diagramme de squence (formalisme MSC : Message Sequence Chart)
Spcification, gnration lors de la simulation
Observateur

signal

modeleOOvsimul inst_cmd_robot_pioneer
inst_proxy_donneeentreevit_rot inst_robot BLOCK /
BLOCK / syteme_reparti/
BLOCK / micro_controleur1
syteme_reparti/ syteme_reparti
/ /
micro_controleur1/ cmd_robot_pioneer
proxy_donneeentreevit_rot micro_controleur1
/robot
deconnectionp_vit_rot

new vit_rot( 0.0,0.0 )

nouvelleconsigne( 0.0,0.0 )
commandevit_rot( 0.0,0.0 )

jean-philippe.babau@insa-lyon.fr CITI - IF - INSA 27

Cours 4TC 2006

Message Sequence Charts (MSC)


Oprateurs de scnarii Nom
Parallle
Nom
Ou
Nom
Squence
Rptition Nom

Scnario terminal Nom

Scnario terminal Nom-instance


processus

Instance
signal
Cration dobjets

Fin dinstance

Etat

Timers (set, reset, expiration)


jean-philippe.babau@insa-lyon.fr CITI - IF - INSA 28
Cours 4TC 2006

MSC exemples
Exemple
Gestion led

Nom
Fonctionnement Nom
Exception

Nom
Allumage Extinction
Allum Eteint

User Appli User Appli led


Allume() Allum Allume() Eteint On()

Appel synchrone

A B
M()
RM()

jean-philippe.babau@insa-lyon.fr CITI - IF - INSA 29

Cours 4TC 2006

Vrification formelle

SDL -> UPPAAL

CADP (INRIA/Verimag)
IF

SDL SDL2IF IF LTS V&V

Aldbaran : bisimulation
Evaluator : logique temporelle
IF2IF
TGV : tests

Explosion
Rduction, interprtation

jean-philippe.babau@insa-lyon.fr CITI - IF - INSA 30


Cours 4TC 2006

Gnration de code : ObjectGode

Procdures externes Schma SDL Architecture


- mulation de lenvironnement system systeme

cT cC
IHM (si ncessaire)
acqu_joystick traitement cmd_robot_pioneer
vit_rot cmd

- fonctions
chgt_etat bumper

-machines
cMO
MAJ_ONOFF cC2
onoff

MAJ_Bumper
cC3

cMC

coeff
MAJ_Coeff
Suivi
cS

info -placement

Gnrateur de code

Code C
Code C
Code C

Intgration
Intgration
Intgration
Application

jean-philippe.babau@insa-lyon.fr CITI - IF - INSA 31

Cours 4TC 2006

ObjectGode

Machine virtuelle qui sappuie sur l'OS (WIN32, UNIX, RTOS)


tches, botes aux lettres, smaphores, socket

Architecture
placement statique des process SDL sur des machines
mono processus au sens OS
communication par socket
Une tche par machine en attente de signaux

Comportement
tats et transitions entirement grs
Actions sur les transitions en langage cible (C,C++)

jean-philippe.babau@insa-lyon.fr CITI - IF - INSA 32


Cours 4TC 2006

ObjectGode

Concurrence
Une tche pour le systme, par block, par process, par instance de process
(selon l'OS)
Granularit variable

Une tche ddie aux timers


Gre une structure de donnes de tous les timers en attente
set (timerID,temps,liste de PIDs, paramtres)
reset(timerID)
timeout : plus faible timer, envoi de messages aux instances en attente
Unit de temps

Affectation des priorits


Un niveau de priorit par dfaut (200 sous VRTX), modifiable

jean-philippe.babau@insa-lyon.fr CITI - IF - INSA 33

Cours 4TC 2006

UML / SDL
SDL 2000 / UML 2.0
SDL2000
association : commentaire, tat composite
pas d'outil
UML 2.0
UML standard objet, Tllogic dans l'OMG
langage d'action compatible avec SDL
Diagramme de squence : les MSC

UML -> SDL


Restrictions
Pas d'hritage multiple, pas d'associations binaires, pas de contraintes OCL
Classe -> process / type de donnes
tats -> remise plat
Relation
Hritage -> type
Association -> pid

SDL : une smantique pour UML


jean-philippe.babau@insa-lyon.fr CITI - IF - INSA 34
Cours 4TC 2006

Utilisation de SDL

Langage pour la description de systmes distribus discrets

Implmentation
Prcisions sur "comment le modle s'excute"
Respect de la smantique SDL
Optimisation de la QoS

Liens avec d'autres formalismes


Techniques formelles de vrification
Systmes continus : environnement du systme

Mthodes de dveloppement
Modles, schmas types
Formalisation
Prise en compte de tous les aspects

jean-philippe.babau@insa-lyon.fr CITI - IF - INSA 35

Cours 4TC 2006

Rfrences

Normes SDL et MSC


ITU-T Recommendation Z.100, Specification and Design Language (SDL) , 1996
ITU-T Recommendation Z.100, Specification and Design Language (SDL2000) , 1999
ITU-T Recommendation Z.120, Diagrammes des squences de messages (MSC) , 1999

Prsentation du langage
SDL, Modlisation de protocoles et systmes ractifs, Zoubir Mammeri , Ed
Herms Science Europe, 2000, ISBN: 2-7462-0166-6

jean-philippe.babau@insa-lyon.fr CITI - IF - INSA 36

Vous aimerez peut-être aussi