Unformatted text preview: UT D CS 6386 Telecommunications Software Design Session 09 SDL & MSC
Credits: some slides are from Telelogic and are used with permission SDL Overview What is SDL? Why SDL was created and how SDL should be used? SDL basics 2 1 3 SDL Unambiguous language used to specify and describe complex systems SDL/GR (graphic) and SDL/PR (text) Developed by CCITT now ITU-T Z.100 recommendation ITU- Implementation independent Provides the ability to analyze the correctness and completeness of specifications Formal enough for use by automated software tools 4 2 Why SDL was Created? First defined 1976 to describe telecom systems Remain informal until 1984 Structure and data added that year, SDL formally used Common medium of understanding for describing and specifying telecom software systems Getting more and more attention: Ability to analyze correctness and completeness of specifications Suitability for the use of computer-based tools -> ease computerfor automation Used extensively for telecom specifications
5 Why Use SDL? Provides clear and unambiguous description and specifications of complex protocols and telecom software systems Simulation, Validation, and Verification tools available for SDLs Tools available to read SDL programs and generate "code" or "TTCN testcases" testcases" 6 3 SDL Basics
Sig1, Sig2 Block B1 Process P1
DCL x Real, y Integer; B1
Sig5, Sig6 S1
Sig2 Sig7, Sig8 <0 C3 Sig1(x) y:=calc(x) y >0 SR3 B2
Sig3, Sig4 C5
Sig2 Sig5 SR4 C3
Sig5, Sig6 P2
Sig7 Sig8 B3 S1 S1 S1 C2 Four components - all object-oriented! Architecture - Blocks Behavior - Processes Communication - Signals and Channels Data and functions - Abstract Data Types 7 8 4 9 SDL Basics Block Types Process Types Procedures Task Symbols Signal Paths Signal Types (Input, Output)
10 5 SDL Block
trg_sig Block_B Fundamental unit of lexical scope and structural hierarchy Each block contains Other blocks Processes Procedures Data declarations Implicit or explicit signal channels to or from the environment
11 SDL Process
Parent_Sig Process_A (1,1) Out_sig SDL processes specify dynamic behavior using extended finite state machines Processes operate concurrently, communicating by means of signals and remote variables Process name may optionally contains the number of process instances at startup and the maximum number of instances For dynamically created processes, the dashed arrow connects the parent process to 12 the offspring 6 SDL Procedure
Procedure_Name A procedure is defined and called in the process where this symbol appears If declared "remote" the procedure may be imported for calling from other processes A value-returning procedure, callable in valueassignment statements, is defined using the "returns" keyword in the formal parameter list
13 SDL Task (Action)
X := 2.4 Used to specify an action e.g. assign a new value to a variable Part of a transition 14 7 SDL Communication Processes, blocks and systems communicate through signals conveyed through channels A signal is a message corresponding to an event Alert Ring Hang-Up HangDial
15 SDL Communication Communication within a block is assumed instantaneous (no time break) Assumed quick because it's all on the same processor Communication between blocks has uncontrollable delays Assumed slow because it is done across distances
16 8 SDL Signals Pure signals have no value Ring Hang-up Hang- Signals with values convey data e.g. dial_number(digits) Value types in SDL are fairly complex 17 Signals Addresses Signals may include the address of the process that sent them This is useful for distinguishing among multiple instances of a single process Each process may correspond to, for instance, a different call in progress Which call just hung up?
18 9 SDL Channels Signals travel between blocks and processes through channels Channel: a point-to-point connection point-toon which signals may travel A signal may traverse many channels before reaching its destination 19 The Start Symbol Denotes where the execution of a process begins Nameless state Running
10 The State Symbol Can denote both a current and a next state Line leaving leads to rules for a current state
Idle Running Arrow entering means a next state 21 The Input Symbol Appears immediately after a state Indicates input signals Input signals may trigger state transition
Idle Coin Choice Clear Lead to diagrams for each transition 22 11 The Output Symbol Send a signal to another process Which channel to send it on usually follows from its type
Idle Coin GotMoney
23 The Decision Symbol A two-way branch that can check a condition two Can be an expression or informal (false) x<5 (true) (`no') `Is anybody awake?' (`yes') 24 12 Process Creation Symbol A transition can cause another process to be created
CallHandler CallHandler(0,63) Communication channels stay fixed Processes may be marked with initial and maximum number of instances that can be created
25 Process Termination A process can terminate itself `Utter final words' 26 13 27 SDL Example - CCBS
P r o c e d u r e C C B S _ A c ti v a ti o n _ M S C
S i gn al s to/f ro m th e le ft are to/f ro m th e B S S ; si g na ls to /fr om t he r i g ht are to/f ro m H L R un l es s m a rk e d o th e r w i s e 1(2) CC B S _ P o s s i ble S tar t T 1 R R c on n e ct ion m a y b e c o n v e r te d to a n S D C C H W ai t_ F or _ C C B S _ R e q u es t CC B S _ R e qu e s t T1 E xp i ry In te r n a l tim e r e x p i ry R e lea s e tra ns a c tio n S to p T1 R e lea s e tra ns a c tio n S to p T1 CC B S _ R e q ue s t C l ea r S t o red C a ll Inf orm a ti o n C l e ar S t ore d C a ll In f o rm a ti on MS C A W a it fo r C C B S R e q u es t A ck From 3GPP's 23-093 28 14 SDL Example - CCBS
Signals to/f rom the left are to/f rom the BSS; signals to/from t he right are to/f rom HLR unless marked otherwise 2(2) MSC A Wait for CCBS Request Ack CCBS Request_Ack CCBS Request_Error Release transaction Release (CCBS Request Ack) Release (CCBS Error) Release transaction Release transaction 29 30 15 Telecom Software Testing
Transition/statement coverage of processes Deterministic testing Diagnostics
Fulfills implementation requirements Integration testing
Feature coverage, interfaces Conformance
Fulfills telecom specs Compatibility
Works with different elements System testing
NonNon-functional feature coverage User profiles, nonnondeterministic testing Capacity and reliability
31 Acceptance testing
Compliance with contract 32 16 MSC Overview What is MSC? Why MSC was created and how MSC should be used? MSC basics 33 What is MSC? Message Sequence Charts (MSC) are means for the visualization of system execution traces MSCs focus on the behavior (actions) of system components and their environment by means of message exchanges The set of specified MSC usually covers a partial system behavior each MSC represents exactly one scenario (trace) A main advantage of an MSC is its clear graphical layout which gives an intuitive understanding of the described system behavior Two syntactical forms, MSC/PR and MSC/GR. MSC/GR.
34 17 The Use of MSCs MSCs may be used:
to understand a service offered by several entities for requirements specification as a basis for system simulation and validation as a basis for selection and specification of test cases as a formalization of use cases within object-oriented objectdesign and analysis to complement SDL specifications MSC and SDL are used extensively in telecommunication software design
35 MSC History First suggestion for MSC standardization in 1989 Became revised version of ITU recommendation Z.120 in 1993 MSC'92 Approval of new recommendation Z.120 in1996 MSC'96 MSC2000 MSC2004 http://www.itu.int/rec/T-REC-Z.120-200404-I/en 36 18 MSC Overview
msc call_set_up mobile_1 base_1 network down_req base_2 mobile_2 up_call_req up_call_req call_ack down_req up_call_resp call_ack down_resp down_resp up_call_resp Graphic based - intuitive Focuses on external interactions rather than internal behaviour Specifies specific run (execution) traces, i.e. scenarios 37 UK USA RMTR air_in taxi_in taxi_out air_out MSC Usage
UK USA RMTR air_in taxi_in
START MEETING ITU, ETSI Standards
UK USA RMTR air_in taxi_in taxi_out air_out Test Generation PRESENT ARGUMENTS always takes too long COMPANY Y OPINION taxi_out air_out
THROW OUT IDEA COMPANY X OPINION MOTOROLA OPINION SUPERIOR ARGUMENT AGREE WITH MOTOROLA where the real work is done - COFFEE BREAK PROPOSE DECISION MEETING AGREES well deserved LUNCH System Requirements
START MEETING TTCN
UK USA RMTR air_in taxi_in
START MEETING UK USA RMTR air_in taxi_in
COMPANY X OPINION COMPANY Y OPINION MOTOROLA OPINION SUPERIOR ARGUMENT THROW OUT IDEA COFFEE BREAK PRESENT ARGUMENTS alway s tak es too long AGREE WITH MOTOROLA where the real work is done taxi_out
PROPOSE DECISION Test Generation taxi_out air_out
COMPANY X OPINION PRESENT ARGUMENTS always takes too long COMPANY Y OPINION MOTOROLA OPINION THROW OUT IDEA SUPERIOR ARGUMENT AGREE WITH MOTOROLA where the real work is done air_out MEETING AGREES well des erv ed - COFFEE BREAK LUNCH PROPOSE DECISION Box Testing MEETING AGREES well deserved LUNCH Network Element Requirements
START MEETING PRESENT ARGUMENTS COMPANY X OPINION always takes too long COMPANY Y OPINION TTCN Implementation Code Generation Design MOTOROLA OPINION THROW OUT IDEA SUPERIOR ARGUMENT AGREE WITH MOTOROLA - COFFEE BREAK where the real work is done Code Generation PROPOSE DECISION MEETING AGREES well deserved LUNCH MSCs are used formally throughout the development 38 cycle 19 The Basic of MSC
MSC diagram msc User_accepted User
MSC heading Condition Output event Instance AC System
Message to the environment Idle Code OK Card out Door unlocked Unlock Instance end Input event
39 MSC References
msc AutoDoor User AC System
Idle AutDoor User_Accepted opened door
Door open Unlock MSC Reference Actual Gate 40 20 HMSC High-Level MSC HighHMSC Start
msc ACsystemOverview Idle MSC Reference Connection Point User accepted Loop User rejected Door unlocked Restrictive Condition Unlocked_reset Unlocked_timeout Unlocked_unclosed Alternative 41 MSC Example
msc call_expiration base initiate wait(5) ready network manager handler call_set_up expired terminate `handle call' instance message timer co-region co- create reference local action stop msc call_set_up network
42 21 HighHigh-Level MSC Example
msc call_blocking initiate_call References can be made basic MSCs or high-level MSCs high start point end point reference branching looping A telecommunications feature may have over 100 MSCs structured through >3 levels of high-level MSCs high43 call_set_up call_refused call_proceeding terminate_call MSCMSC- Instance Decomposition
msc call base initiate ready set_up network decomposed as network_call manager msc network_call base_handler manager_handler ready initiate_set_up set_up
44 Hierarchical view of processes Internal messages hidden in upper view initiate 22 MSC Time Concepts Time concepts are introduced into MSC to support the notion of quantified time for the description of realreal-time systems, e.g. telecom Relative timing Relative timing uses pairs of events preceding and subsequent events Preceding event enables the subsequent event Absolute timing Absolute timing is used to define occurrence of events at points in time that relate to the value of the global clock Time domain The time domain can be dense or discrete
45 MSC - Time Constraints
MSC Get_NamedAccess; TC SUT decomposed as AS_Server_GNA call resolve_request time &rel1 suspension method
resolve_reply(IAref) time (0,0.7*rel1] call requestNamedAccess_request(userId, password) [rel1,3*rel1] requestNamedAccess_reply(UAref)
46 23 MSC Time Constraints for References
M SC Black_Box_Behavior; TC (0,5s] SUT Get_NamedAccess (0,1s] Set_UserContext(UAref) Start_Service(services) 47 MSC - Time Constraints for HMSC
MSC Black_Box_Behavior; [1,6s] Get_NamedAccess seq Set_UserContext (ua) time (0,1s] seq Start_Service (services) 48 24 Service Example - CCBS Call Completion to Busy Subscriber Enables caller A encountering a busy user B, to have a call completed without having to make a new call attempt when destination B becomes not busy When A requests the CCBS service, the network will start monitoring B When B becomes free, the network will wait a short period of time in order to allow the resources to be re-used by B reoriginating a new call. If B stay idle for a given time frame, the network will automatically recall user A. After user A accepts the CCSB recall, the network will automatically generate a call to B European Telecommunication Standard (ETS) No. 300 359-1 359- 49 CCBS - HMSC
msc CCBS_SERVICE CCBS_Idle DEACTIVATION REQUEST REJECT CCBS_Requested ACTIVATION CCBS_Activated MONITORING CANCEL CCBS_Free INVOCATION CCBS_Init RELEASE 50 25 CCBS - `REQUEST' and `REJECT'
msc REQUEST User_A Network_A Network_B msc REJECT User_A Network_A Network_B CCBS_Idle CCBS_Requested Request FACILITY (Request_Inv) Request_Reqind Reject check queue and service subscription FACILITY (Reject) CCBS_Not_Activated check compatability CCBS_Requested CCBS_Idle 51 CCBS - `ACTIVATION'
msc ACTIVATION User_A Network_A Network_B CCBS_Requested Request_RespConf FACILITY CCBS_Activated (Request_RR) add to queue T-CCBS2 duration shall be between 15 and 45 minutes comment CCBS_Activated 52 26 CCBS - `MONITORING'
msc MONITORING User_B_Busy CCBS_Activated monitoring of user A REPLY_B_BUSY CHECK_STATUS_B SUSPENSION REPLY_B_FREE CCBS_Awit_Status User_A_Busy REPLY_B_STILL_FREE REPLY_A_BUSY Status_Check_A REPLY_A_FREE recall User_A_Free CCBS_Free 53 CCBS - `CHECK_STATUS_B' etc.
msc CHECK_STATUS_B Network_B msc REPLY_B_FREE Network_B STATUS (confirm_free) from status request process STATUS (confirm_busy) msc REPLY_B_BUSY Network_B CCBS_Activated Start_CCBS_Processing from basic call from status request process User_B_Free reserve B-channel T-CCBS4 release B-channel reservation to status request process STATUS (Request) to status request process STATUS (Request) CCBS_Await_Status User_B_Busy 54 27 CCBS - `REPLY_B_STILL_FREE'
msc REPLY_B_STILL_FREE User_A Network_A Network_B msc REPLY_A_FREE User_A Network_A Status_Check_A from status request process STATUS (confirm_free) FACILITY (StatusRequest_free) User_B_Free T-CCBS1 Remote_User_Free FACILITY (StatusRequest_Inv) T-CCBS1 Remote_User_Free FACILITY (RemoteUserFree) T-CCBS3 Status_Check_A User_A_Free 55 CCBS - `REPLY_A_BUSY'...
msc REPLY_A_BUSY User_A Network_A Network_B msc SUSPENSION User_A Network_A Network_B Status_Check_A User_A_Busy B-channel_released alt T-CCBS1 loop<o,inf> FACILITY (StatusRequest_Inv) FACILITY (StatusRequest_busy) FACILITY (BFree_Inv) suspend request in queue release B-Channel reservation User_A_Busy T-CCBS1 alt T-CCBS1 T-CCBS1 Suspend FACILITY (StatusRequest_busy) FACILITY (StatusRequest_Inv) FACILITY (StatusRequest_free) T-CCBS1 T-CCBS1 T-CCBS1 RESUME_ReqInd CCBS_Activated 56 28 CCBS - `INVOCATION', `RELEASE'
msc INVOCATION User_A Network_A Network_B msc RELEASE User_A Network_A Network_B CCBS_Free CCBS_Init Recall CANCEL_ReqInd SETUP (Call_Inv) Release_CCBS_ID T-CCBS3 remove request from queue release B-Channel reservation Call (Call_Inv) CCBS_Init CCBS_Idle 57 CCBS - `RELEASE_CCBS_ID', `CANCEL'
msc RELEASE_CCBS_ID User_A Network_A msc CANCEL User_A Network_A Network_B CCBS_Deactivation_Requested FACILITY (Deactivate_RR) opt option valid if deactivation is caused by user A CANCEL_ReqInd T-CCBS3 release CCBS reference release CCBS reference T-CCBS2 T-CCBS3 Release_CCBS_ID CANCEL_ReqInd alt Deactivate_request FACILITY (Deactivate_Inv) FACILITY (Deactivate_RR) CCBS_Free Deactivate_confirm CCBS_Idle 58 29 CCBS - `DEACTIVATION'
msc DEACTIVATION User_A Network_A Network_B CCBS_Requested,CCBS_Activated,CCBS_Free Deactivate_Req FACILITY (Deactivate_Inv) CANCEL_ReqInd Release_CCBS_ID Deactivate_Conf removefrom queue, release B-chanell CCBS_Idle 59 30 ...
View Full Document
- Summer '08
- sdl, User_A Network_A Network_B, Network_A Network_B msc