Last Updated: 14 February 2007
Shlaer-Mellor Oriented-Oriented Analysis and Recursive Design (OOA/RD) [SMMethod96] [RDAIA97] was developed by Sally Shlaer and Stephen J. Mellor at Project Technology (now part of Mentor Graphics) in the US. They provided training, consultancy and later tools. They had various partners around the world, the main partner in the UK being Kennedy Carter who also provided training, consultancy and later tools. Kennedy Carter also organised Shlaer-Mellor User Group (SMUG) conferences in the UK. Project Technology later followed suit in the US. Project Technology was acquired by Mentor Graphics in 2004, while Kennedy Carter is still going strong.
As the OOA/RD notation and method developed, it became clear that a good CASE tool which understands the formalism was essential for Shlaer-Mellor users. Project Technology acquired Objective Spectrum in 1995, acquiring the BridgePoint® CASE tool. While Kennedy Carter developed their own CASE tool from scratch called Intelligent-OOA (I-OOA). Neither of these tools support process modelling, both provide an Action Language instead. Unfortunately, Project Technology and Kennedy Carter while close, were not close enough to agree a common OOA of OOA or OOA Interchange Format. BridgePoint and I-OOA also define completely different action languages and adopt different approaches to translation. BridgePoint uses an Archetype Language to define code generation templates, while I-OOA relies solely on action language code within an architectural domain for code generation. Several other Shlaer-Mellor tools existed prior to the wide-spread use of BridgePoint and I-OOA. However, without a means to move models between tools most customers were forced to adopt the CASE tool provided by their preferred source of Shlaer-Mellor expertise, i.e. Project Technology in the US and Kennedy Carter in the UK. Mentor Graphics now sells BridgePoint as a component of vertical market solutions rather than as a general purpose CASE tool. Kennedy Carter's I-OOA is now called Intelligent UML (iUML).
There have been several versions of OOA over the years as the formalism has developed, primarily by the originators at Project Technology. The first version was OOA88 which defined information modelling, and discussed state and process modelling [00A88]. The second and more complete version was OOA91 which made small changes to information modelling, defined state and process modelling, and loosely defined recursive design [00A91]. Project Technology followed up with OOA96 which made small changes to information, state and process modelling [OOA96]. They also published a number of white papers as a prelude to a planned book on recursive design which was never published [SyncServ96] [Wormhole96] [DataType97] [SMALL97]. Kennedy Carter also defined a number of variations calling them OOA92 and OOA97 [OOA97]. Some of the variations proposed by Kennedy Carter and implemented in I-OOA are not compatible with the original OOA formalism, e.g. a new "Hold" transition type. Other variations such as synchronous services were partially adopted by Project Technology.
After the Unified Modeling Language™ (UML®) became an Object Management Group (OMG) standard, Project Technology and Kennedy Carter created a mapping from Shlaer-Mellor notation to UML notation [SMUML97] [SMUML99]. Project Technology then released a version of BridgePoint supporting Shlaer-Mellor and UML notation. Later on, Project Technology dropped the Shlaer-Mellor notation altogether and repositioned Shlaer-Mellor OOA/RD as Executable UML [xtUML02] and Model-Driven Architecture® (MDA®) [MDA04]. Kennedy Carter followed suit calling their variation xUML [xUML04]. Project Technology has been the main driving force behind Shlaer-Mellor OOA/RD and Executable UML. However, since Mentor Graphics changed its BridgePoint strategy and Stephen J. Mellor left Mentor Graphics, it is currently unclear who will drive development of Executable UML forward.
It is a mystery to me why the software community believes they need a single increasingly complex modelling notation, standardized by committee, which then needs to be partitioned into useable subsets called profiles, e.g. Executable UML. While the same software community is perfectly happy using dozens of standard and proprietary programming languages. I believe the Shlaer-Mellor OOA/RD notation and method should have continued to develop independently. Project Technology, Kennedy Carter and others should have focused their energy on producing and agreeing a common OOA of OOA and OOA Interchange Format. This would have enabled a marketplace to develop for reusable service domains and software architectures. Something Shlaer-Mellor users were crying out for. Instead, 10 years have been spent converting Shlaer-Mellor OOA/RD into Executable UML, and there is still no marketplace for reusable service domains and software architectures. The main reason being that Executable UML is not an executable standard, i.e. each vendor has their own variation of Executable UML and each still supports their own proprietary Action Language.
Now to OOA10 which should be complete before the end of 2009. The goal of the project is to evolve the Shlaer-Mellor OOA/RD formalism forward without regard to UML compatibility. The new version of OOA will be backwards compatible with OOA versions defined by Project Technology (circa 1997). It may also incorporate minor features from Executable UML that may have been introduced into Shlaer-Mellor OOA/RD if UML had not come along. Some new features will also be added during the development of the OOA of OOA. An XML based OOA Interchange Format will be specified. This will require some service domains to be at least partially defined, e.g. a Diagramming service domain. A number of formal languages will also be specified: