[Previous] [Next] [Contents] [Index]


   Using the ORCA Diagram Editors

OM Editor Specific Information

Browse & Edit Class Dialog

The Browse & Edit Class dialog is opened when you select Class from the Edit menu. The dialog allows inspection of OM diagram classes and objects across page and diagram borders.

An object model class is defined as the union of the attributes and operations in the class and object symbols, see Class Definition Summary, and the purpose of the Browse & Edit Class dialog is to display and ensure consistency when editing this combined information.

The Browse & Edit Class dialog is a modal dialog which is divided in two parts. The browsing functionality is placed at the top part of the dialog, where all classes in the scope, and all occurrences of each class are listed in two option menus. Below, in the editing part, the name of the class, all attributes and all operations are available.

The Browse & Edit Class dialog is available when a single class or object symbol has been selected:

Browse

By using the topmost part of the Browse & Edit Class dialog it is possible to browse amongst all class and object symbols within the scope. The scope is either the entire Organizer module where the diagram is contained, or the diagram itself if it is not contained in an Organizer module. The module concept is described in Module and in Module.

Edit

By using the lower part of the Browse & Edit Class dialog it is possible to edit the name, attributes and operations of a class. The change will propagate into all class symbols of this class in OM diagrams within the module where the diagram is contained. The attributes and operations will be presented in a list. This list is parsed information from the texts in the class symbols. If a particular text contains syntax errors, it may lead to that attributes and operations contained in the same text do not appear in this list.

Figure 296 : The Browse & Edit Class dialog

Extracted pic [16]

The Scope Label

The scope label is a non-editable text field that describes the scope that the Browse & Edit Class dialog is operating in. The scope can be either a single OM diagram or all OM diagrams within an Organizer module.

The Classes in Scope Option Menu

The Classes in Scope option menu contains a list of all classes within the scope. By selecting one of the classes in this menu the corresponding symbol will be shown and selected in the drawing area.

The Show Symbol in Option Menu

One class can be represented by several class symbols. The Show Symbol in option menu lists all occurrences of the class currently selected in the Classes in Scope option menu. The notation in the menu is <diagram-name>/<page-name>. By selecting an occurrence in this menu the corresponding symbol will be shown and selected in the drawing area.

The Class Name Field

The name field is an editable text field that initially contains the name of the class that is being edited.

By editing the class name field, it is possible to update all occurrences of that class name in class and object symbols in the current scope when the OK button is clicked.

The Attributes/Operations Buttons

The Attributes and Operations buttons select whether the attributes/operations list will contain a list of all attributes or all operations defined for the selected class. Only one of the attributes and operations buttons will be selected at any time.

The Attribute/Operations List

The attributes/operations list contains an alphabetically sorted list of the attributes or operations defined for the currently selected class.

The Clear Button

The clear button removes the currently selected operation or attribute from the Attribute/Operations list.

By clearing an attribute or operation using the clear button, that attribute or operation will be removed from all relevant class and object symbols using the current class name in the current scope when the OK button is clicked.

The Name Field

The name field contains the name of the currently selected attribute or operation in the Attribute/Operations list, if any.

Editing this field will change the definition of that attribute or operation in all relevant class and object symbols using the current class name in the current scope when the OK button is clicked.

The Parameters Field

The parameters field is an editable text field that contains the parameters of a class operation. It is only editable when an operation is selected in the Attribute/Operations list.

Editing this field will change the definition of the selected operation in all relevant class and object symbols using the current class name in the current scope when the OK button is clicked.

The Type Field

The type field is an editable text field that is only editable when an attribute or an operation is selected in the Attribute/Operations list.

Depending on the current selection, the type field contains:

By editing this field, the type of the selected attribute or the return type of the selected operation and later clicking the OK button, the type of the selected attribute or operation will be updated in all relevant class and object symbols using the current class name in the current scope.

Note that default values for attributes cannot be inspected or changed in the Browse & Edit Class dialog.

The OK Button

The OK button will close the Browse & Edit Class dialog and update all appropriate class and object symbols in the diagrams in the current scope as described for the scope label.

Note that no changes are made in the diagrams until the OK button is clicked. This makes it possible to specify several changes in the dialog and later disregard them by clicking the Cancel button.

The values are syntactically checked, so it is not possible to add syntax errors to your classes by using the Browse & Edit Class dialog. Also, it may be impossible to delete syntactically incorrect text from symbols using the Browse & Edit Class dialog, since the Browse & Edit Class dialog relies on information obtained by parsing the relevant symbol text compartments.

It is possible to undo the changes made by the Browse & Edit Class operation. Note that this undo operation may affect more than one diagram.

The Cancel Button

The Cancel button will close the Browse & Edit Class dialog and discard any changes specified in the dialog. However, if the selection has changed in the drawing area after using any of the browsing functionality, this selection will not be canceled.

All changes made in the Browse & Edit Class dialog will be lost.

Line Details Window

The Line Details window is opened when you select Line Details from the Edit menu. It is used to inspect, and edit the properties of the currently selected line. In particular, most of the line attribute objects that are available for the different line types can only be created from the Line Details window1.

Some line attribute objects contain editable text, and clearing that text, whether by editing in the Line Details window or directly in the diagram, will remove the attribute.

Changes made in the Line Details window will take immediate effect and will be shown in the drawing area. These changes can be undone with the Undo menu command.

Unlike the Browse & Edit Class dialog, the Line Details window is modeless and can remain open while you continue to work with the diagrams. The contents of the window will be updated to reflect the current selection. If there is none or more than one selected line, the fields in the Line Details window will be dimmed.

The OM Editor supports four different types of lines and the contents of the Line Details window depends on the type of the currently selected line:

Figure 297  : The Line Details window when an association line is selected

Extracted pic [17]

Figure 298  : The Line Details window when an aggregation line is selected

Extracted pic [18]

Figure 299  : The Line Details window when a generalization line is selected

Extracted pic [19]

The Name Field

The Name field is an editable text field that contains the name of the selected aggregation or association.

Unlike the other text fields in the Line Details window, the line attribute object defined by the name field is permanent and is not destroyed even if the name field is cleared.

This field is only available when an aggregation or association line is selected.

The Discriminator Field

The Discriminator field is an editable text field that changes the discriminator text attribute of the generalization.

This field is only available when a generalization line is selected.

The Reversed Name Field

The Reversed Name field is an editable text field that allows the specification of a reversed name for an aggregation or association.

This field is only available when an aggregation or association line is selected.

The Arrow Buttons

Each of these two buttons toggle an option that shows or hides the optional arrow defining the direction of the name attribute or the reversed name attribute, respectively.

The direction and position of the arrow will be automatically calculated from the position and size of the associated name attribute as well as the direction of the line.

Typically it is desirable to use arrows to enhance clarity when defining both name and reversed name fields.

These buttons are only available when an aggregation or association line is selected.

The Role Name Fields

The Role Name fields are editable text fields that allow you to create and edit the role attributes belonging to each end of the association or aggregation.

These fields are only available when an aggregation or association line is selected.

The Role Multiplicity Fields

The Role Multiplicity fields are editable text fields that allow you to create and edit the multiplicity attributes of each end of an association or aggregation.

The name field is only available when an aggregation or association line is selected.

The Ordered Buttons

Selecting the Ordered toggle creates an uneditable text attribute containing the text "{ordered}". Deselecting the Ordered toggle removes this text attribute.

The ordered text attribute can be specified both in the primary and the reverse direction.

These buttons are only available when an aggregation or association line is selected.

The Sorted Buttons

Selecting the Sorted toggle creates an uneditable text attribute containing the text "{sorted}". Deselecting the Sorted toggle removes this text attribute.

The sorted text attribute can be specified both in the primary and the reverse direction.

These buttons are only available when an aggregation or association line is selected.

The Qualifiers Fields

The Qualifiers fields are editable text fields that allow you to create and edit the qualifier fields in the forward and reverse direction respectively.

These fields are only available when an aggregation or association line is selected.

The Derived Button

The Derived button is a toggle option that indicates whether the selected association or aggregation should be marked as derived, i.e. crossed by a small slanting line.

This button is only available when an association line is selected.

The Constraint Field

The Constraint field is an editable text field that allows you to create and edit the constraint line attribute object.

This field is only available when an association or aggregation line is selected.

The Close Button

The Close button closes the Line Details window.

Symbol Details Window

The Symbol Details window is opened when you select Symbol Details from the Edit menu. It is used to inspect, and edit the stereotype and properties fields of the currently selected class or object symbol. These two symbol attribute types can only be created from the Symbol Details window. However, when created they can be edited directly in the diagram.

Figure 300  : The Symbol Details dialog

Extracted pic [20]

Changes made in the Symbol Details window will take immediate effect and will be shown in the drawing area. These changes can be undone with the Undo menu command.

Unlike the Browse & Edit Class dialog, the Symbol Details window is modeless and can remain open while you continue to work with the diagrams. The contents of the window will be updated to reflect the current selection. If multiple class or object symbols or any other symbol or line is selected the Symbol Details window will be dimmed.

The placement of the stereotype and properties texts in the class and object symbol is described in Class Symbols.

SC Editor Specific Information

Converting State Charts to SDL

To convert state charts to SDL, you select Convert SC to SDL from the Tools Menu.

Following are the transformation rules that are applied to the SC diagram:

Transformation Rules for Diagrams and Symbols

SC SDL

SC diagram

Process diagram

"Heading"

Process "Heading"

Text symbol

Text symbol

Start symbol


Extracted pic [1]

Note:

This rule does not apply if the start symbol belongs to a hierarchical state.

Start symbol


Extracted pic [2]

If an event is defined on the transition from this state

or

if more than one transition from this state:

Start symbol connected to `initial' state symbol named SDLInit.


Extracted pic [3]

Termination symbol


Extracted pic [4]

Note:

  1. This rule does not apply if the termination symbol belongs to a hierarchical state.
  2. If more than one transition to the termination symbol, the stop symbol is duplicated.

Stop symbol


Extracted pic [5]

State symbol


Extracted pic [6]

State symbol


Extracted pic [7]

Hierarchical state symbol

Nothing

Substate symbol


Extracted pic [8]

State symbol with a comment symbol


Extracted pic [9]

Transformation Rules for State Variables

SC SDL


Extracted pic [10]

Note:

  1. The same variable name may be found in more than one state and this should be avoided!
  2. Visibility and properties are not transformed to anything.

Variable declaration


Extracted pic [11]

Transformation Rules for State Internal Activities

SC SDL

For all transitions from A to B


Extracted pic [25]


Extracted pic [26]

* See Transformation Rules for Actions

For all transitions from A to B


Extracted pic [27]


Extracted pic [28]

* See Transformation Rules for Actions


Extracted pic [29]

Comment symbol


Extracted pic [30]


Extracted pic [31]


Extracted pic [32]

* See Transformation Rules for Actions

Transformation Rules for Transitions

If actions and/or send events are specified in the transition labels, insert action(s)/send event(s) last in the generated transition.

SC SDL


Extracted pic [33]

Spontaneous transition


Extracted pic [34]


Extracted pic [35]


Extracted pic [36]


Extracted pic [37]

Continuous signal


Extracted pic [38]

Note: Priority is required if more than one continuous signal exist from the same state. This must be manually added.


Extracted pic [39]

Enabling condition


Extracted pic [40]

Transformation Rules for State Internal Activities on Hierarchical States

Transformation Rules for Transitions on Hierarchical States

SC SDL


Extracted pic [41]

Note:

Exactly one start state, with an unlabeled transition, should exist in the hierarchical state.


Extracted pic [42]

* See Transformation Rules for Transitions


Extracted pic [43]

Note:

An unlabeled transition should exist out from the hierarchical state.


Extracted pic [44]

* See Transformation Rules for Transitions


Extracted pic [45]

Note:

  1. This rule applies for every substate at any nesting depth.
  2. Exception: This rule does not apply if a transition with the same trigger (event[guard]) exists on the substate.


Extracted pic [46]

* See Transformation Rules for Transitions

Transformation Rules for Actions

Depending of text contents:

SC SDL

If text starts with `call':

Procedure call


Extracted pic [22]

If quoted text:

Informal task


Extracted pic [23]

Otherwise:

Task


Extracted pic [24]

Transformation Rules for Send Events

SC SDL

No destination given:

Output


Extracted pic [47]

Destination given:

Output


Extracted pic [48]

MSC Editor Specific Information

Pasting in MSC Diagrams

To paste, you select Paste from the Edit Menu. The rules for Paste will be described below.

When pasting the selection, the MSC Editor will process each individual object contained in the selection, adjust it to the grids if required and connect it, if feasible, to the "closest" object(s) in the drawing area.

If the MSC Editor fails in pasting some of the objects contained in the selection, the rest of the objects will nevertheless be pasted but without an error message being displayed.

Pasting of Multiple Objects

When pasting a selection that consists of multiple objects, the MSC Editor attempts, as long as feasible, to preserve the original appearance of the selection.

Pasting of Individual Objects

When pasting individual objects, the MSC Editor processes the objects as follows:

Adding Symbols

Adding an Instance Head Symbol

When you add an instance head symbol, an instance axis line is drawn that connects the symbol to the bottom of the drawing area. The instance axis line cannot be drawn manually. It will be truncated or elongated when you add or move an instance end or stop symbol upwards or downwards. See Adding an Instance End Symbol and Adding a Stop Symbol.

The instance head symbol has three text fields:

Figure 301 : The meaning of the instance head text fields

Extracted pic [21]

Adding a Condition, MSC Reference or Inline Expression Symbol

A condition or MSC reference 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 or MSC reference). The minimum subset is a single instance.

For two MSCs, the second is a continuation of the first if its initial global condition is identical to the final global condition of the first. Identifying an intermediate global condition can be used when breaking down an MSC into two parts.

By means of non-global conditions, combinations of MSCs with different sets of instances can also be defined. The continuation then refers only to the common subset of instances.

The following general rule applies to the continuation of two MSCs (MSC1 and MSC2, with a non-empty common set of instances).

MSC2 is a continuation of MSC1 if, for each instance which both MSCs have in common:

An inline expression symbol is in SDT always global and connected to all instances. The inline expression symbol is created from two inline expression symbol parts:

Displaying and Modifying Status

To display and modify status, you select Status from the Edit menu.

Timer Status

Z.120 specifies two appearances for the timer symbol, depending on whether the timer has expired (i.e. timeout) or whether the timer is reset. The appearance of the timer is illustrated in Figure 302.

Figure 302  : Timer status

Extracted pic [13]

Separate Timer Status

Separate timer symbols has no need for an implicit reset. The timer can be set two times in a row without an implicit reset in-between.

Figure 303 : Separate Timer status

Extracted pic [14]

Displaying Information About the Selected MSC Object

To display information about a selected MSC object, you select Info Window from the Window menu.

This opens a dialog displaying additional information about the currently selected MSC object. The information that is available depends on what object is selected, and this is described in the table below.

Selected Object Information Available

Instance head

  • Instance name
  • Instance kind
  • Composition
  • Creating instance

Instance end

  • Instance kind

Stop

  • Instance kind

Process create

  • Creating instance
  • Created instance
  • When the instance was created1
  • SDL Reference1

Message output

(the message output is selected by clicking close to the message base)

  • Message name
  • Sending instance
  • Receiving instance
  • Message status =
    • Sent2
    • Consumed3
  • When the message was sent (now)1
  • Message parameters
  • SDL Reference1

Message input

(the message input is selected by clicking close to the message end)

  • Message name
  • Sending instance
  • Receiving instance
  • Message status=
    • Sent2
    • Consumed3
  • When the message was consumed
  • Message parameters
  • SDL Reference1

Timer

  • Timer name
  • Instance kind
  • Timer status=
    • Reset (stopped)
    • Implicit reset
    • Timeout
  • When the message was sent (now)1
  • Timer value (Set)
  • Timer parameters
  • SDL Reference1

Separate timer

  • Timer name
  • Instance kind
  • Timer status=
    • Set
    • Reset (stopped)
    • Timeout
  • When the message was consumed (now)1
  • Timer parameters
  • SDL Reference1

Action symbol

  • Instance kind
  • Action text
  • SDL Reference1

Condition

  • Condition or MSC reference name
  • Instances connected to the condition
  • SDL Reference1

MSC Reference symbol

  • Condition or MSC reference name
  • Instances connected to the condition

Text symbol

  • Symbol text

Comment symbol

  • Symbol text

Inline symbol

  • Instances connected
  • Operator (inline expression)


1. Only for diagrams created through a simulation.
2. A message is sent when it has been sent and received, but has not yet been consumed by the receiving instance. Typically, it is waiting in the receiving process input queue.
3. A message is consumed when it has been processed by the receiving instance.

Instance Ruler

When managing working on a long (vertically extended) MSC, the kind of instance in the instance head may not be visible in the drawing area.

The instance ruler (illustrated in Figure 304) shows the kind of the instance heads that are not currently visible in the drawing area. It reduces the amount of scrolling up or down when working on an MSC. The instance ruler may be shown or hidden with an option (see Instance Ruler).

Figure 304  : The instance ruler

Extracted pic [15]

Tracing a Simulation in a Message Sequence Chart

This section describes the functionality behind tracing a simulation in an MSC.

General

The MSC Editor may be used as a graphical trace tool, which features the automatic generation of an MSC from a simulation.

Defining the Scope of Trace

First, the scope of trace should, if necessary, be set to the unit which is currently of interest. This is done with the command Set-MSC-Trace.

The graphical trace is then started with a dedicated command from the simulator monitor. See Start-Interactive-MSC-Log. In response to this command, the following happens:

  1. In the Organizer, a reference to an MSC is added. The diagram is assigned an unique name.
  2. An instance of the MSC Editor window is activated on the newly created MSC.
  3. The current status for the simulation is presented by displaying all SDL process instances that exist at the time when ordering the command Start-Interactive-MSC-Log.

Mapping Between SDL and MSC

The mapping rules which govern how SDL events are transformed into MSC symbols, lines and textual elements are summarized in the following table:

SDL concept MSC Concept

Signal

  • Output
  • Input

Message

  • Sending
  • Consumption

Signal to self

  • Output
  • Input

Message to self

  • Sending
  • Consumption

Timer

  • Set
  • Reset
  • Implicit Reset
  • Input

Timer

  • Set
  • Reset
  • Implicit reset1
  • Time-out

Create a process

Process Create

Stop a process

Stop

Environment

Environment2

System
<system name>

Instance
<instance kind>

Substructure
<system name>

Instance
<instance kind>

Block
<block name>

Instance
<instance kind>

Process
<process name>
<instance number>

Instance
<instance kind>
<instance name>

State

Condition3

Task

Action4

Comment

Comment


1. See Implicit reset.
2. The system's environment is denoted by 1:env
3. The mapping is only completely valid for a condition connected to only one instance. A condition connected to several instances expresses a logical AND-combination of the states of the processes corresponding to those instances.
4. The action symbol corresponds to a task symbol containing informal text. This translation is, however, not supported when generating an MSC from a simulation.

Generating the MSC

When running the simulation, each SDL event of interest (in the scope of MSC Trace) that takes place will cause the corresponding MSC symbol to be drawn in the drawing area of the MSC Editor.

Drawing Conventions

Layout

Default layouting algorithms are used. Each event causes the insertion point to be translated downwards with one vertical spacing unit, keeping the intuitive feeling of absolute order between events. An event could be, for instance, the output or the input of an SDL signal. However, if an output event is immediately followed by an input event, no translation will take place.

Auto-Resizing of MSC

The MSC Editor will automatically enlarge the MSC size when the MSC has grown so that it reaches the bottom or right of the drawing area. The MSC is enlarged according to a preference parameter.

Messages

A distinction is made between the reception and the consumption of messages:

Create of Process

Each time an SDL process is dynamically created, a process create will be drawn from the source instance axis, and the created instance will be positioned according to the insert and grouping modes that is set. This guarantees that no overlapping instance axes will take place.

The MSC Editor will automatically enlarge the MSC size when the MSC has grown so that it reaches the bottom or right of the drawing area. The drawing area is enlarged according to the value of a preference parameter.

Process Stop

If an instance is stopped (by a stop symbol), the space which becomes available beneath the instance end symbol will not be reused for new instance axes.

Timers

Figure 305 : Timer status as shown on the MSC


Extracted pic [12]

Instances

Figure 306 : The use of the instance text fields in a simulation

Extracted pic [49]

Terminating the Trace

Having terminated the trace (either by stopping the simulation or turning the MSC trace off), you are responsible for saving the MSC(s) that are the results of the simulation.

Syntax Summary

Object Model Syntax

While the intent of Object Model diagrams is to give as large flexibility as possible to analysis and specification activities, the different editing support facilities provided by the OM Editor requires textual data to follow certain syntactic conventions.

This section details the syntax rules that are imposed by the OM Editor on textual data only. Graphical syntax rules are enforced automatically by the OM Editor and are not described here.

Summary of Lexical Rules

In general, a somewhat restricted version of the lexical rules of SDL apply for names. These rules have the following noteworthy properties:

For more information on the SDL lexical rules, see the Z.100 recommendation.

The primary restriction is that identifiers containing spaces are not considered legal.

Class Definition Summary

When interpreting OM diagrams, all class and object symbols within all pages within all diagrams in a single module must be considered. A class definition is considered to be the conceptual union of the information contained in all class symbols with the same name, as well as all object symbols declared as instances of that class.

This means that the definition of a class can be distributed over several symbols, pages and even diagrams. The definitions in class symbols with the same name are then merged to obtain the complete definition of the class; support for this is provided by the Browse & Edit Class dialog.

Thus, when defining classes, it is acceptable to have identical attributes or operations defined several times, either in the same or different class or object symbols. The identical definitions are simply redundant, and do not affect the correctness of the complete class definition.

Note, however, that each unnamed class objects is considered distinct, so that each unnamed class symbol defines its own class.

Diagram Name Syntax

Diagram names must follow certain restrictions since they are used to identify the diagram with respect to other tools.

Page Name Syntax

Each page name must be unique within its containing diagram.

Class Symbol Syntax

The textual information in class symbols is divided into five compartments of which three have their own syntax. The stereotype and properties compartments are not checked for syntax.

In the attributes and operation compartments the stereotype concept as described in Object Model Literature References can be used. The syntax chosen supports the single characters left/right guillemot («») but it can also be written as two angle brackets. To type the left/right guillemot in the text window, press <Ctrl> when you type the left/right angle bracket.

Class Name Compartment Syntax
Class Attributes Compartment Syntax

Two attributes are considered identical if they have the same name and type. Note that attributes defining different values are still considered identical.

Class Operations Compartment Syntax

Two operations are considered identical only if the name, parameter list and the return fields are all the same. Thus "op", "op(a)" and "op:t" are all unequal, while "op(a)", "OP(A)" define the same operation.

Note however that "op" and "op()" are not considered equal, since the OM Editor does not interpret an omitted parameter list as an empty parameter list.

Object Symbol Syntax

The textual information in object symbols is divided into four compartments of which two have their own syntax. The stereotype and properties compartments are not checked for syntax.

Object Name Compartment Syntax
Object Attributes Compartment Syntax

The object attributes compartment syntax is identical to the Class Attributes Compartment Syntax.

Text Symbol Syntax

Text symbols are not subject to any syntax rules.

Line Syntax

The current version of the OM Editor does not implement any syntax checks on the contents of the textual attribute objects of lines.

State Chart Syntax

While the intent of State Chart diagrams is to give as large flexibility as possible to analysis and specification activities, the different editing support facilities provided by the SC Editor requires textual data to follow certain syntactic conventions.

This section details the syntax rules that are imposed by the SC Editor on textual data only. Graphical syntax rules are enforced automatically by the SC Editor and are not described here.

Summary of Lexical Rules

In general, a somewhat restricted version of the lexical rules of SDL apply for names. These rules have the following noteworthy properties:

For more information on the SDL lexical rules, see the Z.100 recommendation.

The primary restriction is that identifiers containing spaces are not considered legal.

State Definition Summary

UML allows some expressions in text segments to be defined by the tool vendors. For State Charts such expressions should follow SDL-PR syntax, but this is not checked by the SC Editor.

When interpreting SC diagrams, all state symbols within all pages within all diagrams in a single module must be considered. A state definition is considered to be the conceptual union of the information contained in all state symbols with the same name.

This means that the definition of a state can be distributed over several symbols, pages and even diagrams. The definitions in state symbols with the same name are then merged to obtain the complete definition of the state.

Thus, when defining states, it is acceptable to have identical variables or activities defined several times, either in the same or different state symbols. The identical definitions are simply redundant, and do not affect the correctness of the complete state definition.

Note, however, that each unnamed state object is considered distinct, so that each unnamed state symbol defines its own state.

Diagram Name Syntax

The diagram name identifies the diagram.

Page Name Syntax

The page name identifies the page within a diagram.

Each page name must be unique within its containing diagram.

State Symbol Syntax

The textual information in state symbols' state sections is divided into three compartments with different syntax.

Name Compartment Syntax

The name identifies the state.

State Variable Compartment Syntax

State variables' syntax is defined by the following grammar:

Two state variables are considered identical if they have the same name and type.

Internal Activity Compartment Syntax

Internal activities' syntax is defined by the following grammar:

Two events are considered identical only if the name and the argument list are all the same. Thus "op" and "op(a)" are unequal, while "op(a)", "OP(A)" define the same event.

Note however that "op" and "op()" are not considered equal, since the SC Editor does not interpret an omitted parameter list as an empty parameter list.

Text Symbol Syntax

Text symbols are not subject to any syntax rules.

Transition Line Syntax

The textual information in the transition label attribute of transition lines is defined by the following grammar:

HMSC Syntax

While the intent of High level MSC diagrams is to give as large flexibility as possible to analysis and specification activities, the different editing support facilities provided by the HMSC Editor requires textual data to follow certain syntactic conventions as specified in MSC'96.

This section details the syntax rules that are imposed by the HMSC Editor on textual data only. Graphical syntax rules3 are enforced automatically by the HMSC Editor and are not described here.

Summary of Lexical Rules

The lexical elements follow MSC'96. These rules have the following noteworthy properties:

For more information on the MSC lexical rules, see the Z.120 recommendation.

Syntax rules in Symbols

The descriptions below describes what text is allowed in the different symbols, it is not a description of the grammar in PR-form.

The grammar below informally describes the lexical units used as terminal symbols. Refer to Z.120 for a complete description.

In the sections below each symbol will be described in the following manner:

  1. A short description of the symbol and/or its contents and purpose.
  2. The symbols textual grammar
  3. Possibly any semantic restriction and/or notes. Refer to Z.120 for a complete description of the semantics that apply.

Diagram Name Syntax

The diagram name identifies the MSC to the outside world.

Diagram names must follow certain restrictions since they are used to identify the diagram with respect to other tools.

Page Name Syntax

The page name identifies the page within a document.

Each page name must be unique within its containing diagram.

Text Symbol Syntax

The text in a text symbol is an informal explanatory text.

The text has no (formal) semantic and no restrictions.

Condition Symbol Syntax

Global conditions can be used to restrict how MSC's can be composed in High level MSC's.

Global conditions indicate possible continuations of Message sequence charts containing the same the same set of instances by means of condition name identification.

Reference Symbol Syntax

MSC References are used to refer to other MSC's of the MSC document.

MSC Syntax

While MSC diagrams allows the user to specify the analysis and specification activities in great detail with graphical symbols, there are also fields that get their meaning from textual information only. The different editing support facilities provided by the MSC Editor checks textual data to follow certain syntactic conventions as specified in MSC'96.

This section details the syntax rules that are imposed by the MSC Editor on textual data only. Graphical syntax rules4 are enforced automatically by the MSC Editor and are not described here.

Summary of Lexical Rules

The lexical elements follow MSC'96. They are identical to the lexical rules for HMSC, see Summary of Lexical Rules for further information.

Syntax Rules in Symbols

The descriptions below describes what text is allowed in the different symbols, i.e. it is not a description of the grammar in PR-form.

The grammar below informally describes the lexical units used as terminal symbols. Refer to Z.120 for a complete description.

In the sections below each symbol will be described in the following manner:

  1. A short description of the symbol and/or its contents and purpose.
  2. The symbols textual grammar
  3. Possibly any semantic restriction and/or notes. Refer to Z.120 for a complete description of the semantics that apply.

Syntax Common with HMSC

All symbols that can take textual input in the HMSC are also present (and the same) as those found in the MSC. See Syntax rules in Symbols for further information.

Syntax Specific for MSC

In addition to the symbols that are common HMSC symbols, the MSC Editor supports the following symbols that contains text.

Comment Symbol Syntax

The text in a comment symbol is an informal explanatory text.

The text has no (formal) semantic and no restrictions.

Instance, Message and Timer Name syntax

The text identifies the entity

Parameter Syntax

Both on messages and instance creations have parameters. In addition the MSC also supports parameters on timers (currently nonstandard). The Z.120 grammar for parameters is defined as follows:

This grammar is neither able to allow empty parameter lists, nor to take parameters that are generated from SDL. Furthermore, the grammar does not allow string literals. The MSC Editor (and associated tools) supports the following, more relaxed, grammar:

The grammar of <character string 2> is the same as the grammar for the Z.120 <character string> except that the apostrophe is regarded as the Z.120 <other character> and the double quote `"' is regarded as an <apostrophe>.

Instance Kind Syntax

The instance kind describes the type of the instance

Decomposition Syntax

This text is present if the instance is decomposed and describes the name of the diagram that explains the decomposed instance in greater detail.

Inline Heading Syntax

This is the syntax for the text area in the inline expressions symbols.

Literature References

Object Model Literature References

There is a growing number of publications devoted to object modeling techniques. The following two sources have been selected as defining the Object Model supported by the OM Editor:

[5]    Unified Modeling Language, version 1.1, Sept. 1997
      UML Semantics (document ad/97-08-04)
      UML Notation Guide (document ad/97-08-05)
      Object Management Group
      ftp://ftp.omg.org/pub/docs/ad/

[6]   Object Oriented Modeling and Design
      Rumbaugh, Blaha, Premerlani, Eddy, Lorensen
      Prentice-Hall (1991)
      ISBN 0-13-630054-5

State Chart Literature References

There is a growing number of publications devoted to state chart techniques. The following source has been selected as defining the State Chart supported by the SC Editor:

[7]   Unified Modeling Language, version 1.1, Sept. 1997
      UML Semantics (document ad/97-08-04)
      UML Notation Guide (document ad/97-08-05)
      Object Management Group
      ftp://ftp.omg.org/pub/docs/ad/

[8]   Unified Modeling Language, version 1.0, January 1997
      UML Semantics (document ad/97-01-03)
      UML Notation Guide (document ad/97-01-09)
      Object Management Group
      ftp://ftp.omg.org/pub/docs/ad/

MSC`96 Literature References

[9]   Z.120 (1996).
      Message Sequence Chart (MSC).
      ITU-T, Geneva, April 1996

[10]   Object-Oriented Software Engineering
      -- A Use Case Driven Approach.
      I. Jacobson.
      Addison-Wesley, 1992

[11]   Tutorial on Message Sequence Charts (MSC'96)
      Ekkart Rudolph, Jens Grabowski, and Peter Graubman

UML Literature References

[12]   The Unified Modeling Language User Guide
      Grady Booch, Ivar Jacobson, James Rumbaugh.
      Addison-Wesley, 1998

[13]   The Unified Modeling Language Reference Manual
       James Rumbaugh, Ivar Jacobson, Grady Booch.
      Addison-Wesley, 1998

[14]   The Unified Software Development Process
       Ivar Jacobson, James Rumbaugh, Grady Booch.
      Addison-Wesley, 1999


1. Once created, however, all editable textual line attribute objects can be selected and edited directly in the diagram, without the use of the Line Details window.

2. Corresponding in this context means that both conditions refer to the same subset of instances and both conditions agree with respect to name.

3. No checks are made on completeness, however.

4. No checks are made on completeness, however.


[Previous] [Next] [Contents] [Index]