Title: Specification and Description Language
1COUSE OF SOFTWARE ENGINEERING II AA 2001/02
Specification and Description Language
Luigi Bozzo
May 2002
2Summary
- What is SDL
- Intro
- History
- Goal
- SDL Characteristics
- SDL Structure
- Example La lotteria algebrica
- Glossary
- References
3What 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
4What is SDL
- SDL describe the architecture, behaviour and data
of distributed systems in realtime environments - Useful for specifying the normative requirements
of telecommunications protocol standards - Wide spectrum language - specification to
implementation
5History
- 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
6History
- 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
7Application area
- Type of systems
- Type of information
-
- Level of abstraction
- Real time
- Interactive
- Distributed
- Heterogeneous
8Use of SDL
9Goals
- Provide a better way to describe behaviour
- Support human communication and understanding
- Easy verification conformance of implementation
of specifications - Design optimization
- Analyzing specifications for completeness and
correctness
10Goals
- 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
11SDL Characteristics
- Graphical form
- Based on communicating processes
- OO description of components
- Nonproprietary internationally standardized
language - Formality and clarity
- High degree of testability
- Portable, scalable, open, reusable
12Examples
- Cellular phones
- Switches
- GPRS
- UMTS
- GSM
- ISDN
13SDL others languages
- SDL is well suited to be the core of full-scale
projects because of its abilities to interface
with other languages.
14SDL Structure
- Comprises four main hierarchical levels
- System
- Block
- Process
- Procedure
15SDL 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
16SDL Structure
- Repeated block partitioning result in a block
tree structure - Partitioned blocks do not contain any process
17SDL Structure
- Leaf-blocks of a block tree structure are not
partitioned, and contain only process
18System
- 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
19System
- A system diagram usually contains the following
elements - system name
- signal descriptions
- channel descriptions
- data type descriptions
- block descriptions
201
5
2
3
21Block
- A block is a part of the system that can be
treated as a self-contained object
22Block
- A block diagram usually contains the following
elements - block name
- signal descriptions
- signal route descriptions
- channel-to-route connections
- process descriptions
231
2
3
4
5
24Process
- A process in SDL is an extended finite state
machine -
- The behaviour 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
25Process
- A process diagram usually contains the following
elements - Process name
- Formal parameters
- Variable descriptions
- Process graph
- Procedure Descriptions
- Timer descriptions
26Process Example
Process P
1
FPAR v1 Integer
2
5
dcl c character procedure proc
Proc
3
c
4
c
Proc
27Procedure
- 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
28Procedure
- A return symbol is introduced
- When a procedure is running, the calling process
or procedure is suspended in the transition
containing the procedure call
29Describing 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
30Describing 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
31Describing behavior with SDL
- When a signal has initiated a transition, it is
removed from the input queue
32Process 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
33Explicit 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
34Implicit Addressing
- The explicit specification of a destination
address is not necessary if the destination is
uniquely defined by the system structure
A
35Process 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
36Process Creation/Termination
Process P1
Process P2
FPAR v1 Integer, v2 Boolean
S1
dcl v3 Integer
A
V3 v1 2
P2(A,true)
v3
S2
37Example La lotteria Algebrica
PostaElettronica_p
GestoreCartaCredito_p
1
1
lal_PE
lal_GCC
system L-AL
lal_GA
1
GestoreAccessi_p
lal_Direttore
lal_cliente
lal_giocatore
1
Cliente_u
Giocatore_u
Direttore_u
38Example La lotteria Algebrica
system L-AL
1(X)
signal collegami(DatiGiocatore,Codice),
collega(Integer,Integer), controlla(DatiGiocatore
, Codice), codiceOk(DatiGiocatore, Codice,
Chiave), seiCollegato(Chiave)
collega
DatiGiocatore_GCC
L-AL_Giocatore
L-AL_GA
collegami seiCollegato
controlla codiceOk
39Example La lotteria Algebrica
DatiGiocatori
Giocatore_u
GestoreAccessi_p
GestioneCollegamenti
collegami(gu,D,cod)
controlla(D,cod)
codiceOk(D,cod,ch)
collega(cod,ch)
seiCollegato(ch)
40Example La lotteria Algebrica
signal collegami(DatiGiocatore,Codice),
collega(Integer,Integer), controlla(DatiGiocatore
, Codice), codiceOk(DatiGiocatore, Codice,
Chiave), seiCollegato(Chiave)
Block GestioneCollegamenti
L-AL_Giocatore
collegami
seiCollegato
P1 (DatiGiocatore,Codice)
P2 (DatiGiocatore,Codice,Chiave)
codiceOk
controlla
collega
L-AL_GA
DatiGiocatore_GCC
41Example La lotteria Algebrica
process P1
process P2
FPAR v1 DatiGiocatore, v2 Codice
FPAR v1 DatiGiocatore, v2 Codice, v3 Chiave
collega (v2,v3)
controlla (v1,v2)
seiCollegato (v3)
42Glossary
- ASN.1
- Abstract data type
- CCITT
- Comite Consultatif International Telegraphique et
Telephonique the former name of ITU-T - FSM
- Finite state machine
- IDL
- Interface description language textual
representation that enables designers to capture
interfaces and data types of objects - IPC
- Interprocess communication
- ITU
- International Telecommunications Union
- OMG
- Object Modeling Technique a notation for
capturing requirements with object analysis
43Glossary
- ITU-T
- Telecommunications standardization body
- OMT
- Object Modeling Technique a notation for
capturing requirements with object analysis - SDL-GR
- Graphical notation for SDL
- SDL-PR
- Textual notation for SDL
44References
- 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.r
eports/02tn001.html - Bachmann, Bass, Clements, Garlan, Ivers, Little,
Nord, Stafford
45References
- SAM work shop
- SDL MSC workshop (open discussion platform)
- http//www.irisa.fr/manifestations/2000/sam2000/p
apers.html
46The End
47(No Transcript)
48ITU-T
- The International Telecommunication Union (ITU)
is the United Nations specialized agency in the
field of telecommunications - The ITU Telecommunication Standardization Sector
- (ITU-T) is a permanent organ of ITU
- ITU-T is responsible for studying technical,
operating and tariff questions and issuing
Recommendations on them with a view to
standardizing telecommunications on a worldwide
basis
49(No Transcript)
50SDL UML
- UML is a language that is good at describing
classes/types and relationships between them in a
simple and intuitive manner - It does a good job in the early phases of the
development process but in the implementation
phases it lacks in structural behavioral
constructs
51SDL UML
- SDL is more coherent than UML and also has a
sound semantics foundation but is less expressive
and widely accepted than UML - However, SDL is strong exactly where UML is weak.
-
- Combining SDL with UML provides a modelling
paradigm for visual software engineering that is
more robust and effective than either language
alone
52SDL UML
SDL bridges the gap between UML modeling and the
target implementation
Requirements analysis System specification
Design
Implementation
Target
53SDL UML
Convergence of UML and SDL
54Why use SDL UML ?
- Standardized notation without sacrificing
specialized model data - Common language that can be used from product
conception to delivery, from system to detailed
design levels - Reduced learning curve across projects
- Increased domain and design model reuse
- Increased customer involvement /understanding of
problem translation to product solution
55(No Transcript)
56MSC
- The Message Sequence Charts (MSC) is a trace
language for specification and description of the
communication behavior of communicating systems -
- Shows chronological sequences of messages sent
between different system components (entities)
and their environment - Well suited for presenting a complex dynamic
behavior in a clear, unambiguous and easily
understandable way
57MSC Features
- Formal
- Standardized
- Graphical
- Use Cases
- Simulation trace
- (through automatically generated MSC)
- Regression Testing (checking old functionality)
58MSC Example
GestoreAccessi_p
Giocatore_s
Giocatore_u
E
collegami(gu,D,cod)
controlla(D,cod)
codiceOk(D,cod,ch)
collega(ch)
seiCollegato(ch)
59(No Transcript)
60ASN.1
- ASN.1 (Abstract Syntax Notation One) is the
ISO-ITU standardized language for defining data
types an values - Designed for describing structured information
that is conveyed across some interface or
communication medium, independently from the
transfer format - Used in conjunction with Basic Encoding Rules
(BER), defining the so-called transfer syntax,
the rapresentation of values as a bit stream to
be transmitted
61ASN.1 Features
- Formal
- Standardized
- Complete data type definition apparatus
- Constraints, class definitions and
parametrization - Extensibility
- Automatic encoder/decoder generation
- Automatic implementation language representation
generation
62ASN.1 example
- PersonName 16 IMPLICIT OCTET STRING
- Person SEQUENCE
- title 1 OCTET STRING,
- name 2 PersonName,
- height 3 Height OPTIONAL,
- weight 4 INTEGER OPTIONAL
-
- AddressBookEntry CHOICE
- 10 Person,
- 11 Company,
- 12 Group
63(No Transcript)
64TTCN
- TTCN (Tree and Tabular Combined Notation) is a
globally adopted standard test notation for the
specification of test cases - In TTCN, a test case is used for testing special
functionality such as non-termination - The sintax is similar to conventional programming
languages and incorporates features like
synchronous and asynchronous communication
mechanisms as well as dynamic parallel test
configuration
65TTCN
- A TTCN test suite consists of four parts
- Overview part
- An index and page references of the different
part - Declaration part
- Declaration of PDUs with ASN.1
- Constraints part
- Describe the value that re sent or received
- Dynamic part
- Describe the actual execution behavior of test
suite - Contains all test cases and default table for
66TTCN Features
- Portability
- TTCN is platform independent
- Reusability
- Since an Abstract Test Suite uses only the
external (standardized) interfaces, it is highly
reusable - Modularity
- Test cases can share a common set of definitions,
and be added incrementally - ASN.1 integration
- ASN.1 is used for representation of data (PDUs)
67TTCN Example
- Each test case or test step is a so-called
behavior tree
68TTCN Example
- A behavior table describes the behavior tree in a
tabular format
Test Case Dynamic Behavior Test Case Dynamic Behavior Test Case Dynamic Behavior Test Case Dynamic Behavior Test Case Dynamic Behavior
Test Case Name Basic Connect Test Case Name Basic Connect Test Case Name Basic Connect Test Case Name Basic Connect Test Case Name Basic Connect
Purpose Check that a normal Call connection can be established Purpose Check that a normal Call connection can be established Purpose Check that a normal Call connection can be established Purpose Check that a normal Call connection can be established Purpose Check that a normal Call connection can be established
Nr Label Behavior Description Cref V
1 L!LiftHook
2 L?DialTone
3 L!Digits CallSubsr2
4 L?CallToneL?
5 LineConnect ConnSubscr2
6 L!DropHook P
7 L?BusyTone
8 L!DropHook I
9 L?NoTone F
Detailed Comments Detailed Comments Detailed Comments Detailed Comments Detailed Comments
Verdict Pass, Inconclusive, Fail