Software & Systems Modeling

, Volume 9, Issue 3, pp 403–424 | Cite as

Supporting fine-grained generative model-driven evolution

  • Theo Dirk MeijlerEmail author
  • Jan Pettersen Nytun
  • Andreas Prinz
  • Hans Wortmann
Open Access
Regular Paper


In the standard generative Model-driven Architecture (MDA), adapting the models of an existing system requires re-generation and restarting of that system. This is due to a strong separation between the modeling environment and the runtime environment. Certain current approaches remove this separation, allowing a system to be changed smoothly when the model changes. These approaches are, however, based on interpretation of modeling information rather than on generation, as in MDA. This paper describes an architecture that supports fine-grained evolution combined with generative model-driven development. Fine-grained changes are applied in a generative model-driven way to a system that has itself been developed in this way. To achieve this, model changes must be propagated correctly toward impacted elements. The impact of a model change flows along three dimensions: implementation, data (instances), and modeled dependencies. These three dimensions are explicitly represented in an integrated modeling-runtime environment to enable traceability. This implies a fundamental rethinking of MDA.


Evolution Model-driven development Generative development Interpretive development 



The authors wish to thank the Baan Nucleus, and their successors from the Xebic team, for their work on Nucleus. The authors would also like thank all those who supported the writing of this paper, such as Marieke Vreugdenhil, Douwe Postmus, Ashwin Ittoo and many others.

Open Access

This article is distributed under the terms of the Creative Commons Attribution Noncommercial License which permits any noncommercial use, distribution, and reproduction in any medium, provided the original author(s) and source are credited.


  1. 1.
    Mukerji, J., Miller, J. (eds.): MDA Guide Version 1.0.1. Technical report, Object Management Group. (2003)
  2. 2.
    Kleppe A., Warmer J., Bast W.: MDA Explained: The Model Driven Architecture: Practice and Promise. Addison-Wesley, Reading (2003)Google Scholar
  3. 3.
    Torngren, M., Chen, D., Crnkovic, I.: Component-based vs. model-based development: a comparison in the context of vehicular embedded systems. In: Proceedings of the 31st EUROMICRO Conference on Software Engineering and Advanced Applications, Porto, Portugal, pp. 432–441 (2005)Google Scholar
  4. 4.
  5. 5.
    Knoll, K., Jarvenpaa, S.L.: Information technology alignment or ‘fit’ in highly turbulent environments: the concept of flexibility. In: Proceedings of the 1994 Computer Personnel Research Conference on Reinventing IS: Managing Information Technology in Changing Organizations, Alexandria, Virginia, USA, pp. 1–14 (1994)Google Scholar
  6. 6.
    Lehman, M.M., Ramil, J.F.: Evolution in software and related areas. In: Proceedings of the 4th International Workshop on Principles of Software Evolution, Vienna, Austria, pp. 1–16 (2001)Google Scholar
  7. 7.
    Papazoglou M.P., van den Heuvel W.J.: Service oriented architectures: approaches, technologies and research issues. VLDB J. 16(3), 389–415 (2007)CrossRefGoogle Scholar
  8. 8.
    White, S.: Business process modeling notation (BPMN). Version 1.0—May 3, 2004. (2004)
  9. 9.
    Andrews, T., Curbera, F., Dholakia, H., Goland, Y., Klein, J., Leymann, F., Liu, K., Roller, D., Smith, D., Thatte, S., Trickovic, I., Weerawarana, S.: Business process execution language for web services, version 1.1. BEA Systems, IBM Corporation, Microsoft Corporation, SAP AG, Siebel Systems. (2003)Google Scholar
  10. 10.
    Riehle, D., Fraleigh, S., Bucka-Lassen, D., Omorogbe, N.: The architecture of a UML virtual machine. In: Proceedings of the 2001 Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA’01), Tampa Bay, Florida, USA, pp. 327–341 (2001)Google Scholar
  11. 11.
    Atkinson C., Kühne T.: Rearchitecting the UML infrastructure. ACM Trans. Model. Comput. Simul. 12(4), 290–321 (2002)CrossRefGoogle Scholar
  12. 12.
    Homs, C., Metcalfe, D., Nordan, M. M., Radjou, N.: Troubled invensys: Dispose of fading baan, In: Forrester brief, August 21, (2002)Google Scholar
  13. 13.
    Mellor S.J., Balcer M.J.: Executable UML: A Foundation for Model-Driven Architecture. Addison-Wesley, Reading (2002)Google Scholar
  14. 14.
    Visser E.: Meta-programming with concrete object syntax. In: Batory, D., Consel, C., Taha, W. (eds) Generative Programming and Component Engineering (GPCE 2002), LNCS 2487, pp. 299–315. Springer, Pittsburgh (2002)CrossRefGoogle Scholar
  15. 15.
    Aho A., Lam M., Sethi R., Ullman J.: Compilers, Principles, Techniques and Tools, 2nd edn. Pearson Education. Addison Wesley, Reading (2007)Google Scholar
  16. 16.
    Watt D., Brown D.: Programming Language Processors in Java. Prentice-Hall, Englewood Cliffs (2000)Google Scholar
  17. 17.
    Benjamin C.: Pierce, Types and Programming Languages. MIT Press, Cambridge (2002)Google Scholar
  18. 18.
    Yoder J.W., Balaguer F., Johnson R.: Architecture and design of adaptive object-models. ACM SIGPLAN Notices 36(12), 50–60 (2001)CrossRefGoogle Scholar
  19. 19.
    Rumbaugh J., Jacobson I., Booch G.: The Unified Model Language Reference Manual, 2nd edn. Pearson Education Inc, Upper Saddle River (2005)Google Scholar
  20. 20.
    Meyer B.: Object-Oriented Software Construction, 1st edn. Prentice-Hall, Englewood Cliffs (1988)Google Scholar
  21. 21.
    Unified modeling language: Superstructure, version 2.1.2.
  22. 22.
    Pernici B., Mecella M., Batini C.: Conceptual modeling and software components reuse: towards the unification. In: Solvberg, A., Brinkkemper, S., Lindencrona, E. (eds) Information Systems Engineering: State of the Art and Research Themes, pp. 209–220. Springer, London (2000)Google Scholar
  23. 23.
    Maciaszek L.A.: Requirements Analysis and System Design: Developing Information Systems with UML. Addison-Wesley, Reading (2005)Google Scholar
  24. 24.
    Ducasse, S., Girba, T., Favre, J.M.: Modeling software evolution by treating history as a first class entity. In: Proceedings of the Workshop on Software Evolution Through Transformation (SETra 2004), Rome, Italy, pp. 75–86 (2004)Google Scholar
  25. 25.
    France, R., Bieman, J.M.: Multi-view software evolution: a UML-based framework for evolving object-oriented software. In: Proceedings of the 17th IEEE International Conference on Software Maintenance (ICSM’01), Florence, Italy, pp. 386–395 (2001)Google Scholar
  26. 26.
    Mens T., Tourwé T.: A Survey of software refactoring. IEEE Trans. Softw. Eng. 30(2), 126–139 (2004)CrossRefGoogle Scholar
  27. 27.
    Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J., Irwin, J.: Aspect-oriented programming. ECOOP 97, pp. 220–242 (1997)Google Scholar
  28. 28.
    Mens T., D’Hondt T.: Automating support for software evolution in UML. Autom. Softw. Eng. 7(1), 39–59 (2000)CrossRefGoogle Scholar
  29. 29.
    Steyaert, P., Lucas, C., Mens, K., D’Hondt, T.: Reuse contracts: managing the evolution of reusable assets. In: Proceedings of the 11th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA’96), San Jose, California, USA, pp. 268–285 (1996)Google Scholar
  30. 30.
    Frankel D.S.: Model Driven Architecture: Applying MDA to Enterprise Computing. Wiley, New York (2003)Google Scholar
  31. 31.
    Cook, S.: Domain-specific modeling and model driven architecture. MDA J. pp. 1–10 (2004)Google Scholar
  32. 32.
    Atkinson C., Kühne T.: Model-driven development: a metamodeling foundation. IEEE Softw. 20(5), 36–41 (2003)CrossRefGoogle Scholar
  33. 33.
    Stefik M., Bobrow D.: Object-oriented programming: themes and variations.. AI Mag. 6(4), 40–62 (1986)Google Scholar
  34. 34.
    Ivan, K., Jean, B., Frédéric J., Patrick, V.: Model-based DSL frameworks, OOPSLA companion, pp. 602–616 (2006)Google Scholar
  35. 35.
    Henderson-Sellers B.: The use of subtype and stereotypes in the UML model. J. Database Manag. 13(2), 43–50 (2002)Google Scholar
  36. 36.
    Atkinson C., Kühne T.: A generalized notion of platforms for model driven development. In: Beydeda, S., Book, M., Gruhn, V. (eds) Model-Driven Software Development, pp. 119–136. Springer, Berlin (2005)CrossRefGoogle Scholar
  37. 37.
    D’Souza, D., Sane, A., Birchenough, A.: First class extensibility for UML—packaging of profiles, stereotypes, patterns. In: Proceedings of the 2nd International Conference on the Unified Modeling Language (UML’99), Fort Collins, USA, pp. 265–277 (1999)Google Scholar
  38. 38.
    Gamma E., Helm R., Johnson R., Vlissides J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)Google Scholar
  39. 39.
    Liang, S., Bracha, G.: Dynamic class loading in the Java Virtual Machine. OOPSLA, pp. 36–44 (1998)Google Scholar
  40. 40.
    Atkinson C., Kühne T.: Profiles in a strict metamodeling framework. Sci. Comput. Program. 44(1), 5–22 (2002)zbMATHCrossRefGoogle Scholar
  41. 41.
    Meijler, T.D., Kruithof, G.H., van Beest, N.S.: Top down versus bottom up in service-oriented integration: An MDA-based solution for minimizing technology coupling. In: Proceedings of the 4th International Conference in Service-Oriented Computing, Chicago, IL, USA, pp. 484–489 (2006)Google Scholar
  42. 42.
    Stuckenholz A.: Component evolution and versioning state of the art. ACM SIGSOFT Softw. Eng. Notes 30(1), 1–13 (2005)CrossRefGoogle Scholar
  43. 43.
    Maes P.: Concepts and experiments in computational reflection. ACM SIGPLAN Notices 22(12), 147–155 (1987)CrossRefGoogle Scholar
  44. 44.
    Gray, J.G., Zhang, J., Lin, Y., Roychoudhury, S., Wu, H., Sudarsan, R., Gokhale, A.S., Neema, S. Shi, F., Bapty, T.: Model-driven program transformation of a large avionics framework. Generative Programming and Component Engineering (GPCE 2004) LNCS. 32(86), 361–378 (2004)Google Scholar
  45. 45.
    Yoder, J.W., Johnson, R.: The adaptive object-model architectural style. In: Proceedings of the IFIP 17th World Computer Congress—TC2 Stream. 3rd IEEE/IFIP Conference on Software Architecture: System Design, Development and Maintenance, Montreal, Quebec, Canada, pp. 3–27 (2002)Google Scholar
  46. 46.
    Razavi R., Bouraqadi N., Yoder J.W., Perrot J.F., Johnson R.: Language support for adaptive object-models using metaclasses. Comput. Lang. Syst. Stru. 31(3–4), 199–218 (2005)Google Scholar
  47. 47.
    Goldberg A., Robson D.: Smalltalk-80: The Language and Its Implementation. Addison-Wesley, Reading (1983)zbMATHGoogle Scholar
  48. 48.
    Sundaresh, R.S., Hudak, P.: A theory of incremental computation and its application. In: Proceedings of the 18th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Orlando, Florida, USA, pp. 1–13 (1991)Google Scholar
  49. 49.
    Pugh, W., Teitelbaum, T.: Incremental computation via function caching. In: Proceedings of the 16th ACM SIGPLAN-SIGACT Symposium on Principles of Programming languages, Austin, Texas, USA, pp. 315–328 (1989)Google Scholar
  50. 50.
    Sprinkle J., Karsai G.: A domain-specific visual language for domain model evolution. J. Vis. Lang. Comput. 15(3–4), 291–307 (2004)CrossRefGoogle Scholar
  51. 51.
    Monk S., Sommerville I.: Schema evolution in OODBs using class versioning. ACM SIGMOD Record. 22(3), 16–22 (1993)CrossRefGoogle Scholar
  52. 52.
    Krzysztof, C., Michal, A., Chang, H., Peter, K., Sean, L., Krzysztof, P.: Model-driven software product lines. OOPSLA Companion: 126–127 (2005)Google Scholar
  53. 53.
    Krzysztof, C.: Software reuse and evolution with generative techniques. Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering (ASE’07), p. 575 (2007)Google Scholar
  54. 54.
    Don S.B., Clay J., Bob M., Dale V.H.: Achieving extensibility through product-lines and domain-specific languages: a case study. ICSR 2000, LNCS 18(44), 117–136 (2000)Google Scholar
  55. 55.
    Favre J.M., Nguyen T.: Towards a megamodel to model software evolution through software transformation. Electron. Notes Theor. Comput. Sci. 127(3), 59–74 (2005)CrossRefGoogle Scholar
  56. 56.
    Hearnden, D., Bailes, P., Lawley, M., Raymond, K.: Automating software evolution. In: Proceedings of the 7th International Workshop on Principles of Software Evolution, Kyoto, Japan, pp. 95–100 (2004)Google Scholar
  57. 57.
    Berkem B.: How to increase your business reactivity with UML/MDA? J. Obj. Technol. 2(6), 117–138 (2003)Google Scholar
  58. 58.
    McKinley P.K., Masoud S., Kasten E.P., Cheng B.H.C.: Composing adaptive software. IEEE Comput. 37(4), 56–64 (2004)Google Scholar
  59. 59.
    Garlan D., Cheng S.W., Schmerl B., Steenkiste P.: Rainbow: Architecture-Based Self-Adaptation with Reusable Infrastructure. IEEE Comput. 37(10), 46–54 (2004)Google Scholar
  60. 60.
    Oreizy P., Gorlick M.M., Taylor R.N., Heimbigner D., Johnson G., Medvidovic N., Quilici A., Rosenblum D.S., Wolf A.L.: An architecture-based approach to self-adaptive software. IEEE Intell. Syst. 14(3), 54–62 (1999)CrossRefGoogle Scholar
  61. 61.
    Sadjadi S.M., Trigoso F.: Trap Net: a realization of transparent shaping in net. Int. J. Softw. Eng. Knowl. Eng. 19(4), 507–528 (2009)CrossRefGoogle Scholar
  62. 62.
    Stachour, P., Collier-Brown, D.: You don’t know Jack about software maintenance.Commun. ACM 52(11), (2009)Google Scholar

Copyright information

© The Author(s) 2010

Authors and Affiliations

  • Theo Dirk Meijler
    • 1
    Email author
  • Jan Pettersen Nytun
    • 2
  • Andreas Prinz
    • 2
  • Hans Wortmann
    • 3
  1. 1.SAP Research, CEC DresdenDresdenGermany
  2. 2.Faculty of Engineering and ScienceUniversity of AgderAgderNorway
  3. 3.Faculty of Management and OrganizationUniversity of GroningenGroningenThe Netherlands

Personalised recommendations