Magritte – A Meta-driven Approach to Empower Developers and End Users

  • Lukas Renggli
  • Stéphane Ducasse
  • Adrian Kuhn
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4735)


Model-driven engineering is a powerful approach to build large-scale applications. However, an application’s metamodel often remains static after the initial development phase and cannot be changed unless a new development effort occurs. Yet, end users often need to rapidly adapt their applications to new needs. In many cases, end users would know how to make the required adaptations, if only the application would let them do so. In this paper we present how we built a runtime-dynamic meta-environment into Smalltalk’s reflective language model. Our solution offers the best of both worlds: developers can develop their applications using the same tools they are used to and gain the power of meta-programming. We show in particular that our approach is suitable to support end user customization without writing new code: the adaptive model of Magritte not only describes existing classes, but also lets end users build their own metamodels on the fly.


Meta-Modeling Meta-Data Adaptive Object Model Business Application Development 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Group, O.M.: Common warehouse metamodel. Technical report, Object Management Group (2003)Google Scholar
  2. 2.
    Group, O.M.: Meta object facility (MOF) 2.0 core final adopted specification. Technical report, Object Management Group (2004)Google Scholar
  3. 3.
    Budinsky, F., Steinberg, D., Merks, E., Ellersick, R., Grose, T.: Eclipse Modeling Framework. Addison Wesley Professional, Reading (2003)Google Scholar
  4. 4.
    ITU: Abstract syntax notation one (ASN.1). Technical report, International Telecommunication Union (2002)Google Scholar
  5. 5.
    Hamilton, G.: Javabeans. Technical report, Sun Microsystems (1997)Google Scholar
  6. 6.
    Yoder, J.W., Johnson, R.: The adaptive object model architectural style. In: WICSA3 2002. Proceeding of The Working IEEE/IFIP Conference on Software Architecture 2002 (2002)Google Scholar
  7. 7.
    Atkinson, B.: Hypercard. Hypercard (1987)Google Scholar
  8. 8.
    Renggli, L.: Magritte – meta-described web application development. Master’s thesis, University of Bern (2006)Google Scholar
  9. 9.
    Ducasse, S., Gîrba, T.: Using Smalltalk as a reflective executable meta-language. In: Nierstrasz, O., Whittle, J., Harel, D., Reggio, G. (eds.) MoDELS 2006. LNCS, vol. 4199, pp. 604–618. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  10. 10.
    Goldberg, A., Robson, D.: Smalltalk 80: the Language and its Implementation. Addison Wesley, Reading (1983)zbMATHGoogle Scholar
  11. 11.
    Ingalls, D., Kaehler, T., Maloney, J., Wallace, S., Kay, A.: Back to the future: The story of Squeak, A practical Smalltalk written in itself. In: Proceedings OOPSLA 1997. ACM SIGPLAN Notices, pp. 318–326. ACM Press, New York (1997)CrossRefGoogle Scholar
  12. 12.
    Ducasse, S., Lienhard, A., Renggli, L.: Seaside — a multiple control flow web application framework. In: Zhang, K., Zheng, Y. (eds.) ISC 2004. LNCS, vol. 3225, pp. 231–257. Springer, Heidelberg (2004)Google Scholar
  13. 13.
    Rivard, F.: Smalltalk: a reflective language. In: Proceedings of REFLECTION 1996, pp. 21–38 (1996)Google Scholar
  14. 14.
    Bézivin, J., Gerbé, O.: Towards a precise definition of the OMG/MDA framework. In: ASE 2001. Proceedings Automated Software Engineering, pp. 273–282. IEEE Computer Society, Los Alamitos CA (2001)Google Scholar
  15. 15.
    Atkinson, C., Kuehne, T.: Concepts for comparing modeling tool architecture. In: Proceedings of the UML Conference. LNCS, vol. 3713, pp. 19–33. Springer, Heidelberg (2005)Google Scholar
  16. 16.
    Atkinson, C., Kuehne, T.: The essence of multilevel metamodeling. In: Gogolla, M., Kobryn, C. (eds.) UML 2001. LNCS, vol. 2185, pp. 19–33. Springer, Heidelberg (2001)Google Scholar
  17. 17.
    Muller, P.A., Fleurey, F., Jézéquel, J.M.: Weaving executability into object-oriented meta-languages. In: Briand, L.C., Williams, C. (eds.) MoDELS 2005. LNCS, vol. 3713, pp. 264–278. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  18. 18.
    Schärli, N., Ducasse, S., Nierstrasz, O., Black, A.P.: Traits: Composable units of behavior. Technical Report IAM-02-005, Institut für Informatik, Universität Bern, Switzerland (2002) (Also available as Technical Report CSE-02-014, OGI School of Science & Engineering, Beaverton, Oregon, USA)Google Scholar
  19. 19.
    Yoder, J., Balaguer, F., Johnson, R.: Architecture and design of adaptive object models. In: OOPSLA 2001. Conference on Object-Oriented Programming Systems, Languages, and Applications, pp. 50–60 (2001)Google Scholar
  20. 20.
    Johnson, R., Wolf, B.: Type object. In: Martin, R.C., Riehle, D., Buschmann, F. (eds.) Pattern Languages of Program Design 3, Addison Wesley, Reading (1998)Google Scholar
  21. 21.
    Muller, P.A., Studer, P., Fondement, F., Bézivin, J.: Independent web application modeling and development with netsilon. Software and System Modeling 4, 424–442 (2005)CrossRefGoogle Scholar
  22. 22.
    Ceri, S., Fraternali, P., Bongio, A.: Web modeling language (WebML): a modeling language for designing web sites. In: Ninth International World Wide Web Conference (2000)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2007

Authors and Affiliations

  • Lukas Renggli
    • 1
  • Stéphane Ducasse
    • 2
  • Adrian Kuhn
    • 1
  1. 1.Software Composition Group, University of BernSwitzerland
  2. 2.LISTIC, University of Savoie & INRIA Futurs LilleFrance

Personalised recommendations