Difference between revisions of "MSC tutorial"

Jump to: navigation, search
Line 95: Line 95:
== Comments ==
There are two kinds of comments : comments at chart level, and comments attached to one semantic element:

Revision as of 14:30, 24 February 2021


MSC stands for Message Sequence Chart and it is a standard from the ITU-T: https://www.itu.int/rec/T-REC-Z.120.

The MSC standard describes a language used to capture a system's operational scenarios in a formal way, with the support of both a textual and graphical representation.

This is an example of a basic MSC chart:


There are two major uses of MSC in a system development lifecycle:

  • For the specification of the expected behaviour of a system and production of validation material
  • For the observation and recording of the actual system behaviour

The following sections present the language semantics and syntax, and the use of MSC within TASTE.

Basic MSC Concepts

Basic MSC represent scenarios of operation that exhibit the system components and their interactions.


The environment of a system is represented by a box around the diagram. The environment corresponds to any entity that can send messages to the instances that are visible in the current MSC chart.


An instance in a MSC is represented by a box and a vertical line. It corresponds to a component of the system.


In its textual form, an instance is declared like this:

instance Ground_Segment;


A message is a signal optionally containing parameters, and that corresponds to an asynchronous interaction between two instances.


In the textual form messages appear inside the two instance definitions being part of the communication (sender and receiver:

instance Operator;
  out Change_Mode(safe) to Mode_Manager;

instance Mode_Manager;
  in Change_Mode(safe) from Operator; 

The parameter of the message ("safe" in that example) follows the ASN.1 Value Notation syntax. The messages are all declared at the beginning of the MSC file and parameters reference a type declaration in an ASN.1 model:

language ASN.1;
data DataView.asn;
msg Change_Mode : (System-Modes);

In an MSC chart,

NOTE: the MSC standard allows other notations and in principle the message parameters could take any form, including informal text - however from a tool standpoint, parsers require to rely on a well-defined notation so ASN.1 is used in practice.


Conditions are boxes that can appear either at the level of one instance, or shared between several instances. They can be used to specify a trigger for the MSC, or to specify anything related to the internal data of the component:



Actions are rectangular boxes allowing to specify what the instance does internally when it is triggered:



A timer can be set, reset, or can expire to specify time-related constraints:


In this example the Operator sets a timer and reset (cancels) it if the "Acknowledged" message is received on time. The Mode manager instance sets a timer to let some time pass (the timer expires) before reaching the Safe mode and sending the Acknowledged message.

Instance Creation

MSC can represent the dynamic creation of an instance from another instance. The instance can stop at any point in time.



Co-regions allow to specify that the ordering of messages received does not matter:



There are two kinds of comments : comments at chart level, and comments attached to one semantic element: