An Exploration of the ‘It’ in ‘It Depends’: Generative versus Interpretive Model-Driven Development

Michiel Overeem, Slinger Jansen


Software producing organizations are increasingly using model driven development platforms to improve software quality and developer productivity. Software architects, however, need to decide whether the platform generates code (that might be compiled) or if the model is immediately interpreted by an interpreter embedded in the application. Presently, there is no clear guidance that enables architects to decide for code generation, interpretation, or a hybrid approach. Although the approaches are functionally equivalent, they have different quality characteristics. An exploration is done on the quality characteristics of code generation versus interpretation as a model execution approach. A literature study is done to gather quantitative data on the quality characteristics of the two model execution approaches. The results of this study are matched with observations made during a case study. With the resulting support method architects of model driven development platforms can avoid costly wrong choices in the development of a model driven development platform.


  1. Batouta, Z. I., Dehbi, R., Talea, M., and Hajoui, O. (2015). Multi-criteria Analysis and Advanced Comparative Study Between Automatic Generation Approaches in Software Engineering. Journal of Theoretical and Applied Information Technology, 81(3):609-620.
  2. Brady, E. C. and Hammond, K. (2010). Scrapping your inefficient engine.ACM SIGPLAN Notices, 45(9):297.
  3. Capilla, R., Rey, U., Carlos, J., Duen˜as, J. C., and Madrid, U. P. D. (2009). The Decision View's Role in Software Architecture Practice. Practice, March/April:36-43.
  4. Cleenewerck, T. (2007). Modularizing Language Constructs: A Reflective Approach . PhD thesis, Vrije Universteit Brussel.
  5. Consel, C. and Marlet, R. (1998). Architecturing Software Using A Methodology For Language Development. Principles Of Declarative Programming, 1490(October):170-194.
  6. Cook, W. R., Delaware, B., Finsterbusch, T., Ibrahim, A., and Wiedermann, B. (2008). Model transformation by partial evaluation of model interpreters. Technical report, Technical Report TR-09-09, UT Austin Department of Computer Science.
  7. Cook, W. R., Delaware, B., Finsterbusch, T., Ibrahim, A., and Wiedermann, B. (2009). Strategic programming by model interpretation and partial evaluation. unpublished.
  8. Cordy, J. R. (2004). TXLA language for programming language tools and applications. In Proceedings of the ACM 4th International Workshop on Language Descriptions, Tools and Applications, pages 1-27.
  9. Czarnecki, K. and Eisenecker, U. W. (2000). Generative programming: Methods, Tools, and Applications. Addison-Wesley Professional.
  10. Czarnecki, K., Østerbye, K., and V ölter, M. (2002). Generative programming. Object-Oriented Technology, Proceedings, 2323:135-149.
  11. Díaz, V. G., Valdez, E. R. N., Espada, J. P., Bustelo, b. C. P. G., Lovelle, J. M. C., and Marín, C. E. M. (2014). A brief introduction to model-driven engineering. Tecnura, 18(40):127-142.
  12. Ertl, M. A. and Gregg, D. (2003). The structure and performance of efficient interpreters. Journal of InstructionLevel Parallelism, 5:1-25.
  13. Fabry, J., Dinkelaker, T., Noye, J., and Tanter, E. (2015). A Taxonomy of Domain-Specific Aspect Languages. ACM Computing Surveys, 47(3):1-44.
  14. Falessi, D., Cantone, G., Kazman, R., and Kruchten, P. (2011). Decision-making techniques for software architecture design. ACM Computing Surveys, 43(4):1- 28.
  15. Gaouar, L., Benamar, A., and Bendimerad, F. T. (2015). Model Driven Approaches to Cross Platform Mobile Development. Proceedings of the International Conference on Intelligent Information Processing, Security and Advanced Communication, pages 19:1-- 19:5.
  16. Gregg, D. and Ertl, M. A. (2004). A Language and Tool for Generating Efficient Virtual Machine Interpreters. In Domain-Specific Program Generation , pages 196- 215. Springer Berlin Heidelberg.
  17. Guana, V. and Stroulia, E. (2015). How Do Developers Solve Software-engineering Tasks on Model-based Code Generators ? An Empirical Study Design. First International Workshop on Human Factors in Modeling, (May):33-38.
  18. Hailpern, B. and Tarr, P. (2006). Model-driven development: The good, the bad, and the ugly. IBM Systems Journal, 45(3):451-461.
  19. Hen-Tov, A., Lorenz, D. H., and Schachter, L. (2008). ModelTalk: A Framework for Developing Domain Specific Executable Models. The 8th OOPSLA Workshop on Domain-Specific Modeling , (926):7.
  20. Inostroza, P. and Van Der Storm, T. (2015). Modular interpreters for the masses implicit context propagation using object algebras. In Proceedings of the 2015 ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences, pages 171-180. ACM.
  21. 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.
  22. Jansen, A. and Bosch, J. (2005). Software Architecture as a Set of Architectural Design Decisions. 5th Working IEEE/IFIP Conference on Software Architecture (WICSA'05), pages 109-120.
  23. Jones, N. D., Gomard, C. K., and Sestoft, P. (1993). Partial Evaluation and Automatic Program Generation. Prentice-Hall International.
  24. Jörges, S. (2013). Construction and evolution of code generators: A model-driven and service-oriented approach, volume 7747. Springer.
  25. Kabbedijk, J., Bezemer, C.-P., Jansen, S., and Zaidman, A. (2015). Defining multi-tenancy: A systematic mapping study on the academic and the industrial perspective. Journal of Systems and Software, 100:139-148.
  26. Kelly, S. and Tolvanen, J.-P. (2008). Domain-Specific Modeling: Enabling Full Code Generation. John Wiley & Sons.
  27. Klint, P. (1981). Interpretation Techniques. Software: Practice and Experience, 11(June 1979):963-973.
  28. Meijler, T. D., Nytun, J. P., Prinz, A., and Wortmann, H. (2010). Supporting fine-grained generative modeldriven evolution. Software & Systems Modeling, 9(3):403-424.
  29. Mernik, M., Heering, J., and Sloane, A. M. (2005). When and how to develop domain-specific languages. ACM Computing Surveys, 37(4):316-344.
  30. Ousterhout, J. K. (1998). Scripting: Higher-Level Programming for the 21st Century. Computer, 31(3):23-30.
  31. Riehle, D., Fraleigh, S., Bucka-Lassen, D., and Omorogbe, N. (2001). The architecture of a UML virtual machine. International Conference on Object Oriented Programming Systems Languages and Applications (OOSPLA), (February):327-341.
  32. Rohou, E., Swamy, B. N., and Seznec, A. (2015). Branch prediction and the performance of interpreter - Don't trust folklore. 2015 IEEE/ACM International Symposium on Code Generation and Optimization (CGO), pages 103-114.
  33. Romer, T. H., Lee, D., Voelker, G. M., Wolman, A., Wong, W. a., Baer, J.-L., Bershad, B. N., and Levy, H. M. (1996). The structure and performance of interpreters. ACM SIGPLAN Notices, 31(9):150-159.
  34. Saaty, T. (1990). How to make a decision: The analytic hierarchy process. European Journal of Operational Research, 48(1):9-26.
  35. Schramm, A., Preußner, A., Heinrich, M., and Vogel, L. (2010). Rapid UI development for enterprise applications: Combining manual and model-driven techniques. Models, 6394 LNCS(PART 1):271-285.
  36. Schunselaar, D. M. M., Gulden, J., Van Der Schuur, H., and Reijers, H. A. (2016). A Systematic Evaluation of Enterprise Modelling Approaches on Their Applicability to Automatically Generate Software. In 18th IEEE Conference on Business Informatics.
  37. Shali, A. and Cook, W. R. (2011). Hybrid Partial Evaluation. Proceedings of the 2011 ACM International Conference on Object Oriented Programming Systems Languages and Applications, pages 375-390.
  38. Smolik, P. and Vitkovsky, P. (2012). Code Generation Nirvana. Modelling Foundations and Applications, pages 319-327.
  39. Stahl, T., Völter, M., Bettin, J., Haase, A., and Helsen, S. (2006). Model-Driven Software Development: Technology, Engineering, Management.
  40. Svahnberg, M., Wohlin, C., Lundberg, L., and Mattsson, M. (2003). A Quality-Driven Decision-Support Method for Identifying Software Architecture Candidates. International Journal of Software Engineering and Knowledge Engineering, 13(05):547-573.
  41. Tankovic, N., Vukotic, D., and Z? agar, M. (2012). Rethinking Model Driven Development : Analysis and Opportunities. Information Technology Interfaces (ITI), Proceedings of the ITI 2012 34th International Conference, pages 505-510.
  42. Thibault, S. and Consel, C. (1997). A framework for application generator design. ACM SIGSOFT Software Engineering Notes, 22(3, May 1997):131-135.
  43. Thibault, S. A., Marlet, R., and Consel, C. (1999). DomainSpecific Languages : From Design to Implementation Application to Video Device Drivers Generation. IEEE Transactions on Software Engineering, 25(3):363-377.
  44. van Deursen, A., Klint, P., and Visser, J. (2000). Domainspecific languages: An annotated bibliography. ACM SIGPLAN Notices, 35(6):26-36.
  45. Varró, G., Anjorin, A., and Schürr, A. (2012). Unification of compiled and interpreter-based pattern matching techniques. Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), 7349 LNCS:368- 383.
  46. Voelter, M. (2009). Best Practices for DSLs and ModelDriven Software Development. Journal of Object Technology, 8(6):79-102.
  47. Voelter, M. and Visser, E. (2011). Product Line Engineering Using Domain-Specific Languages. 15th International Software Product Line Conference, (Section II):70-79.
  48. Wohlin, C. (2014). Guidelines for Snowballing in Systematic Literature Studies and a Replication in Software Engineering. 18th International Conference on Evaluation and Assessment in Software Engineering (EASE 2014), pages 1-10.
  49. Yoder, J. W. and Johnson, R. (2002). The Adaptive ObjectModel Architectural Style. The Working IEEE/IFIP Conference on Software Architecture 2002 (WICSA3 7802), pages 1-25.
  50. Zhu, L., Uke, a. Y. B., Gorton, I. a. N., and Jeffery, R. (2005). Tradeoff and Sensitivity Analysis in Software Architecture Evaluation Using Analytic Hierarchy Process. pages 357-375.
  51. Zhu, M. (2014). Model-Driven Game Development Addressing Architectural Diversity and Game EngineIntegration. PhD thesis, Norwegian University of Science and Technology.

Paper Citation

in Harvard Style

Overeem M. and Jansen S. (2017). An Exploration of the ‘It’ in ‘It Depends’: Generative versus Interpretive Model-Driven Development . In Proceedings of the 5th International Conference on Model-Driven Engineering and Software Development - Volume 1: MODELSWARD, ISBN 978-989-758-210-3, pages 100-111. DOI: 10.5220/0006191201000111

in Bibtex Style

author={Michiel Overeem and Slinger Jansen},
title={An Exploration of the ‘It’ in ‘It Depends’: Generative versus Interpretive Model-Driven Development},
booktitle={Proceedings of the 5th International Conference on Model-Driven Engineering and Software Development - Volume 1: MODELSWARD,},

in EndNote Style

JO - Proceedings of the 5th International Conference on Model-Driven Engineering and Software Development - Volume 1: MODELSWARD,
TI - An Exploration of the ‘It’ in ‘It Depends’: Generative versus Interpretive Model-Driven Development
SN - 978-989-758-210-3
AU - Overeem M.
AU - Jansen S.
PY - 2017
SP - 100
EP - 111
DO - 10.5220/0006191201000111