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.
Similar content being viewed by others
Notes
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.
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.
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.
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.
The distinction between conventional components (\(\mathtt {<<}\)component\(\mathtt {>>}\)) and MoCos (\(\mathtt {<<}\)moco\(\mathtt {>>}\)) is not yet part of this design activity.
The source code of the DAC-PL case study in its state achieved in 2015 is available at https://github.com/jgralab/dacpl.
References
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
Andersson, J., Lemos, R., Malek, S., Weyns, D.: Software Engineering for Self-Adaptive Systems Chap. Modeling D, pp. 27–47. Springer, Berlin (2009)
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)
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)
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)
Balz, M., Striewe, M., Goedicke, M.: Embedding behavioral models into object-oriented source code. In: Proceedings of “Software Engineering 2009” (2009)
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
Blair, G., Bencomo, N., France, R.B.: Models@run.time. Computer 42(10), 22–27 (2009)
BOC Information Technologies Consulting: ADOxx (2017). https://www.adoxx.org. Accessed 20 May 2018
Brambilla, M., Cabot, J., Wimmer, M.: Model-driven software engineering in practice. Morgan & Claypool (2012). http://www.mdse-book.com/. Accessed 20 May 2018
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)
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
Clements, P., Northrop, L.: Software Product Lines: Practices and Patterns. Addison-Wesley Professional, SEI Series in Software Engineering (2001)
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)
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)
Derakhshanmanesh, M.: Model-Integrating Software Components—Engineering Flexible Software Systems. Springer, Berlin (2015)
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)
Derakhshanmanesh, M., Ebert, J., Engels, G.: Why models and code should be treated as friends. Softwaretechnik-Trends 34(2) (2014)
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)
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)
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)
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)
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)
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
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)
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)
Eclipse Foundation: Equinox (2016). http://www.eclipse.org/equinox/. Accessed 20 May 2018
École Polytechnique Fédérale de Lausanne: Scala (2016). http://www.scala-lang.org/. Accessed 20 May 2018
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)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Longman Publishing Co. Inc, Boston (1995)
Grieger, M.: Model-driven software modernization: concept-based engineering of situation-specific methods. Ph.D. thesis
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)
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)
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)
Hickey, R.: Clojure (2016). https://clojure.org/. Accessed 20 May 2018
Höfig, E.: Interpretation of behaviour models at runtime—performance benchmark and case studies. Ph.D. thesis, Technical University of Berlin (2011)
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
Kleppe, A., Bast, W., Warmer, J.B.: MDA Explained: The Model Driven Architecture: Practice and Promise. Addison-Wesley, Boston (2003)
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)
Lehman, M.M.: Programs, life cycles, and laws of software evolution. Proc. IEEE 68(9), 1060–1076 (1980)
Ludewig, J.: Models in software engineering an introduction. Softw. Syst. Modeling 2(1), 5–14 (2003)
Mayerhofer, T.: Defining executable modeling languages with fUML. Ph.D. thesis, Institute of Software Technology and Interactive Systems (2014)
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
Mellor, S.J., Balcer, M.: Executable UML: A Foundation for Model-Driven Architectures. Addison-Wesley Longman Publishing Co. Inc, Boston (2002)
Omg, O.M.G.: OCL: object constraint language. Language 36, 1–11 (2012)
Plotkin, G.D.: A Structural approach to operational semantics (1981). http://homepages.inf.ed.ac.uk/gdp/publications/. Accessed 20 May 2018
Rajlich, V.T., Bennett, K.H.: A staged model for the software life cycle. IEEE Comput. 33(7), 66–71 (2000)
Salehie, M., Tahvildari, L.: Self-adaptive software: landscape and research challenges. ACM Trans. Auton. Adapt. Syst. 4(2), 14:1–14:42 (2009)
Stahl, T., Völter, M.: Model-Driven Software Development. Wiley, Hoboken (2006)
Sztipanovits, J., Karsai, G.: Model-integrated computing. Computer 30(4), 110–111 (1997)
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)
Szyperski, C., Gruntz, D., Murer, S.: Component Software-Beyond Object-Oriented Programming, 2nd edn. Addison-Wesley, Boston (2002)
The Eclipse Foundation: Eclipse Modeling Framework (EMF) (2015). https://eclipse.org/modeling/emf/. Accessed 20 May 2018
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
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
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
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
Tolvanen, J.P.: How to Integrate Models And Code (2012). http://www.infoq.com/articles/combining-model-and-code. Accessed 28 Feb 2014
University of Koblenz-Landau: JGraLab (2015). http://jgralab.uni-koblenz.de. Accessed 20 May 2018
Acknowledgements
The authors would like to thank Thomas Iguchi for his implementation support.
Author information
Authors and Affiliations
Corresponding author
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
About this article
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
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10270-018-0682-5