200 likes | 418 Views
MSC. Structuring MSCs Using Message Sequence Charts for real systems. Features. Inline expressions – for alternatives, loops, exceptions and options MSC references – such that MSCs may be referenced within other MSCs
E N D
MSC Structuring MSCs Using Message Sequence Charts for real systems
Features • Inline expressions – for alternatives, loops, exceptions and options • MSC references – such that MSCs may be referenced within other MSCs • MSC expressions – combining MSCs to express alternatives, parallel merge and loops • Gates – flexible connection points between references/expressions and their surroundings • HMSC – High level MSC for better better overview of MSC documents • Substitution– generalizing MSCs wrt. message, instance and MSC names • General ordering – when neither strict order nor no order is the situation • MSC Document – declaring a collection of MSC and their data
diagram frame heading instance condition output event input event message message to environment instance end Simple MSC in a nutshell mscUser_accepted AC System User Idle Code OK Unlock Card out Door unlocked
Idle User_Accepted Door open msc reference actual gate MSC references msc Auto_Door AutomaticDoor User AC System Unlock Opened
hmsc start connection point msc reference Idle loop User_accepted Unlocked_reset User_rejected restrictive condition Door unlocked Unlocked_timeout Unlocked_unclosed alternative High level MSC - HMSC msc AC_System_Overview
msc AC_System_Overview Idle User_rejected User_accepted Door unlocked Unlocked_reset Unlocked_timeout Unlocked_unclosed Restrictive conditions • only for HMSC conditions • only for global (initial and final) conditions • conditions may have a set of names
Idle User_accepted Unlocked_unclosed alt Unlocked_resetalt Unlocked_timeout User_rejected reference expression Door unlocked Reference expression msc AC_System_Overview
Gate application explicitly named gates implicitly named gate
expression frame Door unlocked operator operand separator alternative either this or this Idle Inline expressions msc Unlocked_Idle User AC System door alt door Lock Push door Opened door gates propagate alt Closed door Lock door Alarm Error
Door unlocked exception either this orcontinue themain road option either this ornothing Idle Exception and Option msc Unlocked_Idle User AC System door exc door Lock Push door Opened door exc door Alarm Error opt Pull door Closed door Lock
infinite loop User_accepted Unlocked_Idle User_rejected Idle Idle Loop msc AC_System_Overview User AC System loop<inf> alt
User_accepted subst Userby User1 User_accepted subst Userby User2 Parallel merge Two parallel behaviours msc TwoUsersAccepted
General order symbol Coregion General order in one instance msc User_accepted AC System User decomposed Idle Code Card out OK Unlock Door unlocked
Incomplete messages Lost message
Idle Idle Door open Door unlocked Auto_Door subst User_Acceptedby Simple_Accepted User_Accepted Substitution msc Auto_Door msc SimpleDoor AutomaticDoor User AC System Unlock Opened msc Simple_Accepted User AC System PushButton Unlock
Summary ways to achieve overview: • HMSC for over viewing large specifications • Inline expressions for over viewing small variations ways to combine MSCs: • MSC references • MSC gates • MSC reference expressions improved generalization mechanisms: • Substitution of MSCs, message names, and instance names
Remaining issues MSC 2000 issues: • Document diagrams • Data • Imperative conditions (when) • Better decomposition rules UML 2.0: • Essentially the same • Slightly different syntax
properties 1 objects 1 3 3 context ••• 2 content ••• ••• ••• MSC is used to: 4,5 • Precisely define behaviour properties such as: • use cases • interface behavior cases, protocol sequences • service behaviors • Partially synthesise designs • Verify that designs satisfy specified behaviour properties • Describe test cases • Document simulation traces • Generally improve understanding and communication about interaction problems