Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

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

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.

Michiel Overeem

February 19, 2017
Tweet

More Decks by Michiel Overeem

Other Decks in Programming

Transcript

  1. An Exploration of the ‘It’ in ‘It Depends’: Generative versus

    Interpretive Model-Driven Development Michiel Overeem, Slinger Jansen 5th MODELSWARD, 2017
  2. Cloud management Deployer Anatomy of a MDD platform in the

    cloud Application Generator Model Is read by Deploys
  3. Cloud management Deployer Anatomy of a multi-tenant MDD platform in

    the cloud Application Generator Model Is read by Deploys Model Model Model Model Model Model Model Model Model Model Model Model Application Application Application Application Application Application Application Application
  4. Cloud management Deployer Anatomy of a multi-tenant MDD platform in

    the cloud Application Generator Model Is read by Deploys Model Model Model Model Model Model Model Model Model Model Model Model Application Application Application Application Application Application Application Application Should we generate or interpret? It depends How can we help industry designing a MDD platform?
  5. Hypothesis The execution approach used in a model-driven development (MDD)

    platform influences the quality of the software. “any good software engineer will tell you that a compiler and an interpreter are interchangeable” [Tim Berners-Lee, http://www.bcs.org/content/ConWebDoc/3337] “interpreters and generators are functionally equivalent” [Stahl, T., Volter, M., Bettin, J., Haase, A., and Helsen, S. (2006). Model-Driven Software Development]
  6. Questions that we asked ourselves How does the choice between

    generative and interpretive MDD influence the quality of a MDD platform? How can SPOs design the most fitting model execution approach based on the quality characteristics for generative and interpretive MDD?
  7. Research method  Literature study on generative versus interpretive Model-Driven

    Development  Observations at a Software Producing Organization
  8. Tapping in the knowledge that is out there 32 papers

    with arguments on generative versus interpretive MDD
  9. Software Product Quality Model  Functional suitability  Usability 

    Reliability  Performance efficiency  Compatibility  Security  Maintainability  Portability No evidence ISO/IEC 25010:2011 Systems and software Quality Requirements and Evaluation (SQuaRE)
  10. Quality attribute Generation Interpretation Nr papers Run-time behaviour 88,0% 12,0%

    25 Modifiability 15,0% 85,0% 20 Build-time behavior 0,0% 100,0% 18 Testability 60,0% 40,0% 15 Analysability 22,2% 77,8% 9 Adaptability 37,5% 62,5% 8 Resource utilization 87,5% 12,5% 8 Installability 57,1% 42,9% 7 Modularity 20,0% 80,0% 5 Confidentiality 100,0% 0,0% 4 Interoperability 0,0% 100,0% 3 Co-existence 0,0% 100,0% 2
  11. Utilization in the design process of a MDD platform 

    Architecture is a collection of decisions that guide the design of software. Generation vs interpretation
  12. Decision categories Meta-model (M) [abstraction level, target users, …] Architecture

    (A) [(multi-)tenancy, distributed, …] Platform (P) [programming language, virtual machine, …]
  13. Utilization of the data from literature  Aggregate the decisions

    from M, A, and P.  Prioritize the Quality characteristics  Informally  Through a prioritization method like AHP (Saaty, 1990)  Validate the outcome
  14. Architecture Design Phase D1 [M] A MDD platform based on

    an high-level model (OEM) D2 [P] A SaaS delivery model for the application D3 [A] Use multi-tenancy to gain resource sharing Generation Interpretation Priority Run-time behaviour 88,0% 12,0% 0.35 Resource utilization 87,5% 12,5% 0.35 Analysability 22,2% 77,8% 0.15 Testability 60,0% 40,0% 0.15 73.8% 26.2%
  15. Deployment Design Phase D1 [M] A MDD platform based on

    an high-level model (OEM) D2 [P] A SaaS delivery model for the application D3 [A] Use multi-tenancy to gain resource sharing D4 [M] Enable customers to customize the model D5 [P] Run the application on the .NET runtime D6 [A] Deploy as a distributed application D7 [A] Re-design the model execution for messages Generation Interpretation 31,0% 69,0%
  16. Model Modelv2 Application Evolved into Translated into Translated into Deployed

    to Upgraded on M Mv2 Yoder, J. W., & Johnson, R. The Adaptive Object-Model Architectural Style. WICSA ’02 improved turn-around times & process sharing (multi-tenancy)
  17. Threats to validity  Important papers could be overlooked. 

    The papers show almost no emperical evidence.  Case study is done at one company.  It is an exploration, and more study is needed.
  18. Take aways  Aggregating existing literature is needed to make

    this knowledge accesible to the world.  Industry can use this knowledge for decision making.  The knowledge is supporting the decisions, not making it. Context is very important, as always ‘It Depends’ How can we improve this design support solution? Suggestions? Questions? [email protected]