Catalysis software design method
# Catalysis software design method

Catalysis is a software design method for the specification and design of component-based computer systems originally developed by Desmond D’Souza and Alan Cameron Wills in their 1999 book.

Catalysis focuses on how to make precise abstractions, and emphasizes the formal specification of use cases using pre- and postconditions and ‘guarantees’ clauses. It also places stress on the specification of collaboration protocols so that kits of components can interact in a coherent ‘pluggable’ fashion. This removes much of the need to build translation or ‘mapping’ code.

Catalysis therefore enhances the Unified Modelling Language (UML) with a definite method, showing how the various UML diagrams relate to each other and offering many design heuristics and process and design patterns. Catalysis builds on the Syntropy method and key ideas from both influenced the development of UML 2.0.

More recently, building on the work of D’Souza, Wills and that of John Cheesman and John Daniels, Derek Andrews of consultancy Trireme International has developed Catalysis II, which extends Catalysis to address the key issues of Service Oriented Architecture (SOA). Also building on the same foundation, Ian Graham developed Catalysis Conversation Analysis, a method of business process modelling with its roots in Semiotics and the idea of a use case (cf. Graham, 2008).

