Skip to main content

Generative versus Interpretive Model-Driven Development: Moving Past ‘It Depends’

  • Conference paper
  • First Online:

Part of the book series: Communications in Computer and Information Science ((CCIS,volume 880))

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

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Notes

  1. 1.

    Some needed to be excluded due to confidentially issues or the lack of (technical) knowledge.

References

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

    Google Scholar 

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

    Article  Google Scholar 

  3. Brown, A.W.: An Introduction to Model Driven Architecture. The Rational Edge, pp. 1–16 (2004)

    Google Scholar 

  4. Czarnecki, K., Eisenecker, U.W.: Generative Programming: Methods, Tools, and Applications. Addison-Wesley Professional, Boston (2000)

    Google Scholar 

  5. Kelly, S., Tolvanen, J.P.: Domain-Specific Modeling: Enabling Full Code Generation. Wiley, Hoboken (2008)

    Book  Google Scholar 

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

    Article  Google Scholar 

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

    Google Scholar 

  8. Fabry, J., Dinkelaker, T., Noye, J., Tanter, E.: A taxonomy of domain-specific aspect languages. ACM Comput. Surv. 47, 1–44 (2015)

    Article  Google Scholar 

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

    Article  Google Scholar 

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

    Google Scholar 

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

    Article  Google Scholar 

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

    Google Scholar 

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

    Chapter  Google Scholar 

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

    Article  Google Scholar 

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

    Google Scholar 

  16. van Deursen, A., Klint, P., Visser, J.: Domain-specific languages: an annotated bibliography. ACM SIGPLAN Not. 35, 26–36 (2000)

    Article  Google Scholar 

  17. Mernik, M., Heering, J., Sloane, A.M.: When and how to develop domain-specific languages. ACM Comput. Surv. 37, 316–344 (2005)

    Article  Google Scholar 

  18. Tanković, N.: Model driven development approaches: comparison and opportunities. Technical report (2011)

    Google Scholar 

  19. Voelter, M.: Best practices for DSLs and model-driven software development. J. Object Technol. 8, 79–102 (2009)

    Article  Google Scholar 

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

    Google Scholar 

  21. Stahl, T., Völter, M., Bettin, J., Haase, A., Helsen, S.: Model-Driven Software Development: Technology, Engineering, Management (2006)

    Google Scholar 

  22. Brady, E.C., Hammond, K.: Scrapping your inefficient engine. ACM SIGPLAN Not. 45, 297 (2010)

    Article  Google Scholar 

  23. Cleenewerck, T.: Modularizing language constructs: a reflective approach. Ph.D. thesis (2007)

    Google Scholar 

  24. Consel, C., Marlet, R.: Architecturing software using a methodology for language development. Princ. Declar. Program. 1490, 170–194 (1998)

    Google Scholar 

  25. Cook, W.R., Delaware, B., Finsterbusch, T., Ibrahim, A., Wiedermann, B.: Model transformation by partial evaluation of model interpreters. Technical report (2008)

    Google Scholar 

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

    Article  Google Scholar 

  27. Ertl, M.A., Gregg, D.: The structure and performance of efficient interpreters. J. Instr.-Level Parallelism 5, 1–25 (2003)

    Google Scholar 

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

    Google Scholar 

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

    Chapter  Google Scholar 

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

    Chapter  Google Scholar 

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

    Article  Google Scholar 

  32. Jones, N.D., Gomard, C.K., Sestoft, P.: Partial Evaluation and Automatic Program Generation. Prentice-Hall International (1993)

    Google Scholar 

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

    Book  Google Scholar 

  34. Klint, P.: Interpretation techniques. Softw.: Pract. Exp. 11, 963–973 (1981)

    Google Scholar 

  35. Ousterhout, J.K.: Scripting: higher-level programming for the 21st century. Computer 31, 23–30 (1998)

    Article  Google Scholar 

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

    Article  Google Scholar 

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

    Google Scholar 

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

    Article  Google Scholar 

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

    Chapter  Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Article  Google Scholar 

  43. Thibault, S., Consel, C.: A framework for application generator design. ACM SIGSOFT Softw. Eng. Notes 22, 131–135 (1997)

    Article  Google Scholar 

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

    Chapter  Google Scholar 

  45. Voelter, M., Visser, E.: Product line engineering using domain-specific languages. In: 15th International Software Product Line Conference, pp. 70–79 (2011)

    Google Scholar 

  46. Zhu, M.: Model-driven game development addressing architectural diversity and game engine-integration. Ph.D. thesis (2014)

    Google Scholar 

  47. Saaty, T.: How to make a decision: the analytic hierarchy process. Eur. J. Oper. Res. 48, 9–26 (1990)

    Article  Google Scholar 

  48. Falessi, D., Cantone, G., Kazman, R., Kruchten, P.: Decision-making techniques for software architecture design. ACM Comput. Surv. 43, 1–28 (2011)

    Article  Google Scholar 

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

    Google Scholar 

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

    Article  Google Scholar 

Download references

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

Authors

Corresponding author

Correspondence to Michiel Overeem .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2018 Springer International Publishing AG, part of Springer Nature

About this paper

Check for updates. Verify currency and authenticity via CrossMark

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)

Publish with us

Policies and ethics