you're reading...
App & Architecture, Fundamentals

Model-Driven Applications and Runtime Models

The models involved in computer application can appear in any phase of the lifecycle, for the topics related with model-driven applications (MDApps), runtime (or run time), corresponding to runtime (or run-time) models, is most important [1]; in comparison with it, use development time for the development phases of the lifecycle, the corresponding models is development-time models (sometimes it may simply be called as development models).

The model-driven engineering (MDE) has been raised over a decade, and most of the researches, as shown in some early literature [2], are on the development-time modes in development time, that is, for model-driven software development (MDSD). OMG’s model-driven architecture (MDATM) is its representative. Moreover, therein the main sort of models is the models of system (software), such as the platform-independent models (PIMs) and platform-specific models (PSMs). In addition to that main route of research,  there is also some work on so-called executable models or model execution, such as the executable UML [3], that of cause is reached the runtime range. This essay does not discuss that but notes that a runtime model is not necessarily executable.

There are another researches from MDE-relative community, which are focused on the runtime models at the very beginning, it “seeks to extend the applicability of models and abstractions to the runtime environment, with the goal of providing effective technologies for managing the complexity of evolving software behaviour while it is executing.” [4] And those researches are often referred to models at runtime (there is a special expression for it as models@run.time). As a branch from MDE / MDSD, the main sort of models is still as the models in MDSD, that is, models of system; a point is that it does not take a model executable but making a causal connection [5] between a runtime system and its model, thus it is natural to that based on reflection mechanism. The causal connection means that the system should be changed with the changes of the model, it is thereby adaptive; so, this route is joined with or involved in some subject matters such as (self-)adaptation, evaluation, autonomy, variability, and so on, of system / software. What is a deserved system depends on the requirements, so, models at runtime seems to naturally bring the transforming barrier between analysis model and design model [6] into runtime, the requirements@run.time emerged [7]. The challenge was described as that to raise the level of runtime model abstraction from software structures and procedural representations of such structures to that of requirements [8].

Our ideas about model-driven applications (MDApps) are derived from the practice of enterprise applications without any of the work mentioned above. It can be embodied as a rich and strong  architecture for applications; the first class models what we called applied models are (first) not the models of system but the models of outside things (so-called real world) — the things what the app system is applied / operated for / on, such as, the business, and those are certainly runtime models. Definitely, the applied models in an MDApp can be divided into two groups: the models of (a part of) system itself and the models of the outside things, where the former is corresponding to the models@run.time; the latter may be one of the most contributions by MDApps, it is out of the most work we’ve seen so far, in the field such as MDE / MDSD, and shows us that a computer application can be, and how is, working on evolutionary models of the outside things, thereby to be directly adaptive to (keep operations on) the changes of the applying things without changing the system (software) but just by updating the applied models, and this also across the traditional requirements analysis phase for software.

As a subject matter for research, models at runtime (runtime models) is indeed one of the issues under a more general basic question, that is, how does a model work? Or, how does a model serve as a part of system? We find model-driven mechanism (MDM) is the fundamental answer: when any of entity serves as a model, there is certainly a system to make it work; MDM gives the minimum elements and the required relationships between them. So, it is applicable to any use of models, such as the various approaches in MDE / MDSD, as well as modes@run.time.

[1] Generally, the term “runtime” is mainly used for the program’s lifecycle; for MDApps, it is better to discuss on application lifecycle. However, the concept of application lifecycle itself is lack of discussions. Here, we just temporarily discuss on the relative simple concept, the runtime in the common sense, in some comparison with development time, and avoid some important issues, such as the lifecycles (the difference and relationships) of application, of the platform, of the applied models and of the metamodels, etc., and also the phases of deployment, configuration, maintenance, and so on.

[2] A few of early reference documents to MDE, such as:

  • Kent, Stuart. “Model driven engineering.” In Integrated formal methods, pp. 286-298. Springer Berlin Heidelberg, 2002.
  • Selic, Bran. “The pragmatics of model-driven development.” Software, IEEE 20, no. 5 (2003): 19-25.
  • Bézivin, Jean. “In search of a basic principle for model driven engineering.” Novatica Journal, Special Issue 5, no. 2 (2004): 21-24.

[3] Some of the references to executable models, for example:

  • Mellor, Stephen J., and Marc J. Balcer. Executable UML: a foundation for model-driven architecture. Addison-Wesley Professional, 2002.
  • OMG, Semantics of a Foundational Subset for Executable UML Models (FUML), http://www.omg.org/spec/FUML/.

[4] Aßmann, Uwe, Nelly Bencomo, Betty H. C. Cheng, and Robert B. France (eds.). “Models@run.time – Report from Dagstuhl Seminar 11481.” Dagstuhl Reports 1, 11 (2011), 91–123. Some more references to this essay:

  • Bencomo, Nelly, Gordon Blair, and Robert France. “Summary of the Workshop Models@ run. time at MoDELS 2006.” In Models in Software Engineering, pp. 227-231. Springer Berlin Heidelberg, 2007.
  • France, Robert, and Bernhard Rumpe. “Model-driven development of complex software: A research roadmap.” In 2007 Future of Software Engineering, pp. 37-54. IEEE Computer Society, 2007.
  • Blair, Gordon, Nelly Bencomo, and Robert B. France. “Models@ run. time – Guest Editors’ Introduction.” Computer 42.10 (2009): 22-27.

There is a workshop series Models@run.time from 2006 held as a part of MODELS, one of the most important international conferences for MDE, and 8th International Workshop on Models @ Run.time is scheduled at Miami, 29 September 2013 through 4 October 2013.

[5] The term of “causal connection” can be traced back to

  •  Maes, Pattie. “Concepts and experiments in computational reflection.” In ACM Sigplan Notices, vol. 22, no. 12, pp. 147-155. ACM, 1987.

[6] Yu, Tong-Ying. “Model-Driven Applications: Using Model-Driven Mechanism to Bridge the Gap between Business and IT.” In Advances and Applications in Model-Driven Software Engineering. Díaz, V.G. et al. eds. IGI Global, August 2013 (in press, see Recent Work on Model-Driven Applications (MDApp).

[7] Sawyer, Pete, Nelly Bencomo, Jon Whittle, Daniel M. Berry, and Anthony Finkelstein. “Foreword: First Workshop requirements@ run. time.” In Requirements@ Run. Time (RE@ RunTime), 2010 First International Workshop on, pp. i-ii. IEEE, 2010.

[8] Blair, Gordon, Nelly Bencomo, and Robert B. France. “Models@ run. time – Guest Editors’ Introduction.” Computer 42.10 (2009): 22-27.

Last update, 2013-04-23 am: mainly modified some of the wording, grammar.

About TY

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


3 thoughts on “Model-Driven Applications and Runtime Models

  1. Dear TY,
    I think your writeup on executability of models is great.
    I just wanted to add a small bit to the picture, by mentioning that now OMG has also standardized IFML (www.ifml.org), the Interaction Flow Modeling Language. This is a significant piece because it allows executable specification of the user interfaces and user interaction too, which can be connected with executable models for other pieces of the system.
    At WebRatio (www.webratio.com) we are implementing an IFML editor with code generation and prototype integration with fUML and Alf specifications.

    Posted by Marco Brambilla | April 22, 2013, 22:12
  2. Along with the efforts made by property builders, timely help and government
    support were also instrumental in development of Gurgaon real estate.

    Included in the project is the Masdar headquarters, which is presumable to be the
    world’s first power house having capacity of producing
    more energy compared to its consumption, with
    zilch solid or liquid waste. This micro-market attracts patrons and investors with higher mid-segment budgets.

    Posted by Realtor Phoenix | January 2, 2014, 00:00

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 )

Twitter picture

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

Facebook photo

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

Google+ photo

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

Connecting to %s



Subscribe notifications of new posts by email.

Join 60 other followers

%d bloggers like this: