SDL-2000 Foil no 1 1999-10-25Rolv Bræk; NTNU, SINTEF Birger Møller-Pedersen; Ericsson
SDL-2000 = SDL-96 + UML + -
New ITU-T SG10 recommendations, due November 1999:
• SDL-2000 (Z.100)
• SDL combined with UML (SDL UML Profile - Z.109)
• MSC-2000 (Z.120)
New ITU-T SG10 recommendations, due November 1999:
• SDL-2000 (Z.100)
• SDL combined with UML (SDL UML Profile - Z.109)
• MSC-2000 (Z.120)
UML:
Class diagrams
State Machines
Collaborations
Sequence diagrams
Deployment
...
SDL UML profile:
stereotypes,...SDL 2000:
Type references
Composite states
Actors
...
MSC 2000:
SDL-2000 Foil no 2 1999-10-25Rolv Bræk; NTNU, SINTEF Birger Møller-Pedersen; Ericsson
Using the UML SDL Profile . . .
• with stereotyped classes
• ... and associations, in this case specialisation
• with stereotyped classes
• ... and associations, in this case specialisation
«block»
AccessPoint
«block» LoggingAccessPoint
«block» BlockingAccessPoint
SDL-2000 Foil no 3 1999-10-25Rolv Bræk; NTNU, SINTEF Birger Møller-Pedersen; Ericsson
. . .
• or with the graphical alternative to stereotypes
• or with the graphical alternative to stereotypes
AccessPoint
LoggingAccessPoint
BlockingAccessPoint
SDL-2000 Foil no 4 1999-10-25Rolv Bræk; NTNU, SINTEF Birger Møller-Pedersen; Ericsson
. . . part of the SDL model has been specified
package AccessPointLib
«block» AccessPoint
LoggingAccessPoint« block» «block»
BlockingAccessPoint
AccessPoint As alternative to
SDL-2000 Foil no 5 1999-10-25Rolv Bræk; NTNU, SINTEF Birger Møller-Pedersen; Ericsson
Including the type diagrams
block type LoggingAccessPoint inherits AccessPoint
block type BlockingAccessPoint inherits AccessPoint
block type AccessPoint
SDL-2000 Foil no 6 1999-10-25Rolv Bræk; NTNU, SINTEF Birger Møller-Pedersen; Ericsson
«signal»ReleaseCard,Cid,Digit,OK,NOK,ERR
cur_panel : PIdcid : intPIN : int
OpenDoor()
11
1
«process» AccessPoint::Controller
«process» Door«process» Panel
«block» AccessPoint
Associations, attributes and operations can be specified on types . . .
Note that the part (object) structure is not specified by this!
SDL-2000 Foil no 7 1999-10-25Rolv Bræk; NTNU, SINTEF Birger Møller-Pedersen; Ericsson
This is the part structure
e
signal opened,closed;signal open, close;
C
d
unlock,lock
isOpen,isClosedopen,
close
(validity)
code
(outp)
(inp)
opened,closed
code
(validity)
block type AccessPoint
c: Controller
d: Doorp: Panel
a type composed from a structure of instances
SDL-2000 Foil no 8 1999-10-25Rolv Bræk; NTNU, SINTEF Birger Møller-Pedersen; Ericsson
How to make this into an SDL diagram?
SDL-2000 Foil no 9 1999-10-25Rolv Bræk; NTNU, SINTEF Birger Møller-Pedersen; Ericsson
Use dependencies between
packages and systems
AccessPointLib
SignalLib
AccessControl«system»
SDL-2000 Foil no 10 1999-10-25Rolv Bræk; NTNU, SINTEF Birger Møller-Pedersen; Ericsson
system type AccessControl
CentralUnit
ap(100):AccessPoint
ce
d
The corresponding packagereference associated with each diagram in SDL
[(inp)][(outp)] [(validity)] [Code]
unlock,lock
isOpen,isClosed
use AccessPointLib
bp(10):BlockingAccessPoint
ce
d
[(inp)][(outp)] [(validity)] [Code]
unlock,lock
isOpen,isClosed
lp(20):LoggingAccessPoint
ce
d
[(inp)][(outp)] [(validity)] [Code]
unlock,lock
isOpen,isClosed
SDL-2000 Foil no 11 1999-10-25Rolv Bræk; NTNU, SINTEF Birger Møller-Pedersen; Ericsson
Composite states
• States with states and transitions, separate state diagrams, entry/exit points
• state overview diagrams
• state types and subtypes
• virtual states
• parameterized state types
• Combining•State-orientation of Statecharts
•Transition-orientation of today’s SDL
• States with states and transitions, separate state diagrams, entry/exit points
• state overview diagrams
• state types and subtypes
• virtual states
• parameterized state types
• Combining•State-orientation of Statecharts
•Transition-orientation of today’s SDL
SDL-2000 Foil no 12 1999-10-25Rolv Bræk; NTNU, SINTEF Birger Møller-Pedersen; Ericsson
OutOfService ReleaseCard
VerifyTransaction
ReadAmount
VerifyCard
EnterAmount
SelectAmount
acceptCard(account)
Amount(amount)
otherAmount
ok
abort
outOfServiceabort
rejectTransaction
UML 1.x
Statechart
SDL-2000 Foil no 13 1999-10-25Rolv Bræk; NTNU, SINTEF Birger Møller-Pedersen; Ericsson
process type ATM
dcl account Account, amount Integer;
ReadAmountvia reenter
display('Limit exceeded')
RejectTransaction
VerifyCard
acceptCard(account)
transaction(account,amount)
VerifyTransaction
ejectCard
ReleaseCard
outOfService
OutOfService
aborted
ReadAmount
SDL
CompositeStates
by means ofstate references
SDL-2000 Foil no 14 1999-10-25Rolv Bræk; NTNU, SINTEF Birger Møller-Pedersen; Ericsson
and
SeparateStateDiagrams
withentry/exit points
• scalability• encapsulation
aborted
reenter
state ReadAmount
dcl nbr Integer;
Display('Select amount')
SelectAmount
amount(amount) otherAmount
Display('Enter amount')
EnterAmount
digit(nbr)
amount :=amount * 10 + nbr
-
ok
*
abort
reenter
amount := 0
aborted
SDL-2000 Foil no 15 1999-10-25Rolv Bræk; NTNU, SINTEF Birger Møller-Pedersen; Ericsson
Combines with existing mechanisms
outOfService
outOfService
outOfService
ReadAmount,anotherState,
yetAnotherState
outOfService
outOfService
* (ReadAmount)
outOfService
*
State list All states All states, except
SDL-2000 Foil no 16 1999-10-25Rolv Bræk; NTNU, SINTEF Birger Møller-Pedersen; Ericsson
state ReadPIN
*
help
display(helpMessage)
-
Internal transitions
using existing mechanisms of SDL:
• * state• - nextstate
SDL-2000 Foil no 17 1999-10-25Rolv Bræk; NTNU, SINTEF Birger Møller-Pedersen; Ericsson
process type ATM
aborted
VerifyCard
ReadAmount
VerifyTransaction ReleaseCard
State Overview Diagrams
notAccepted
Including only • states, • exits from states • next states
- details of transitions in separate diagrams
Not a special kind of diagram, just a way to use composite states!
SDL-2000 Foil no 18 1999-10-25Rolv Bræk; NTNU, SINTEF Birger Møller-Pedersen; Ericsson
state ReadAmount
*
ok abort
aborted
aborted
state VerifyCard
*
notAccepted
notAccepted
notOk ok
Detailed Transitions in State Diagrams
SDL-2000 Foil no 19 1999-10-25Rolv Bræk; NTNU, SINTEF Birger Møller-Pedersen; Ericsson
process type ATM
aborted
VerifyCard
Read: ReadAmount
VerifyTransaction ReleaseCard
State types
notAccepted
in order touse the same composite state definition in several situations.States can be type-based.
SDL-2000 Foil no 20 1999-10-25Rolv Bræk; NTNU, SINTEF Birger Møller-Pedersen; Ericsson
state type ReadAmount
*
ok abort
aborted
aborted
state VerifyCard
*
notAccepted
notAccepted
notOk ok
SDL-2000 Foil no 21 1999-10-25Rolv Bræk; NTNU, SINTEF Birger Møller-Pedersen; Ericsson
State type inheritance
• State type may be a specialisation of supertype by:• inheriting states and transitions
•adding states and transitions
• redefining virtual procedures, among them enter & exit
• redefining virtual states and virtual transitions
• State type may be a specialisation of supertype by:• inheriting states and transitions
•adding states and transitions
• redefining virtual procedures, among them enter & exit
• redefining virtual states and virtual transitions
«state»ReadAmount
«state»HelpfulReadAmount
Enter() {virtual}Exit()
Enter() {redefined}Exit()
for any composite state type, not only the topmost state
SDL-2000 Foil no 22 1999-10-25Rolv Bræk; NTNU, SINTEF Birger Møller-Pedersen; Ericsson
state type HelpfulReadAmountinherits ReadAmount
State type inheritance
*
help
display(helpMessage)
-
As it is specified in the state type diagram
• in this case adding a help transtion to all states within HelpfulReadAmount
SDL-2000 Foil no 23 1999-10-25Rolv Bræk; NTNU, SINTEF Birger Møller-Pedersen; Ericsson
process type SimpleATM
VerifyCard
acceptCard(account)
virtualReadAmount
virtualabortedTransaction
(account,amount)
VerifyTransaction ReleaseCard
Virtual states
In order to specify which states can be redefined in a specialization.
A virtual state has a constraint, and can only be redefined as an extension of the constraint.
SDL-2000 Foil no 24 1999-10-25Rolv Bræk; NTNU, SINTEF Birger Møller-Pedersen; Ericsson
virtual state ReadAmount
display('Select amount')
SelectAmount
amount(amount)
*
abort
aborted
aborted
The default constraint is the composite state itself, so redefinitions give extensions of the composite state.
SDL-2000 Foil no 25 1999-10-25Rolv Bræk; NTNU, SINTEF Birger Møller-Pedersen; Ericsson
process type ATM inherits SimpleATM
ReleaseCard
ejectCard
redefinedaborted
redefined ReadAmount
Redefinition of a virtual state
A redefined state is still virtual and can be redefined in a specialization.
Alternatively, a finalized state is a redefinition that can not be further redefined(like Java’s final).
SDL-2000 Foil no 26 1999-10-25Rolv Bræk; NTNU, SINTEF Birger Møller-Pedersen; Ericsson
redefined state type ReadAmount
dcl nbr Integer; SelectAmount
otherAmount
display('Enter amount')
EnterAmount
digit(nbr) ok
amount :=amount * 10 + nbr
-
State diagram ofa redefined state
These states and transitions are added to the states and transitions of the virtual state.
SDL-2000 Foil no 27 1999-10-25Rolv Bræk; NTNU, SINTEF Birger Møller-Pedersen; Ericsson
AccessPoint
d
unlock,lock
isOpen,isClosed
c
(validity)
code
e
(outp)
(inp)
Agents
Agents:•the main objects of SDL-2000•unifies system, block, process, service•has either behaviour•or agent structure•or both
Specified from the outside by means of interfaces and gates
SDL-2000 Foil no 28 1999-10-25Rolv Bræk; NTNU, SINTEF Birger Møller-Pedersen; Ericsson
e
signal opened,closed;signal open, close;
C
d
unlock,lock
isOpen,isClosed
(validity)
code
(outp)
(inp)
open,closeopened,
closedcode
(validity)
AccessPoint
DoorPanel
AccessPoint
SDL-2000 Foil no 29 1999-10-25Rolv Bræk; NTNU, SINTEF Birger Møller-Pedersen; Ericsson
Agent behaviour as state
toCentral
Validation
Idle
Code(cid,PIN)
Code(cid,PIN) via U
Validation
virtual OK
OKto cur_panel
cur_panel :=sender
NOK
NOKto cur_panel
Idle
State AccessPoint
dcl cur_panel PId ; /* current panel whose Code will be validated */dcl cid, PIN integer ; /* temporary variables for the data attributes of 'Code' */
1(2)
[Code]
[(validity)]
[opened,closed]
[open,close]
[(validity)]
[Code]P D U
Opening
Open /* to Door */
SDL-2000 Foil no 30 1999-10-25Rolv Bræk; NTNU, SINTEF Birger Møller-Pedersen; Ericsson
e
signal opened,closed;signal open, close;
C
d
unlock,lock
isOpen,isClosedopen,
close
(validity)
code
(outp)
(inp)
opened,closed
code
(validity)
dcl noOfTries Integer;
block type AccessPoint
Concurrent or alternating entities I
PanelDoor
SDL-2000 Foil no 31 1999-10-25Rolv Bræk; NTNU, SINTEF Birger Møller-Pedersen; Ericsson
e
signal opened,closed;signal open, close;
C
d
unlock,lock
isOpen,isClosedopen,
close
(validity)
code
(outp)
(inp)
opened,closed
code
(validity)
dcl noOfTries Integer;
block type AccessPoint
Concurrent or alternating entities II
AccessPoint
DoorPanel
SDL-2000 Foil no 32 1999-10-25Rolv Bræk; NTNU, SINTEF Birger Møller-Pedersen; Ericsson
e
signal opened,closed;signal open, close;
C
d
unlock,lock
isOpen,isClosedopen,
close
(validity)
code
(outp)
(inp)
opened,closed
code
(validity)
dcl noOfTries Integer;
process type AccessPoint
Concurrent or alternating entities III
AccessPoint
DoorPanel
SDL-2000 Foil no 33 1999-10-25Rolv Bræk; NTNU, SINTEF Birger Møller-Pedersen; Ericsson
Object oriented data model
• object types - reference assignment
• value types - value assignment
• (virtual/redefined/finalised) operators and methods
• inheritance
• Makes SDL independent of implementation language for data handling
• Provides data modeling in the spirit of Java, C++, with UML-like graphics, SDL-like textual, - and with SDL semantics
• object types - reference assignment
• value types - value assignment
• (virtual/redefined/finalised) operators and methods
• inheritance
• Makes SDL independent of implementation language for data handling
• Provides data modeling in the spirit of Java, C++, with UML-like graphics, SDL-like textual, - and with SDL semantics
SDL-2000 Foil no 34 1999-10-25Rolv Bræk; NTNU, SINTEF Birger Møller-Pedersen; Ericsson
Example - object types
object type Event structday Day;month Month;
methods virtual possible -> Boolean;endobject type;
object type Appointment inherits EventfromTime, toTime Time;
methodsredefined possible;
endobject type;
SDL-2000 Foil no 35 1999-10-25Rolv Bræk; NTNU, SINTEF Birger Møller-Pedersen; Ericsson
value type Time structhour Natural;minute Natural;
endvalue type;
value type RealTime inherits Timedelay Natural;
endvalue type;
Example - value types
SDL-2000 Foil no 36 1999-10-25Rolv Bræk; NTNU, SINTEF Birger Møller-Pedersen; Ericsson
Data types – also by means of class symbols
fromTime : TimetoTime : Time
day : Daymonth : Month
possible( )
«object»Event
«object»Entry
delay : Natural
hour : Naturalmin : Natural
«value»Time
«value»RealTime
SDL-2000 Foil no 37 1999-10-25Rolv Bræk; NTNU, SINTEF Birger Møller-Pedersen; Ericsson
Action language I
• Action language (textual) in task symbols and procedures
• C++, Java like syntax, compounds, loop constructs, etc.
• Makes SDL independent of C and any implementation language (a closed language)
• Action language (textual) in task symbols and procedures
• C++, Java like syntax, compounds, loop constructs, etc.
• Makes SDL independent of C and any implementation language (a closed language)
dcl i1, i2 Integer; i1 := (x / 5) + 1; i1 := i1 * 2; ... { ...}...
SDL-2000 Foil no 38 1999-10-25Rolv Bræk; NTNU, SINTEF Birger Møller-Pedersen; Ericsson
ActionlanguageII
Idle
Code(cid,PIN)
Validation
virtual OK
cur_panel := sender;output Code(cid,PIN) via U;
NOK
NOKto cur_panel
Idle
state AccessPoint
dcl cur_panel PId ; /* current panel whose Code will be validated */dcl cid, PIN integer ; /* temporary variables for the data attributes of 'Code' */
1(2)
[Code]
[(validity)]
[opened,closed]
[open,close]
[(validity)]
[Code]P D U
ValidationIdle
Opening
output OK to cur_panel;output Open;
SDL-2000 Foil no 39 1999-10-25Rolv Bræk; NTNU, SINTEF Birger Møller-Pedersen; Ericsson
SDL combined with UML
SDL for:
• Systems
• Composite types
• Object structures
• Complete behaviour
MSC for:
• Message sequences
SDL for:
• Systems
• Composite types
• Object structures
• Complete behaviour
MSC for:
• Message sequences
UML for:
• Classes (type references) and Associations
UML for:
• Classes (type references) and Associations
UML in
SDL
UMLSDL in UML
SDL
Integrated tool provides both views
SDL-2000 Foil no 40 1999-10-25Rolv Bræk; NTNU, SINTEF Birger Møller-Pedersen; Ericsson
How this is achieved
• SDL UML Profile (Z.109)•Specialisation of UML that maps to SDL
•by stereotypes: «system», «block», «process», «service», «procedure», «signal», «object», «value», «state»
• SDL Graphics Extensions (Z.100)•Class symbols as combined type references and partial type definitions
•Package symbols and dependency between these
•Generalisation relationship for specialisation
•Parameterised class for type with context parameters
•Composition for containment
•General associations as comments
• Approved by ITU-T SG10 November 1999
• SDL UML Profile (Z.109)•Specialisation of UML that maps to SDL
•by stereotypes: «system», «block», «process», «service», «procedure», «signal», «object», «value», «state»
• SDL Graphics Extensions (Z.100)•Class symbols as combined type references and partial type definitions
•Package symbols and dependency between these
•Generalisation relationship for specialisation
•Parameterised class for type with context parameters
•Composition for containment
•General associations as comments
• Approved by ITU-T SG10 November 1999