SDL (and MSC) - Sharif University of Technology

In The Name Of God
Sharif University of Technology
Specification and Description Language
Peyman Dodangeh
March 2013
Summary



What is SDL
 Intro
 History
 Goal
 SDL Characteristics
SDL Structure
References
2
What is SDL


SDL (Specification and Description Language)
is an object-oriented, formal language
developed and standardized by The
International Telecommunication
Standardization Sector (ITU-T)
Intended for the specification of complex,
event-driven, real-time, and interactive
application involving many concurrent
activities that communicate using discrete
signals
3
What is SDL



SDL describe the architecture, behavior and data
of distributed systems in real time environments
Useful for specifying the normative requirements
of telecommunications protocol standards
Wide spectrum language - specification to
implementation
4
History

1968 ITU study of stored program control systems

1972 Start of the development

1976 First pre-release


1980-1984
Graphics, process semantics, structure, data,
definition more rigorous, start of tools, user guide
1988 SDL88, the first standard
5
History




1992 SDL92, MSC
intro of OO and methodology guidelines
1995 SDL with ASN.1
1999 SDL-2000 MSC-2000
Object modelling support
Improved implementation support
2001 SDL-2001 Meeting UML
6
Goals





Provide a better way to describe behavior
Support human communication and
understanding
Easy verification conformance of
implementation of specifications
Design optimization
Analyzing specifications for completeness and
correctness
7
Goals



Use of computer based tools to create, maintain
and analyze specifications
Formal high quality descriptions produced better,
quicker and cheaper
Provide to programmers an easy way to do
verification, validation of the design, regression
testing, automatic documentation and simplified
maintenance
8
Application area



Type of systems:
 Real time
 Interactive
 Distributed
 Heterogeneous
Type of information:
 Behavior, structure
Level of abstraction:
 Overview to details
9
Use of SDL
Specification
Ideas
Customer
used to
create
modelled by
Design
Design
Interpreted as
Implementation
Engineers
used to
produce
Tools
Engineers
SDL
(and MSC)
Software
executes
as
transformed
by
C++ etc.
Product
10
SDL Characteristics







Graphical form
Based on communicating processes
OO description of components
Formality and clarity
High degree of testability
Portable, scalable, open, reusable
SDL-GR
Graphical notation for SDL

SDL-PR
Textual notation for SDL
11
Examples






Cellular phones
Switches
GPRS
UMTS
GSM
ISDN
12
Commercial SDL Tools




both developed by Telelogic:
- ObjectGeode
- Telelogic Tau SDL Suite
(ObjectGeode has been developed by Verilog,
but in 1999, Telelogic has acquired Verilog)
13
SDL Grammars



two different syntactic forms (equivalent):
Graphic Representation (SDL/GR)
Phrase Representation (SDL/PR)
14
SDL Grammars (Cont.)

A subset of SDL/PR is common with SDL/GR
called common textual grammar
15
SDL & others languages

SDL is well suited to be the core of full-scale
projects because of its abilities to interface with
other languages.
UML
MSC
ASN.1
TTCN
16
SDL Structure

Comprises four main hierarchical levels:
 System
 Block
 Process
 Procedure
17
SDL Structure




A system contains one or more blocks,
interconnected with each other and with the
boundary of the system by channels
The block is the main structuring concept
A block can be partitioned into sub-blocks and
channels
A channel is a means of conveying signals
18
SDL Structure


Repeated block partitioning result in a block tree
structure
Partitioned blocks do not contain any process
19
SDL Structure

Leaf-blocks of a block tree structure are not
partitioned, and contain only process
20
System


The system description constitutes the top level of
detail
The system is what the SDL description specifies:
an abstract machine communicating with its
environment
Environment
System
Channel
21
System

A system diagram usually contains the following
elements:
1.
system name
2.
signal descriptions
3.
channel descriptions
4.
data type descriptions
5.
block descriptions
22
1
2
3
5
Block

A block is a part of the system that can be treated
as a self-contained object
block B
s
c_in
rin
1(1)
t
P
rout
c_out
24
Block

A block diagram usually contains the following
elements:
1.
block name
2.
signal descriptions
3.
signal route descriptions
4.
channel-to-route connections
5.
process descriptions
25
1
2
3
4
5
Process




A process in SDL is an extended finite state machine
The behavior of a finite state machine is described by states
and transitions
A process description is given through a process diagram
In SDL there are five basic constructs for the description of a
process
task
27
Process

A process diagram usually contains the following
elements:
1.
Process name
2.
Formal parameters
3.
Variable descriptions
4.
Process graph
5.
Procedure Descriptions
6.
Timer descriptions
28
Process Example
1
2
3
Process P
FPAR v1 Integer
Proc
dcl c character;
5
procedure proc;
c
4
c
Proc
29
Procedure




The procedure construct in SDL is similar to the one known
from programming languages
A procedure is a finite state machine within a process. It is
created when a procedure call is interpreted, and it dies when
it terminates
A procedure description is similar to a process description,
with some exceptions.
The start symbol is replaced by the procedure start symbol
30
Procedure


A return symbol is introduced:
When a procedure is running, the calling process
or procedure is suspended in the transition
containing the procedure call
31
Describing behavior with SDL




The behaviour of a system is constituted by the
combined behaviour of the processes in the system
A process is defined as finite state machine, that
works autonomously and concurrently with other
processes
A process reacts to external stimuli in accordance
with its description
A process is either in a state waiting, or performs a
transition between two states
32
Describing behavior with SDL



The co-operation between the processes is
performed asynchronously by discrete messages
called signals
Every process has an infinite input queue
associated, which acts like a FIFO queue
Any signal arriving at the process is put into its input
queue
33
Describing behavior with SDL

When a signal has initiated a transition, it is
removed from the input queue
34
Process Addressing




Every process has a unique address
The address is not determined by the user, but is
rather created by some abstract SDL machine during
the creation of a process
For any signal sent by a process there must be one
and only one destination
Destination can be specified:
 Implicitly
 explicitly
35
Explicit Addressing


SDL has the TO construct for the explicit addressing
of processes
The keyword TO is used in an output, and it is
followed by an expression containing the address of
the destination process
A
TO P2_ADDRESS
36
Implicit Addressing

The explicit specification of a destination address is
not necessary if the destination is uniquely defined
by the system structure
A
37
Process Creation/Termination



Processes can be created by other processes
dynamically at interpretation time
This is indicated in a block diagram by a dashed line
from the creating process to the created process
The creating and created process must belong to
the same block
38
Process Creation/Termination
Process P1
S1
Process P2
FPAR v1 Integer,
v2 Boolean
dcl v3 Integer
A
V3 = v1 * 2
P2(A,true)
v3
S2
39
Text and Task Symbols



keyword DCL introduces definition of variables in a
text symbol
during transition the process can manipulate its own
local variables
a task construct is always an assignment
(represented by a task symbol)
40
41
Decision Symbol


question may have various answers
only one answer should be correct
42

decision symbol may have a number of different
shapes. Some examples are:
43
Data Carrying Signals




signals can carry data values from one process to
another
In the input construct, variables are specified
output construct includes data values
types of values sent in output construct must be
compatible with types of variables in the
corresponding input construct
44
45


When signal A is consumed by process p2, the value
5 is assigned to v1 and true is assigned to v2
In the input and output constructs, the order of the
data values and variables is important
46



one or more values may be omitted in an output
construct
one or more variables may be omitted in the input
construct
(corresponding received values are lost in this case)
47
References

SDL Forum Society http://www.sdl-forum.org

Specification and Description Language Tutorial
http://www.iec.org/online/tutorials/sdl/

SDL 2001: Meeting UML
10th International SDL Forum
Copenhagen, Denmark, June 2001
Proceedings
Rick Reed, Jeanne Reed
Ed Springer

Documenting Software Architecture: Documenting Behavior
http://www.sei.cmu.edu/publications/documents/02.reports/02tn001.html
Bachmann, Bass, Clements, Garlan, Ivers, Little, Nord, Stafford
48
References

SAM work shop
SDL & MSC workshop (open discussion platform)
http://www.irisa.fr/manifestations/2000/sam2000/papers.html
49
The End