Stephen J. Mellor
Last modified on 10 March 2013, at 00:19↑Jump back a section
- I was astonished to be invited to what became the meeting that originated the Agile Manifesto because my work had always been based around building models... The other signatories were kind enough, back in 2001, to write the manifesto using the word “software” (which can include executable models), not “code” (which is more specific.) As such I felt able, in good conscience, to become a signatory to the Manifesto while continuing to promote executable modeling. Ten years on we have a standard action language for agile modeling.
- Mellor (2011) "A Personal Reflection on Agile Ten Years On" in: InfoQ, Feb 11, 2011
Executable Uml: A Foundation for Model-Driven Architecture, 2002
Stephen J. Mellor, Marc J. Balcer (2002) Executable Uml: A Foundation for Model-Driven Architecture
- Executable UML is at the next higher layer of abstraction, abstracting away both specific programming languages and decisions about the organization of the software so that a specification built in Executable UML can be deployed in various software environments without change.
- Executable UML is designed to produce a comprehensive and comprehensible model of a solution without making decisions about the organization of the software implementation. It is a highly abstract thinking tool to aid in the formalization of knowledge, a way of thinking about and describing the concepts that make up an abstract solution to a client problem.
- Executable UML is one pillar supporting the Model-Driven Architecture (MDA) initiative, the purpose of which is to enable specification of systems using models.
- Executable UML is careful to distinguish the concept of a model, the underlying data, behavior or computation, from its representation. The representation is typically a diagram or a table, though it could be any representation you can image.
- Executable UML is an abstract object-oriented formalism; hence, it employs classes, attributes, and other object-oriented constructs as a way to organize abstractions.
MDA Distilled. Principles of Model-Driven Architecture, 2003
S.J. Mellor, K. Scott, A. Uhl (2004) Distilled. Principles of Model-Driven Architecture. Addison-Wesley.
- We build models to increase productivity, under the justified assumption that it's cheaper to manipulate the model than the real thing. Models then enable cheaper exploration and reasoning about some universe of discourse . One important application of models is to understand a real, abstract, or hypothetical problem domain that a computer system will reflect. This is done by abstraction, classification, and generalization of subject-matter entities into an appropriate set of classes and their behavior.
- MDA per se is relaxed about exactly what models it transforms, so long as the modeling language in which the models are expressed can be defined.
- In the bad old days before MDA, (conceptual) models served only to facilitate communication between customers and developers and act as blueprints for construction. Nowadays, MDA establishes the infrastructure for defining and executing transformations between models of various kinds.
- What's the point of having metamodels, and why should you care? Because models must be stated in a way that yields a common understanding among all involved parties, we need a way to specify exactly what a model means. Metamodels allow you to do just that: They specify the concepts of the language you're using to specify a model.
- What's really going on is that Executable UML is a concurrent specification language.
About Stephen J. Mellor
- Steve Mellor and I independently came up with a characterization of the three modes in which people use the UML: sketch, blueprint, and programming language. By far the most common of the three, at least to my biased eye, is UML as sketch. In this usage, developers use the UML to help communicate some aspects of a system. As with blueprints, you can use sketches in a forward-engineering or reverse-engineering direction. Forward engineering draws a UML diagram before you write code, while reverse engineering builds a UML diagram from existing code in order to help understand it.
- Martin Fowler (2004) A Brief Guide to the Standard Object Modeling Language. p.2
- Steve Mellor has long been active in this kind of work and has recently used the term Executable UML [Mellor and Balcer]. Executable UML is similar to MDA but uses slighly different terms. Similarly, you begin with a platform-independent model that is equivalent to MDA's PIM. However, the next step is to use a Model Compiler to turn that UML model into a deployable system in a single step; hence, there's no need for the PSM. As the term compiler suggests, this step is completely automatic.
- Martin Fowler (2004) A Brief Guide to the Standard Object Modeling Language. p.4
- The key books about object-oriented graphical modeling languages appeared between 1988 and 1992. Leading figures included Grady Booch [Booch,OOAD]; Peter Coad [Coad, OOA], [Coad, OOD]; Ivar Jacobson (Objectory) [Jacobson, OOSE]; Jim Odell [Odell]; Jim Rumbaugh (OMT) [Rumbaugh, insights], [Rumbaugh, OMT]; Sally Shlaer and Steve Mellor [Shlaer and Mellor, data], [Shlaer and Mellor, states] ; and Rebecca Wirfs-Brock (Responsibility Driven Design) [Wirfs-Brock].
- Martin Fowler (2004) A Brief Guide to the Standard Object Modeling Language. p.7