A L^{A}TEX macro package for Message Sequence Charts—Maintenance document

Victor Bos  Sjouke Mauw
Turku Centre for Computer Science  Eindhoven University of Technology
Software Construction Laboratory Department of Mathematics and Computing Science
Lemminkisenkatu 14  P.O. Box 513
FIN–20520 Turku  NL–5600 MB Eindhoven
Finland  The Netherlands

              vbos@abo.fi                            sjouke@win.tue.nl

Version 1.13, last update July 8, 2002

Abstract

The MSC macro package facilitates the L^{A}TEX user to easily include Message Sequence Charts in his texts. This document contains information which supports the maintenance of the package.

1 Introduction

This document contains three lists related to the maintenance of the MSC macro package. This is a L^{A}TEX package for drawing Message Sequence Charts. For additional information consult the

following URL: http://www.win.tue.nl/~sjouke/mscpackage.html.

The first list contains an overview of all publicly released versions of the MSC macro package. The second list contains all known (yet unresolved) bugs of the MSC macro package. The third list is the wish list, containing wishes expressed by the users of the package w.r.t. desired additional functionality.

2 Versions

• Version 1.0, First public release, 1999/03/16.

Supports drawing of the following MSC constructs: MSC frame, instances, messages (including self and env messages), coregions. Includes some parameters for fine tuning of the drawing.

• Version 1.1, Public release, 1999/03/24.

Minor bug fixes. Additionally supports: timers (singular events), lost and found messages, generalized ordering. Extra parameters: \lostsymbolradius, \timerwidth. The

macro \setfootcolor replaces \setfootgrayness, and the macro \setmscvalues replaces

\resetmsclengths. Some default values have been adjusted.

• Version 1.2, Public release, 1999/03/29.

Minor bug fixes. Code restructuring. Additionally supports: Actions.

Extra parameters: \actionheight, \actionwidth.

• Version 1.3, Public release, 1999/04/10.

Minor bug fixes. Additionally supports: Conditions, combined timer symbols, instance stop.

Extra parameters: \conditionheight, \conditionoverlap, \stopwidth. Leveloffset can

be specified in nextlevel command.

• Version 1.4, Public release, 1999/04/23.

Minor bug fixes. Additionally supports: Instance creation, MSC references, and inline expressions.

Extra parameters: \referenceoverlap, \inlineoverlap, \stopwidth.

Adjustment of default values. There are now three sizes (large/normal/small) instead of two. The middle size is now default. New command \setmscscale to scale the complete MSC up/down.

• Version 1.10, Public release, 2002/04/10.

Major improvements: support for two new types of diagrams: High-level MSCs and MSC documents. Additional MSC constructs: fat (double line) instances, gates, time measurements, comments, instance regions (activation, suspension, and co-regions), method replies (dashed message arrows). Left and right overlap of inline expressions and MSC references in an MSC diagram can be specified separately.

Reference manual. For a list of (all) commands and lengths, see reference manual.

Package now also available at CTAN.

• Version 1.10a, Public release, 2002/04/11.

Minor bug fixes. The email addresses and websites mentioned in the files have been corrected (if necessary).

The problem with the german package (german.sty) has been solved. This bug was found by Christian Kaeunicke. The german package redefines the meaning of the ” symbol in order to type german texts more efficiently. However, this was not compatible with the msc package (before version 1.10a), because it uses the ” symbol in (error)-messages. The new version (1.10a) uses the ’ symbol instead of the ” symbol. This seems to solve the problem with the german package. However, there are probably packages assigning special meaning to the ’ symbol and which will therefore not work properly with the msc package.

• Version 1.11, Public release, 2002/06/06.

Minor bug fix. The \stepcounter problem that occurred while using the MSC Macro Package together with overlays (slides) is solved.

• Version 1.12, beta release, 2002/06/18.

In this version, the user has more control over the positioning of message labels. Implementation not finished yet.

• Version 1.13, beta release, 2002/06/27.

The label positioning of version 1.12 is reimplemented. In fact, the implementation of messages is rewritten completely. The same method to compute the location of labels is used in \mess, create, lost, and found. The new implementation is backward compatible, meaning that old documents using the MSC Macro Package will still look the same.

In addition, the bounding box bug is partly fixed. An \fbox is drawn around each msc, hmsc, and mscdoc diagram. This enables dvips to compute the right bounding box. Since the \fbox is drawn in white, there is no visible result as long as the background is white, too. A consequence of this bug fix is that the MSC Macro package requires the color package. Just like the other required packages, pstricks, calc, and ifthen, this is a standard L^{A}TEX 2ε package.

3 Bugs

The MSC macro package contains numerous bugs (and hidden features). As of now, these are the only ones that have revealed themselves in public.

• Some starred versions of commands of the MSC Macro package do not cooperate with the amsbsy package. The problem is that the latter package redefined the macro \@ifstar. This bug was dicovered by Sjouke Mauw.

• The size of msc diagrams is computed incorrectly. After generating an eps file (dvips -E) from a dvi file containing exactly one msc diagram, the diagram is clipped incorrectly. This bug was dicovered by Tim Willemse.

• There are L^{A}TEX packages that assign special meaning to some characters. Consequently, the MSC Macro package might not function properly with such packages. Since we cannot anticipate on these semantical changes of symbols, we don’t know of a good solution to it. However, we try to find solutions for these problems if they originated from packages that are in the standard L^{A}TEX distribution.

A concrete example was the german package, as pointed out by Christian Kaeunicke. This package assigns special meaning to the ” symbol. If you issue \usepackage{german} before \usepackage{msc}, you will get an error as soon as your first msc diagram is compiled. As Christian also mentioned, the error does not occur if the import order of the packages is reversed.

As of MSC Macro package version 1.10a, this concrete bug with the german package has been solved and the order between msc and german is not restricted anymore.

• The MSC Macro Package (version ≤ 1.10a) crashes with the overlay environment of the slides document class. The bug is due to a redefinition of the \refstepcounter macro by the slides documentclass. This bug was discovered by Volker Stolz. He and Markus Mohnen proposed a solution: increase the counters used by the MSC macro package manually. In Version 1.11 this solution is implemented. Thanks Volker and Markus!

4 Wishes

• Make the parameters of the MSC Macro package more consistent. For example, the \mess macro and the \measure have similar positioning parameters, but they cannot have the same values. (V. Bos 2002/06/16)

• Add a section to the user manual describing how to generate other formats (like html, PostScript, pdf). (S. Mauw 2002/06/14)

• Add to the user manual a figure describing the various HMSC lengths. (S. Mauw 2002/06/14)

• Add automatic resizing of action symbols, as described in one of the tricks in the reference manual. (S. Mauw 2002/06/14)

• Add UML extensions to the MSC Macro package. Describe clearly which UML diagrams we support.(S. Mauw, 2002/06/13)

• Add option to messages to determine relative position of label. S. Mauw (sjouke@win.tue.nl), 1999/04/15.

• A possibility to change the color of instance regions. V. Bos (09/04/2002).