advertisement

Magritte - A Meta-Driven Approach to Empower Developers and End Users

67 %
33 %
advertisement
Information about Magritte - A Meta-Driven Approach to Empower Developers and End Users

Published on January 28, 2008

Author: renggli

Source: slideshare.net

Description

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.
advertisement

Magritte A Meta-Driven Approach to Empower Developers and End Users Lukas Renggli Stéphane Ducasse Adrian Kuhn University of Bern, Switzerland Software Composition Group

Roadmap Problem Demo Implementation Evaluation Questions

What is the problem?

Rapidly changing requirements

End users would know their requirements

What did we see?

Meta-driven software

Developer defined meta-model

End user defined meta-model

Run-time dynamic meta-model

Meta- Metamodel <described-by> Metamodel Developer <described-by> Domain Model End User

Meta- Metamodel <described-by> Metamodel Magritte Developer <described-by> Domain Model Magritte End User

How does it work?

Type Object Component Component Type 1 * 1 1 (a) Type-Square * * Property Property Type 1 * Type Object [Yoder et al, 2001] Architecture and design of adaptive object models

Type Object Component Component Type 1 * 1 1 (a) Type-Square * * Property Property Type 1 * Type Object [Yoder et al, 2001] Architecture and design of adaptive object models

attributes attributes 1 1 * attributes * 1 Object * Object * * Object * description description Object Object Type Type description Object Type attributes Description * Description * * 1 Description *

attributes attributes 1 1 * attributes * 1 Object * Object * * Object * description description Object Object Type Type description Object Type attributes Description * Description * * 1 Description *

attributes attributes 1 1 * attributes * 1 Object * Object * * Object * description description Object Object Type Type description Object Type attributes Description * Description * * 1 Description *

Describe Objects

Describe Descriptions

Describe Constraints

Describe Behavior

pen-source development environment for programming language. Despite being the ted language and environment, Smalltalk ar ahead of its successors in promoting a Squeak by Example ment where everything is an object, and run-time. Smalltalk ended for both students and developers, ly through the Squeak language and of a series of examples and exercises. vailable under the Creative Commons 3.0 license. You can either download the an buy a softcover copy from lulu.com. available from the book's web page at www.squeak.org g, hosted by the University of Bern, Squeak dorsed by ESUG, the European Smalltalk more about Smalltalk and ESUG, see www.squeakbyexample.org Black!•!Ducasse!•!Niers 2 by Example Andrew P. Black, Stéphane Ducasse, Oscar Nierstrasz, Damien Pollet

Reflection

Integration with Tools

Class Extension

What can we do with it?

Automatic Views

Automatic Editors

Automatic Validation

Move Page

Automatic Reports

Automatic Querying

Automatic Persistency

What did we gain?

t rid of Ge Reduce recurrent work

Describe once, get everywhere

Extensible Object Model

Ru n-t ime Adaptive object model

Code Generation

End users customizability

Industrial Users

Aare Workflow definition and runtime system

Magritte www.lukas-renggli.ch [René Magritte, 1966] Decalcomania

LOC Comparison Model View 1561 LOC 1812 LOC 44% 37% View Model 1983 LOC 3078 LOC 56% 63% SmallWiki Pier Traditional Meta-described

Speed Comparison 9,000 8,190 6,750 4,500 2,250 2,456 0 Traditional Meta-Described

Add a comment

Related pages

Magritte – A Meta-Driven Approach to Empower Developers ...

Magritte { A Meta-Driven Approach to Empower Developers and End Users? Lukas Renggli 1, St ephane Ducasse2, and Adrian Kuhn 1 Software Composition Group ...
Read more

Magritte – A Meta-driven Approach to Empower Developers ...

Magritte – A Meta-driven Approach to Empower Developers and End Users. ... We show in particular that our approach is suitable to support end user ...
Read more

LNCS 4735 - Magritte – A Meta-driven Approach to Empower ...

Magritte – A Meta-driven Approach to Empower Developers and End Users 107 for a lot of different people with varying needs. Furthermore it is often the case
Read more

Magritte - researchgate.net

Magritte A Meta-Driven Approach to Empower Developers and End Users Lukas Renggli1, St´ephane Ducasse2, and Adrian Kuhn1 1 Software Composition Group ...
Read more

Magritte — a meta-driven approach to empower developers ...

Magritte — a meta-driven approach to empower developers and end users (2007)
Read more

Magritte: a meta-driven approach to empower developers and ...

... a meta-driven approach to empower developers ... the adaptive model of Magritte not ... a meta-driven approach to empower developers and end users:
Read more

Magritte – A Meta-driven Approach to Empower Developers ...

Official Full-Text Publication: Magritte – A Meta-driven Approach to Empower Developers and End Users on ResearchGate, the professional network for ...
Read more

Magritte – a meta-driven approach to empower developers ...

CiteSeerX - Scientific documents that cite the following paper: Magritte – a meta-driven approach to empower developers and end users
Read more

CiteSeerX — Citation Query Magritte — meta-described web ...

... Magritte — meta-described web application development. ... driven approach to empower developers and end users ... on Magritte, a powerful meta ...
Read more