Enterprise Engineering Forum

企业工程论坛
Categorized as: 模型与建模,系统架构   Tagged as: ,, , ,

Model-Driven Applications and Runtime Models

Author: Tong-Ying Yu,  Source: EE-Forum.org,  Published: 2013-04-22

Excerpt: In the phases of software lifecycle, runtime is the most important to the topics related with model-driven applications (MDApps). The applied models in an MDApp are including 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 most contribution by MDApps is shows that a computer application can be, and how is, working on evolutionary models of the outside things.

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 lifecycle (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.

Copyright

Creative Commons License
Model-Driven Applications and Runtime Models by Tong-Ying Yu is licensed under a Creative Commons Attribution-NonCommercial 3.0 Unported License.

Cite Style

GB7714 style: Tong-Ying Yu. Model-Driven Applications and Runtime Models[EB/OL]. EE-Forum.org, http://www.ee-forum.org/wp/pub/ty/2013-04-p3531.html, 2013-04-22[2017-11-25 02:50]

Chicago style: Tong-Ying Yu, "Model-Driven Applications and Runtime Models", EE-Forum.org, http://www.ee-forum.org/wp/pub/ty/2013-04-p3531.html(accessed 2017-11-25 02:50)

Posted by   2013-04-22(Original)   Hits 4636   Modified 2013-04-23
Prev Post: 
Next Post: 

Related Entries:

On Some Main Kinds of Models in MDE/MDSD
Multiple Model-Driven Mechanism: Making Metamodel Evolutionary at Runtime
How the Modeling Knowledge Works in Model-Driven Mechanism
Models: Execution or More
MDApps vs. MDA and OO: from an Architectural Perspective

Leave a Response

You must be logged in to post a comment.