Shlaer–Mellor Method
   HOME

TheInfoList



OR:

The Shlaer–Mellor method, also known as object-oriented systems analysis (OOSA) or object-oriented analysis (OOA) is an
object-oriented Object-oriented programming (OOP) is a programming paradigm based on the concept of '' objects''. Objects can contain data (called fields, attributes or properties) and have actions they can perform (called procedures or methods and impleme ...
software development methodology In software engineering, a software development process or software development life cycle (SDLC) is a process of planning and managing software development. It typically involves dividing software development work into smaller, parallel, or s ...
introduced by Sally Shlaer and Stephen Mellor in 1988. The method makes the documented analysis so precise that it is possible to implement the analysis model directly by translation to the target architecture, rather than by elaborating model changes through a series of more platform-specific models. In the new millennium the Shlaer–Mellor method has migrated to the UML notation, becoming
Executable UML Executable UML (xtUML or xUML) is both a software development method and a highly abstract software language. It was described for the first time in 2002 in the book "Executable UML: A Foundation for Model-Driven Architecture". The language "combine ...
.


Overview

The Shlaer–Mellor method is one of a number of software development methodologies which arrived in the late 1980s. Most familiar were
object-oriented analysis and design Object-oriented analysis and design (OOAD) is a technical approach for analyzing and designing an application, system, or business by applying object-oriented programming, as well as using visual modeling throughout the software development pro ...
(OOAD) by Grady Booch, object modeling technique (OMT) by
James Rumbaugh James E. Rumbaugh (born August 22, 1947) is an American computer scientist and object-oriented methodologistobject-oriented software engineering Object-oriented programming (OOP) is a programming paradigm based on the concept of '' objects''. Objects can contain data (called fields, attributes or properties) and have actions they can perform (called procedures or methods and impleme ...
by
Ivar Jacobson Ivar Hjalmar Jacobson (; born September 2, 1939) is a Swedish computer scientist and software engineer, known as a major contributor to UML, Objectory, Rational Unified Process (RUP), aspect-oriented software development, and Essence. Biog ...
and object-oriented analysis (OOA) by Shlaer and Mellor. These methods had adopted a new object-oriented paradigm to overcome the established weaknesses in the existing structured analysis and structured design (SASD) methods of the 1960s and 1970s. Of these well-known problems, Shlaer and Mellor chose to address: * The complexity of designs generated through the use of structured analysis and structured design (SASD) methods. * The problem of maintaining analysis and design documentation over time. Before publication of their second book in 1991 Shlaer and Mellor had stopped naming their method "Object-Oriented Systems Analysis" in favor of just "Object-Oriented Analysis". The method started focusing on the concept of Recursive Design (RD), which enabled the automated translation aspect of the method. What makes Shlaer–Mellor unique among the object-oriented methods is: * the degree to which object-oriented semantic decomposition is taken, * the precision of the ''Shlaer–Mellor Notation'' used to express the analysis, and * the defined behavior of that analysis model at run-time. The general solution taken by the object-oriented analysis and design methods to these particular problems with structured analysis and design, was to switch from
functional decomposition In engineering, functional decomposition is the process of resolving a functional relationship into its constituent parts in such a way that the original function can be reconstructed (i.e., recomposed) from those parts. This process of decompo ...
to semantic decomposition. For example, one can describe the control of a passenger train as: : ''load passengers, close doors, start train, stop train, open doors, unload passengers''. Then a design becomes focused on the behavior of doors, brakes, and passengers, and how those objects (doors, brakes, etc.) are related and behave within the passenger train domain. Other objects, that provide services used by the passenger train domain, are modeled in other domains connected to the passenger train domain.


Shlaer–Mellor method topics


Translation v. elaboration

The goal of the Shlaer–Mellor method is to make the documented analysis so precise that it is possible to implement the analysis model directly by translation rather than by elaboration. In Shlaer–Mellor terminology this is called recursive design. In current (2011) terminology, we would say the Shlaer–Mellor method uses a form of
model-driven architecture Model-driven architecture (MDA) is a software design approach for the development of software systems. It provides a set of guidelines for the structuring of specifications, which are expressed as models. Model Driven Architecture is a kind of doma ...
(MDA) normally associated with the
Unified Modeling Language The Unified Modeling Language (UML) is a general-purpose visual modeling language that is intended to provide a standard way to visualize the design of a system. UML provides a standard notation for many types of diagrams which can be roughly ...
(UML). By taking this translative approach, the implementation is always generated (either manually, or more typically, automatically) directly from the analysis. This is not to say that there is ''no'' design in Shlaer–Mellor, rather that there is considered to be a
virtual machine In computing, a virtual machine (VM) is the virtualization or emulator, emulation of a computer system. Virtual machines are based on computer architectures and provide the functionality of a physical computer. Their implementations may involve ...
that can execute any Shlaer–Mellor analysis model for any particular hardware/software platform combination. This is similar in concept to the virtual machines at the heart of the
Java programming language Java is a high-level, general-purpose, memory-safe, object-oriented programming language. It is intended to let programmers ''write once, run anywhere'' ( WORA), meaning that compiled Java code can run on all platforms that support Jav ...
and the
Ada programming language Ada is a structured, statically typed, imperative, and object-oriented high-level programming language, inspired by Pascal and other languages. It has built-in language support for '' design by contract'' (DbC), extremely strong typing, expli ...
, but existing at analysis level rather than at programming level. Once designed and implemented, such a virtual machine is re-usable across a range of applications. Shlaer–Mellor virtual machines are available commercially from a number of tool vendors, notably Abstract Solutions, Mentor Graphics and Pathfinder Solutions.


Semantic decomposition

Shlaer–Mellor proposes a semantic decomposition in multiple (problem) domains. * ''The split between analysis and design models'': The analysis domain expresses precisely ''what'' the system must do, the design domain is a model of how the Shlaer–Mellor virtual machine operates for a particular hardware and software platform. These models are disjoint, the only connection being the notation used to express the models. * ''Decomposition within the analysis domain'' where system requirements are modelled, and grouped, around specific, disjoint, subject matters. To return to the earlier passenger train example, individual semantic models may be created based on door actuators, motor controls, and braking systems. Each grouping is considered, and modelled, independently. The only defined relationship between the groupings are dependencies e.g. a passenger train application may depend on both door actuation and motor control. Braking systems may depend upon motor control. Domain models of door actuators, motor controls, and braking systems would typically be considered as generic re-usable service domains whereas the passenger train controller domain is likely to be a very product-specific application domain. A particular system is composed of domains and the defined bridges between the domains. A bridge is described in the terms of the assumptions held by the domain acting as a client bridged to a domain acting as a server.


Precise action language

One of the requirements for automated code generation is to precisely model the actions within the
finite-state machine A finite-state machine (FSM) or finite-state automaton (FSA, plural: ''automata''), finite automaton, or simply a state machine, is a mathematical model of computation. It is an abstract machine that can be in exactly one of a finite number o ...
s used to express dynamic behaviour of Shlaer–Mellor objects. Shlaer–Mellor is unique amongst object-oriented analysis methods in expressing such sequential behavior graphically as Action Data Flow Diagrams (ADFDs). In practice the tools that supported Shlaer–Mellor, provided a precise action language. The action languages superseded the ADFD approach, so all actions are written in textual form.


Test and simulation

The translative approach of the Shlaer–Mellor method lends itself to automated test and simulation environments (by switching the target platform during code generation), and this may partly explain the popularity of Shlaer–Mellor and other MDA-based methods when developing ''
embedded system An embedded system is a specialized computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is e ...
s'', where testing on target systems e.g. mobile phones or engine management systems, is particularly difficult. What makes such testing useful and productive is the concept of the Shlaer–Mellor virtual machine. As with most OOA/OOD methods, Shlaer–Mellor is an event-driven, message-passing environment. Onto this generic view, the Shlaer–Mellor virtual machine mandates a prioritised event mechanism built around State Models, which allows for concurrent execution of actions in different state machines. Since any implementation of Shlaer–Mellor requires this model to be fully supported, testing under simulation can be a very close model of testing on target platform. Whilst functionality heavily dependent upon timing constraints may be difficult to test, the majority of system behaviour is highly predictable due to the prioritized execution model.


Criticisms

There has never been a universally agreed textual language to express actions within the Shlaer–Mellor community. Tool vendors have defined their own copyrighted and controlled action languages. Graham (1994) described Shlaer–Mellor method as early example of object-oriented analysis, that could not really be regarded as
object-oriented Object-oriented programming (OOP) is a programming paradigm based on the concept of '' objects''. Objects can contain data (called fields, attributes or properties) and have actions they can perform (called procedures or methods and impleme ...
. According to Graham the method lacks "notion of inheritance. As described in their book it was little more than an object-based extension of data modelling." In line with comment Capretz (1996) argues that the Shlaer–Mellor method "fails to account for the vast majority of object-oriented ideas and an ordinary graphical notation is prescribed", which is primarily taken "from entity–relationship diagrams and
data flow diagram A data-flow diagram is a way of representing a flow of data through a process or a system (usually an information system). The DFD also provides information about the outputs and inputs of each entity and the process itself. A data-flow diagram ha ...
s found in other structured methods".Luiz Fernando Capretz (1996) ''Object-Oriented Software: Design''. p.77
Capretz describes OOSA as "analysis methodology with associated graphical notation, which is based on a variation of the Entity-Relationship Model combined with Structured Systems Analysis. The notation can be applied to describe objects, attributes and relationships, were a relationship indicates a link between objects.".


See also

*
Embedded system An embedded system is a specialized computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is e ...
*
Executable UML Executable UML (xtUML or xUML) is both a software development method and a highly abstract software language. It was described for the first time in 2002 in the book "Executable UML: A Foundation for Model-Driven Architecture". The language "combine ...
*
Finite-state machine A finite-state machine (FSM) or finite-state automaton (FSA, plural: ''automata''), finite automaton, or simply a state machine, is a mathematical model of computation. It is an abstract machine that can be in exactly one of a finite number o ...
(FSM) *
Functional decomposition In engineering, functional decomposition is the process of resolving a functional relationship into its constituent parts in such a way that the original function can be reconstructed (i.e., recomposed) from those parts. This process of decompo ...
* I-OOA * Massive parallelism *
Model-driven architecture Model-driven architecture (MDA) is a software design approach for the development of software systems. It provides a set of guidelines for the structuring of specifications, which are expressed as models. Model Driven Architecture is a kind of doma ...
(MDA) * Structured analysis *
Unified Modeling Language The Unified Modeling Language (UML) is a general-purpose visual modeling language that is intended to provide a standard way to visualize the design of a system. UML provides a standard notation for many types of diagrams which can be roughly ...
(UML)


Bibliography

* Stephen Mellor (2002) Make Models Be Assets, ''Communications of the ACM Volume 45'', 11:76-87 (November 2002), 2002 * Rodney C. Montrose (2001)
Object-Oriented Development Using The Shlaer–Mellor Method
'. Project Technology, Inc. * Sally Shlaer, Stephen Mellor (1988) ''Object-Oriented Systems Analysis: Modeling the World in Data'', Yourdon Press. * Sally Shlaer, Stephen Mellor (1991) ''Object Lifecycles: Modeling the World in States'', Yourdon Press. * Leon Starr (1996) ''How to Build Shlaer–Mellor Object Models''. Prentice Hall.


References


External links


Shlaer–Mellor and Executable UML Portal
blog 2008-2011

2008
Shlaer-Mellor Metamodel Blog
2011 {{DEFAULTSORT:Shlaer-Mellor method Software design Systems analysis