Software & Systems Modeling

, Volume 18, Issue 4, pp 2557–2586 | Cite as

Model-integrating development of software systems: a flexible component-based approach

  • Mahdi Derakhshanmanesh
  • Jürgen EbertEmail author
  • Marvin Grieger
  • Gregor Engels
Regular Paper


A promising way to develop flexible software systems is to include models that are analyzed, modified and executed at runtime as an integrated part of the system. Building such model-integrating systems is a challenging task since the respective modeling languages have to be supported comprehensively at runtime, and these systems still need to be developable in a modular way by composing them from basic building blocks. Model-driven (MDD) and component-based development (CBD) are two established orthogonal approaches that can tackle the mentioned challenges. MDD is based on the use of models and modeling languages as first-class entities to systematically engineer software systems. CBD enables the engineering of modular systems by facilitating a divide-and-conquer approach with reuse. However, combining and aligning the individual principles from both approaches is an open research problem. In this article, we describe model-integrating development (MID), an engineering approach that enables the systematic development of component-based, model-integrating software. MID combines principles from MDD and CBD and is based on the central assumption that models and code shall be treated equally as first-class entities of software throughout its life cycle. In particular, MID leverages the added flexibility that comes with models at runtime, i.e., when models are an integral part of running software. The practicability of the proposed solution concept is rationalized based on a reference implementation that provides the basis for a thoroughly described and critically discussed feasibility study: a dynamic access control product line. The obtained benefits are presented in a distilled way, and future research challenges are identified.


Model-integrating development Model-integrating components Model-integrating software Software components Modeling language engineering Models at runtime Self-adaptive software 



The authors would like to thank Thomas Iguchi for his implementation support.


  1. 1.
    Amoui, M., Derakhshanmanesh, M., Ebert, J., Tahvildari, L.: Achieving dynamic adaptation via management and interpretation of runtime models. J. Syst. Softw. 85(12), 2720 – 2737 (2012).
  2. 2.
    Andersson, J., Lemos, R., Malek, S., Weyns, D.: Software Engineering for Self-Adaptive Systems Chap. Modeling D, pp. 27–47. Springer, Berlin (2009)CrossRefGoogle Scholar
  3. 3.
    Atkinson, C., Gerbig, R., Tunjic, C.: A multi-level modeling environment for sum-based software engineering. In: Proceedings of the 1st workshop on view-based, aspect-oriented and orthographic software modelling, VAO ’13, pp. 2:1–2:9. ACM, New York, NY, USA (2013)Google Scholar
  4. 4.
    Bae, J.H., Lee, K., Chae, H.S.: Modularization of the UML metamodel using model slicing. In: Fifth International Conference on Information Technology: New Generations, 2008. ITNG 2008, pp. 1253–1254 (2008)Google Scholar
  5. 5.
    Ballagny, C., Hameurlain, N., Barbier, F.: MOCAS: a state-based component model for self-adaptation. 2009 Third IEEE International Conference on Self-Adaptive and Self-Organizing Systems pp. 206–215 (2009)Google Scholar
  6. 6.
    Balz, M., Striewe, M., Goedicke, M.: Embedding behavioral models into object-oriented source code. In: Proceedings of “Software Engineering 2009” (2009)Google Scholar
  7. 7.
    Bencomo, N., France, R.B., Götz, S., Rumpe, B.: Summary of the 8th International Workshop on Models @ Run.time. In: MoDELS@Run.time (2013). Accessed 8 July 2014
  8. 8.
    Blair, G., Bencomo, N., France, R.B.: Models@run.time. Computer 42(10), 22–27 (2009)CrossRefGoogle Scholar
  9. 9.
    BOC Information Technologies Consulting: ADOxx (2017). Accessed 20 May 2018
  10. 10.
    Brambilla, M., Cabot, J., Wimmer, M.: Model-driven software engineering in practice. Morgan & Claypool (2012). Accessed 20 May 2018
  11. 11.
    Ciccozzi, F., Cicchetti, A., Sjdin, M.: Towards translational execution of action language for foundational UML. In: 39th Conference on Software Engineering and Advanced Applications (SEAA), pp. 153–160 (2013)Google Scholar
  12. 12.
    Ciccozzi, F., Tivoli, M., Carlson, J. (eds.): Proceedings of the 1st International Workshop on Model-Driven Engineering for Component-Based Software Systems co-located with ACM/IEEE 17th International Conference on Model Driven Engineering Languages & Systems (MoDELS 2014), Valencia, Spain, CEUR Workshop Proceedings, vol. 1281. (2014).
  13. 13.
    Clements, P., Northrop, L.: Software Product Lines: Practices and Patterns. Addison-Wesley Professional, SEI Series in Software Engineering (2001)Google Scholar
  14. 14.
    Crnkovic, I., Sentilles, S., Vulgarakis, A., Chaudron, M.R.V.: A classification framework for software component models. IEEE Trans. Softw. Eng. 37(5), 593–615 (2011)CrossRefGoogle Scholar
  15. 15.
    Czarnecki, K., Wkasowski, A.: Feature diagrams and logics: there and back again. In: 11th International Software Product Line Conference (SPLC 2007) pp. 23–34 (2007)Google Scholar
  16. 16.
    Derakhshanmanesh, M.: Model-Integrating Software Components—Engineering Flexible Software Systems. Springer, Berlin (2015)Google Scholar
  17. 17.
    Derakhshanmanesh, M., Amoui, M., O’Grady, G., Ebert, J., Tahvildari, L.: GRAF: graph-based runtime adaptation framework. In: Proceeding of the 6th International Smposium on Software Engineering for Adaptive and Self-managing Systems - SEAMS ’11, pp. 128–137. ACM Press, New York, NY, USA (2011)Google Scholar
  18. 18.
    Derakhshanmanesh, M., Ebert, J., Engels, G.: Why models and code should be treated as friends. Softwaretechnik-Trends 34(2) (2014)Google Scholar
  19. 19.
    Derakhshanmanesh, M., Ebert, J., Iguchi, T., Engels, G.: Model-integrating software components. In: Dingel, J., Schulte, W. (eds.) Model Driven Engineering Languages and Systems, 17th International Conference (MODELS 2014), Valencia, Spain, September 28–October 3, 2014. Springer, Valencia, Spain, pp. 386–402 (2014)Google Scholar
  20. 20.
    Derakhshanmanesh, M., Grieger, M.: Model-integrating microservices: a vision paper. In: Proceedings of the 1st Workshop on Continuous Software Engineering co-located with Software Engineering 2016 in Vienna, Austria, February 23, 2016 (2016)Google Scholar
  21. 21.
    Derakhshanmanesh, M., Grieger, M., Ebert, J.: On the need for extended transactional Models@Run.Time. In: Proceedings of the 10th Workshop on Models@run.time co-located with 18th International Conference on Model Driven Engineering Languages and Systems (MODELS 2015), Ottawa, Kanada, September 29, 2015 (2015)Google Scholar
  22. 22.
    Derakshanmanesh, M., Grieger, M., Ebert, J., Engels, G.: Thoughts on the evolution towards model-integrating software (to appear). In: Proceedings of the 3rd Workshop Model-Based and Model-Driven Software Modernization (MMSM) (2016)Google Scholar
  23. 23.
    de Lemos, R., Giese, H., Müller, H.A., Shaw, M. (eds.): Software Engineering for Self-Adaptive Systems II. Lecture Notes in Computer Science, vol. 7475. Springer (2010)Google Scholar
  24. 24.
    E2E Technologies: White paper: direct model execution—The key to IT productivity and improving business performance (2008). Accessed 9 July 2014
  25. 25.
    Ebert, J., Bildhauer, D.: Reverse engineering using graph queries. In: Engels, G., Lewerentz, C., Schfer, W., Schrr, A., Westfechtel, B. (eds.) Graph Transformations and Model-Driven Engineering, LNCS 5765. Springer, Berlin (2010)Google Scholar
  26. 26.
    Ebert, J., Süttenbach, R.: Integration of Z-based Semantics of OO-Notations. In: Proceedings of the Workshops on Object-Oriented Technology, ECOOP ’97, pp. 173–177. Springer-Verlag, London, UK, UK (1998)Google Scholar
  27. 27.
    Eclipse Foundation: Equinox (2016). Accessed 20 May 2018
  28. 28.
    École Polytechnique Fédérale de Lausanne: Scala (2016). Accessed 20 May 2018
  29. 29.
    Engels, G., Hausmann, J.H., Heckel, R., Sauer, S.: Dynamic meta-modeling: a graphical approach to the operational semantics of behavioral diagrams in UML. In: Evans, B.S.A. Kent, S. (eds.) Proceedings of the 3rd international conference on the Unified Modeling Language (UML 2000), York (UK), LNCS, vol. 1939, pp. 323–337. Springer, Berlin/Heidelberg (2000)Google Scholar
  30. 30.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Longman Publishing Co. Inc, Boston (1995)zbMATHGoogle Scholar
  31. 31.
    Grieger, M.: Model-driven software modernization: concept-based engineering of situation-specific methods. Ph.D. thesisGoogle Scholar
  32. 32.
    Haber, A., Look, M., Perez, A.N., Nazari, P.M.S., Rumpe, B., Volkel, S., Wortmann, A.: Integration of heterogeneous modeling languages via extensible and composable language components. In: 3rd International Conference on Model-Driven Engineering and Software Development (MODELSWARD), pp. 19–31. IEEE (2015)Google Scholar
  33. 33.
    Heidenreich, F., Henriksson, J., Johannes, J., Zschaler, S.: On language-independent model modularisation. In: Katz, S., Ossher, H., France, R., Jézéquel, J.M. (eds.) Transactions on Aspect-Oriented Software Development VI. Lecture Notes in Computer Science, vol. 5560, pp. 39–82. Springer, Berlin Heidelberg (2009)Google Scholar
  34. 34.
    Herrmann, C., Krahn, H., Rumpe, B., Schindler, M., Völkel, S.: Scaling-up model-based-development for large heterogeneous systems with compositional modeling. In: Software Engineering Research and Practice, pp. 172–176 (2009)Google Scholar
  35. 35.
    Hickey, R.: Clojure (2016). Accessed 20 May 2018
  36. 36.
    Höfig, E.: Interpretation of behaviour models at runtime—performance benchmark and case studies. Ph.D. thesis, Technical University of Berlin (2011)Google Scholar
  37. 37.
    Horn, P.: Autonomic computing: IBM’s perspective on the state of information technology (2001). Accessed 20 May 2018
  38. 38.
    Kleppe, A., Bast, W., Warmer, J.B.: MDA Explained: The Model Driven Architecture: Practice and Promise. Addison-Wesley, Boston (2003)Google Scholar
  39. 39.
    Krahn, H., Rumpe, B., Völkel, S.: Monticore: a framework for compositional development of domain specific languages. Int. J. Softw. Tools Technol. Transf. 12(5), 353–372 (2010)CrossRefGoogle Scholar
  40. 40.
    Lehman, M.M.: Programs, life cycles, and laws of software evolution. Proc. IEEE 68(9), 1060–1076 (1980)CrossRefGoogle Scholar
  41. 41.
    Ludewig, J.: Models in software engineering an introduction. Softw. Syst. Modeling 2(1), 5–14 (2003)CrossRefGoogle Scholar
  42. 42.
    Mayerhofer, T.: Defining executable modeling languages with fUML. Ph.D. thesis, Institute of Software Technology and Interactive Systems (2014)Google Scholar
  43. 43.
    Mayerhofer, T., Langer, P., Seidewitz, E., Gray, J. (eds.): Proceedings of the 1st International Workshop on Executable Modeling co-located with ACM/IEEE 18th International Conference on Model Driven Engineering Languages and Systems (MODELS 2015), Ottawa, Canada, September 27, 2015, CEUR Workshop Proceedings, vol. 1560. (2016).
  44. 44.
    Mellor, S.J., Balcer, M.: Executable UML: A Foundation for Model-Driven Architectures. Addison-Wesley Longman Publishing Co. Inc, Boston (2002)Google Scholar
  45. 45.
    Omg, O.M.G.: OCL: object constraint language. Language 36, 1–11 (2012)Google Scholar
  46. 46.
    Plotkin, G.D.: A Structural approach to operational semantics (1981). Accessed 20 May 2018
  47. 47.
    Rajlich, V.T., Bennett, K.H.: A staged model for the software life cycle. IEEE Comput. 33(7), 66–71 (2000)CrossRefGoogle Scholar
  48. 48.
    Salehie, M., Tahvildari, L.: Self-adaptive software: landscape and research challenges. ACM Trans. Auton. Adapt. Syst. 4(2), 14:1–14:42 (2009)CrossRefGoogle Scholar
  49. 49.
    Stahl, T., Völter, M.: Model-Driven Software Development. Wiley, Hoboken (2006)zbMATHGoogle Scholar
  50. 50.
    Sztipanovits, J., Karsai, G.: Model-integrated computing. Computer 30(4), 110–111 (1997)CrossRefGoogle Scholar
  51. 51.
    Szvetits, M., Zdun, U.: Systematic literature review of the objectives, techniques, kinds, and architectures of models at runtime. Softw. Syst. Model. 15, 1–39 (2016)CrossRefGoogle Scholar
  52. 52.
    Szyperski, C., Gruntz, D., Murer, S.: Component Software-Beyond Object-Oriented Programming, 2nd edn. Addison-Wesley, Boston (2002)Google Scholar
  53. 53.
    The Eclipse Foundation: Eclipse Modeling Framework (EMF) (2015). Accessed 20 May 2018
  54. 54.
    The Object Management Group: OMG Unified Modeling Language Superstructure. Technical Report August, The Object Management Group (2011). Accessed 6 July 2014
  55. 55.
    The Object Management Group: Semantics of a Foundational Subset for Executable UML Models (fUML) (2012). Accessed 20 May 2018
  56. 56.
    The OSGi Alliance: OSGi Service Platform Release 4. Technical report, The OSGi Alliance (2010). Accessed 20 May 2018
  57. 57.
    The OSGi Alliance: OSGi Core Release 5. Technical Report March, The OSGi Alliance (2012). Accessed 20 May 2018
  58. 58.
    Tolvanen, J.P.: How to Integrate Models And Code (2012). Accessed 28 Feb 2014
  59. 59.
    University of Koblenz-Landau: JGraLab (2015). Accessed 20 May 2018

Copyright information

© Springer-Verlag GmbH Germany, part of Springer Nature 2018

Authors and Affiliations

  • Mahdi Derakhshanmanesh
    • 2
  • Jürgen Ebert
    • 1
    Email author
  • Marvin Grieger
    • 3
  • Gregor Engels
    • 3
  1. 1.Institute for Software TechnologyUniversity of Koblenz-LandauKoblenzGermany
  2. 2.MHPLab BerlinMHP – A Porsche CompanyBerlinGermany
  3. 3.Department of Computer SciencePaderborn UniversityPaderbornGermany

Personalised recommendations