Home ] Overview ] Publications ] OMG ] Case Study ] Support ] Other Work ] Search ]
horiz-space.GIF (952 bytes)



Concept Map
How to...
Model Kinds
This 'n That





A Simple Core

At its core, Catalysis is based on a very small number of precisely defined UML concepts that can be combined and used in increasingly sophisticated ways. All higher-level modeling constructs are ultimately defined in terms of this core, and could, in theory, be translated to them. At its core it is correspondingly simple, and applying it in its light form is easy and suitable for some projects; applying it in full, with rigor, precision, and sophistication takes more investment and offers corresponding benefits to other projects (more details in the Process section).

Having such a small core has some nice benefits. Basic but effective use becomes simpler: to use Catalysis on a project you just need to understand a couple of key concepts such as collaborations and refinement. As your usage becomes more sophisticated you do not need to understand new fundamental concepts, but simply better ways to use that core. The method itself becomes more robust, since the relationships between the different views is precisely defined. Hence new views, constructs, and notations can be added with far less risk of ending up with a "kitchen sink" approach, in which the individual pieces may be useful but how they fit together remains unclear. Tools can provide more meaningful support for the method and process, instead of the overpriced "smart-drawings-plus-database" version that we have unfortunately become accustomed to.

Because Catalysis encourages certain separations of concerns that are often overlooked (e.g. interface specifications from implementations, architectural definitions from their applications), there is still a learning curve associated with it despite its simple core; the same is true of any other systematic approach to modeling and design. Moreover, Catalysis provides a very concrete basis for things traditionally left very vague in other methods - architecture, testing, configuration management, non-functional requirements. The alternative path of starting up a rich and complex notational set (e.g. the complete UML notation) without the usage guidelines, separations, and semantics, would be easy to learn on the surface, but of far less value in practice.

Email suggestions to All contents copyrighted 1998.