ArgoUML - Open Source Unified Modeling Language (UML) Tool
Franco Martinig, Martinig & Associates, www.martinig.ch
ArgoUML is an open source Unified Modeling Language (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/
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.
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.
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.
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.
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.
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 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
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.
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