Message sequence chart: Difference between revisions

Content deleted Content added
Fabcap (talk | contribs)
#suggestededit-add 1.0
Tags: Mobile edit Mobile app edit Android app edit
 
(47 intermediate revisions by 31 users not shown)
Line 1:
{{Short description|Interaction diagram from the SDL family}}
[[Image:CheckEmail.png|thumb|250px|right|Example of a simple [[Unified Modeling Language|UML]] message sequence chart.]]
[[File:Typical MSC (Message Sequence Chart).png|thumb|The diagram shows three entities. At start the phone is disconnected. A user tries to establish a connection. A connection request is sent to the switch and a timer is started. An alternative deals with two possibles responses: 1 - The timer goes off because the switch did not reply and the phone goes back to the disconnected state.2 - The switch grants the connection and the call is established.]]
A '''message sequence chart''' (or '''MSC''') is an interaction diagram from the [[Specification and Description Language|SDL]] family very similar to [[Unified Modeling Language|UML]]'s [[sequence diagram]], standardized by the [[International Telecommunication Union]].
A '''message sequence chart''' (or '''MSC''') is an [[interaction diagram]] from the [[Specification and Description Language|SDL]] family standardized by the [[International Telecommunication Union]].
 
The purpose of recommending MSC (Message Sequence Chart) is to provide a trace language for the specification and description of the communication behaviour of system components and their environment by means of message interchange. Since in MSCs the communication behaviour is presented in a very intuitive and transparent manner, particularly in the graphical representation, the MSC language is easy to
The main area of application for message sequence charts is as for communication behaviour in [[Real-time computing|real-time systems]], more specifically telecommunication [[electronic switching system]]s.
learn, use and interpret. In connection with other languages it can be used to support methodologies for system specification, design, simulation, testing, and documentation.
 
==History==
The first version of the MSC standard was released inon 1992<ref>{{citeMarch web12, 1993.
| url=http://www.sdl-forum.org/MSC2000present/sld006.htm
| title=The history of MSC
| publisher=sdl-forum.org
| accessdate=2009-09-19}}</ref>.
 
The 1996 version added references, ordering and [[Inline expansion|inlining]] expressions concepts, and introduced HMSC<ref>{{cite web
Line 15 ⟶ 13:
| title=HMSC
| publisher=sdl-forum.org
| accessdate=2009-09-19}}</ref> ('''H'''igh-level '''M'''essage '''S'''equence '''C'''harts), which are the MSC way of expressing [[Statea sequence of diagram]]sMSCs.
 
The latest MSC 2000 version<ref>{{cite web
| url = http://folk.uio.no/intime/msc2000.pdf
| title = MSC 2000
| publisher = [[Ericsson]]
| author = Øystein Haugen
|accessdate = 2009-09-19
| accessdate=2009-09-19}}</ref> added object orientation, refined the use of data and time in diagrams, and added the concept of remote method calls<ref>{{cite web
|url-status = dead
|archiveurl = https://web.archive.org/web/20110607104113/http://folk.uio.no/intime/msc2000.pdf
|archivedate = 2011-06-07
}}</ref> added object orientation, refined the use of data and time in diagrams, and added the concept of remote method calls.<ref>{{cite web
| url=http://www.sdl-forum.org/MSC2000present/sld007.htm
| title=What is new in MSC 2000 relative to MSC 96.
| publisher=sdl-forum.org
| accessdate=2009-09-19}}</ref>.
 
Latest version has been published in February 2011.
 
==Symbols in MSC==
The existing symbols are:
* MSC head, lifeline, and end: a vertical line with a box at the top, and a box or a cross at the bottom.
* Instance creation: horizontal dashed arrow to the newly created instance.[[File:Dynamic Process Creation in a Message Sequence Chart.png|thumb|Dynamic process creation in an MSC]]
* Message exchange: horizontal arrow.
* Control flow: horizontal arrow with the 'call' prefix, dashed arrow for reply symbol, method and suspension symbols in between. [[File:MSC CallOperation.png|thumb|Call operation in an MSC]]
* Timers: start, cancel, time out.
* Time interval: relative and absolute with a dashed vertical arrow. [[File:MSC TimeConstraint.png|thumb|Time constraint in an MSC]]
* Conditions: usually used to represent a state of the underlying state machine.
* Action: a box.
* In-line expressions: alternative composition, sequential composition, exception, optional region, parallel composition, iteration (loop).
* Reference: reference to another MSC. [[File:MSC Reference.png|thumb|MSC Reference in an MSC]]
* Data concept: The user can use any data concept, if binding is undefined the default data concept is the one from [[Specification and Description Language|SDL]] as defined in Z.121 recommendation.
* Coregion: a double dashed instance line to describe unordered events.
 
==Symbol extensions==
* [[SDL-RT]] has introduced:
** a semaphore instance representation. [[File:SDL-RT MSC Semaphore.png|thumb|SDL-RT Semaphore extension to MSC]]
** a save symbol to save messages.
 
==Comparison to UML==
UML 2.0 [[Sequence diagram|Sequence Diagram]] is strongly inspired by the ITU-T MSC. Still, for historical reasons, the default basic principles are quite different:
It has been said that MSC has been considered as a candidate for the [[Unified Modeling Language#Interaction diagrams|interaction diagrams]] in UML<ref>{{cite web
* Lifelines
| url=http://www.swe.informatik.uni-goettingen.de/publications/ER_JG_PG/SDL99-Harmonization.ps.gz
:* In an MSC, the vertical lines are autonomous execution entities. They usually represent state machines executing in parallel. The state machines need not be on the same computer.
:* In a Sequence Diagram, a vertical line is usually an object. The object can be active (in its own thread of execution) or passive (in the execution context of an active object).
* Arrows
:* In an MSC an arrow is usually an asynchronous message sent from one entity to another one. Once the message is sent the sending entity resumes its execution.
:* In a Sequence Diagram an arrow is usually understood as an operation call on a class. It is therefore synchronous and the calling entity hangs until the operation returns.{{fact|date=November 2022}}
It has been said that MSC has been considered as a candidate for the [[Unified Modeling Language#Interaction diagrams|interaction diagrams]] in UML.<ref>{{cite web
| url=http://www.swe.informatik.uni-goettingen.de/publications/towards-harmonization-uml-sequence-diagrams-and-msc
| title=Towards a Harmonization of UML-Sequence Diagrams and MSC
| year=1999
| publisher=[[University of Göttingen]]
| authorauthor1=Ekkart Rudolph, |author2=Jens Grabowski, |author3=Peter Graubmann | accessdate=2014-08-25}}</ref>
| accessdate=2009-09-20}}</ref>.
 
However, proponents of MSC such as [[Ericsson]] think that MSC is better than [[Unified Modeling Language|UML 2.0]] for modelling large or complex systems.<ref>{{cite web
| url=http://www.irisa.fr/manifestations/2000/sam2000/SLIDES/Haugen.pdf
| title=UML 2.0 vs. SDL/MSC – Ericsson Position Statement
Line 43 ⟶ 74:
| publisher=[[Ericsson]]
| author=Øystein Haugen
| accessdate=2009-09-19}}</ref>.
 
==Live Sequence Charts==
[[David Harel]] thinkssuggested that MSC still has severalhad shortcomings such as:
* MSC propose a weak [[Partially ordered set|partial ordering]] semantics that makes it impossible to capture some behavioral requirements,
* The relationship between the MSC requirements and the executable specification is not clear.,
Toand addressproposed whatLive heSequence seesCharts (LSC) as weaknesses in the MSC model, David Harel proposed an extension on the MSC standard called '''LSC''' ('''L'''ive '''S'''equence '''C'''harts).<ref>{{cite web
| url = http://www.comp.nus.edu.sg/~thiagu/public_papers/surveymsc.pdf
| title = Message Sequence Charts
| date = 2003-04-08
| author =[[ David Harel]]
| accessdate = 2009-09-20}}</ref><ref>{{cite web
|url-status = dead
| url=http://www.springerlink.com/content/hfnna0r9jbl54ya4/
|archiveurl = https://web.archive.org/web/20060826195305/http://www.comp.nus.edu.sg/~thiagu/public_papers/surveymsc.pdf
|archivedate = 2006-08-26
|author-link = David Harel
}}</ref><ref>{{cite journal
| title=LSCs: Breathing Life into Message Sequence Charts
| journal=Formal Methods in System Design
| volume=19
| pages=45–80
| date=2005-02-22
| author=David Harel
| publisher=[[Formal Methods in System Design]]
| doi=10.1023/A:1011227529550
| author=[[David Harel]]
| s2cid=1551133
| accessdate=2009-09-20}}</ref><ref>{{cite web
|author-link = David Harel}}</ref><ref>{{cite journal
| url=http://portal.acm.org/citation.cfm?id=582429
| title=Multiple instances and symbolic variables in executable sequence charts
| journal=ACM SIGPLAN Notices
| date=[[2002]]
| volume=37
| publisher=[[Association for Computing Machinery]]
| issue=11
| author=[[David Harel]]
| pages=83–100
| accessdate=2009-09-20}}</ref>.
| year=2002
 
| author=David Harel
==Tools==
| doi=10.1145/583854.582429
* [http://www.pragmadev.com/product/tracing.html MSC Tracer] Free tracing tool based on PragmaDev Real Time Developer Studio
| citeseerx=10.1.1.20.5984
*[[MscGen]] – Automatic generation of diagrams based on text descriptions of the messages.
| author-link=David Harel
*[http://sourceforge.net/projects/msc-generator/ MscGenerator] - Advanced version of MscGen, designed for telecom message flows.
}}</ref>
*[http://websequencediagrams.com/ Web-based MSC Generator]
*[http://code.google.com/p/msc2svg/ Msc2Svg – Generates charts as SVG from a simple text description file]
*[http://www.eventhelix.com/eventstudio/ EventStudio – Message sequence chart generation tool]
*[http://www.doc.ic.ac.uk/ltsa/ LTSA] – Supports the drawing and subsequent [[Formal verification|automated verification]] of message sequence charts.
*[http://scstudio.sourceforge.net Sequence Chart Studio] – Extends [[Microsoft Visio]] to draw and verify Z.120 compliant sequence charts.
*[http://trace2uml.tigris.org/ Trace2UML] – Tool for drawing and recording sequence charts.
*[http://satoss.uni.lu/mscpackage/ MSC Latex package] – a [[LaTeX]] package for creating message sequence charts.
 
==See also==
* [http://www.di.univaq.it/psc2ba/ PSC] Property Sequence Chart, a way to describe properties in an MSC<ref>{{cite book
* [[Unified Modeling Language#Interaction diagrams|Interaction diagrams in UML]]
| year=2013
| publisher=Springer
|author1=Emmanuel Gaudin |title = SDL 2013: Model-Driven Dependability Engineering| volume=7916
| pages=19–35
|author2=Eric Brunel | doi=10.1007/978-3-642-38911-5_2
| series=Lecture Notes in Computer Science
| isbn=978-3-642-38910-8
}}</ref> or a Sequence Diagram.
* [[Specification and Description Language|SDL]] Specification and Description Language, an MSC related ITU-T language.
* [[Unified Modeling Language#Interaction diagrams|Interaction diagrams in UML]].
 
==References==
Line 87 ⟶ 129:
 
==External links==
* [http://www.itu.int/rec/T-REC-Z.120 ITU-T Recommendation Z.120] message sequence chart (MSC)
*Michel Reniers: “[http://www.win.tue.nl/~michelr/Files/proefschrift.pdf Message sequence charts – syntax and semantics]”, PhD thesis, [[Eindhoven University of Technology]], 1999
 
<references/>
 
{{Soft-eng-stub}}
{{telecomm-stub}}
 
[[Category:Diagrams]]
Line 99 ⟶ 135:
[[Category:Telephone exchanges]]
[[Category:Unified Modeling Language diagrams]]
[[Category:Software modeling language]]
 
[[de:Message Sequence Chart]]
[[pt:Diagrama de ladder]]
[[sv:MSC]]