You need to extend your models? EMF Facet vs. EMF Profiles
1. You need to extend
your models?
EMF Facet vs. EMF Profiles
Modeling Symposium – Monday March 26th, 2012
Hugo Bruneliere Philip Langer
hugo.bruneliere@inria.fr langer@big.tuwien.ac.at
2. Why extending existing models?
… generates Ruby on Rails.
I want to additionally specify
“Finder SQL” statements!
Modeling Language
… generates JavaServer Faces.
Meta Concrete
model Syntax Editor I want to additionally specify
the bean scope!
… generates DB Schema.
Leave it as it is!
If you introduce every
imaginable feature that I
don’t need, I could have used
UML in the first place.
3. Why extending existing models?
I can’t address all your
… generates Ruby on Rails.
requirements! I want to additionally specify
“Finder SQL” statements!
Modeling Language
… generates JavaServer Faces.
Meta Concrete
model Syntax Editor I want to additionally specify
the bean scope!
… generates DB Schema.
You need a lightweight Leave it as it is!
If you introduce every
extension mechanism! imaginable feature that I
don’t need, I could have used
UML in the first place.
Main Objectives
- No modification of existing models
- Adding of “concern-specific” information
4. EMF Facet - http://www.eclipse.org/modeling/emft/facet/
My model (in Ecore)
conforms to
My instances (XMI)
5. EMF Facet - http://www.eclipse.org/modeling/emft/facet/
extends
Facet
My facet model
My model (in Ecore) • Types
• Attributes uses
relies on • References
conforms to Queries
Different languages
• Java
• OCL
• Etc.
My instances (XMI)
6. EMF Facet - http://www.eclipse.org/modeling/emft/facet/
extends
Facet
My facet model
My model (in Ecore) • Types
• Attributes uses
relies on • References
conforms to Queries
Different languages
• Java
• OCL
• Etc.
My instances (XMI)
7. EMF Profiles - http://code.google.com/a/eclipselabs.org/p/emf-profiles/
Ecore metamodel
conforms to
My model (in Ecore)
8. EMF Profiles - http://code.google.com/a/eclipselabs.org/p/emf-profiles/
extends
Ecore metamodel My EMF Profile
•Stereotypes
•Tagged Values
conforms to applied to
My model (in Ecore)
9. EMF Profiles - http://code.google.com/a/eclipselabs.org/p/emf-profiles/
extends
Ecore metamodel My EMF Profile
•Stereotypes
•Tagged Values
conforms to applied to conforms to
My model (in Ecore) My model & profile application
11. Review my model,
Example for demo Ms. “know-it-all”!
• Without polluting the original instances!
• Without affecting the Ecore model!
• But still in a structured way!
• Easily processible by humans and tools!
12. Model Extension
EMF Facet EMF Profiles
Adding of new model Annotating of existing
elements model elements
Support for types, Support for types,
attributes, references attributes, references
Dynamically calculated Statically defined
(via model queries) (via model editors)
Customization of Customization of
tree view diagram view