EclipseCon2010 - Painless Metamodel Evolution

  • View
    4.677

  • Download
    0

Embed Size (px)

DESCRIPTION

Software has to evolve along with the modeled domain. Over the years the pain of maintaining and migrating old models grows and grows as legacy models endlessly pile up and tend to restrict further development.In this talk presented at EclipseCon 2010 in Santa Clara, CA, Marc Dutoo of Open Wide, Christian Saad of the University of Augsburg and Etienne Juliot of Obeo discuss the pain and medicine of metamodel evolution. This is done from a developer and a user's perspective and details use cases based on the Eclipse JWT and SCA projects, along with presenting and evaluating a selection of appropriate methodologies and techniques which allow to overcome this difficulty.

Text of EclipseCon2010 - Painless Metamodel Evolution

  • 1. Painless (?) Metamodel Evolution A pragmatic approach Eclipse Con 2010 Christian Saad (University of Augsburg, DE) Etienne Juliot (Obeo, FR) Marc Dutoo (Open Wide, FR) Confidential | Date | Other Information, if necessary 2002 IBM Corporation
  • 2. About the speakers Christian Saad - University of Augsburg Research assistant at the University of Augsburg Topics of interest: Model analysis, business process management Etienne Juliot - founder of Obeo, FR Contributes to several Eclipse projects (SCA Tools, Acceleo, ATL, EEF, ...) and OpenSource communities Marc Dutoo - SOA, BPM, ECM architect Head of R&D Dept. at Open Wide, a French Open Source software integrator With the support of Stphane Drapeau, Obeo, FR The Java Workflow Tooling (JWT) and SCA projects Eclipse Foundation, Inc. | 2010 by the Open Wide, Obeo and University of Augsburg. Made available under the EPL v1.0 2
  • 3. Overview Metamodel evolution is painful ! JWT (migration) use case - practices - technologies - automating it SCA (extensions) use case - analysis - solution Further Conclusion Eclipse Foundation, Inc. | 2010 by the Open Wide, Obeo and University of Augsburg. Made available under the EPL v1.0 3
  • 4. Metamodels do evolve ! along with The business domain Driven by new requirements or standards Concepts or attributes may be added or become obsolete Internal features Driven by features of the modeling tool itself Ex: layout information External features Driven by model usage Ex: runtime information (logging, transactions) in workflows Eclipse Foundation, Inc. | 2010 by the Open Wide, Obeo and University of Augsburg. Made available under the EPL v1.0 4
  • 5. Metamodel changes are... (too?!) easy to design (EMF & co) painful to cope with for devs and users alike old models must be migrated (tedious and boring) or their legacy metamodels maintained (defeats the purpose)... if there's actually someone caring enough and metamodel evolutions never stop they just pile up ! ... everyone who has really used modeling / MDA has experienced it ! Eclipse Foundation, Inc. | 2010 by the Open Wide, Obeo and University of Augsburg. Made available under the EPL v1.0 5
  • 6. Introducing the JWT use case we experienced it at our project Java Workflow Tooling (JWT) An extensible Workflow tool suite in the SOA TLP all the more because it aims at an extensible model (through aspect-like extensions) that allows to support different runtimes different GEF-based views on top of it compatibility with other workflow standards (through transformations) Eclipse Foundation, Inc. | 2010 by the Open Wide, Obeo and University of Augsburg. Made available under the EPL v1.0 6
  • 7. 1. Alleviating the pain - diagnostic Know where you are store a version number in the model version-specific namespace: pros and cons Use it if your technology allows it see next Manage evolutions talk about them! (Wiki, release notes, warning dialogs) write howtos on evolving legacy models in bugzillas ex. "all nodes with a X=Y property now are of type Z" But The user still has to do everything, so it hurts ! Eclipse Foundation, Inc. | 2010 by the Open Wide, Obeo and University of Augsburg. Made available under the EPL v1.0 7
  • 8. 1. Alleviating the pain practices Modeling practices: eager changes Adding new nodes breaks nothing However Deleting/Refactoring does Provide abstract nodes with generic semantics Default behaviours are inherited Ex: Subclassing JWT ExecutableNode Write unit tests which load sample models! But Beware of being restricted in metamodel evolutions that won't break "too much" legacy models Eclipse Foundation, Inc. | 2010 by the Open Wide, Obeo and University of Augsburg. Made available under the EPL v1.0 8
  • 9. 2. Scalpels - using technologies Been there, done that : you've migrated two models by hand, and don't want to do it again. So code the evolution rules that you documented! Ex.: Java EMF - lighter : scripting (groovy) BUT source and target metamodels are different: load both: But still has to code the copy of the part of the original model that didn't change (most of it actually) A simple, content-oriented solution : XSL breaking free from java, code, EMF (for best and worse) An EMF solution : ATL EMF based model to model transformations and provide these to model users! extend the EMF editor actions (yours or the original one), up to... Eclipse Foundation, Inc. | 2010 by the Open Wide, Obeo and University of Augsburg. Made available under the EPL v1.0 9
  • 10. 3. Healing - automating evolution Make the evolution transparent When evolving (meta)models , most of the work is the same Check version, if not the same as your tool's, find and apply required transformation JWTs ATL model converter Lightweight ATL-based framework Developers only need to slightly adapt the ATL transformation Ask users whether they are OK with automatic transformation before manipulating files! Eclipse Foundation, Inc. | 2010 by the Open Wide, Obeo and University of Augsburg. Made available under the EPL v1.0 10
  • 11. Introducing the SCA Tools project Service Component Architecture (SCA) aims to provide A model for the creation of service components in a wide range of languages and A model for assembling service components into a business solution SCA Tools project is a set of tools for developers of SCA applications The project was created under the SOA Tools Platform (STP) TLP SOA The project is moving to the new SOA TLP (move Top Level review planned April 7) Project Eclipse Foundation, Inc. | 2010 by the Open Wide, Obeo and University of Augsburg. Made available under the EPL v1.0 11
  • 12. SCA "two-headed" metamodel and its extensions SCA w