IBM Software Group
The Eclipse Modeling Framework and
the IBM Model Transformation Framework
Catherine Griffin
IBM Hursley
University of Nantes Eclipse day
March 2005
© 2005 IBM Corporation
IBM Software Group
Agenda
 Eclipse Modeling Framework
 IBM Model Transformation Framework
 Demo
2
University of Nantes Eclipse day
March 2005
© 2005 IBM Corporation
IBM Software Group
Eclipse Modeling Framework
University of Nantes Eclipse day
March 2005
© 2005 IBM Corporation
IBM Software Group
What is the Eclipse Modeling Framework ?
 Framework for implementing structured data models
XSD
Meta-data:
XMI
(Meta-model)
Data:
(Model)
Meta-class
XML
serialize
XML
XMI
deserialize
4
Java object
University of Nantes Eclipse day
Java object
March 2005
© 2005 IBM Corporation
IBM Software Group
Models and meta-models
 From a definition of the meta-model, EMF generates
Java classes
 Generated Java classes extend the EMF class
EObject
 They maintain model consistency:
– Two-way references
– Containment
– Type-checking
 They have access to a representation of their
meta-model
5
University of Nantes Eclipse day
March 2005
© 2005 IBM Corporation
IBM Software Group
Ecore
 A meta-model is a model; and its meta-model is
supplied by EMF and is called Ecore
 So a meta-model is an Ecore model
 Ecore has concepts like:
– Class – inheritance, have properties
– Property – name, multiplicity, type
 Essentially this is a simplified version of class
modeling in UML
6
University of Nantes Eclipse day
March 2005
© 2005 IBM Corporation
IBM Software Group
Creating an Ecore model
 Various methods of creating an Ecore model are
supported:
– Rational Rose models
– Java interfaces with added annotations
– XML Schema
– EMF Java APIs (write a program)
– Eclipse.org UML2 models, IBM Rational Software
Modeler
– Other tools – e.g.Omondo (Eclipse UML editor)
7
University of Nantes Eclipse day
March 2005
© 2005 IBM Corporation
IBM Software Group
Code generation
Ecore model
(meta-model)
Model implementation
Simple Eclipse
classes
editor
8
University of Nantes Eclipse day
March 2005
© 2005 IBM Corporation
IBM Software Group
Customizing generated code
 You can edit the generated code, and your changes will
be maintained when the code is re-generated
 You need to edit the generated code in order to
implement any operations defined in your meta-model,
or properties that are derived from other properties
 You can also use different templates for code generation
– You might want to do this to change the standard file
header, or conform to your preferred naming conventions
9
University of Nantes Eclipse day
March 2005
© 2005 IBM Corporation
IBM Software Group
Loading and Saving EMF Models
 EMF has built in support for serializing models as
XML – either XMI or as defined by an XML schema
 XMI is the OMG standard for representing models
(and meta-models) in XML
 If you need to, you can write your own custom
serialization/deserialization code and have
whatever data format you like
 EMF can manage references within and between
files
10
University of Nantes Eclipse day
March 2005
© 2005 IBM Corporation
IBM Software Group
More features..
 Reflection APIs
 Model change notification support
 Reusable parts for building Eclipse tools
 Change model - supports recording, applying and
undoing changes
 Mapping model and support for building mapping
tools
 SDO implementation (JSR 235)
…
11
University of Nantes Eclipse day
March 2005
© 2005 IBM Corporation
IBM Software Group
Who is using EMF today?
 IBM Rational Software Architect, IBM Rational Application
Developer for WebSphere, etc
 Eclipse projects
– Hyades Project (testing and logging)
– XSD Project (manipulate XML Schemas)
– UML2 (UML 2.0)
 Others
– TogetherSoft (UML editor and code generation)
– Ensemble (support for Weblogic servers)
– Versata (extend J2EE to capture their business rules)
– Omondo (UML editor tightly coupled to EMF
tools)
 More coming aboard
12
University of Nantes Eclipse day
March 2005
© 2005 IBM Corporation
IBM Software Group
IBM Model Transformation
Framework
University of Nantes Eclipse day
March 2005
© 2005 IBM Corporation
IBM Software Group
Model transformation
 ‘Model’ means – any data format that can be
represented as an EMF model
 ‘Transformation’ means, e.g.
– Generate XML Schema from UML (or vice versa)
– Expand patterns (templates)
– Merge two versions of the same model
 A model transformation has built-in support for
maintaining model consistency – unlike a text or
XML transformation
14
University of Nantes Eclipse day
March 2005
© 2005 IBM Corporation
IBM Software Group
What makes transformations difficult ?
 Reverse transformations
 Round-tripping
 Updating instead of over-writing
 Preserving non-conflicting content (merging)
 Reconciling changes
 What to do when the transformation ‘gets stuck’ –
incorporating human decision making
 Traceability – what rule was applied to which
elements?
15
University of Nantes Eclipse day
March 2005
© 2005 IBM Corporation
IBM Software Group
Model Transformation Framework
 Aims to:
– Speed up implementation of transformations on EMF models
– Support for those ‘difficult’ transformation problems (some
assembly required)
 Based on:
– rules language for defining “consistency rules” (not
transformation rules!)
– transformation engine which interprets those rules
 Use in Java applications or Eclipse plug-ins
16
University of Nantes Eclipse day
March 2005
© 2005 IBM Corporation
IBM Software Group
Transformation treated as two separate processes:
Model(s)
Rules
Constraint
checking:
(Java object
graph)
Check & Identify
constraint violations
Apply changes
Mappings
Reconciliation:
17
University of Nantes Eclipse day
Fix violations
March 2005
© 2005 IBM Corporation
IBM Software Group
Mappings
 The output from constraint checking (and also from
reconciliation) is a set of mappings and constraint
violations
 A mapping records that a rule was applied to one or
more model elements
 Mappings may be saved to a file and later loaded
back into the transformation engine
18
University of Nantes Eclipse day
March 2005
© 2005 IBM Corporation
IBM Software Group
Mappings
Reconcile
19
University of Nantes Eclipse day
March 2005
© 2005 IBM Corporation
IBM Software Group
Rules language
 Rules define types of mappings:
relate xyz (X x, Y y, Z z)
 Pre-conditions on creation of mappings
relate xyz (X x, Y y, Z z) when equals(x.name, y.name)
 Further constraints to apply to the mapping
relate xyz (X x, Y y, Z z) when equals(x.name, y.name)
{
another_rule(over x.contents, over y.contents),
ref yet_another_rule(x.refersTo, z.links)
}
 A rule is actually a class
– mappings that are applications of that rule are instances of it
– MTF extends the EMF Ecore meta-model
20
University of Nantes Eclipse day
March 2005
© 2005 IBM Corporation
IBM Software Group
For more information..
 Eclipse Modeling Framework available from
www.eclipse.org/emf
– Open source
– There is a book available
– OMG Meta-Object Facility 2.0 (standard for meta-modelling)
 IBM Model Transformation Framework available from
www.alphaworks.ibm.com/tech/mtf
– Free, 90 day licence
– Alpha – this is a technology to play with
21
University of Nantes Eclipse day
March 2005
© 2005 IBM Corporation
Descargar

EMF and MTF