Methods & Tools Software Development Magazine

Software Development Magazine - Programming, Software Testing, Project Management, Jobs

Click here to view the complete list of tools reviews

This article was originally published in the Winter 2010 issue of Methods & Tools


ArgoUML - Open Source Unified Modeling Language

Franco Martinig, Martinig & Associates, www.martinig.ch

ArgoUML is an open source UML modeling tool that includes support for all standard UML 1.4 diagrams. It runs on any Java platform and is available in ten languages.

Web Site: http://argouml.tigris.org/

Version Tested: ArgoUML 0.30.2, tested on Windows XP during November/December 2010

System Requirements: ArgoUML is a Java based application that needs Java 2 JRE or JDK version 1.4 or higher and 10MB of disk space

License & Pricing: Open Source, Eclipse Public License (EPL) 1.0.

Support: User forum: http://www.argouml-users.net/forum/

Installation

ArgoUML can be installed using the Java Web Start procedure connected to ArgoUML home page. For Windows you can also download a setup file that will install it in 30 seconds and launch the application, creating a desktop icon.

Documentation

The documentation (http://argouml.tigris.org/documentation/index.html) is impressive with different formats of a quick start and a user manual (403 pages!) that are available in English, Spanish and German. Additional ArgoUML extensions documentation and UML resources are also listed in the documentation section. An on-line tool tour allows getting a quick overview of ArgoUML interface and features.

Configuration

The configuration of ArgoUML is separated in different places. You have a classical "settings" menu where you are able to configure the user interface options like language or appearances. It is also there that you enable or disable the associated modules, like the Java code generator and some of their settings. The "Critique" menu allows to toggle design critics that create "todos" elements during your modeling activity and to adjust the importance of critics.

Features

ArgoUML support the following UML 1.4 diagram types:

  • Class diagram
  • Statechart diagram
  • Activity diagram (including Swimlanes)
  • Use Case diagram
  • Collaboration diagram
  • Deployment diagram (includes Object and Component diagram in one)
  • Sequence diagram

ArgoUML also provides code generation for Java, C++, C#, PHP4 and PHP5. It also enables reverse engineering from Java. External modules have been developed to complement ArgoUML in specific areas. They provide generation of database schemas or code in other languages like Ruby or Delphi. You can find a list of most of these modules on http://design.tigris.org/

In this evaluation, we will concentrate only on the UML diagramming features of ArgoUML.

User Interface

The screen of ArgoUML is split in four different panes. The "explorer" pane shows relationships between diagrams and design items according to the selected perspective. The "ToDo" pane contains the tasks that could be completed. The main window is the drawing window where you create your diagrams. On the bottom, you find a "details" pane where you can define your diagram items and link them with elements, like a "todo" item or documentation.

Drawing Diagrams

The modeling process is rather intuitive and smooth, The only missing feature is an "undo/redo" capability. The mouse gives you hints on each element that you can place on your diagram. You can then use the detail pane to describe diagram items and link to other items like documentation for instance. After each action, your model is assessed and the "todo" panel on the bottom left is updated. Clicking on one of this item will give you an explanation about its rationale and how you should act to improve your design. You can naturally turn off this constant evaluation of your design.

Figure 1. Design assessment during the construction of a Use Case Diagram

Another interesting feature of ArgoUML is the presence of checklist for every component of a model.

Figure 2. Checklist for a "FlightNumber" class

Class Models

Class models are influenced by generation. You can see the generated results as you are building your class and the generating process influences the design assistance. Diagrams can be graphically exported in the various formats, so that you can include them in other documents.

Figure 3. Exported Class Diagram

Conclusion

ArgoUML is an active open source project that provides a working tool to support basic UML modeling activities. The diagramming features are easy to use and provides useful assistance in the formatting / aligning process. The nicer aspects of ArgoUML lie in its design assistance features. The design evaluation and checklists provides valuable help to make sure that your models are well formed. This will be specifically attractive for people that are learning UML diagrams or don't use them continuously. Beside the modeling aspects, ArgoUML has also some nice features like code generation and reverse engineering. I haven't checked these aspects, but if you develop with Java you might be interested to explore them.

Reference

Models of this evaluation inspired by the book "UML 2.0 in Action", Patrick Grässle, Henriette Baumann, Philippe Baumann, Packt Publishing, ISBN 1-904811-55-8


More UML Content

UML Unified Modeling Language Zone

UML Unified Modeling Language Tools

UML Planet


Click here to view the complete list of tools reviews