UMLGraph/index.html

179 lines
6.9 KiB
HTML

<?xml version="1.0" encoding="us-ascii"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- No not edit this page in the web directory. -->
<!-- $Id$ -->
<head>
<title>UMLGraph - Declarative Drawing of UML Diagrams</title>
<meta name="AUTHOR" content="Diomidis Spinellis" />
</head>
<body>
<h1 align="right"><tt><font color="#ff0000">UMLGraph dds</font></tt></h1>
<h2>UMLGraph - Declarative Drawing of UML Diagrams</h2>
<!-- Introduction {{{1 -->
UMLGraph allows the declarative specification and drawing of
UML class and sequence diagrams.
The current features
are part of an ongoing effort aiming to provide support for
all types UML diagrams.
An <em>IEEE Software</em> article titled
<a href="../../pubs/jrnl/2003-IEEESW-umlgraph/html/article.html">On the declarative specification of models</a>
explains the rationale behind this approach.
The tehnology behind UMLGraph was used to draw many of the diagrams
appearing in the books
<a href="http://www.spinellis.gr/codequality">Code Quality: The Open Source Perspective</a> (Addison Wesley, 2006) and
<a href="http://www.spinellis.gr/codereading">Code Reading: The Open Source Perspective</a> (Addison Wesley, 2003).
In addition,
the <em>UMLGraphDoc</em> doclet included in this distribution automatically
adds UML diagrams to javadoc documentation,
<a href="http://lightuml.sourceforge.net/">LightUML</a>
integrates UMLGraph into <a href="http://www.eclipse.org">Eclipse</a>,
<a href="http://maven-plugins.sourceforge.net/maven-dotuml-plugin/">Dotuml</a>
integrates UMLGraph into <a href="http://maven.apache.org/">Maven</a>,
and the <a href="http://sourceforge.net/projects/xholon/">Xholon</a>
framework uses UMLGraph to generate its runtime sequence diagrams.
Furthermore,
the Politecnico Di Torino SoftEng group has extended UMLGraph into
the <a href="http://softeng.polito.it/projects/XUG/">XUG</a>
reverse engineering tool, and
Adam Feuer's
<a href="http://www.python.org/pypi/PyUMLGraph">PyUMLGraph</a>
system applies the concept to Python programs.
Finally,
<a href="http://martinfowler.com">Martin Fowler</a> writes:
<blockquote>
I thought I'd send you a note saying how much I enjoyed discovering UML Graph. I've long fancied a text based way of describing UML diagrams, but never felt sufficiently time-rich to develop anything.
</blockquote>
Martin has created a
<a href="http://martinfowler.com/bliki/UmlSketchingTools.html">bliki entry</a>
describing his ideas of what an ideal textual language might look like.
<h3>Class Diagrams</h3> <!-- {{{1 -->
One specifies a class diagram using the Java syntax complemented by
<a href="http://java.sun.com/j2se/javadoc/"><em>javadoc</em></a>
tags.
Running the UmlGraph doclet on the specification will generate
a
<a href="http://www.research.att.com/sw/tools/graphviz/">Graphviz</a>
diagram specification that can be automatically processed to
create Postscript, GIF, SVG, JPEG, fig, or Framemaker drawings.
<p />
The following is an example of a class diagram specification and the resulting UML
diagram:
<table>
<tr><td>
<pre>
class Person {
String Name;
}
class Employee extends Person {}
class Client extends Person {}
</pre>
</td><td>
<img src="doc/class-eg.gif" alt="Simple UML class diagram" />
</td></tr></table>
<h3>Sequence Diagrams</h3> <!-- {{{1 -->
One specifies a sequence diagram using <em>pic</em> macros to define
objects and method invocations.
The <a href="http://www.gnu.org/software/plotutils/plotutils.html">GNU plotutils</a>
<em>pic2plot</em> program can then process the sequence diagram to create a
PNG, PNM, (pseudo)GIF, SVG, AI, Postscript, CGM, FIG, PCL, HPGL, Regis, or TEK
drawing.
<p />
The following is an example of a sequence diagram specification and the
resulting UML diagram:
<table>
<tr><td>
<pre>
# Define the objects
object(O,"o:Toolkit");
placeholder_object(P);
step();
# Activation and messages
active(O);
message(O,O,"callbackLoop()");
create_message(O,P,"p:Peer");
message(O,P,"handleExpose()");
active(P);
return_message(P,O,"");
inactive(P);
destroy_message(O,P);
inactive(O);
# Complete the lifeline of O
step();
complete(O);
</pre>
</td><td>
<img src="doc/seq-eg.gif" alt="Simple UML sequence diagram" />
</td></tr></table>
<h3>Download and Links</h3> <!-- {{{1 -->
UMLGraph is hereby made freely available as Open Source Software.
The current version of UMLGraph is VERSION.
You can download UMLGraph and its documentation from the following links:
<ul>
<li> <a href="UMLGraph-VERSION.tar.gz">UmlGraph package version VERSION - .tar.gz</a>
(compressed tar file containing the source code, the compiled doclet,
and the complete documentation in HTML format).
</li>
<li> <a href="UMLGraph-VERSION.zip">UmlGraph package version VERSION - .zip</a>
(zip file containing the source code, the compiled doclet,
and the complete documentation in HTML format).
</li>
<li> <a href="doc/index.html">User documentation</a>
(table of contents - suitable for web browsing).
</li>
<li> <a href="doc/indexw.html">Printable user documentation</a>
(the above as a single printable page).
</li>
<li> <a href="javadoc/index.html">Doclet technical documentation</a>
(javadoc table of contents).
</li>
<li> <a href="doc/ver.html">Version history</a> </li>
<li> <a href="http://freshmeat.net/projects/umlgraph/">freshmeat.net page</a> (use it to subscribe and post comments).</li>
<li> <a href="UMLGraph-2.10.tar.gz">UmlGraph package version 2.10 - .tar.gz</a>
(The last version compatible with Java 1.4; compressed tar file containing the source code, the compiled doclet,
and the complete documentation in HTML format).
</li>
<li> <a href="UMLGraph-2.10.zip">UmlGraph package version 2.10 - .zip</a>
(The last version compatible with Java 1.4; zip file containing the source code, the compiled doclet,
and the complete documentation in HTML format).
</li>
<li> <a href="jars/UmlGraph-VERSION.jar">UmlGraph binary - UmlGraph-VERSION.jar</a>
(jar file containing only the UmlGraph classes;
please use this only for pulling UmlGraph into other projects).
</li>
<li> <a href="CHECKSUM.MD5">MD5 checksums</a> for each of the above .zip, .tar.gz, and jar archives.
</li>
<li> <a href="doc/faq.html">Frequently asked questions</a> </li>
</ul>
<!-- End matter {{{1 -->
<p />
<a href="../../">Diomidis Spinellis home page</a>
<hr />
<table>
<tr><td>
<a href="http://validator.w3.org/check/referer"><img src="../../valid-xhtml10.png" border="0" alt="Valid XHTML 1.0!" height="31" width="88" /></a>
<a href="http://www.w3.org/WAI/WCAG1AAA-Conformance" title="Explanation of Level Triple-A Conformance"><img border="0" height="32" width="88" src="../../wcag1AAA.gif" alt="Level Triple-A conformance icon, W3C-WAI Web Content Accessibility Guidelines 1.0" /></a>
</td><td>
<font size="-2">
(C) Copyright 2002-2005 D. Spinellis.
May be freely uploaded by WWW viewers and similar programs.
All other rights reserved.
<br />
Last modified: $Date$
</font>
</td></tr>
</table>
</body>
</html>