21
© AtlanMod ([email protected]) © AtlanMod ([email protected]) On Lightweight Metamodel Extension to Support Modeling Tools Agility Hugo Bruneliere, Jokin Garcia , Philippe Desfray, Djamel Eddine Khelladi, Regina Hebig, Reda Bendraou and Jordi Cabot ECMFA 2015 @ L’Aquila, Italy Wednesday 22 nd of July 2015

ECMFA 2015 MoNoGe metamodel extension

Embed Size (px)

Citation preview

© AtlanMod ([email protected])© AtlanMod ([email protected])

On Lightweight Metamodel Extension to Support

Modeling Tools Agility

Hugo Bruneliere, Jokin Garcia, Philippe Desfray, Djamel Eddine Khelladi, Regina Hebig,

Reda Bendraou and Jordi Cabot

ECMFA 2015 @ L’Aquila, ItalyWednesday 22nd of July 2015

© AtlanMod ([email protected])© AtlanMod ([email protected])

Introduction

● MDE in the industryo Various context, various purposes...

● Need for adaptation of model-based environments/toolso Traceability, coherence, interoperability, etc.

● Evolving and/or adding (new) metamodelso Cf. OMG MOF Extension Facility (MEF) RFP...

● More agility is required!

© AtlanMod ([email protected])© AtlanMod ([email protected])

MoNoGe Project (French FUI #15)

● “ “New generation modeling tool”

● Partners:o Industrial - Softeam (leader), DCNS, Sodifranceo Academic - LIP6, ARMINES/Mines Nantes

● Duration: 30 months● Total budget: 3,57M€

© AtlanMod ([email protected])© AtlanMod ([email protected])

Industrial Motivation

● Minimizing cost/effort when evolving modeling toolso Metamodels are core artifacts (cf. related

parsers, editors, generators, etc.)

● Example of the Modelio environmento Implementations of UML, BPMN, SysML, etc.o Parts reused and/or extended for domain-specific

modeling (e.g. System, EA, Requirement)

● Need for more agile metamodel extension

© AtlanMod ([email protected])© AtlanMod ([email protected])

Proposition/Contribution

● A generic lightweight metamodel extension approach for rapid and efficient adaptations of modeling tools

o Base list of metamodel extension operators

o Corresponding generic (textual) DSL

o Architecture for an EMF-based implementation

o DSL-compliant solution relying on Modelio

© AtlanMod ([email protected])© AtlanMod ([email protected])

Metamodel Extension - Terminology

© AtlanMod ([email protected])© AtlanMod ([email protected])

Metamodel Extension - Characteristics (1/2)

● Genericityo From any metamodel, modeling tool, framework

or environment

● Non-intrusivenesso No modification of original (meta)models

● Persistence & Interoperability o Notably of metamodel extension (cf. our DSL)

© AtlanMod ([email protected])© AtlanMod ([email protected])

Metamodel Extension - Characteristics (2/2)

● Compatibility/conformance preserving

● Transparency o From both tool and user perspectives

● Dynamicity & synchronizationo E.g. at extension application/removal

● Runtime computationo Notably at model-level

© AtlanMod ([email protected])© AtlanMod ([email protected])

Metamodel Extension - Base Operators (1/2)

● ADD (a new concept)o Create “from scratch”o Specialize (subtype) a concepto Generalize (supertype) concept(s)

● FILTER (an existing concept)

© AtlanMod ([email protected])© AtlanMod ([email protected])

Metamodel Extension - Base Operators (2/2)

● MODIFY (an existing concept)o Add property to an existing concepto Filter property from an existing concepto Modify property (Filter + Add)o Add constraint to concept/propertyo Filter constraint from concept/property

© AtlanMod ([email protected])© AtlanMod ([email protected])

Metamodel Extension - Proposed DSL (1/3)

Operator Textual Syntax

ADD - “From scratch” add class X

ADD - Specializingadd class Y

specializing uml.A

ADD - Generalizationadd class Z

generalizing uml.B, uml.C

FILTER filter class uml.D

MODIFY (cf. next sub-

operators)modify class uml.A { … }

© AtlanMod ([email protected])© AtlanMod ([email protected])

Metamodel Extension - Proposed DSL (2/3)

Operator Textual Syntax

MODIFY - Add prop.add property propertyA

type String

MODIFY - Filter prop. filter property propertyB

MODIFY - Modify prop.

modify property propC

attribute = "name",

value = "propCbis"

MODIFY - Add constr. add constraint consA “val”

MODIFY - Filter constr. filter constraint consB

© AtlanMod ([email protected])© AtlanMod ([email protected])

Metamodel Extension - Proposed DSL (3/3)

● Example of a simple DODAF extension

© AtlanMod ([email protected])© AtlanMod ([email protected])

Metamodel Extension - Eclipse support

● https://github.com/atlanmod/monoge

© AtlanMod ([email protected])© AtlanMod ([email protected])

Metamodel Extension - Eclipse support

● Short demonstration...

© AtlanMod ([email protected])© AtlanMod ([email protected])

Metamodel Extension - Modelio support

● https://www.modelio.org/downloads/download-modelio.html

© AtlanMod ([email protected])© AtlanMod ([email protected])

Metamodel Extension - Related Work (1/2)

● Metamodel Evolution approacheso Main effort on migrating related artifacts (more

or less automated)o Original metamodels usually abandonedo Our solution: metamodel versions can coexist

● (UML) Profile or annotation mechanismso Mostly limited to adding extra (meta)datao Our solution: more possible extension operations

© AtlanMod ([email protected])© AtlanMod ([email protected])

Metamodel Extension - Related Work (2/2)

● Model Composition techniqueso Creation of a single model by merging elements

coming from several oneso Main issues on synchronization and scalabilityo Our solution: “new” & “old” models are the same

● Runtime-oriented solutions (e.g. EMF Facet)o (Meta)model extension via derived informationo Our solution: new “materialized” data can be

supported

© AtlanMod ([email protected])© AtlanMod ([email protected])

Conclusion

● Lightweight metamodel extension mechanism based on a textual DSL

● Two alternative but DSL-compliant implementationso Eclipse/EMF-based architectureo Modelio solution

● Quite promising results so far (according to our MoNoGe partners)

© AtlanMod ([email protected])© AtlanMod ([email protected])

Future Work

● DSL for metamodel extensiono Polish current textual syntax + toolingo Study other possible syntax(es) - e.g. graphical

● Validation of extension applicationo E.g. coherence/consistency at model-level

● More complex extension algebrao Combination/composition of base operators...

© AtlanMod ([email protected])© AtlanMod ([email protected])

Thanks for your attention!

● Questions? Comments?

● Contact persons:o Hugo Bruneliere - [email protected] Jokin Garcia - [email protected]