Abstract
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.
Article PDF
Similar content being viewed by others
Avoid common mistakes on your manuscript.
References
Mukerji, J., Miller, J. (eds.): MDA Guide Version 1.0.1. Technical report, Object Management Group. http://www.omg.org/docs/omg/03-06-01.pdf (2003)
Kleppe A., Warmer J., Bast W.: MDA Explained: The Model Driven Architecture: Practice and Promise. Addison-Wesley, Reading (2003)
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)
OMG MDA success stories. http://www.omg.org/mda/products_success.htm
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)
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)
Papazoglou M.P., van den Heuvel W.J.: Service oriented architectures: approaches, technologies and research issues. VLDB J. 16(3), 389–415 (2007)
White, S.: Business process modeling notation (BPMN). Version 1.0—May 3, 2004. http://BPMI.org (2004)
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)
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)
Atkinson C., Kühne T.: Rearchitecting the UML infrastructure. ACM Trans. Model. Comput. Simul. 12(4), 290–321 (2002)
Homs, C., Metcalfe, D., Nordan, M. M., Radjou, N.: Troubled invensys: Dispose of fading baan, In: Forrester brief, August 21, (2002)
Mellor S.J., Balcer M.J.: Executable UML: A Foundation for Model-Driven Architecture. Addison-Wesley, Reading (2002)
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)
Aho A., Lam M., Sethi R., Ullman J.: Compilers, Principles, Techniques and Tools, 2nd edn. Pearson Education. Addison Wesley, Reading (2007)
Watt D., Brown D.: Programming Language Processors in Java. Prentice-Hall, Englewood Cliffs (2000)
Benjamin C.: Pierce, Types and Programming Languages. MIT Press, Cambridge (2002)
Yoder J.W., Balaguer F., Johnson R.: Architecture and design of adaptive object-models. ACM SIGPLAN Notices 36(12), 50–60 (2001)
Rumbaugh J., Jacobson I., Booch G.: The Unified Model Language Reference Manual, 2nd edn. Pearson Education Inc, Upper Saddle River (2005)
Meyer B.: Object-Oriented Software Construction, 1st edn. Prentice-Hall, Englewood Cliffs (1988)
Unified modeling language: Superstructure, version 2.1.2. http://www.omg.org/cgi-bin/doc?formal/07-11-02
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)
Maciaszek L.A.: Requirements Analysis and System Design: Developing Information Systems with UML. Addison-Wesley, Reading (2005)
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)
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)
Mens T., Tourwé T.: A Survey of software refactoring. IEEE Trans. Softw. Eng. 30(2), 126–139 (2004)
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J., Irwin, J.: Aspect-oriented programming. ECOOP 97, pp. 220–242 (1997)
Mens T., D’Hondt T.: Automating support for software evolution in UML. Autom. Softw. Eng. 7(1), 39–59 (2000)
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)
Frankel D.S.: Model Driven Architecture: Applying MDA to Enterprise Computing. Wiley, New York (2003)
Cook, S.: Domain-specific modeling and model driven architecture. MDA J. pp. 1–10 (2004)
Atkinson C., Kühne T.: Model-driven development: a metamodeling foundation. IEEE Softw. 20(5), 36–41 (2003)
Stefik M., Bobrow D.: Object-oriented programming: themes and variations.. AI Mag. 6(4), 40–62 (1986)
Ivan, K., Jean, B., Frédéric J., Patrick, V.: Model-based DSL frameworks, OOPSLA companion, pp. 602–616 (2006)
Henderson-Sellers B.: The use of subtype and stereotypes in the UML model. J. Database Manag. 13(2), 43–50 (2002)
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)
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)
Gamma E., Helm R., Johnson R., Vlissides J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)
Liang, S., Bracha, G.: Dynamic class loading in the Java Virtual Machine. OOPSLA, pp. 36–44 (1998)
Atkinson C., Kühne T.: Profiles in a strict metamodeling framework. Sci. Comput. Program. 44(1), 5–22 (2002)
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)
Stuckenholz A.: Component evolution and versioning state of the art. ACM SIGSOFT Softw. Eng. Notes 30(1), 1–13 (2005)
Maes P.: Concepts and experiments in computational reflection. ACM SIGPLAN Notices 22(12), 147–155 (1987)
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)
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)
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)
Goldberg A., Robson D.: Smalltalk-80: The Language and Its Implementation. Addison-Wesley, Reading (1983)
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)
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)
Sprinkle J., Karsai G.: A domain-specific visual language for domain model evolution. J. Vis. Lang. Comput. 15(3–4), 291–307 (2004)
Monk S., Sommerville I.: Schema evolution in OODBs using class versioning. ACM SIGMOD Record. 22(3), 16–22 (1993)
Krzysztof, C., Michal, A., Chang, H., Peter, K., Sean, L., Krzysztof, P.: Model-driven software product lines. OOPSLA Companion: 126–127 (2005)
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)
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)
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)
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)
Berkem B.: How to increase your business reactivity with UML/MDA? J. Obj. Technol. 2(6), 117–138 (2003)
McKinley P.K., Masoud S., Kasten E.P., Cheng B.H.C.: Composing adaptive software. IEEE Comput. 37(4), 56–64 (2004)
Garlan D., Cheng S.W., Schmerl B., Steenkiste P.: Rainbow: Architecture-Based Self-Adaptation with Reusable Infrastructure. IEEE Comput. 37(10), 46–54 (2004)
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)
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)
Stachour, P., Collier-Brown, D.: You don’t know Jack about software maintenance.Commun. ACM 52(11), (2009)
Acknowledgments
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.
Author information
Authors and Affiliations
Corresponding author
Additional information
Communicated by Dr. Betty Cheng.
Rights and permissions
Open Access This is an open access article distributed under the terms of the Creative Commons Attribution Noncommercial License (https://creativecommons.org/licenses/by-nc/2.0), which permits any noncommercial use, distribution, and reproduction in any medium, provided the original author(s) and source are credited.
About this article
Cite this article
Meijler, T.D., Nytun, J.P., Prinz, A. et al. Supporting fine-grained generative model-driven evolution. Softw Syst Model 9, 403–424 (2010). https://doi.org/10.1007/s10270-009-0144-1
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10270-009-0144-1