Skip to main content
Log in

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

  • Regular Paper
  • Published:
Software & Systems Modeling Aims and scope Submit manuscript

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17
Fig. 18

Similar content being viewed by others

Notes

  1. Of course, using MoCos by themselves does not guarantee high-quality software. Good and bad software can be developed in code and in models. MoCos are no substitute for professional engineering.

  2. https://projects.eclipse.org/projects/modeling.

  3. Hopefully in practice such a language is already at hand, but to use it as an example for modeling language engineering of a DSML, we decided to invent our own rule language.

  4. Since it is much better readable than a handwritten mockup, a screenshot of the final running dynamic access control system is given in Figs. 13 and 14 to describe the structure of the user interface. The depicted labels (e.g., R1, R1D1S, ...) and arrows in the top-down view of rooms are added for illustration purposes and are not part of the actual screen.

  5. In this study, simulated data are rendered as no real sensors in real rooms were available. Technically, the software could process inputs from real sensors, though.

  6. The distinction between conventional components (\(\mathtt {<<}\)component\(\mathtt {>>}\)) and MoCos (\(\mathtt {<<}\)moco\(\mathtt {>>}\)) is not yet part of this design activity.

  7. The source code of the DAC-PL case study in its state achieved in 2015 is available at https://github.com/jgralab/dacpl.

References

  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). http://www.sciencedirect.com/science/article/pii/S0164121212001458

  2. Andersson, J., Lemos, R., Malek, S., Weyns, D.: Software Engineering for Self-Adaptive Systems Chap. Modeling D, pp. 27–47. Springer, Berlin (2009)

    Book  Google Scholar 

  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)

  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)

  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)

  6. Balz, M., Striewe, M., Goedicke, M.: Embedding behavioral models into object-oriented source code. In: Proceedings of “Software Engineering 2009” (2009)

  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). http://ceur-ws.org/Vol-1079/summary.pdf. Accessed 8 July 2014

  8. Blair, G., Bencomo, N., France, R.B.: Models@run.time. Computer 42(10), 22–27 (2009)

    Article  Google Scholar 

  9. BOC Information Technologies Consulting: ADOxx (2017). https://www.adoxx.org. Accessed 20 May 2018

  10. Brambilla, M., Cabot, J., Wimmer, M.: Model-driven software engineering in practice. Morgan & Claypool (2012). http://www.mdse-book.com/. Accessed 20 May 2018

  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)

  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. CEUR-WS.org (2014). http://ceur-ws.org/Vol-1281

  13. Clements, P., Northrop, L.: Software Product Lines: Practices and Patterns. Addison-Wesley Professional, SEI Series in Software Engineering (2001)

  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)

    Article  Google Scholar 

  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)

  16. Derakhshanmanesh, M.: Model-Integrating Software Components—Engineering Flexible Software Systems. Springer, Berlin (2015)

    Google Scholar 

  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)

  18. Derakhshanmanesh, M., Ebert, J., Engels, G.: Why models and code should be treated as friends. Softwaretechnik-Trends 34(2) (2014)

  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)

  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)

  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)

  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)

  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)

  24. E2E Technologies: White paper: direct model execution—The key to IT productivity and improving business performance (2008). http://www.omg.org/news/whitepapers/2008-05-05_E2E_White_Paper_on_Direct_Model_Execution.pdf. Accessed 9 July 2014

  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. 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)

  27. Eclipse Foundation: Equinox (2016). http://www.eclipse.org/equinox/. Accessed 20 May 2018

  28. École Polytechnique Fédérale de Lausanne: Scala (2016). http://www.scala-lang.org/. Accessed 20 May 2018

  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)

  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)

    MATH  Google Scholar 

  31. Grieger, M.: Model-driven software modernization: concept-based engineering of situation-specific methods. Ph.D. thesis

  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)

  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)

  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)

  35. Hickey, R.: Clojure (2016). https://clojure.org/. Accessed 20 May 2018

  36. Höfig, E.: Interpretation of behaviour models at runtime—performance benchmark and case studies. Ph.D. thesis, Technical University of Berlin (2011)

  37. Horn, P.: Autonomic computing: IBM’s perspective on the state of information technology (2001). https://depositonce.tu-berlin.de/handle/11303/3139. Accessed 20 May 2018

  38. Kleppe, A., Bast, W., Warmer, J.B.: MDA Explained: The Model Driven Architecture: Practice and Promise. Addison-Wesley, Boston (2003)

    Google Scholar 

  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)

    Article  Google Scholar 

  40. Lehman, M.M.: Programs, life cycles, and laws of software evolution. Proc. IEEE 68(9), 1060–1076 (1980)

    Article  Google Scholar 

  41. Ludewig, J.: Models in software engineering an introduction. Softw. Syst. Modeling 2(1), 5–14 (2003)

    Article  Google Scholar 

  42. Mayerhofer, T.: Defining executable modeling languages with fUML. Ph.D. thesis, Institute of Software Technology and Interactive Systems (2014)

  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. CEUR-WS.org (2016). http://ceur-ws.org/Vol-1560

  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. Omg, O.M.G.: OCL: object constraint language. Language 36, 1–11 (2012)

    Google Scholar 

  46. Plotkin, G.D.: A Structural approach to operational semantics (1981). http://homepages.inf.ed.ac.uk/gdp/publications/. Accessed 20 May 2018

  47. Rajlich, V.T., Bennett, K.H.: A staged model for the software life cycle. IEEE Comput. 33(7), 66–71 (2000)

    Article  Google Scholar 

  48. Salehie, M., Tahvildari, L.: Self-adaptive software: landscape and research challenges. ACM Trans. Auton. Adapt. Syst. 4(2), 14:1–14:42 (2009)

    Article  Google Scholar 

  49. Stahl, T., Völter, M.: Model-Driven Software Development. Wiley, Hoboken (2006)

    MATH  Google Scholar 

  50. Sztipanovits, J., Karsai, G.: Model-integrated computing. Computer 30(4), 110–111 (1997)

    Article  Google Scholar 

  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)

    Article  Google Scholar 

  52. Szyperski, C., Gruntz, D., Murer, S.: Component Software-Beyond Object-Oriented Programming, 2nd edn. Addison-Wesley, Boston (2002)

    Google Scholar 

  53. The Eclipse Foundation: Eclipse Modeling Framework (EMF) (2015). https://eclipse.org/modeling/emf/. Accessed 20 May 2018

  54. The Object Management Group: OMG Unified Modeling Language Superstructure. Technical Report August, The Object Management Group (2011). http://www.omg.org/spec/UML/2.4.1/. Accessed 6 July 2014

  55. The Object Management Group: Semantics of a Foundational Subset for Executable UML Models (fUML) (2012). http://www.omg.org/spec/FUML/. Accessed 20 May 2018

  56. The OSGi Alliance: OSGi Service Platform Release 4. Technical report, The OSGi Alliance (2010). http://www.osgi.org/download/osgi-core-4.3-early-draft1.pdf. Accessed 20 May 2018

  57. The OSGi Alliance: OSGi Core Release 5. Technical Report March, The OSGi Alliance (2012). https://osgi.org/download/r5/osgi.core-5.0.0.pdf. Accessed 20 May 2018

  58. Tolvanen, J.P.: How to Integrate Models And Code (2012). http://www.infoq.com/articles/combining-model-and-code. Accessed 28 Feb 2014

  59. University of Koblenz-Landau: JGraLab (2015). http://jgralab.uni-koblenz.de. Accessed 20 May 2018

Download references

Acknowledgements

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

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Jürgen Ebert.

Additional information

Communicated by Professor Hong Mei.

This work is supported by Deutsche Forschungsgemeinschaft (DFG) under Grants EB 119/11-1 and EN 184/6-1.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Derakhshanmanesh, M., Ebert, J., Grieger, M. et al. Model-integrating development of software systems: a flexible component-based approach. Softw Syst Model 18, 2557–2586 (2019). https://doi.org/10.1007/s10270-018-0682-5

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10270-018-0682-5

Keywords

Navigation