Model-Driven Software Development
Model-Driven Software Development
Stephen W. Liddle
1 Introduction
Software development is a complex and difficult task that requires the in-
vestment of significant resources and carries major risk of failure. According
to its proponents, model-driven (MD) software development approaches are
improving the way we build software. Model-driven approaches putatively
increase developer productivity, decrease the cost (in time and money) of
software construction, improve software reusability, and make software more
maintainable. Likewise, model-driven techniques promise to aid in the early
detection of defects such as design flaws, omissions, and misunderstandings
between clients and developers. The promises of MD are rather lofty, and so
it is only natural to find many skeptics.
As Brooks famously described [Bro95], software engineering will not likely
deliver the sort of productivity gains we experience in hardware engineering
where we see “Moore’s law”-styled doublings every 24 months [Moo10]. Thus,
if we accept Brooks’ premise, nobody should expect any innovative approach
to software development to be a “magical silver bullet” that will increase
productivity by an order of magnitude within a decade. Unfortunately, the
amount of hyperbole surrounding the various flavors of MD sometimes makes
it seem like advocates believe MD to be a silver bullet. Model-driven devel-
opment is no panacea. However, we believe that model-driven is a superior
approach to software construction. This chapter examines the current state
of the art in model-driven software development.
We begin by characterizing the various approaches to model-driven devel-
opment (Section 2). Then we examine what modeling is and why we engage
in modeling (Section 3). Next, we explore the history of software modeling
that has led to current model-driven approaches and discuss what is required
Stephen W. Liddle
Brigham Young University, Provo, Utah 84602, USA e-mail: [email protected]
1
2 Stephen W. Liddle
to make our models formal and executable (Section 4). With this background
laid out, we explore the details of various model-driven approaches to soft-
ware development. We commence with a reference model (Section 5) and
then examine MDA (Section 6), giving special attention to the Executable
UML variant of MDA (Section 6.3). In Section 7 we describe the OO-Method
approach to MD and the comprehensive OlivaNova tool that implements this
approach. We next explore MD in the context of web engineering (Section 8)
and then examine the argument for an agile approach to MD (Section 9).
We conclude by summarizing available tools, arguments for and against, and
directions for future research (Section 10).
There are numerous ideas that come under the umbrella of model-driven
approaches. We take an expansive view of what “model-driven” means. Model-
driven engineering (MDE) and model-driven development (MDD) are generic
terms describing an approach where we represent systems as models that
conform to metamodels, and we use model transformations to manipulate
the various representations (see, for example, [Ken02, Bro04, Béz05, Oli05]).
We use the terms MDD and MDE interchangeably.
Although the phrase “model-driven” has been used for decades with re-
spect to software development, one of the earliest mentions of a “model-driven
approach” comes from the work done by Embley et al. on Object-oriented Sys-
tems Modeling (OSM) (see [EKW92]; the book’s subtitle is “A Model-Driven
Approach”). Object-oriented methodologies were a topic of lively discussion
in the early 1990’s, and OSM eschewed any specific software process method-
ology in favor of letting model creation drive the development process. This is
analogous to the idea of maps and directions: when someone needs help driv-
ing to an unfamiliar destination, we can either give turn-by-turn instructions
on how to drive from their current location, or we can give them the address
of the destination and let them use their own map to determine a route. If
the path is relatively straightforward and there are no unexpected delays or
impediments along the way, the instructions approach may be superior. But
when exceptions occur, the map approach may be superior. In practice, a
hybrid approach often gives the best of both worlds: expert guidance based
on local knowledge can help travelers avoid common pitfalls, but their ability
to read maps provides an improved mental model of the travel process, and
makes them more resilient in the face of unexpected challenges. By taking a
model-driven approach to software development, OSM focuses developers on
creating models as central artifacts of interest, and remains independent of,
and neutral with respect to, any particular software process methodology.
A notable MDD initiative is the Object Management Group (OMG)
Model Driven Architecture (MDA) [SG03, ME01, ME03]. MDA can be
Model-Driven Software Development 3
viewed as an instance of MDD where the core standards and tools are the
OMG standards—Unified Modeling Language (UML), MetaObject Facility
(MOF), XML Metadata Interchange (XMI), and the Common Warehouse
Metamodel (CWM). Because OMG is an influential industry consortium,
MDA has gathered considerable attention. However, just as UML is not the
only object-oriented modeling language, so also MDA is not the only model-
driven approach. There are numerous non-MDA initiatives—commercial and
academic—that continue to advance the state of the art in MDD.
Metaprogramming, where a program manipulates itself or another pro-
gram, often leads to forms of programming that are arguably model-driven,
or at least model-based. One class of metapgrogramming, template-based
generic programming, starts with a modeling process to create a template
from which programs can be generated. The related field of domain-specific
languages is also inherently a model-based approach. A domain-specific lan-
guage, in contrast with a general-purpose programming language, models as-
pects of a particular problem domain and provides special-purpose constructs
tailored to the needs of that domain.
Similarly, in the field of modeling, domain-specific modeling (DSM) uses a
modeling language customized to a particular domain to represent systems,
and often includes the ability to generate code for corresponding software
systems. CASE tools are forerunners of DSM languages and tools, but they
are not the same. A CASE tool is created by a vendor to address a class of
software engineering problems, whereas DSM tools let clients create custom
domain-specific models and generate code using models and concepts that
are specific to the client’s particular needs.
Another closely related area is generative programming, which seeks to
model families of software systems so that they can be created assembly-line
style; the central idea is to generate code for each of the desired systems in an
automated way from a generative domain model [CE00]. Many researchers
have seen a need to industrialize software production. The software factories
work gives an excellent description of this perspective [GS03, GS04]. Research
in software architecture has demonstrated that we can increase productivity
by developing families of software systems as a product line rather than as
one-off creations [CE00, CN01].
MD is also a potential solution to the problem of integrating inherently
heterogeneous systems whose development requires the multi-disciplinary tal-
ents of workers who are experts in widely differing domains [SK97]. Consider,
for example, the software required in a modern automobile. Physical control
systems may manage the engine, brakes, and passenger-restraint systems in a
mostly automatic and hidden manner, while an in-dash touch-driven display
may give access to a more traditional information system that offers satellite
navigation and mapping features, media playback, and the viewing of statisti-
cal information. The field of model-integrated computing [SK97, Szt01, Spr04]
brings MD techniques to the problem of engineering these types of systems.
4 Stephen W. Liddle
language, which is then assembled and linked. The assembler version is to “code” as the
FORTRAN version is to “model”.
Model-Driven Software Development 5
(only informally
connected to model,
if present at all)
3 Modeling
4 Software Modeling
Since modeling in general has so many uses and benefits, we should expect
modeling to be a major research topic in computing, and indeed this is the
case. The decade of the 1970’s saw the development of formal approaches
to data modeling. Abrial [Abr74] and Senko [Sen75], among others, explored
binary relationships as an abstraction for data modeling. Falkenberg built
on this work and developed the “object-role model” (ORM) framework that
used n-ary relationships as a fundamental data modeling construct [Fal76].
Meanwhile, Chen proposed the highly successful Entity-Relationship (ER)
model [Che76] that has become nearly synonymous with database design.
Tsichritzis and Lochovski [TL82] and Brodie [BMS84] describe much of the
early work on data models and conceptual modeling well.
During the 1980’s, researchers studied how to improve data models and
experimented with so-called semantic data models that introduced addi-
tional constructs with more semantic richness than the earlier, simpler models
[TYF86, HK91, PM88]. Richer constructs came with more complex notation,
and the results were not always an improvement over the simpler predecessor
data models.3 However, research on semantic data models gave way to work
on object-oriented (OO) models [SM88, Boo91, RBP+ 91, EKW92], which
researchers debated hotly in the early-to-mid 1990’s.
The so-called OO method wars led to the proposal of a unified OO model,
and the Unified Modeling Language (UML) emerged in 1995 (as the Unified
Method version 0.8) and was subsequently standardized by OMG. The latest
version, UML 2.2 [UML09b], defines fourteen different diagram types (see
Figure 2), including seven that are structural and seven that are behavioral in
nature. As with the work on semantic data models, researchers often criticize
UML for its complexity, among other complaints [Tho04, HS05, FGDTS06,
Küh08, SS09]. However, UML has become not quite universal, but perhaps
ubiquitous, in spite of the criticisms.
Where modeling has worked especially well is in the design of database
schemas. From an ER or OO schema, it is straightforward to generate a corre-
sponding normalized relational database schema. Many practitioners equate
conceptual modeling with database design because the early conceptual mod-
els only addressed structural aspects of information systems. ER and ORM,
for example, do not attempt to model behavior.
3 Bolchini and Garzotto discovered this in the domain of MDWE as well [BG08]; see
Section 8.
8 Stephen W. Liddle
Deployment Diagram
Name
Bank Person Address
Birth Date
manages
Account
@Inquire Balance
Open
Give the balance
@Close Account
Closed
Bank
request balance
mail statement
(Account Number)
Customer
Name
Address Person
Birth Date
Account
@Inquire Balance
Open
Give the balance owns
Customer
0:4
@Close Account
Account
Number request balance
mail statement (Account Number)
Balance
Closed manages
Bank
owns manages
Customer Account Bank
0:4
off prior states, (2) executes the transition action (if any), and (3) turns
on any subsequent states. Arrows between states and transitions identify
prior and subsequent states, and indicate flow of control. When the tail of
an arrow leaving a state has a half circle slightly separated from the state,
this indicates that the state is not turned off when the transition fires (i.e.,
a new, concurrent thread of control can begin when the transition fires).
For example, when a balance inquiry transition executes, the corresponding
account still remains in the Open state, and the Give the balance action
executes on its own thread. A transition with no prior states indicates an
initial transition that creates an object, while a transition with no subsequent
states indicates a final transition that destroys an object. Initial and final
transitions may be written as vertical bars as in Figure 4.
An object interaction model instance documents communication or in-
teraction between objects, as Figure 5 shows. In this example, banks mail
statements to customers and customers request account balances from banks.
When a customer requests an account balance, he or she also indicates the
corresponding account number. An arrow with a lightning-bolt symbol at the
center of a circle indicates an interaction; the tail of the arrow indicates the
interaction origin, while the head indicates the destination.
Figure 6 shows a unified version of Figures 3 through 5. The primary
difference is that in Figure 6 we have represented Account as a high-level
object set with Account Number, Balance, and two relationship sets nested
inside. OSM has fully-reified high-level constructs, meaning that high-level
12 Stephen W. Liddle
M2
Object Set
(metamodel)
M1
Account
(model instance)
M0
(data instance) Account 1 Account 2
object sets, relationship sets, states, transitions, and interactions are first-
class elements that can be treated just like their non-high-level forms. High-
level components are helpful for organizing a model and displaying simplified
views (see Figure 7, for example).
OSM has a number of features that make it well suited to model execu-
tion. As we observed earlier, OSM has a precise formal foundation; notably,
the OSM metamodel is itself expressed in OSM and translates directly to
first-order predicate calculus [EKW92, Emb98]. Figure 8 shows the layers of
OSM’s modeling hierarchy. The metamodel (level M2) contains constructs
such as Object Set, Relationship Set, State, and Transition. The model in-
stance (level M1) contains domain constructs, such as Bank, Customer, and
Account in our running example. The data instance (level M0), contains ob-
jects and relationships such as particular accounts, their balances, customers,
and relationships among these objects. This three-tier model is seamless be-
cause a single underlying formalism expresses them all, and elements at one
level are directly connected by is-a relationships with elements at the next
level (Account 1 and Account 2 are instances of Account, and Account is
an instance of Object Set). Constraints and expressions in OSM can refer
to elements within any of the three levels as needed. Furthermore, OSM is
computationally complete [Lid95], and so can directly model any algorithm
or data structure.
Additionally, OSM embraces a concept called tunable formalism [CEW92],
allowing users to work at levels ranging from informal to mathematically
rigorous. Formal models generally do not provide enough expressiveness or
allow the varying levels of detail and completion that practioners need to
build real systems. On the other hand, model execution cannot be built on
informal models. Because of OSM’s precise formal foundation, we can inter-
pret any model instance uniformly both at a summary level and at a detailed
level. For example, the model instance in Figure 7 has a completely con-
sistent formal interpretation regardless of whether we include or ignore the
details nested within the high-level Account object set. Similarly, triggers
Model-Driven Software Development 13
We now give an overview of MDA (Section 6.1), discuss the MDA Manifesto
(Section 6.2), describe Executable UML (Section 6.3), and point to further
MDA readings (Section 6.4).
Class
M3 Layer
Meta-Object Facility (MOF)
(meta-metamodel)
«instanceOf»
«instanceOf»
M2 Layer UMLProfile
Profile
Attribute Class UML Metamodel UML DSM Metamodel
(metamodel)
«instanceOf» «instanceOf»
Book
M1 Layer
UML Diagram DSM Model Instance
(user model) +title: String
«instanceOf»
Executable UML:
M0 Layer A Foundation for
(data instance) Model-Driven Data Instance
Architectures
Open
Standards
MDA
Direct
Automation Representation
Fig. 11 Basic Tenets of the MDA Manifesto (adapted from [BBI+ 04]).
out to be one of the points of criticism of MDA, i.e., that vendors have im-
plemented MDA in such a way that even though they conform to the UML
and XMI standards, their products are still not interoperable. The mani-
festo authors point out that this was a downfall of the CASE industry of the
1980’s—vendors trying to “go it alone” [BBI+ 04, FP04].
The manifesto authors describe the MDA ecosystem as a gradually evolv-
ing framework that will improve over time. Indeed, it is clear that an enor-
mous amount of energy has been invested in MDA by a number of vendors,
researchers, and practitioners over the years. Much of that work is available
as open source, such as the Eclipse Modeling Framework (EMF), which inte-
grates with the popular open source Eclipse IDE [Ecl]. An ecosystem of MDA
vendors does exist; what remains to be seen is how effective that ecosystem
will be over time.
In a more recent follow-up to the MDA manifesto, one of the authors
observes that the slow pace of MDA adoption is the result of challenges in
three general areas: (1) technical hurdles such as complex tools, vendor lock-
in, and lack of a sound theory of MDD, (2) cultural hurdles such as insufficient
practitioner awareness of MDD benefits and enormous inertia for alternative
software development tools and techniques, and (3) economic hurdles such as
the long-term nature of payback for an investment in MDD. Selic concludes
that the way forward for MDA may lie in the areas of education, research,
and standardization [Sel08].
Bank
R1
0..4 manages
Account Customer
R2
0..* 0..4
id: arbitrary_id {I} email: InternetEmailAddress {I}
owns is
accountNumber: string {I2} name: PersonalName
owned
balance: Money = 0 by address: MailingAddress
the tag {I2} on accountNumber indicates that it also must be unique within
Account.
Figure 13 illustrates a small portion of a typical xUML statechart dia-
gram for our running banking example. Notice that the state procedures are
all written as formal action-language statements that are straightforward to
compile into an executable system. As Figure 13 shows, when an account is
created it receives an openAccount event with two parameters: a customer
who will own the new account, and an initial balance. After connecting itself
to the given customer, the account initializes its balance to the given amount
and sends itself a ready signal, which causes the account to advance to the
second state, Waiting for Activity. In this state, when a depositOrWithdraw
event occurs, the account updates its balance by the given amount and gen-
erates a done signal, which causes the account to return to the Waiting for
Activity state.
As with OSM, it is possible to represent xUML model instances at vary-
ing degrees of completion [CEW92]. For example, Figure 13 shows compil-
able statements in each of the state procedures. However, it is typical in the
first version of an xUML statechart to write the procedures informally, as
natural-language statements. These can easily be encoded as comments in an
action language (e.g., the comment //Connect new account with customer in
Figure 13). For initial stages of work, it is sufficient to capture this sort of
behavior requirement informally; in later stages developers refine the model
to the point that all requirements are expressed formally. Significantly, even
in the early stages when the model is incomplete, it is still possible to simu-
late the system as far as it is specified. This ability makes it possible to apply
agile software development principles to Executable UML [MB02, MSUW04].
Since ASL looks so much like ordinary programming, how can Executable
UML really claim any advantage over an ordinary high-level language like
C# or Java? The answer may seem subtle, but it is key to understanding
the benefit of model execution: ordinary code links computation inextricably
20 Stephen W. Liddle
1. New Account
entry/
// Connect new account with customer
relate self to rcvd_evt.customer across R2;
self.balance = rcvd_evt.balance;
generate ready to self;
ready
done depositOrWithdraw(amount)
3. Updating Balance
entry/
self.balance = self.balance
+ rcvd_evt.amount;
generate done to self;
with data structure, while action models and languages separate the two.
As Mellor explains (see [MSUW04], p. 95), a common way to find the sum
of the last ten transactions is to loop through the transaction history data
structure and accumulate the sum with each loop iteration. The action se-
mantics approach to this problem is to divide the problem into (1) retrieving
the last ten transaction amounts, and (2) computing their sum. In this way,
with action semantics it is possible to change the underlying data structure
without affecting the algorithm. This is a key benefit to a model-driven ap-
proach: by separating data structures cleanly from algorithms, at translation
(or compile) time we can choose different underlying data structures with-
out impacting the algorithmic specifications. Algorithms written according
to action semantics are thus written at a higher level of abstraction.
Several tools that support Executable UML include BridgePoint by Men-
tor Graphics [Bri], iUML by Kennedy-Carter [iUM], and Kavanagh Consul-
tancy’s OOA Tool [OOA] (which as of this writing could be downloaded at
no charge, but only includes a model editor and not a model compiler).
Executable UML succeeds by narrowing the UML concepts it supports
and by focusing on real-time embedded applications. While it is possible to
do general-purpose modeling and development with xUML, it excels with
applications that have rich and interesting object behavior lifecycles, which
is typical in real-time embedded systems.
Model-Driven Software Development 21
7 OO-Method
Customer Account
class) that it affects, a condition that may modify when the evaluation can
occur, and an evaluation effect that describes the result of performing the
evaluation. For example, given the partial class diagram in Figure 14 we may
wish to specify an evaluation that automatically issues a service charge when
an account that has a negative balance attempts a funds withdrawal. Such an
evaluation could specify event withdrawFunds, attribute balance, evaluation
condition balance < 0, and evaluation effect balance = balance − 10.
A distinctive aspect of OO-Method is its presentation model, which spec-
ifies and describes how users can interact with the system. The OO-Method
presentation model is essentially a collection of patterns that specifies the user
interface as an abstract model that has three levels of patterns: (1) system
access structure, (2) interaction units, and (3) basic supporting elements. The
framework for the presentation model is an action hierarchy tree that defines
the hierarchical structure through which users access system functions (e.g.,
it could be implemented as a menu hierarchy in a typical GUI application).
Nodes of the action hierarchy tree are interaction units that describe scenar-
ios through which users interact with the system to carry out specific tasks.
Basic element patterns support further specification of the user interface as
we illustrate below.
OO-Method includes four general kinds of interaction units: service, pop-
ulation, instance, and master/detail. A service interaction unit (SIU) models
human/computer interaction that results in the execution of a service in the
system. Figure 15 shows a simple SIU for depositing funds into an account.
Input fields allow the user to specify the account number, amount to deposit,
and an explanatory note. A button next to the account entry field lets the
user look up the account number from a list. Lower level patterns may also
be associated with SIU’s. For example, we could add several patterns to the
amount field in Figure 15, such as (1) an edit mask ##,###.##, (2) a help
message Please enter the amount you want to deposit, and (3) an underlying
datatype of Real for the entered value.
A population interaction unit (PIU) specifies patterns for displaying and
interacting with collections of objects (such as lists). Figure 16 shows an
example for a list of accounts. In addition to displaying the details of an
underlying collection (population), this PIU has a filter pattern that lets
24 Stephen W. Liddle
Deposit Funds
Account:
Amount:
Note:
OK Cancel
Fig. 15 Deposit Funds Service Interaction Unit for Abstract Graphical Interface.
Accounts
the user display only accounts whose owner name matches some expression
(“La*” in the example) and an order criteria button that allows the user to
sort the results according to various terms. The PIU in Figure 16 also has
a set of action buttons that invoke specific SIU’s (e.g. to add or remove an
account) and a set of navigation buttons that move from the current dialog to
some other interaction unit (e.g. a transaction history PIU). The other basic-
element pattern in Figure 16 is a display-set pattern that indicates which
fields associated with accounts should appear in the user interface.
Instance interaction units specify patterns for displaying and interacting
with individual objects. Instance and population interaction units are sim-
ilar, with the exception that the former displays information only about a
single object, while the latter displays information about a collection of simi-
lar objects. The fourth major category of interaction unit is the master/detail
interaction unit (MDIU), which models the common scenario where a collec-
tion of objects is associated with some other object (e.g., a list of transac-
tions associated with a particular account). Often, the “master” portion of an
MDIU is an instance interaction unit and the “detail” portion is a population
interaction unit.
With its presentation model, OO-Method is suitable for modeling general-
purpose applications that perform typical graphical user interface interac-
tions. Further developing the presentation model to cover additional in-
Model-Driven Software Development 25
ER OMT UML
1993— HDM
1994—
1997— WSDM
1998—
Data
Object WAE
Oriented
1999— Oriented
WebML
W2000 Software
2000— UWE
Oriented
2001— OOWS
Hera WAE2
2002—
Webile OO-H MIDAS Netsilon
2003—
2004— MDE-Oriented
WebSA
ent browsers, operating systems, and physical devices. The context within
which web applications operate evolves quickly, and so do web applications
themselves [Mur08]. A repeating them of MDWE is that there are common
patterns associated with web applications, and it is helpful to document and
reuse these common patterns [GPBV99].
To illustrate MDWE, we examine OOHDM, one of the earliest MDWE
methods. The OOHDM method specifies four activities: (1) conceptual mod-
eling, (2) navigation design, (3) abstract interface design, and (4) implemen-
tation. After identifying actors, performing use case analysis, and creating a
conceptual model of the problem domain—all of which are common to other
types of OO development—the OOHDM developer moves to navigation de-
sign, which is of particular interest for MDWE. The details are extensive
[GSV00, RS08], but briefly, for each user profile, the OOHDM developer cre-
ates a navigational class schema and then a context schema that describes
web application’s navigation design.
An OOHDM navigational class schema consists of nodes, which are views
over conceptual classes that contain information we want the user to perceive,
and anchors, which are objects that allow the triggering of links. OOHDM
structures the navigational space into sets of nodes it calls navigational con-
texts. A unique aspect of navigational contexts is that intra-set navigation
is often desirable, as so we define each navigational context in terms of (1)
its elements, (2) its internal navigational structure (e.g., can the set be ac-
cessed sequentially with next/previous links), and (3) its associated access
structures, called indexes.
Figure 18 shows an abbreviated example of an OOHDM navigation context
diagram for a part of our running banking example. Rectangles with solid
borders indicate navigational contexts, while dashed rectangles denote access
structures (indexes). Shaded rectangles represent classes (Account, Summary,
and Activity in the example). The arrows with black dots at the origin lead-
ing from Main Menu indicate landmarks that are accessible globally from all
contexts (implemented, perhaps, as a global menu of links on the top or side
of the page). The small black box on By Account is a shorthand notation
indicating that there is an associated index for this context. Since Summary
and Activity are nested in the same scope, the user can navigate freely be-
tween the two views (if this were not desired, we would draw a dashed line
between the two).
The various MDWE methods have different levels of support for model-
driven development (see especially [RMP04, VnM04, MSFB05, SD05, MG06,
SK06, SRS+ 08, Mur08]). UWE and WebML have some of the more compre-
hensive tool sets for MDD, though most methods have some tool support.
WebRatio Enterprise Edition [WR], by Web Models, is an XML and Java-
centric tool that integrates with the Eclipse IDE and supports WebML mod-
eling [WR]. WebRatio generates Java Enterprise Edition (JEE) code from
WebML and BPMN models. UWE has a MagicDraw plugin called Mag-
icUWE and an Eclipse plugin called UWE4JSF, among other tools [UWE].
28 Stephen W. Liddle
Account
Summary
Activity
... ...
VisualWade generates PHP code for OO-H web application models [VW],
but is a bit dated. The HyperDE tool for OOHDM generates systems for the
Ruby on Rails platform, and is suitable for “creating semantic web prototype
applications” [HDE].
As MDWE methods have evolved and matured, researchers have expressed
increasing concern over macro-level issues such as whether new refinements
make the method too complex and cumbersome [MMKV08, SRS+ 08]. Some
have also expressed concern that MDWE is in a state similar to the OO
“method wars” of the 1990’s and now call for consolidation and standard-
ization efforts [VKC+ 07, WSSK07]. The MDWEnet initiative [VKC+ 07] is
working on responding to some of these concerns, and we anticipate that re-
searchers will continue to work to bring together the various approaches where
feasible. Interestingly, some of the researchers behind HDM and W2000 sub-
sequently decided that a simpler approach would be more effective for various
aspects of design, and they proposed the significantly simpler IDM [BG08],
which takes a dialog-oriented perspective and advocates conceptual, logical,
and page-design activities. We expect that there will be a fair amount of
continued refinement and consolidation research in MDWE.
Many workshops and conferences that have published significant MDWE-
related work including workshops on the World Wide Web and Conceptual
Modeling (WWWCM’99 [CEK+ 99] and WCM2000 [LMT00]), Web-Oriented
Software Technology (IWWOST 2001–present), and Model-Driven Web En-
gineering (MDWE 2005–present), and the International Conference on Web
Engineering (ICWE 2001–present), among others. Several books nicely sum-
marize the state of the art in MDWE [KPRR06, MM06, RPSO08] (note es-
pecially that [RPSO08] distills the work published in IWWOST and WCM).
Furthermore, an extensive survey by Schwinger et al. [SRS+ 08] provides ex-
cellent details and analysis of MDWE initiatives.
Model-Driven Software Development 29
9 Agile MDD
• It takes a high level of education and training for developers to use MDA
tools. UML (and related standards) are overly complex and may not be
what the industry really needs anyway. The MDA standards are incom-
plete and still evolving.
• Tool vendors have historically been unwilling to create truly interopera-
ble model-sharing standards (CORBA, also an OMG standard, suffered
from tool vendors who would announce support and then implement the
standard in a proprietary way).
• The industry has seen other approaches, like I-CASE in the 1980’s and
CORBA in the 1990’s, that made similar promises but never fully deliv-
ered. Why will MDA be any different?
30 Stephen W. Liddle
Ambler’s answer is to advocate agile MDD, which replaces the task of creating
extensive models with agile models that are “just barely good enough” to
drive the software development process.
We share most of the concerns Ambler expressed. MDA is built on a com-
plex set of standards, and those standards do indeed continue to evolve. It
is difficult to achieve true interoperability between different vendors’ prod-
ucts in spite of their implementation of XMI import/export. History is full
of failures in this arena. However, it is possible to apply agile techniques in
an MDA framework, and indeed it has been done successfully [MB02]. When
we shift from the use of models as sketches or blueprints to the use of models
as the executable system itself, many of the difficulties Ambler points out
simply go away. Furthermore, we caution readers not to confuse MDA, which
Ambler specifically criticizes, with the broader concept of MDD; weaknesses
(or strengths) of MDA do not necessarily apply to MDD in general.
10 Conclusions
A wide variety of model-driven methods have been proposed over the years
and continue to be developed. MDA is certainly one of the more prominent
approaches to model-driven software development, but it is by no means
the only method. Model-driven techniques have been applied in a range of
domains, and have been particularly well accepted in the field of web engi-
neering. Some researchers advocate an agile approach to MDD because the
traditional approach to modeling suffers from the same problems as the wa-
terfall approach to software development.
There is an ecosystem of model-driven software development researchers,
vendors, and practitioners. IBM Rational has been a major player in this field,
creating many research advances and commercial tools for MDD. The Eclipse
project has been prominent as well, with the Eclipse Modeling Framework
and numerous related plugins. Some types of MDD have better tool support
than others. For example, Executable UML has several good tools (Bridge-
Point, Rhapsody, and iUML), and the OlivaNova suite is an excellent and
comprehensive model compiler.
On the other hand, many tool vendors have struggled to make sustain-
able model-driven tools. OptimalJ by Compuware was recently discontinued
by its vendor, Compuware, even though OptimalJ was generally regarded as
technically strong. A search of the web for model-driven tools yields many
links to projects that are no longer active. Nonetheless, there are a number of
Model-Driven Software Development 31
active vendors with high quality tools available today. Altova’s UModel, Ar-
tisan’s Studio, Borland’s Together, Gentleware’s Apollo and Poseidon tools,
IBM Rational’s various tools (e.g., Rhapsody, Rose, and Software Archi-
tect), No Magic’s MagicDraw, SparxSystems’ Enterprise Architect, and Vi-
sual Paradigm’s tool suite are some (but not all) of the active vendors with
quality tools. We expect to see continued energy and innovation in the MDD
tool vendor market in the coming years.
The question remains whether model-driven approaches to software devel-
opment can deliver on the promise of increased productivity, quality, reusabil-
ity, and maintainability. The skeptics are abundant, particularly among pro-
ponents of agile techniques, and the vast majority of software today is still
developed using non-model-driven methods. However, the industry has been
moving inevitably toward model-driven approaches, and we expect it will
continue to do so. We answer the skeptics by taking an expansive view of
what “model-driven” means; the phrase is not owned by any one vendor or
consortium, and it does not require cumbersome or unwieldy solutions, even
though that is what many early MDD proponents delivered. The move to-
ward model-driven approaches is really the same phenomenon that has been
occurring in computing for decades—a move to ever higher levels of abstrac-
tion.
In his classic essay on software engineering, “No Silver Bullet—Essence
and Accidents of Software Engineering”, Fred Brooks observed that there
are two kinds of complexity: “essential” and “accidental” [Bro95]. His cen-
tral point was that some complexity aspects of software systems are intrinsic
or inherent (essential), while other aspects are artificially (accidentally) com-
plex. Furthermore, essential complexity cannot be removed from the software
development process. Therefore, unless accidental complexity accounts for at
least 90% of the effort required to develop complex systems, we will never
see a “silver bullet” that increases productivity be an order of magnitude.
For example, a software system capable of making highly accurate weather
forecasts has significant inherent complexity because the environmental model
is quite involved, gathering the many necessary inputs is a difficult distributed
process, and the algorithms that manipulate that model and its inputs are
computationally complex. However, the particular tools we might use today
to build such a system have some measure of accidental complexity. Consider
the productivity improvement that comes with using an integrated develop-
ment environment to develop in a modern object-oriented programming lan-
guage with its extensive libraries of functions as compared to programming
in COBOL or FORTRAN on punch cards. By introducing an environment
that conveniently speeds up the edit-compile-run-test cycle, we remove some
of the accidental programming complexity that software developers of the
1970’s and 1980’s experienced. Much of that complexity is now removed with
graphical toolbar buttons and library objects. We can store our programs on
convenient, stable, solid-state storage that fits in our pockets rather than on
paper cards and bulky reels of magnetic tape.
32 Stephen W. Liddle
References
[Abr74] J.-R. Abrial. Data semantics. In IFIP Working Conference Data Base
Management, pages 1–60, 1974.
[Agi] Agile manifesto. http://www.agilemanifesto.org.
[AK03] C. Atkinson and T. Kuhne. Model-driven development: a metamodeling
foundation. IEEE Software, 20(5):36–41, Sept.–Oct. 2003.
[Amb] Examining the model driven architecture (MDA).
http://www.agilemodeling.com/essays/mda.htm.
[Amb03] S.W. Ambler. Agile model driven development is good enough. IEEE
Software, 20(5):71–73, Sept.–Oct. 2003.
[AVP10] N. Aquino, J. Vanderdonckt, and O. Pastor. Transformation templates:
adding flexibility to model-driven engineering of user interfaces. In Proceed-
ings of the 2010 ACM Symposium on Applied Computing (SAC), Sierre,
Switzerland, March 22-26, 2010, pages 1195–1202, 2010.
[BBG05] S. Beydeda, M. Book, and V. Gruhn, editors. Model-Driven Software De-
velopment. Springer, Berlin, 2005.
[BBI+ 04] G. Booch, A. Brown, S. Iyengar, J. Rumbaugh, and B. Selic. An MDA
manifesto. The MDA Journal: Model Driven Architecture Straight from
the Masters, pages 133–143, 2004.
[BCFM08] M. Brambilla, S. Comai, P. Fraternali, and M. Matera. Designing web
applications with WebML and WebRatio. In Rossi et al. [RPSO08], pages
221–261.
[BCT05a] A.W. Brown, J. Conallen, and D. Tropeano. Models, modeling, and model
driven development. In S. Beydeda, M. Book, and V. Gruhn, editors, Model-
Driven Software Development, pages 1–17. Springer, Berlin, 2005.
Model-Driven Software Development 33
[BCT05b] A.W. Brown, J. Conallen, and D. Tropeano. Practical insights into MDA:
Lessons from the design and use of an MDA toolkit. In S. Beydeda,
M. Book, and V. Gruhn, editors, Model-Driven Software Development,
pages 403–432. Springer, Berlin, 2005.
[Béz05] J. Bézivin. On the unification power of models. Software and System
Modeling, 4(2):171–188, 2005.
[BG08] D. Bolchini and F. Garzotto. Designing multichannel web applications as
“dialogue systems”: the IDM model. In Rossi et al. [RPSO08], pages 193–
219.
[BGP01] L. Baresi, F. Garzotto, and P. Paolini. Extending UML for modeling web
applications. In HICSS, 2001.
[BHP00] P.A. Bernstein, A.Y. Halevy, and R. Pottinger. A vision of management of
complex models. SIGMOD Record, 29(4):55–63, 2000.
[BIJ06] A.W. Brown, S. Iyengar, and S. Johnston. A rational approach to model-
driven development. IBM Systems Journal, 45(3):463–480, 2006.
[BMS84] M.L. Brodie, J. Mylopoulos, and J.W. Schmidt, editors. On Conceptual
Modelling: Perspectives from Artificial Intelligence, Databases, and Pro-
gramming Languages. Springer, New York, 1984.
[Boo91] G. Booch. Object-Oriented Analysis and Design with Applications. Ben-
jamin/Cummings, Menlo Park, California, 1991.
[BPS02] Michael J. Butler, Luigia Petre, and Kaisa Sere, editors. Integrated For-
mal Methods, Third International Conference, IFM 2002, Turku, Finland,
May 15-18, 2002, Proceedings, volume 2335 of Lecture Notes in Computer
Science. Springer, 2002.
[Bri] Bridgepoint. http://www.mentor.com/products/sm/model development-
/bridgepoint.
[Bro95] F.P. Brooks. The Mythical Man-Month: Essays on Software Engineering
(Anniversary Edition). Addison-Wesley, Boston, Massachusetts, 1995.
[Bro04] A.W. Brown. Model driven architecture: Principles and practice. Software
and System Modeling, 3(4):314–327, 2004.
[Bro08] A.W. Brown. MDA redux: Practical realization of model driven archi-
tecture. In Composition-Based Software Systems, 2008. ICCBSS 2008.
Seventh International Conference on, pages 174–183, Feb. 2008.
[BVMGMR08] J. Bézivin, A. Vallecillo-Moreno, J. Garcı́a-Molina, and G. Rossi. Editor’s
introduction: MDA at the age of seven: Past, present and future. UP-
GRADE: The European Journal for the Informatics Professional, IX(2):4–
6, April 2008.
[CAR] CARE-technologies web site. http://www.care-t.com/.
[CE00] K. Czarnecki and U. Eisenecker. Generative Programming: Methods, Tools,
and Applications. Addison-Wesley Professional, Boston, Massachussets,
USA, 2000.
[CEK+ 99] P.P. Chen, D.W. Embley, J. Kouloumdjian, S.W. Liddle, and J.F. Roddick,
editors. Advances in Conceptual Modeling: ER’99 Workshops on Evolu-
tion and Change in Data Management, Reverse Engineering in Informa-
tion Systems, and the World Wide Web and Conceptual Modeling, Paris,
France, November 15-18, 1999, Proceedings, volume 1727 of Lecture Notes
in Computer Science. Springer, 1999.
[CEW92] S.W. Clyde, D.W. Embley, and S.N. Woodfield. Tunable formalism in
object-oriented systems analysis: Meeting the needs of both theoreticians
and practitioners. In Proceedings of the 1992 Conference on Object-
Oriented Programming Systems, Languages, and Applications (OOP-
SLA’92), pages 452–465, Vancouver, Canada, October 1992.
[CFB00] S. Ceri, P. Fraternali, and A. Bongio. Web modeling language (WebML):
a modeling language for designing web sites. Computer Networks, 33(1–
6):137–157, 2000.
34 Stephen W. Liddle
[MMP02] P.J. Molina, S. Meliá, and O. Pastor. User interface conceptual patterns.
In Proceedings of the 9th International Workshop on Interactive Systems.
Design, Specification, and Verification (DSV-IS’02), Rostock, Germany,
June 2002.
[Moo10] Moore’s law. http://en.wikipedia.org/wiki/Moore’s law, May 2010.
[MRB03] S. Melnik, E. Rahm, and P.A. Bernstein. Rondo: A programming platform
for generic model management. In Proceedings of the ACM International
Conference on Management of Data (SIGMOD’03), San Diego, California,
2003.
[MRV08] N. Moreno, J. Raúl Romero, and A. Vallecillo. On overview of model-driven
web engineering and the MDA. In Rossi et al. [RPSO08], pages 353–382.
[MSFB05] P.-A. Muller, P. Studer, F. Fondement, and J. Bézivin. Platform indepen-
dent web application modeling and development with Netsilon. Software
and System Modeling, 4(4):424–442, 2005.
[MSUW04] S.J. Mellor, K. Scott, A. Uhl, and D. Weise. MDA Distilled: Principles of
Model-Driven Architecture. Addison-Wesley, Boston, Massachussets, 2004.
[Mur08] S. Murugesan. Web application development: Challenges and the role of
web engineering. In G. Rossi, O. Pastor, D. Schwabe, and L. Olsina, editors,
Web Engineering: Modelling and Implementing Web Applications, pages
7–32. Springer, Berlin, 2008.
[NBB+ 08] B. Nolan, B. Brown, L. Balmelli, T. Bohn, and U. Wahli. Model Driven
Systems Development with Rational Products. IBM Redbooks, 2008.
[Nie93] O. Nierstrasz. Regular types for active objects. In Proceedings of the
1993 Conference on Object-Oriented Programming Systems, Languages,
and Applications (OOPSLA’93), pages 1–15, 1993.
[OED] Oxford english dictionary. http://www.oed.com/.
[Oli05] A. Olivè. Conceptual schema-centric development: A grand challenge for
information systems research. In CAiSE, pages 1–15, 2005.
[Oli07] A. Olivè. Conceptual Modeling of Information Systems. Springer, Berlin,
Germany, 2007.
[OMG] Object Management Group home page. www.omg.org.
[OOA] OOA Tool. http://www.ooatool.com/OOATool.html.
[PAF01] O. Pastor, S.M. Abrahão, and J. Fons. An object-oriented approach to
automate web applications development. In Electronic Commerce and
Web Technologies, Second International Conference, EC-Web 2001 Mu-
nich, Germany, September 4-6, 2001, Proceedings, volume 2115 of Lecture
Notes in Computer Science, pages 16–28. Springer, 2001.
[PEPA08] O. Pastor, S. España, J.I. Panach, and N. Aquino. Model-driven develop-
ment. Informatik Spektrum, 31(5):394–407, 2008.
[PHB92] O. Pastor, F. Hayes, and S. Bear. OASIS: An object-oriented specification
language. In Proceedings of International Conference on Advanced In-
formation Systems Engineering (CAiSE’92), pages 348–363, Manchester,
United Kingdom, 1992.
[PM88] J. Peckham and F. Maryanski. Semantic data models. ACM Computing
Surveys, 20(3):153–189, September 1988.
[PM07] O. Pastor and J.C. Molina. Model-Driven Architecture in Practice: A Soft-
ware Production Environment Based on Conceptual Modeling. Springer,
New York, New York, 2007.
[PVE+ 07] I. Pederiva, J. Vanderdonckt, S. España, J.I. Panach, and O. Pastor. The
beautification process in model-driven engineering of user interfaces. In
Proceedings of the 11th IFIP TC 13 International Conference on Human-
Computer Interaction (INTERACT 2007), Rio de Janeiro, Brazil, Septem-
ber 2007.
38 Stephen W. Liddle
K. van der Sluijs, and G. Zhang. A survey on web modeling approaches for
ubiquitous web applications. IJWIS, 4(3):234–305, 2008.
[SS09] Y. Singh and M. Sood. Model driven architecture: A perspective. In
Advance Computing Conference, 2009. IACC 2009. IEEE International,
pages 1644–1652, June–July 2009.
[SVC06] T. Stahl, M. Voelter, and K. Czarnecki. Model-Driven Software Develop-
ment: Technology, Engineering, Management. John Wiley & Sons, 2006.
[Szt01] J. Sztipanovits. Advances in model-integrated computing. In Instrumen-
tation and Measurement Technology Conference, 2001. IMTC 2001. Pro-
ceedings of the 18th IEEE, volume 3, pages 1660–1664, 2001.
[TCP08] O. De Troyer, S. Casteleyn, and P. Plessers. WSDM: Web semantics design
method. In Rossi et al. [RPSO08], pages 303–351.
[Tho04] D. Thomas. MDA: revenge of the modelers or UML utopia? IEEE Software,
21(3):15–17, May–June 2004.
[TL82] D. Tzichritzis and F.H. Lochovski. Data Models. Prentice-Hall, Englewood
Cliffs, New Jersey, 1982.
[TL98] O. De Troyer and C.J. Leune. WSDM: A user centered design method for
web sites. Computer Networks, 30:85–94, 1998.
[TYF86] T.J. Teorey, D. Yang, and J.P. Fry. A logical design methodology for rela-
tional databases using the extended entity-relationship model. ACM Com-
puting Surveys, 18(2):197–222, June 1986.
[Uhl03] A. Uhl. Model driven arcitecture is ready for prime time. IEEE Software,
20(5):70, 72, Sept.–Oct. 2003.
[Uhl08] A. Uhl. Model-driven development in the enterprise. IEEE Software,
25(1):46–49, 2008.
[UML09a] OMG Unified Modeling Language (OMG UML), infrastructure: Version
2.2. http://www.omg.org/spec/UML/2.2/, Feb. 2009. Object Management
Group.
[UML09b] OMG Unified Modeling Language (OMG UML), superstructure: Version
2.2. http://www.omg.org/spec/UML/2.2/, Feb. 2009. Object Management
Group.
[UWE] UWE web site. http://uwe.pst.ifi.lmu.de.
[VFHB03] R. Vdovjak, F. Frasincar, G.-J. Houben, and P. Barna. Engineering se-
mantic web information systems in Hera. Journal of Web Engineering,
2(1–2):3–26, 2003.
[VKC+ 07] A. Vallecillo, N. Koch, C. Cachero, S. Comai, P. Fraternali, I. Gar-
rigós, J. Gómez, G. Kappel, A. Knapp, M. Matera, S. Meliá, N. Moreno,
B. Pröll, T. Reiter, W. Retschitzegger, J. Eduardo Rivera, A. Schauerhu-
ber, W. Schwinger, M. Wimmer, and G. Zhang. MDWEnet: A practi-
cal approach to achieving interoperability of model-driven web engineering
methods. In Koch et al. [KVH07].
[VnM04] B. Vela, C.J. Acu na, and E. Marcos. A model driven approach to XML
database development. In Proceedings of the 23rd International Confer-
ence on Conceptual Modeling (ER2004), pages 273–285, Shanghai, China,
November 2004.
[VW] Visualwade. http://www.visualwade.com.
[WKC+ 03] I. Wilkie, A. King, M. Clarke, C. Weaver, C. Raistrick, and P. Francis.
UML ASL Reference Guide: ASL Language Level 2.5. Kennedy Carter
Ltd., 2003.
[WR] Webratio. http://www.webratio.com.
[WSSK07] M. Wimmer, A. Schauerhuber, W. Schwinger, and H. Kargl. On the integra-
tion of web modeling languages: Preliminary results and future challenges.
In Koch et al. [KVH07].