• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Magritte - A Meta-Driven Approach to Empower Developers and End Users
 

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

on

  • 3,666 views

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

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.

Statistics

Views

Total Views
3,666
Views on SlideShare
3,661
Embed Views
5

Actions

Likes
0
Downloads
36
Comments
0

1 Embed 5

http://www.slideshare.net 5

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

    • 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