Professional Documents
Culture Documents
Lecture 15 SDL
Bayu Erfianto
Laboratory of Computer System and Network Faculty of Informatics TELKOM Institute of Technology 2009
History of SDL
1968 ITU study of stored program control systems 1972 Specification, programming and HMI studies started 1976 Orange Book SDL Basic graphical language 1980 Yellow Book SDL Process semantics defined 1984 Red Book SDL Structure, data added. Definition more rigorous. Start of tools. User guide. 1988 Blue Book SDL (SDL-88) Effective tools. Syntax well defined formal definition. Language much as 1984.
By 1999 SDL was being used in a wide variety of applications outside the telecommunicati ons industry from medical equipment to the European Space Agency.
Customer
Design
Engineers
SDL-2000 MSC-2000
transformed by
Tools
Implementation Engineers
executes as
C++ etc.
Product
6
including III. issue in 2000; Z.105 Z.107 Z.109 Z.120 (11/99) (11/99) (11/99) (11/99) Annexes A and D, and Appendices I, I and Supplement 1 (04/96) SDL+ methodology. Annex F (formal definition) - scheduled for SDL combined with ASN.1 modules; SDL with embedded ASN.1; SDL combined with UML. Message Sequence Chart (MSC).
7
What is SDL?
The Specification and Description Language. An ITU standard since about 1988, extended 92, 96, 2000. Tailored to telecommunications applications. Has found acceptance in the industrial sector,
revisions are mainly industry (tool-vendor) driven. Has lost a little its clean formal basis. Part of the semantics is tool dependent these days. Comes as a textual/graphical specification formalism. Tool-vendors are embracing (each other and) the UML world.
SDL Symbol
a start symbol (not a state) a transition a state an enabling condition or a continuous signal? a comment a successor state a text extension
an input stimulus
process
a?
a STOP
an output a task
hello,
not more
process B
in textual SDL:
hello
10
A Regenerating Process
process C AGAIN
hello
hello
AGAIN
AGAIN
S2 b
FSM/FSA?
a/c
this
otherwise
if
i equals 0,
i=0 this
i!=0 that
that.
A nondeterministic one.
process D
true this
true that
that,
13
reads something first, which stimulates a remark, until either saying this, or if x>5 saying that.
something/remark
HUH
/that
14
d) xt e te us ex ist (m a
at most
s io en
n
SDLs rough design rationale: allow as much as possible to happen inside a single transition body, but avoid by all means to get stuck
referring to the process data in the state X i.e. before the input
om
t en
The execution policy of a transition: check the enabling condition (!). If true: check whether you can do the input. if so, do so, and do all the rest. if not, stay where you are.
X
15
Lets assume that we now know enough to represent single sequential processes as SDL processes.
To get a proper, compile-able specification requires wrapping in some structure.
One or more SDL processes must be grouped in an SDL block. An SDL block is either a collection of blocks or of processes. An SDL system is a collection of blocks.
sys tem bloc k bloc k pro ces ses s
View it as a tree structure: the root is the system, the leaves are processes, everything in the middle is a block.
16
SIGNAL hello;
helloRoute
helloChan
[hello]
a ch
e l nn
e a o th ed ct d t helloChan nn e ent cte e m co em on n iron c n) yst v rs en Cha o e llo lock o th l he t b this should be it. ne cing ha n a c mbr , at e em yst s the (to
l na g si
te u ro
[hello]
18
block K P
process B
C [Y]
D [W,Z]
SIGNAL X;
B X
[X]
J
process Q
*
W
W WAIT Y
[Y] C
block P Q
process J
Z Z
D [W,Z]
[Y] C
19
block K
process B
C [Y]
D [W,Z]
SIGNAL X;
B X
Z/ /W Z/ /W
process J
[X]
J
W/
W/
process Q * W WAIT
[Y] C
block P Q X Y
/Z
W/ Z/ Z/ /Z W/ /Z Z/ W/ Z/ W/
Z/
Y Z Z
D [W,Z]
[Y] C
C [Y] [X,Y]
block Couple
[Y] Cleft
[X,Y] SL
COUPLE
VIA:to identify
system Xprime
SIGNAL X,Y;
Couple
system s c_in
1(1)
t c_out
channel c_out nodelay from B to env with channel c_out nodelay from B to env with t; t;
endchannel c_in;
endchannelc_out;
block B referenced;
B P
1(1)
endsystem convert;
t rout
1(1)
The process defines Behaviour.
c_out
block B; channel rin nodelay from env to P with s; channel rin nodelay from env to P with s; endchannel rin;
channel routendchannel rin;to env with t; nodelay from P endchannel rout; channel rout nodelay from P to env with t; process P referenced; endchannel rout; connect P referenced; process c_out and rout; connect c_in and rin; endblock B; process P; start;
idle s
idle
t idle
SDL/GR G
SDL/PR
textual
raphical
Representation
system sysname
1(3) Frame
[ c1
(s1) ]
y c2
(s2) ]
Text symbol
/**/
24
Key SDL-2000 feature: Structure page diagram heading 3(3) number system example
system example
system c1 c3
(s3)
Systems and blocks can contain blocks and/or processes.
block b1 block b1
b1
(s1)
3(3) 2(3)
1(2) b11 b11 r2
(s12)
2(3)
1(2) b1 c1 r1 c2
(s2)
example
(s1)
block
ps1
(s2)
r3
c2
p2
Processes contain behaviour and cannot contain blocks.
process p2
process p2 initial pr initial pr s1 a
2(21)
1(21) procedure pr 1(1) pr1 p2 pr1
25
s2
1(1)
Stop_ _suerm
SU_in_ _error
Correct_ _SU
c:=c+1;
c=0 false
true
c=t
Input stimulus (a Signal) Signal of the state as defined by the attached Input Symbols is available in the input queue. Symbol
false
00_idle
1(1)
the Transition, to the next State Transition consumes the first such signal and interprets its actions such as each
Start_ _suerm 01_in_ _service Stop_ _suerm SU_in_ _error Correct_ _SU
Task (symbol) or
c:=c+1; c=0 false c=t true Link_ _failure false n=256 true 00_idle c:=c -1; n:=0;
27
true
n:=n+1;
false
object type Linkedlist <type Elementsort> struct prev, next this Linkedlist; data Elementsort; operators "in" (Elementsort, Linkedlist) ->Boolean; methods delete (Elementsort); operator "in" referenced; method delete referenced; endobject type Linkedlist; object type Natlist
28
Names set of stimuli (input signals, remote procedures and variables) and exceptions of an agent. An implicit interface with the agents name has all the agents signals etc. One interface can inherit from one or more other interfaces.
Interface
block b
interface i1; signal name(Natural,Charstring); procedure add (in Octet) Boolean; dcl vmap Powerset<Octet>; c12 s6 endinterface i1; i1,(sL)
Communication path between agents, or between an agent and the enclosing scope environment. One or two directional, using an interface for each direction. Explicit or derived implicitly.
Channel
b1
b2
s6 (sL)
b2
s4,s6
s3,s5
i1
bt22
Signallist
procedure add (in Octet) Boolean; dcl vmap Powerset<Octet>; c12 s6 endinterface i1; i1,(sL)
b1
b2
signal s3(Octet),s6(Octet);
Gate
signallist sL = name,s3;
state machine block b2 of agent b2
s4,s6
s3,s5
i1
bt22
1 (2)
the definition of the type showing some of its attribute and behaviour properties.
user
>1
link
network
1 (3)
31
1 (2)
abstract handler
user or redefined types or transitions in a type can be redefined in sub-types. for redefinition.
>1
virtual
link
network
1 (3)
32
2 (2)
SDL-2000 has support for object modelling and implementation with: Interfaces, classes, associations Agents
same as UML notations mixed blocks/processes block creation data at block level sub-states within a state
1 (4)
*
busy
Composite states
tidy
busy
2 (2)
33
2 (2)
1 (4)
*
busy
tidy
busy
Exceptions
catch unusual cases remote procedure timeouts
2 (2)
Nested packages
34
gratitude
I would like to thank to my former FMT teacher Prof. Holger Hermans and my colleague Reza Pulungan from Dependable System Group, Dept. of CS, Uniersitaat Saarbrucken, for providing Formal Methods materials I would like to thank to SDL 2000 and SDL forum
35
ITU
Main sectors
Radiocommunications Telecommunications Standardization Development
Classes of Members
National governments Sector members Associate members Regulatory agencies
36