AUML-2 & Interaction Diagram Tool

This web page describes a textual notation for describing interaction diagrams and interaction protocols in a (subset of) AUML-2. There is also an associated (prototype!) tool that takes these textual descriptions and generates a graphical diagram (in encapsulated postscript).

Further information:

NEW: Similar functionality has now been built into the Prometheus Design Tool (PDT), making the prototype tool obsolete.

Usage

Prepare a text file with a description. In the steps below we assume that this is in a file called test.
  1. Download auml.pl
  2. ./auml.pl test
  3. wish test.tk
  4. ghostview test.eps
Notes: Download: auml-new.pl. (or older version or even older version)
 

Input Format

An input file consists of a series of commands, one command per line. Usually, the first few commands define agents/roles and then the rest of the file defines messages between them. The order that agents appear from left to right is the order in which they are defined.

Available commands are the following: (guard, sub, goto and label are new)

Converting Postscript to Other Formats

Firstly, why postscript? Because it produces high quality printouts and can be scaled to any resolution.

Converting to bitmap formats (e.g. for the web, for powerpoint presentations) can be done using ghostview. Under windows, ghostview offers a convert option. Under unix, you can call gs with various command line arguments to convert postscript to a range of formats.

For example, the following command converts eg1.eps to eg1.jpg:
 gs -sDEVICE=ppm -sOutputFile=- -r100x100 -sNOPAUSE -q eg1.eps -c showpage -c quit | pnmcrop| cjpeg > eg1.jpg
 

Examples

Firstly, a simple interaction diagram (download: txt, eps). Note the use of backup to have two simultaneous messages.

agent T Tutor
agent L Lecturer
agent S Student
message S L Question
message L S Answer
backup
message L T Answer CC

Secondly, a simple interaction protocol (download: txt, eps). Note that indentation makes no difference to the tool, but makes the protocol's textual description more readable to humans.

start FIPA query protocol
agent I Initiator
agent P Participant
box alt
    message I P query-if
  next
    message I P query-ref
end alt
box alt
    message P I not-understood
  next
    message P I refuse
  next
    message P I failure
  next
    message P I inform
end alt
finish
 

Thirdly, an example illustrating the use of invis (download: txt,eps).

invis env environment
role p Proxy
role ws Web Server
message env p Page Request
message p ws Page Request
message ws p Page
message p env Page
Finally, a silly example illustrating some of the new features. (download: txt,eps).

agent a An agent
agent b Another agent
message a b Hello
message b a G'day
box alt
  guard [sunny]
  message a b Lovely weather!
  goto Farewell
next
  guard else
  message a b Ah the rain!
  sub Complain about the weather
end alt
label Farewell
message b a Indeed
finish

Bugs

Yes :-)

Seriously, this is a prototype. Use at your own risk. If you find bugs please let me know. if you want to fix bugs yourself or enhance the tool feel free to do so. If you add cool new functionality please send me a copy!