Login | Register
My pages Projects Community openCollabNet

Project home

2020-03-13: This site is going to be decommissioned and shut down very soon. Please copy and archive any data you wish to keep ASAP

If you were registered and logged in, you could join this project.

Summary A converter from program traces to UML diagrams
Category construction
License GNU General Public License
Owner(s) astade


This project develops an application which can convert a trace file in text format to UML sequence diagrams. The application can also modify the diagrams and save in the same format. 

Trace2UML can be used to draw diagrams for Doxygen. See Description.

NEW: Trace2UML can be used to integrate sequence diagrams into dokuwiki. See Description.

The tool is needed by the Project Astade, it should be useful for programmers of other projects, too.

It is written with the Astade tool. Try it, you can download here: http://trace2uml.tigris.org/servlets/ProjectDocumentList?folderID=6208

Some screen shots

Graph Tab

Text Tab

The features

  • reads special trace files which can easily be generated by any application.
  • the trace can easily be edited by hand, too.
  • draws nice (graphical) UML sequence diagrams.
  • you can export in .pdf, .png and .svg.
  • can modify the diagrams
  • the source (trace file) is pretty usable as a debug trace, too.
  • the planned sequences and the recorded ones can be compared by a text diff.

The Trace format (details)

Symbol description
; lines starting with ';' are comments. They are not drawn.
# lines starting with '#' are visible comments. They are drawn with a horizontal line.
! this is used to notify the existence of an object (the creation is not in the scope of the trace). This is automatically inserted when you use an object name not mentioned before.
(!) this is used to notify an object creation.
(X) this is used to notify an object deletion.
>-- this is used to notify an asynchronous message send.
--> this is used to notify an asynchronous message receive.
>-> this is a shortcut when typing traces by hand. Creates both an asynchronous message send and a corresponding message receive.
==> this is used to notify a synchronous function call.
<== this is used to notify a synchronous function return.
>>> this is used to notify a state change.
[...] everything set into square brackets is treated as user data. It stays in the trace line without having any effect on the graphics. You can use it for timestamps or remarks.


The forbear of this tool is UMLGraph from Diomidis Spinellis.