Introduction of SDL - National Chiao Tung Universityshannon.cm.nctu.edu.tw/netexp/sdl03.pdf · 5...

54
1 Network Experiment Chi-I Hung Introduction of SDL Introduction of SDL Chi-I Hung CCL/ITRI

Transcript of Introduction of SDL - National Chiao Tung Universityshannon.cm.nctu.edu.tw/netexp/sdl03.pdf · 5...

1

Network Experiment

Chi-I Hung

Introduction of SDLIntroduction of SDL

Chi-I HungCCL/ITRI

2

Network Experiment

Chi-I Hung

• Collected by the United States Department of Defence from nine large software projects

Software Projects StatisticsSoftware Projects Statistics

3

Network Experiment

Chi-I Hung

Software CostsSoftware Costs

4

Network Experiment

Chi-I Hung

Specification and Description LanguageSpecification and Description Language

� SpecificationSpecification---- A specification of a system is the description of its required behaviour� DescriptionDescription-- -- A description of a system is the description of its actual behaviour

✸✸ The Purpose of SDLThe Purpose of SDLProvide a language for unambiguous specification Provide a language for unambiguous specification and description of the behaviour of and description of the behaviour of telecommunications systems.telecommunications systems.

5

Network Experiment

Chi-I Hung

Objective of SDLObjective of SDL

• Formal description technique• Easy to understand both for creators (direct users) and viewers (“non constructors” of specifications)(graphical representation)• Object oriented language• Independent of design paradigm(e.g. function or object oriented)• Independent of implementation(language, operating system, and hardware)

6

Network Experiment

Chi-I Hung

Usage of SDLUsage of SDL

a) facility requirements;b) system specifications;c) ITU-T Recommendations, or other similar Standards (international, regional or national);d) system design specifications;e) detailed specifications;f) system design descriptions (both high level and detailed enough to directly produce implementations);g) system testing descriptions (in particular in combination with MSC and TTCN).

(From ITU-T Z.100)

7

Network Experiment

Chi-I Hung

Improvement of Error RateImprovement of Error Rate

8

Network Experiment

Chi-I Hung

Process Dimension - CMMIProcess Dimension - CMMI

Process Management • Organizational Process Focus• Organizational Process Definition• Organizational Training• Organizational Process Performance• Organizational Innovation and Deployment

Support • Configuration Management• Process and Product Quality Assurance• Measurement and Analysis• Decision Analysis and Resolution• Causal Analysis and Resolution• Organizational Environment for Integration

Project Management• Project Planning• Project Monitoring and Control• Supplier Agreement Management• Integrated Project Management• Integrated Teaming• Risk Management• Quantitative Project Management

EngineeringEngineering•• Requirements Management Requirements Management•• Requirements Development Requirements Development•• Technical Solution Technical Solution•• Product Integration Product Integration•• Verification Verification•• Validation Validation

9

Network Experiment

Chi-I Hung

SDL-76 First version. Only recommendations on how to draw process graph symbols (Behavior).SDL-80 Blocks are introduced (Architecture), PR-form (textual Phrase Representation) becomes a part of the language.SDL-84 The abstract data type concept is introduced (Data). Additional concepts are introduced.SDL-88 Only minor changesSDL-92 Object-oriented extensions to SDLSDL-96 Minor changes (e.g. external procedures)SDL-2000 Changes regarding architecture and data model.

SDL HistorySDL History

•• International Standard (ITU-T, Z.100)International Standard (ITU-T, Z.100)

10

Network Experiment

Chi-I Hung

Representations of SDLRepresentations of SDL

• Graphical • TextualSYSTEM A;SIGNAL sig1, sig2(real);CHANNEL c1 FROM B TO ENV WITH sig2; FROM ENV TO B WITH sig1, sig2;ENDCHANNEL c1;BLOCK B REFERENCED;ENDSYSTEM A;

11

Network Experiment

Chi-I Hung

Application of SDLApplication of SDL

• call and connection processing (for example, call handling, telephony signalling, metering) in switching systems• maintenance and fault treatment (for example alarms, automatic fault clearance, routine tests) in general telecommunications systems• system control (for example, overload control, modification and extension procedures)• operation and maintenance functions, network management• data communication protocols• telecommunications services

12

Network Experiment

Chi-I Hung

SDL Design MethodologySDL Design Methodology

• Flow of Software Development• Basic Concept of SDL Design Flow• Basic Component of SDL

13

Network Experiment

Chi-I Hung

Flow of Software DevelopmentFlow of Software DevelopmentSoftware

RequirementAnalysis

Design

Testing

Coding•SDL Editor•MSC Editor

•SDL Code Generator

• SDL Simulator• TTCN Simulator

•UML

14

Network Experiment

Chi-I Hung

Protocol Development ProcessProtocol Development ProcessProtocol

Specification

SoftwareRequirement

Formal Description Formal Description LanguageLanguage- SDL- SDL- UML-2- UML-2

Test Suite -- TTCN-2 -- TTCN-3

Host Conformance Test

ExecutionTest Suite

Code-Generation

ImplementationUnder Test

(IUT)

Code-Generation

Conformance Test

ProductProduct

15

Network Experiment

Chi-I Hung

Basic Concept of SDL Design FlowBasic Concept of SDL Design FlowSystem

Architecture--SDL Editor

Use Cases--MSC Editor

SDL Coding

Code Analyze

Code Gen

Simulation

OKNo

SDL Code-Gen

Yes

C/C++ Source Code

Other Source Code

or Object Code

Compile &Link

ExecutionFile

OS Lib.

16

Network Experiment

Chi-I Hung

Basic Component of SDLBasic Component of SDL

•Architecture - system, block•Behavior - processes•Communication - signals and channels•Data - abstract data types

17

Network Experiment

Chi-I Hung

SDL Architecture -- SystemSDL Architecture -- System✸ SDL SystemSDL System A SDL-system is the outermost agent that communicates with the environment.✎ EnvironmentEnvironment : The environment of the system is everything in the surroundings that communicates with the system in an SDL-like way.

18

Network Experiment

Chi-I Hung

➫A SDL System must define the interfaces to communicate with other components

SDL-System Structural Concepts (1)SDL-System Structural Concepts (1)

➫ A complete SDL system must contain at least one block

➫ A block must contain at least one process or block, blocks and processes must not be mixed in one block.

➫ A process must contain an finite state machine

19

Network Experiment

Chi-I Hung

Hierarchical StructureHierarchical StructureSDL-System Structural Concepts (2)SDL-System Structural Concepts (2)

Block Game

SYSTEM DemonGame 1(1)

Demon(1,1) Monitor(1,1)

BLOCK Game 1(1) PROCESS Monitor(1,1) 1(1)

ReadyWaitIDLE

MAC_Est_Req/MAC_Est_Cnf

MAC_Release_Req

MAC_Con_Req/MAC_Con_Cnf

MAC_Release_Req

Finite State Machine

20

Network Experiment

Chi-I Hung

SDL-System Structural Concepts(3)SDL-System Structural Concepts(3)A SDL System can contains :

✎ System Name✎ SDL Blocks✎ Channels: The relation between the system and the ‘outside world‘.✎ Signal Definition✎ Data Type Definition

21

Network Experiment

Chi-I Hung

SDL-BlockSDL-Block

✎ A block can be refined either by a set of processesprocesses or by a set of block substructures.

✎ Blocks are static entities in SDL.

22

Network Experiment

Chi-I Hung

SDL-System Example (1)SDL-System Example (1)

NASNASUMTS-UEUMTS-UE

L1L1

APAPSDL-System

EnvironmentSDL-Block

L3L3

L2L2

ASAS

RLCRLCRLCMACMACMAC SDL-Process

23

Network Experiment

Chi-I Hung

SDL-System Example (2)SDL-System Example (2)

24

Network Experiment

Chi-I Hung

SDL-System Example (3)SDL-System Example (3)

25

Network Experiment

Chi-I Hung

SDL-System Example (4)SDL-System Example (4)process RLC

State_0

State_0

Input_Signal

RLC_Data_Req

State_1

26

Network Experiment

Chi-I Hung

SDL ProcessSDL Process

✎ Processes are the actors of SDL systems.✎ An SDL process is the active unit of an SDL system.✎ An SDL process represents an extended finite state machine.✎ Processes may be defined with an initial and a maximum number of instances✎ SDL processes can communicate by means of asynchronous message passing with other processes.

<ProcessName>(init,max)

27

Network Experiment

Chi-I Hung

Elements of SDL ProcessElements of SDL Process

••The SDL Process may contain:The SDL Process may contain:

✎✎ Process nameProcess name✎✎ Formal Parameters Formal Parameters✎✎ Local Variables Local Variables✎✎ Time and timers Time and timers✎✎ The graphical representation of a FSM The graphical representation of a FSM

28

Network Experiment

Chi-I Hung

Behavior of SDLBehavior of SDL

�� SDL Process as Finite State MachineSDL Process as Finite State Machine

• In SDL ,the FSM is extended with data processing (EFSM)

•“Send no wait”, asynchronous signalling

• Process instances can be created and terminated dynamically

•A process is activated by means of an arriving signal. At the end of a transition the next state is entered.

29

Network Experiment

Chi-I Hung

Process SymbolsProcess Symbols

process reference

30

Network Experiment

Chi-I Hung

Input / Output SymbolInput / Output Symbol

process MAC

State_0

State_0

RLC_Data_Req

Out_Sig

State_1

process RLC

State_0

State_0

Input_Signal

RLC_Data_Req

State_1

block L2

RLC

MAC

RLC_MAC_Queue

RLC_Data_Req

•The RLCRLC will send RLC_Data_RLC_Data_ReqReq to MACMAC via RLC_MAC_QueueRLC_MAC_Queue

31

Network Experiment

Chi-I Hung

Input PortInput Port

✎ Each process instance has a FIFO queue of its own✎ The port allows received signals (and timeouts)to be queued until they are consumed (or discarded) by the owning process instance.✎ The queues have an infinite capacity.✎ The FIFO order in processing the queue is NOTNOT always preserved(because of priority/save ).

32

Network Experiment

Chi-I Hung

SDL Process IDSDL Process ID

•Each SDL process maintains a set of intrinsic variables which are of the predefined data type PIdPId (Process Identity)

✎✎ self : self : Denotes the PId of the process instance itself

✎✎ sender:sender: Denotes the PId of the process instance from which the most recent signal has been consumed

✎✎ parent:parent: Denotes the PId of the process instance that has created the instance

✎✎ offspring: offspring: Denotes the PId of the most recent process instance created by this process instance.

33

Network Experiment

Chi-I Hung

block L2

RLC

MAC(0,5)

RLC_MAC_Queue

Dynamic Process CreationDynamic Process Creation

process RLC

State_0

State_0

Input_Signal

Output_Signal

State_1

MAC

✎✎ Created processes must lie in the same block.✎ Termination of a process can only be made by itself.

process MAC

S0

S0

Stop_Req

34

Network Experiment

Chi-I Hung

SDL ProcedureSDL Procedure

✎✎ Procedures can have IN or IN/OUT parameters.Procedures can have IN or IN/OUT parameters.✎✎ Procedures can return a value. Procedures can return a value.✎✎ SDL procedures can contain states and variable SDL procedures can contain states and variable declarations. declarations.✎✎ Procedure states are disjoint from process state Procedure states are disjoint from process state space. space.✎✎ Procedures can see the variables of the owning Procedures can see the variables of the owning process. process.✎✎ Procedures can only use timers declared in the Procedures can only use timers declared in the owning process. owning process.

35

Network Experiment

Chi-I Hung

SDL ProcedureSDL Procedure

MyProcedure

;FPARIN arg1 integer,IN/OUT arg2 integer;RETURNS ret_val integer;

procedure MyProcedure

DCL Total Integer;

Total:=arg1+arg2;

Total

Ret_val:=call MyProcedure(1,my_arg)

36

Network Experiment

Chi-I Hung

SDL Channel SDL Channel

✎✎ Communication path between blocks itself and betweenCommunication path between blocks itself and between blocks and the environment blocks and the environment✎✎ Channels can be unidirectional or Channels can be unidirectional or bidirectionalbidirectional communication communication devices. devices.

37

Network Experiment

Chi-I Hung

SDL RouteSDL Route✎✎ A signal route defines a communication path between aA signal route defines a communication path between a process and its environment or another process. process and its environment or another process.

38

Network Experiment

Chi-I Hung

SignalsSignals

✎✎ Signals are the primary communication mechanism in SDLSignals are the primary communication mechanism in SDL✎✎ Signals may carry data by means of parameters. Signals may carry data by means of parameters.✎✎ All signals to and from the environment are declared All signals to and from the environment are declared at system level. at system level.✎✎ Signals can be defined inside a block (thus only Signals can be defined inside a block (thus only visible in the block) visible in the block)

39

Network Experiment

Chi-I Hung

Signal Addressing & RoutingSignal Addressing & Routing

�� If there are several possible receivers of a signal, If there are several possible receivers of a signal, the signal will be delivered to an arbitrary receiver. the signal will be delivered to an arbitrary receiver.

AB(1,1)

C(1,1)

D(1,1)

Sig1

Sig1

C1

C2

Example:

40

Network Experiment

Chi-I Hung

Signal Addressing & RoutingSignal Addressing & Routing✎✎ SDL provide two way for addressing: SDL provide two way for addressing:

• VIAVIA : Specifies a signal path• TOTO : Specifies a receiving process

• Example 1: A Send Sig1Sig1 to B

Sig1 VIAVIA C1

• Example 2: A Send Sig1Sig1 to C

Sig1 ToTo C

Sig1 ToTo BOR

41

Network Experiment

Chi-I Hung

SDL DataSDL Data

✎✎ Based on abstract data typesBased on abstract data types - An abstract data type defines a type of data object by its functional properties,i.e.by a set of operations applied to it.

✎✎ In SDL,data types are called In SDL,data types are called ““sortssorts”” ✎✎ Variables can only be declared in processesVariables can only be declared in processes - No global variables.- No global variables.✎✎ In SDL inheritance and generics are supportedIn SDL inheritance and generics are supported✎✎ A new data type is defined by:A new data type is defined by: - constants and a set of values - operators - axioms

42

Network Experiment

Chi-I Hung

SDL Predefined Data SortsSDL Predefined Data Sorts

•• IntegerInteger•• Natural Natural•• Real Real•• Boolean Boolean•• Character Character•• Charstring Charstring•• PId PId•• Duration Duration•• Time Time

43

Network Experiment

Chi-I Hung

BooleanBoolean✎✎Boolean is a typical example of a data type in SDLBoolean is a typical example of a data type in SDL

NEWTYPENEWTYPE BooleanLITERALS True, False;OPERATORS“NOT”:Boolean ->Boolean;“=” :Boolean, Boolean ->Boolean;“/=”:Boolean, Boolean ->Boolean;“AND”:Boolean, Boolean ->Boolean;“OR”:Boolean, Boolean ->Boolean;“XOR”:Boolean, Boolean ->Boolean;“=>”:Boolean, Boolean ->Boolean;AXIOMS“NOT”(True)== False;“NOT”(False)== True;...ENDNEWTYPEENDNEWTYPE Boolean;

44

Network Experiment

Chi-I Hung

Variable Declaration and UseVariable Declaration and Useprocess RLC 1(1)

DCL Count Integer;

State_0

State_0

Input_Signal

Count:=1

Output_Signal

State_1

State_1

Input_Signal

Count

Out_Signal

2030

40

45

Network Experiment

Chi-I Hung

Task and DecisionTask and Decision✎✎ The The ““TaskTask”” symbol is used for assignments symbol is used for assignments

✎✎ A decision is much like an A decision is much like an ifif or or casecase statement.statement.

i:=i+1;k:= i mod 7;

Number<5 5:10

else

11:20 , 99

46

Network Experiment

Chi-I Hung

SynonymSynonym

✎✎ With Synonym, constants are declared in SDLWith Synonym, constants are declared in SDL - Can be used in SDL-System or Blocks- Can be used in SDL-System or Blocks - If a constant is declared as EXTERNAL it means that the constant - If a constant is declared as EXTERNAL it means that the constant will be assigned first at system start-up time (i.e. it can be assigned will be assigned first at system start-up time (i.e. it can be assigned different values each time). different values each time).

SYNONYM Zero Integer = 0;SYNONYM One Integer = 1;SYNONYM NrOfDoors Natural = EXTERNAL;

47

Network Experiment

Chi-I Hung

NewtypeNewtype

✎✎ NewtypeNewtype creates a new data type creates a new data type

Newtype SeqNumliterals zero, one;operatorssucc :

SeqNum -> SeqNum;axiomssucc( zero) == one;succ( one) == zero;

Endnewtype SeqNum;

Newtype EyeColorTypeLITERALS Blue, BrownDEFAULTBlueEndnewtype EyeColorType;

DCL MySeqNum SeqNum;DCL MyEye EyeColorType;

SeqNum := zero;SeqNum := succ(SeqNum );MyEye := Brown;

48

Network Experiment

Chi-I Hung

SyntypeSyntype

✎✎ Restrict the set of values of a ground typeRestrict the set of values of a ground type - - NOTE! The syntype will not be a new type but a subtype, and can thus be assigned values of the ground type.

SYNTYPE Age = NaturalCONSTANTS 0:100ENDSYNTYPE Age;

DCLMyAge, YourAge Age;

MyAge:=1,YourAge:=100

49

Network Experiment

Chi-I Hung

StructStruct

✎✎StructStruct is a data type where the data structure is explicitly stated is a data type where the data structure is explicitly stated - StructStruct in SDL is similar to struct in C-Language

typedef enum{ type_802_11_a, type_802_11_b, type_802_11_g, } Connect_Type;

typedef struct{ Connect_Type con_type; char id; int timing ;} Con_Req_Arg;

newtype Connect_Type literals type_802_11_a, type_802_11_b, type_802_11_g;endnewtype Connect_Type;

newtype Con_Req_Arg struct con_type Connect_Type; id Character; timing Integer;endnewtype Con_Req_Arg;

structstruct in C in C structstruct in SDL in SDL

50

Network Experiment

Chi-I Hung

TimerTimer✎✎ On timeout, a signal is sent to the process instance On timeout, a signal is sent to the process instance that set the timer. that set the timer.

TIMER T;SYNONYM p Duration = 5;

disconnected

ICONreq

SET(now + p, T)

Wait

T

disconnected

RESET(T)

•SET: - Start a timer with time value• RESET: - The associated time value is lost - Corresponding signal in the input port is removed

51

Network Experiment

Chi-I Hung

GeneratorGenerator✎✎ The Generator is like the The Generator is like the ““templatetemplate”” in C++ in C++

NEWTYPE intint_set_setLITERALS empty_int_set;OPERATORS add: int_set, Integer -> int_set; is_in: int_set, Integer -> Boolean;AXIOMSFOR ALL m, n IN Integer, s IN int_set ………...ENDNEWTYPE:

NEWTYPE real_setreal_setLITERALS empty_real_set;OPERATORS add: real_set, Integer -> real_set; is_in: real_set, Integer -> Boolean;AXIOMSFOR ALL m, n IN Integer, s IN real_set ………...ENDNEWTYPE;

GENERATOR setset (TYPE element, LITERALS empty_set)LITERALS empty_set;OPERATORS add: set, element -> set; is_in: set, element -> Boolean;AXIOMSFOR ALL m, n IN element, s IN set …………….ENDGENERATOR;

NEWTYPE intint_set_set set (Integer, empty_int_set)ENDNEWTYPE; NEWTYPE real_setreal_set set (real, empty_real_set)ENDNEWTYPE;

52

Network Experiment

Chi-I Hung

✎✎ Array is the predefined generator.Array is the predefined generator. -- GENERATOR Array(TYPE Index, TYPE Itemsort);

ArrayArray

SYNTYPE IndexType = Natural CONSTANTS 1:100ENDSYNTYPE;

NEWTYPE Person STRUCT theName Charstring; theAge Age; theEyeColor EyeColorType;ENDNEWTYPE Person;

NEWTYPE PArrayType Array (IndexType, Person)ENDNEWTYPE PArrayType;

DCL PersonArray PArrayType;

PersonArray(2):= (. ‘John’, 26, Blue .)

53

Network Experiment

Chi-I Hung

SDL system (process)

System Integration (i)System Integration (i)•• Light IntegrationLight Integration

ProcessInstance

CommunicationAdaptor

operating system -- I/O ,Timer ,Process Management ,IPC ...

Non-SDL Process

54

Network Experiment

Chi-I Hung

SDL process 1

System Integration (ii)System Integration (ii)•• Tight IntegrationTight Integration

ProcessInstance

CommunicationAdaptor

operating system -- I/O ,Timer ,Process Management ,IPC ...

Non-SDL Process

SDL process 2

ProcessInstance

CommunicationAdaptor

SDL process 3

ProcessInstance

CommunicationAdaptor