Abstract
Model-driven development practices are used to improve software quality and developer productivity. However, the design and implementation of an environment with which software can be produced from models is not an easy task. One part of such an environment is the model execution approach: how is the model processed and translated into running software? Experts state that code generation and model interpretation are functionally equivalent. However, a survey that we conducted among several organizations shows that there is a lack of knowledge and guidance in designing the execution approach. In this article we present the results of a literature study on the advantages of both interpretation and generation. We also show, using a case study, how these results can be utilized in the design decisions. Finally, a decision support framework is proposed that can provide the guidance and knowledge for the development of a model-driven engineering environment.
This work is a result of the AMUSE project. See https://amuse-project.org for more information. An earlier version of this work was published as Overeem and Jansen [1]. This article adds the motivating survey that we have conducted among sixteen organizations. The literature study is extended with literature published since the original study. The case study is expanded with more in-depth observations on the decision making process.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsNotes
- 1.
Some needed to be excluded due to confidentially issues or the lack of (technical) knowledge.
References
Overeem, M., Jansen, S.: An exploration of the ‘It’ in ‘It Depends’: generative versus interpretive model-driven development. In: 5th International Conference on Model-Driven Engineering and Software Development, MODELSWARD (2017)
Díaz, V.G., Valdez, E.R.N., Espada, J.P., Bustelo, B.C.P.G., Lovelle, J.M.C., Marín, C.E.M.: A brief introduction to model-driven engineering. Tecnura 18, 127–142 (2014)
Brown, A.W.: An Introduction to Model Driven Architecture. The Rational Edge, pp. 1–16 (2004)
Czarnecki, K., Eisenecker, U.W.: Generative Programming: Methods, Tools, and Applications. Addison-Wesley Professional, Boston (2000)
Kelly, S., Tolvanen, J.P.: Domain-Specific Modeling: Enabling Full Code Generation. Wiley, Hoboken (2008)
Meijler, T.D., Nytun, J.P., Prinz, A., Wortmann, H.: Supporting fine-grained generative model-driven evolution. Softw. Syst. Model. 9(3), 403–424 (2010)
Batouta, Z.I., Dehbi, R., Talea, M., Hajoui, O.: Multi-criteria analysis and advanced comparative study between automatic generation approaches in software engineering. J. Theor. Appl. Inf. Technol. 81, 609–620 (2015)
Fabry, J., Dinkelaker, T., Noye, J., Tanter, E.: A taxonomy of domain-specific aspect languages. ACM Comput. Surv. 47, 1–44 (2015)
Zhu, L., Aurum, A., Gorton, I., Jeffery, R.: Tradeoff and sensitivity analysis in software architecture evaluation using analytic hierarchy process. Softw. Qual. J. 13(4), 357–375 (2005)
Guana, V., Stroulia, E.: How do developers solve software-engineering tasks on model-based code generators? An empirical study design. In: First International Workshop on Human Factors in Modeling (2015)
Capilla, R., Rey, U., Carlos, J., Dueñas, J.C., Madrid, U.P.D.: The decision view’s role in software architecture practice. IEEE Softw. 26(2), 36–43 (2009)
Jansen, A., Bosch, J.: Software architecture as a set of architectural design decisions. In: 5th Working IEEE/IFIP Conference on Software Architecture (WICSA 2005), pp. 109–120 (2005)
van der Ven, J.S., Jansen, A.G.J., Nijhuis, J.A.G., Bosch, J.: Design decisions: the bridge between rationale and architecture. In: Dutoit, A.H., McCall, R., Mistrík, I., Paech, B. (eds.) Rationale Management in Software Engineering, pp. 329–348. Springer, Heidelberg (2006). https://doi.org/10.1007/978-3-540-30998-7_16
Svahnberg, M., Wohlin, C., Lundberg, L., Mattsson, M.: A quality-driven decision-support method for identifying software architecture candidates. Int. J. Softw. Eng. Knowl. Eng. 13, 547–573 (2003)
Wohlin, C.: Guidelines for snowballing in systematic literature studies and a replication in software engineering. In: 18th International Conference on Evaluation and Assessment in Software Engineering (EASE 2014), pp. 1–10 (2014)
van Deursen, A., Klint, P., Visser, J.: Domain-specific languages: an annotated bibliography. ACM SIGPLAN Not. 35, 26–36 (2000)
Mernik, M., Heering, J., Sloane, A.M.: When and how to develop domain-specific languages. ACM Comput. Surv. 37, 316–344 (2005)
Tanković, N.: Model driven development approaches: comparison and opportunities. Technical report (2011)
Voelter, M.: Best practices for DSLs and model-driven software development. J. Object Technol. 8, 79–102 (2009)
ISO: ISO/IEC 25010:2011 Systems and software engineering - Systems and software Quality Requirements and Evaluation (SQuaRE) - System and software quality models. Standard, International Organization for Standardization, Geneva, CH (2011)
Stahl, T., Völter, M., Bettin, J., Haase, A., Helsen, S.: Model-Driven Software Development: Technology, Engineering, Management (2006)
Brady, E.C., Hammond, K.: Scrapping your inefficient engine. ACM SIGPLAN Not. 45, 297 (2010)
Cleenewerck, T.: Modularizing language constructs: a reflective approach. Ph.D. thesis (2007)
Consel, C., Marlet, R.: Architecturing software using a methodology for language development. Princ. Declar. Program. 1490, 170–194 (1998)
Cook, W.R., Delaware, B., Finsterbusch, T., Ibrahim, A., Wiedermann, B.: Model transformation by partial evaluation of model interpreters. Technical report (2008)
Cordy, J.R.: TXL - a language for programming language tools and applications. In: Proceedings of the ACM 4th International Workshop on Language Descriptions, Tools and Applications, pp. 1–27 (2004)
Ertl, M.A., Gregg, D.: The structure and performance of efficient interpreters. J. Instr.-Level Parallelism 5, 1–25 (2003)
Gaouar, L., Benamar, A., Bendimerad, F.T.: Model driven approaches to cross platform mobile development. In: Proceedings of the International Conference on Intelligent Information Processing, Security and Advanced Communication, pp. 19:1–19:15 (2015)
Gregg, D., Ertl, M.A.: A language and tool for generating efficient virtual machine interpreters. In: Lengauer, C., Batory, D., Consel, C., Odersky, M. (eds.) Domain-Specific Program Generation. LNCS, vol. 3016, pp. 196–215. Springer, Heidelberg (2004). https://doi.org/10.1007/978-3-540-25935-0_12
Hinkel, G., Denninger, O., Krach, S., Groenda, H.: Experiences with model-driven engineering in neurorobotics. In: Wąsowski, A., Lönn, H. (eds.) ECMFA 2016. LNCS, vol. 9764, pp. 217–228. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-42061-5_14
Inostroza, P., Van Der Storm, T.: Modular interpreters for the masses implicit context propagation using object algebras. ACM SIGPLAN Not. 51(3), 171–180 (2015)
Jones, N.D., Gomard, C.K., Sestoft, P.: Partial Evaluation and Automatic Program Generation. Prentice-Hall International (1993)
Jörges, S.: Construction and Evolution of Code Generators: A Model-Driven and Service-Oriented Approach, vol. 7747. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-36127-2
Klint, P.: Interpretation techniques. Softw.: Pract. Exp. 11, 963–973 (1981)
Ousterhout, J.K.: Scripting: higher-level programming for the 21st century. Computer 31, 23–30 (1998)
Pessoa, L., Fernandes, P., Castro, T., Alves, V., Rodrigues, G.N., Carvalho, H.: Building reliable and maintainable dynamic software product lines: an investigation in the body sensor network domain. Inf. Softw. Technol. 86, 54–70 (2017)
Riehle, D., Fraleigh, S., Bucka-Lassen, D., Omorogbe, N.: The architecture of a UML virtual machine. In: International Conference on Object Oriented Programming Systems Languages and Applications (OOSPLA), pp. 327–341 (2001)
Romer, T.H., Lee, D., Voelker, G.M., Wolman, A., Wong, W.A., Baer, J.L., Bershad, B.N., Levy, H.M.: The structure and performance of interpreters. ACM SIGPLAN Not. 31, 150–159 (1996)
Schramm, A., Preußner, A., Heinrich, M., Vogel, L.: Rapid UI development for enterprise applications: combining manual and model-driven techniques. In: Petriu, D.C., Rouquette, N., Haugen, Ø. (eds.) MODELS 2010. LNCS, vol. 6394, pp. 271–285. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-16145-2_19
Sundharam, S.M., Altmeyer, S., Navet, N.: Model interpretation for an AUTOSAR compliant engine control function. In: 7th International Workshop on Analysis Tools and Methodologies for Embedded and Real-time Systems (WATERS) (2016)
Tanković, N., Vukotić, D., Žagar, M.: Rethinking model driven development: analysis and opportunities. In: Proceedings of the ITI 2012 34th International Conference on Information Technology Interfaces (ITI), pp. 505–510 (2012)
Thibault, S.A., Marlet, R., Consel, C.: Domain-specific languages: from design to implementation application to video device drivers generation. IEEE Trans. Softw. Eng. 25, 363–377 (1999)
Thibault, S., Consel, C.: A framework for application generator design. ACM SIGSOFT Softw. Eng. Notes 22, 131–135 (1997)
Varró, G., Anjorin, A., Schürr, A.: Unification of compiled and interpreter-based pattern matching techniques. In: Vallecillo, A., Tolvanen, J.-P., Kindler, E., Störrle, H., Kolovos, D. (eds.) ECMFA 2012. LNCS, vol. 7349, pp. 368–383. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-31491-9_28
Voelter, M., Visser, E.: Product line engineering using domain-specific languages. In: 15th International Software Product Line Conference, pp. 70–79 (2011)
Zhu, M.: Model-driven game development addressing architectural diversity and game engine-integration. Ph.D. thesis (2014)
Saaty, T.: How to make a decision: the analytic hierarchy process. Eur. J. Oper. Res. 48, 9–26 (1990)
Falessi, D., Cantone, G., Kazman, R., Kruchten, P.: Decision-making techniques for software architecture design. ACM Comput. Surv. 43, 1–28 (2011)
Schunselaar, D.M.M., Gulden, J., Schuur, H.V.D., Reijers, H.A.: A systematic evaluation of enterprise modelling approaches on their applicability to automatically generate software. In: 18th IEEE Conference on Business Informatics, pp. 290–299 (2016)
Kabbedijk, J., Bezemer, C.P., Jansen, S., Zaidman, A.: Defining multi-tenancy: a systematic mapping study on the academic and the industrial perspective. J. Syst. Softw. 100, 139–148 (2015)
Acknowledgements
This research was supported by the NWO AMUSE project (628.006.001): a collaboration between Vrije Universiteit Amsterdam, Utrecht University, and AFAS Software in the Netherlands. The NEXT Platform is developed and maintained by AFAS Software. Further more, the authors like to thank Jurgen Vinju, Tijs van der Storm, and their colleagues for their feedback and knowledge early on in the writing process. Finally we thank the team at AFAS Software for their opinions, feedback, and reviews.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2018 Springer International Publishing AG, part of Springer Nature
About this paper
Cite this paper
Overeem, M., Jansen, S., Fortuin, S. (2018). Generative versus Interpretive Model-Driven Development: Moving Past ‘It Depends’. In: Pires, L., Hammoudi, S., Selic, B. (eds) Model-Driven Engineering and Software Development. MODELSWARD 2017. Communications in Computer and Information Science, vol 880. Springer, Cham. https://doi.org/10.1007/978-3-319-94764-8_10
Download citation
DOI: https://doi.org/10.1007/978-3-319-94764-8_10
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-94763-1
Online ISBN: 978-3-319-94764-8
eBook Packages: Computer ScienceComputer Science (R0)