5 CASE tools
There are several commercial CASE tools supporting UML or aspects of UML. Most of them are drawing editors that check the syntax of UML models and often generate code from the latter. Perhaps the best known is Rose from Rational Inc. Rose starts by default with two packages, one for use case diagrams and the other for class diagrams. But this isn't always the most sensible separation: you can put either kind of diagram into any package, and mix classes, use cases, and actors in a diagram as you judge appropriate. Use cases can be dragged onto class diagrams and vice versa. You can mix them in one diagram or not, as you prefer. Keywords, invariants and rulesets are not well supported and so one must use comments on for descriptions, rulesets, invariants and pre- and post-conditions.
In Rose, class diagrams and statecharts are always in separate diagrams. Also, Rose does not permit more than one statechart per class; if there are more, one must draw them all on one diagram.
One advantage, if such it is, of Rose is the fact that it integrates well with other Rational tools for configuration management, testing, requirements documentation and so on. There are also tools from third parties such as RoseLink, which enables C++ or Java application skeletons for the Versant OODBMS to be generated, converting associations into C++ or ODMG collections. The temptation with all such tools is to create huge diagrams. As we have argued, this is not a good idea; the ideal is a good narrative punctuated by small diagrams that help disambiguate and illustrate the text. Tools, such as Soda, can be used to help embed diagrams in the narrative. It is a good idea to put any use case specifications in the main comment box - where they are more visible - and in attached notes, or both.
A more impressive tool of the same type is Together, which comes in C++ and Java variants. TogetherJ, for example, supports genuine round-trip engineering: as you draw a diagram the Java code appears in a separate window and, better still, the diagram changes as you edit the Java code. Rose does something similar, but not nearly as well.
Computer Associates' Paradigm Plus and its COOL suite of products also support UML diagram making. COOL Jex supports some of the Catalysis techniques. The component model underlying the COOL products is discussed by Cheesman and Daniels (2000).
Princeton Softtech's Select, Aionix's Software through Pictures (StP) and Popkin's System Architect are further examples of UML-compliant CASE tools. There are also UML tools that support specific methods such as Shlaer-Mellor rather than just the UML notation.
In additional to UML and structured methods support, System Architect has features that support business modelling using the Zachman framework (Zachman, 1987; Sowa and Zachman, 1992): a widely used classification scheme for descriptive or notational representations of enterprises. The framework allocates notations to the cells of a matrix. The columns and rows are certainly a complete classification scheme - there are only those six question words. Notably, the rows are based on an analogy with building construction and represent the perspectives taken by different trades during the construction process. This can provide a useful guide, but it is difficult to see how the data/function split can be reconciled with object-orientation. In fact, as shown by Graham (1995), the framework collapses to many fewer cells when OO concepts are substituted for such representations as 'logical data model'.
No tool yet properly supports the Catalysis framework substitution described later, although Platinum Plus may do soon; others will probably follow and the technique is likely at some stage to appear in the UML standard. TogetherJ already does something fairly similar with its support for patterns.
What is lacking mostly on the CASE scene are good object-oriented business simulation tools; these would allow one to animate business process models. We also lack what one might designate 'anti-CASE' tools, which can generate most UML diagrams automatically. Ideally these types of tool should be integrated into a single package and have interfaces with popular conventional CASE tools and drawing packages.
Our favourite everyday tools for drawing diagrams are the low-cost Visio and PowerPoint drawing tools. They intrude less on our thinking and allow us to innovate where necessary. UML templates for Visio are readily available.