SAN MATEO (04/18/2000) - For companies that are just getting started with UML (Unified Modeling Language), a method of visually depicting business processes, the range of diagram types, semantics, and notation can be forbiddingly complex. Worse, most UML software packages assume a baseline level of familiarity with the technology. So, unless you know your way around UML, the methods may actually complicate, rather than simplify, development projects.
Collab.Net's ArgoUML, an open-source UML modeling solution, seeks to ease those pains by providing cognitive support throughout the modeling process. Taken as a whole, ArgoUML doesn't offer as many tools as mature kits do, such as Popkin Software's System Architect or Computer Associates International Inc.'s Paradigm Plus. But companies looking for help with their UML projects may find ArgoUML to be a viable alternative.
The cognitive support features execute continuously in the background, analyzing your UML design as you work and suggesting possible improvements. I found this to be an extremely helpful and reliable feature. Throughout the modeling process, ArgoUML displays little yellow notes and wavy red underlines to indicate incomplete and incorrect parts of your design. With a simple right-mouse click on any diagrammatic element, you're shown a To Do list of problems that must be fixed, such as capitalizing the class name or adding constructors, operations, and associations. When you select one of the items in the list, ArgoUML advises you on how the issue might be resolved. Even better, the software provides a wizard that prompts you for the appropriate feature.
You can even sort items in your To Do list by priority, decision, goal, or, amusingly enough, offender. If you prefer, you can ignore messages via a "snooze critic," which prevents the decision support from executing. Or you can e-mail queries to other experts on your team for further clarification.
Moreover, ArgoUML generates design-review checklists to help you play by UML rules: no more having to remember to include subclasses or clarify ambiguous class names. These are all features that I'd love to see in commercial UML tools.
Apart from its cognitive support features, ArgoUML provides many of the same features found in other UML packages. The software is a joy to work with:
Performing actions such as adding new class diagrams to an existing model proved to be effortless. I was pleased to find that, when the diagram was placed on the work area, ArgoUML prompted me to name it, provide instance variables, and even add operations. I could even create other classes by simply clicking one of the arrows that surrounded the new object.
Another one of ArgoUML's main strengths is its modeling environment. The software offers multiple, overlapping diagrams, giving you a full view of your project. Because no single diagram can take every design issue into account, this feature makes it easy to create accurate models. Unfortunately, ArgoUML provides only Class, Collaboration, and Use Case diagrams, although plans are under way to support others such as State and Activity diagrams.
Furthermore, ArgoUML provides an intuitive and highly graphical interface.
Consisting of a multipaned environment with a tree structure on the left, an editing pane on the right, and an informational/collaborative pane at the bottom, ArgoUML's GUI requires very little learning time up front. For example, you don't have to constantly open drop-down menus to display your diagram's elements. By placing them in a list at the top of the editing pane, selecting a specific element is as easy as clicking on it. Another nice feature is that although ArgoUML is not an IDE (integrated development environment) it does let you edit your code and even add Javadocs to it, all using the same handy interface.
The product installs cleanly, too. Because the tool has been coded entirely in Java using Java Foundation Classes, you can deploy it on just about any platform as long as it supports Java Development Kit (JDK) 1.1 or later. The software comes bundled from the Web site in Zip format, so all I had to do was un-Zip the files, open a command window, and execute the appropriate Java command against the Java Archive file. Moreover, I was pleased to see that I could get either the source code or an executable that would run via a Java command.
But in other crucial areas, ArgoUML falls short of its commercial rivals. I was sorely disappointed to find that reverse generation -- the capability of creating models from existing Java code -- had yet to be implemented. Nor does ArgoUML support notation methodologies such as Booch or Fusion, which most shrink-wrapped solutions do. The package supports only UML notation, thus limiting your options. Similarly, you can't import files created in other UML packages, meaning that you can't, for example, import Rose diagrams, which many software vendors ship. And, unlike many of its competitors, ArgoUML generates only Java code. C++ support would be a welcome addition.
Still, it would be unfair to criticize ArgoUML too harshly. The package may not offer all the bells and whistles of a more mature UML solution, but it does have unique capabilities not found in its commercial cousins. For some companies, the cognitive support, which no other competitor provides, and the fact that it's pure open-source make ArgoUML an attractive option, even without the full complement of tools. Of course, you are advised to have technical staff who can understand the source code, change it if necessary, and provide support. But as ArgoUML matures, it could outpace its commercial rivals.
Tim Fielden is a senior analyst on the InfoWorld Enterprise Computing Team.
Send him e-mail at firstname.lastname@example.org.
THE BOTTOM LINE: GOOD
Business Case: ArgoUML offers a truly unique decision-support feature that simplifies the UML modeling process. However, certain key features are lacking.
Technology Case: Being a completely open-source Java app, developers can extend the current version. ArgoUML can adapt to a wide range of settings but doesn't support different notation types.
+ Effective and unique cognitive support+ No cost+ Easy-to-use interfacesCons:
- No import capability
- Lacks some diagram types
- Does not support reverse engineering
Platform(s): Any JDK 1.1-capable platformCollab.Net; San Francisco; (415) 247-1690; argouml.tigris.org.