Académique Documents
Professionnel Documents
Culture Documents
Jean-Philippe Babau
INSA Lyon
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)
Plan
Vrification, tests
Gnration de code
UML / SDL
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
Principes gnraux
- Dcomposition arborescente
- system, block, substructure, process, procedure
- Communication
- Canaux de communication (canaux et routes)
- Signaux avec paramtres optionnels
Structure
Le system
- Structure
- block, canaux de communication
Le block
- Dcomposition arborescente
- substructure
- Dclarations
- Signaux internes
- procedure, types
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
Etat
Un tat de dpart obligatoire dcl val T_val ;
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
- 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
- Facilit dcriture
- Tous les tats, tous les signaux *
* e1
S1 *
PID e1 e1
Type : pid
Identifiant du process : variable self s1 s1
Process1 Process2
FPAR
e1
s1 etat BOOLEAN,
Val INTEGER ;
Process2(TRUE, 25)
DCL
e2
e1 Etat et Val
sont initialiss la cration
du process
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 ;
Les donnes
Les oprateurs
Comparaison = /= > <=
oprateurs logiques or and not xor
Oprateurs numriques + - * /
Affectation :=
tableau make! extract! modify!
utiliser uniquement dans les axiomes
Les actions
Task
Affectations Val1 := v0,
Val2 : = v1
Appel de procdure
Suivant(3,4,I)
Local
Conditionnelles
expboolenne valeur
Les actions
Labels
Utiles pour les boucles I := 0
I=N
(TRUE) (FALSE)
Action
I := I + 1
suiv
SDL exemple
[Dem,Libere]
tache ressource
(2,2) [OK] (1,1)
(TRUE) (FALSE)
occupe
occupant = null occupant = bloque
occupe
SDL exemple
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
Entre : IN
(TRUE) (FALSE)
Entre/sortie : IN/OUT
Retour : RETURNS Index2 = 1
TRUE FALSE
Description de procdures
Appel de procdure externe C
Signature
Simulation
Gnration de code
dition de lien
procedure lireCapteur
dcl X integer ;
dcl Y integer;
Description de procdures
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
P1 P2
export(d1) d4 :=
import(d1,pidi1P1)
export(d1) i1P1.d1
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);
Spcialisation (inherits)
Ajout
Modification (virtual / redefined)
Block, processus, procedure, transition
jean-philippe.babau@insa-lyon.fr CITI - IF - INSA 25
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)
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
nouvelleconsigne( 0.0,0.0 )
commandevit_rot( 0.0,0.0 )
Instance
signal
Cration dobjets
Fin dinstance
Etat
MSC exemples
Exemple
Gestion led
Nom
Fonctionnement Nom
Exception
Nom
Allumage Extinction
Allum Eteint
Appel synchrone
A B
M()
RM()
Vrification formelle
CADP (INRIA/Verimag)
IF
Aldbaran : bisimulation
Evaluator : logique temporelle
IF2IF
TGV : tests
Explosion
Rduction, interprtation
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
ObjectGode
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++)
ObjectGode
Concurrence
Une tche pour le systme, par block, par process, par instance de process
(selon l'OS)
Granularit variable
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
Utilisation de SDL
Implmentation
Prcisions sur "comment le modle s'excute"
Respect de la smantique SDL
Optimisation de la QoS
Mthodes de dveloppement
Modles, schmas types
Formalisation
Prise en compte de tous les aspects
Rfrences
Prsentation du langage
SDL, Modlisation de protocoles et systmes ractifs, Zoubir Mammeri , Ed
Herms Science Europe, 2000, ISBN: 2-7462-0166-6