TMDL
Timethread Map Description Language
Daniel Amyot, September 1995
(N.B. Timethreads Maps are now called Use Case
Maps)
The Project
Generating LOTOS specifications from informal timethread maps is an
interesting challenge. This projects aims at automating part of the interpretation
method introduced in the author's master thesis. We define a textual language
(TMDL) to represent timethread maps, and a compiler that translates TMDL
descriptions into LOTOS specifications (tmdl2lot). The reader
is assumed to have a background on timethreads and LOTOS.
The Languages
The Compiler
An automated tool would have two functionalities. The first one is
a transformation based on the analysis and grouping phases of the LAEG
(LOTOS Architectural Expression Generation) method defined in Bordeleau's
thesis. The second functionality consists in compiling the transformed
TMDL description into a LOTOS specification.
The prototype compiler is available in Sun
4 and DOS format (other platforms could
be considered upon request).
Objectives
The resulting tool is a prototype and might not implement all desirable
functionalities. However, the compiler prototype allows:
-
A first taste of automated translation of timethread maps into LOTOS.
-
To raise new issues related to the formalization of timethreads.
-
To improve the interpretation method and TMDL.
-
To build case studies more easily.
-
To show the potential of this design method.
Functionalities
The TMDL-to-LOTOS compiler, referred as tmdl2lot from now
on, takes as input a timethread map described in TMDL. It outputs three
different files:
-
A LOTOS specification corresponding to the timethread map. It is generated
using the interpretation method explained in Amyot's thesis.
-
An error file including all error and warning messages generated during
the compilation process. tmdl2lot also gives a summary of the number
of errors/warnings.
-
The different symbol tables used during the compilation. First, the map
structure is shown (interaction tree) followed by global symbol tables
(timethreads, groups, tag values, internal/external activities). Then,
for each timethread in the map, tmdl2lot presents the local symbol
tables for internal activities, external activities, and tag identifiers.
Note that some table elements possess flags that are also displayed (defined,
undefined, used, unused, activity type, number of value parameters...).
This file is used for debugging purpose only.
Usage
The user calls tmdl2lot in the following way:
tmdl2lot { Options }
where the possible list of Options may include:
-
[-i input_file] : TMDL description file (default is standard input).
-
[-o output_file]: LOTOS specification file (default is standard
output).
-
[-t output_file]: Symbol tables file (no file by default).
-
[-e output_file]: Error and warning file (default is standard
error).
-
[-b buffer_size]: Size of internal buffers, in bytes (default
is 8192).
-
[-f] : Flag for forced output, if an error is encountered (by
default, no LOTOS file is output when an error occurs).
The validity of each file is verified, and an error message is output when
an unknown option is encountered.
Examples
Several examples used to test the compiler are available here:
-
Traveler example (TMDL, LOTOS,
Symbol table, Errors)
-
Simple connection in a telephony system (TMDL,
LOTOS, Symbol table,
Errors)
-
Testing of interactions (TMDL, LOTOS,
Symbol table, Errors)
-
Testing of TMDL constructs (TMDL, LOTOS,
Symbol table, Errors)
Documentation
A report on the making of the compiler is available:
LOTOS Generation from Timethread Maps: A Language and a Tool
Daniel Amyot, University of Ottawa, September 1994.
PostScript
and FrameMaker
3 formats.
STDL and the interpretation method are covered in Daniel Amyot's
Master
Thesis.
Comments
Return to Daniel's home page or to the UCM
Tools page.
damyot@site.uottawa.ca