you're reading...
App & Architecture

MDApps vs. MDA and OO: from an Architectural Perspective

To introduce the idea of model-driven applications (MDApps) [1], in the context of software development and application, it is necessary to clarify its relationship with model-driven architecture (MDA). In Model-Driven: An Essential Requirement Come from Customers, described why the term “model-driven” was chosen for our conception in origin, that was before the rising of OMG’s MDA and the use was essentially consistent to MDA; this has been further illustrated in Using Model Driven Mechanism to Explain Model Driven Software Development, where shows that the MDA / MDD is indeed based on Model-Driven Mechanism (MDM). As a preparation for this discussion, an general understanding for architecture presents in the latest post–based on it carefully, here is a concise comparison and a bit analysis to MDApps and MDA, also with OO.

Table: A comparison for MDA, OO, and MDApps as an architecture, on the definition by ISO/IEC 42010

ISO/IEC 42010:2007 OO MDA MDApps as Architecture
What The fundamental organization of a system Using class/object to organize software Using MDM to organize software development Using MDM to organize software application
embodied in its components, their relationships to each other and the environment Classes/objects, messages, encapsulation, inheritance,.. Models, metamodels, in metamodeling hierarchy Applied models, modeling knowledge (metamodels), operational device, which are related in an MDM structure
How the principles governing its design and evolution OOA/OOD, e.g. RUP – Using models to direct the course of understanding, design, construction, deployment, operation, maintenance and modification. [2] – Programming for the applied models according to the modeling knowledge;
– Evolution on the app model according to the modeling knowledge;
– Keep the device according to / supporting the modeling knowledge

As mentioned in Understanding Architecture, to compare some architectures, we should first identify what the (class of) systems, the target of architecture, they are for. In the table, shows three typical target systems: software by OO, development (systems or organizations) by MDA, and applications by MDApps.

Don’t know if this will cause some controversy, IMHO, MDA is in fact not an architecture for software system but for software development system. Objectively, it appears in fact to be a complementary to OO architecture, though the model-driven approach is not only to be used for OO. MDA + OO may be regarded as a complete architecture for software but that is somewhat weak: in principle, there is no inevitable, certain relationship between the model-driven approach specified by MDA and the software organized in OO style.

Although I prefer take the term model-driven application to refer to a type of a systems, the ideas about MDApps are certainly presented as a rich architecture. It firstly specifies the core structure for its target systems: the MDM structure; this structure brings the significant unique characteristics what appeared in the functionality of the target systems: it will be capable to adapt to the changes of the applying objects (business, etc.) based on evolving the applied models without change the software (platform). Furthermore, for an MDApp, its development, deployment, government, as well as the division of the roles who involved in the whole life cycle, are all different to a traditional software application. The ideas of MDApps are therefore presented as a strong architecture.


[1] A regular publication about MDApp is in press, see Recent Work on Model-Driven Applications (MDApp). I will introduce such ideas on this blog continuously, and some more information on EE-Forum.org in Chinese.

[2] Cite from  MDA Guide Version 1.0.1, Sec. 2.2.3, OMG, March 06, 2001

About TY

interested in models & modeling, software, information systems, applications & engineering for enterprises



  1. Pingback: What Is Model-Driven Application | THINK IN MODELS - April 8, 2013

  2. Pingback: Model-Driven Applications and Runtime Models | THINK IN MODELS - April 23, 2013

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s



Subscribe notifications of new posts by email.

Join 62 other followers

%d bloggers like this: