generation is to precisely model the actions within the finite-state machines 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 systems, 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. 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 diagrams found in other structured methods". See also Embedded system Executable UML Finite-state machine (FSM) Functional decomposition I-OOA Massive parallelism Model-driven architecture (MDA) Structured analysis Unified Modeling Language (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