IBM
Contents Index Previous Next



Message Sequence Charts


A message sequence chart (MSC) is a high-level description of the message interaction between system components and their environment. A major advantage of the MSC language is its clear and unambiguous graphical layout which immediately gives an intuitive understanding of the described system behavior. The syntax and semantics of MSCs are standardized by ITU-T, as recommendation Z.120 [26].

There are various application areas for MSCs and within the system development process MSCs play a role in nearly all stages, complementing SDL on many respects. MSCs can e.g. be used:

Plain MSC

The most fundamental language constructs of MSCs are instances (e.g., entities of SDL systems, blocks, processes and services) and messages describing the communication events, see Figure 627.

Another basic language construct is the condition symbol which is drawn as a hexagon. A condition describes either a global system state referring to all instances contained in the MSC, or a state referring to a subset of instances (a non-global condition). The minimum subset is a single instance.

An MSC can reference another MSC using an MSC reference symbol. (Such a symbol can also reference a High-level MSC, explained later.) This symbol is drawn as a rectangle with rounded corners and has the name of the associated MSC stated inside it. MSC references can for example be used to have one MSC describing an initialization sequence and then reference this MSC from a number of other MSCs.

The reference symbol may not only refer to an MSC but can also contain MSC reference expressions that reference more than one MSC. This construct gives us a very compact MSC representation and it also provides an excellent means for reusability of certain MSCs.

The textual MSC expressions are constructed from the operators alt, par, loop, opt and exc:

Figure 627 : Example of a plain MSC

By means of inline operator expressions composition of event structures may be defined inside an MSC. Graphically, the inline expression is described by a rectangle with dashed horizontal lines as separators. The operator keyword alt, loop, opt, par or exc, placed in the upper left corner, are used with the same meaning as when used together with the MSC reference symbol.

Whether to use inline operator expressions or MSC reference symbols with an operator is a matter of taste. The same things can be expressed with both notations. Using inline expression several scenarios can be expressed in one single diagram, i.e. we just have one single file to handle. If we use MSC reference symbols to express e.g. exceptions and alternatives there is a need for us to handle several files. On the other hand, the diagram becomes less cluttered if we refer to other MSCs instead of trying to express all possible scenarios in it.

Figure 628 : A plain MSC with inline operator expression

For information about more plain MSC concepts, like e.g. timers, please consult the MSC standard Z.120.

HMSC

A high-level MSC (HMSC) provides a means to graphically define how a set of MSCs can be combined. Contrary to plain MSCs, instances and messages are not shown within an HMSC, but it focus completely on the composition aspects. You can get a picture of how an HMSC works in practice by comparing it with a road map. HMSCs, like normal road maps, may easily become quite complex if they are not structured in any way. Fortunately, HMSCs can be hierarchically structured, i.e. it is possible to refine HMSCs by other HMSCs. The power of the MSC language is considerably improved with the new concepts introduced with HMSCs. It is e.g. much easier to specify a main scenario together with all accompanying exceptions.

An HMSC is a directed graph where each node is either (see Figure 629):

Flow lines connect the nodes in the HMSC and they indicate the sequencing that is possible among the nodes in the HMSC. If there is more than one outgoing flow line from a node this indicates an alternative.

Figure 629 : Example of an HMSC


http://www.ibm.com/rational
Contents Index Previous Next