+ All Categories
Home > Documents > Adele / OSATE Synchronization - SEI External Wiki Home · PDF fileAdele / OSATE...

Adele / OSATE Synchronization - SEI External Wiki Home · PDF fileAdele / OSATE...

Date post: 30-Jan-2018
Category:
Upload: vankhanh
View: 220 times
Download: 0 times
Share this document with a friend
42
1 Adele / OSATE Synchronization Dominique Blouin* Alain Plantec* Pierre Dissaux Franck Singhoff* *Lab-STICC, Université de Bretagne Occidentale Brest, France Ellidiss Technologies
Transcript
Page 1: Adele / OSATE Synchronization - SEI External Wiki Home · PDF fileAdele / OSATE Synchronization ... Implemented as an Xtext fragment provider using qualified names. ... the Xtext editor

1

Adele / OSATE Synchronization

Dominique Blouin*

Alain Plantec*

Pierre Dissaux†

Franck Singhoff*

*Lab-STICC, Université de Bretagne Occidentale

Brest, France †Ellidiss Technologies

Page 2: Adele / OSATE Synchronization - SEI External Wiki Home · PDF fileAdele / OSATE Synchronization ... Implemented as an Xtext fragment provider using qualified names. ... the Xtext editor

AADL Standards Meeting, July 9th, 2013Adele / OSATE Model Synchronization

2

Project Summary

Adele / OSATE Synchronization Layer

Difficulties in Synchronization Layer Development

TOPCASED Modeling Framework

Issues with Adele and OSATE

Next Work

Conclusion

Agenda

Page 3: Adele / OSATE Synchronization - SEI External Wiki Home · PDF fileAdele / OSATE Synchronization ... Implemented as an Xtext fragment provider using qualified names. ... the Xtext editor

AADL Standards Meeting, July 9th, 2013Adele / OSATE Model Synchronization

3

Graphical editor for AADL developed by Ellidiss.

Stores AADL models in its own format (meta-model).

AADL code generated from the Adele model (on demand by user).

Built on top of the TOPCASED Modeling Framework (TMF).

The Adele Graphical Editor

Page 4: Adele / OSATE Synchronization - SEI External Wiki Home · PDF fileAdele / OSATE Synchronization ... Implemented as an Xtext fragment provider using qualified names. ... the Xtext editor

AADL Standards Meeting, July 9th, 2013Adele / OSATE Model Synchronization

4

Does not cover the complete AADL V2 language.◦ Modes

◦ Flows

◦ Prototypes

◦ Etc.

Would require a significant additional development effort to cover all AADL language.◦ Is it really needed, knowing that some AADL constructs are better edited

in text.

Solution: develop a seamless integration between the tools.◦ Use OSATE for textual edition.

◦ Use Adele for graphical edition.

◦ Replace existing code generation with state of the art model synchronization techniques.

Adele Issues

Page 5: Adele / OSATE Synchronization - SEI External Wiki Home · PDF fileAdele / OSATE Synchronization ... Implemented as an Xtext fragment provider using qualified names. ... the Xtext editor

AADL Standards Meeting, July 9th, 2013Adele / OSATE Model Synchronization

5

10 months project (funded by US Army USAITC-A grant).

Objectives:◦ Develop a synchronization layer between Adele and OSATE:

Bi-directional.

Real synchronization; do not regenerate the objects but update them to maintain consistency.

Transparent for the user.

◦ Make the synchronization layer reusable as much as possible for integration of other tools with OSATE.

◦ Implement some missing AADL constructs if time allows:

Modes.

Flows.

Etc…

The Adele Joint Project

Page 6: Adele / OSATE Synchronization - SEI External Wiki Home · PDF fileAdele / OSATE Synchronization ... Implemented as an Xtext fragment provider using qualified names. ... the Xtext editor

AADL Standards Meeting, July 9th, 2013Adele / OSATE Model Synchronization

6

Project Summary

Adele / OSATE Synchronization Layer

Difficulties in Synchronization Layer Development

TOPCASED Modeling Framework

Issues with Adele and OSATE

Next Work

Conclusion

Agenda

Page 7: Adele / OSATE Synchronization - SEI External Wiki Home · PDF fileAdele / OSATE Synchronization ... Implemented as an Xtext fragment provider using qualified names. ... the Xtext editor

AADL Standards Meeting, July 9th, 2013Adele / OSATE Model Synchronization

Adele Kernel

Adele Specialization

Properties Configuration (ODS)

Invariant

LanguageDependent

ProjectDependent

Adele Meta-Model

Page 8: Adele / OSATE Synchronization - SEI External Wiki Home · PDF fileAdele / OSATE Synchronization ... Implemented as an Xtext fragment provider using qualified names. ... the Xtext editor

AADL Standards Meeting, July 9th, 2013Adele / OSATE Model Synchronization

Component Implementation

Subcomponent

*

1

1

*

classifier

InstanceMulti-levelsHierarchy

Component Implementation

Subcomponent

1

*

1

1

classifier

Declarative

(like textual AADL)

Adele Kernel Layers

Valid for any hierarchical box-arrow diagram.

Supports editing of both the declarative and instance models

Page 9: Adele / OSATE Synchronization - SEI External Wiki Home · PDF fileAdele / OSATE Synchronization ... Implemented as an Xtext fragment provider using qualified names. ... the Xtext editor

AADL Standards Meeting, July 9th, 2013Adele / OSATE Model Synchronization

a_system.i

x: a_process.i

y: a_process.i

a_thread.i

a_process.i

x: a_thread.i

y: a_thread.i

a_system.i

a_system.i.x

a_system.i.y

a_system.i.x.x

a_system.i.x.y

a_system.i.y.x

a_system.i.y.y

Declarative

Bottom-up Modeling

Instance

Top-down Modeling

Impact on Diagrams

Page 10: Adele / OSATE Synchronization - SEI External Wiki Home · PDF fileAdele / OSATE Synchronization ... Implemented as an Xtext fragment provider using qualified names. ... the Xtext editor

AADL Standards Meeting, July 9th, 2013Adele / OSATE Model Synchronization

Adele Meta-Model

48 classes (7 in Kernel and 41 in specialization layer).

Implements the AADL categories as specializations of kernel entities:◦ Components

◦ Features

◦ Connections

Makes changes of the AADL standard easy to handle.◦ Example: moving from AADL v1 to AADL v2.

Enables flexible addition of graphical sub-languages.◦ Example: Behavior Annex states-transitions.

Enables support of other DSMLs.

Page 11: Adele / OSATE Synchronization - SEI External Wiki Home · PDF fileAdele / OSATE Synchronization ... Implemented as an Xtext fragment provider using qualified names. ... the Xtext editor

AADL Standards Meeting, July 9th, 2013Adele / OSATE Model Synchronization

OSATE Meta-Model

273 classes (declarative model only).

Strongly typed (much more than Adele).◦ Stronger semantics.

E.g.: Rules for features.

Page 12: Adele / OSATE Synchronization - SEI External Wiki Home · PDF fileAdele / OSATE Synchronization ... Implemented as an Xtext fragment provider using qualified names. ... the Xtext editor

AADL Standards Meeting, July 9th, 2013Adele / OSATE Model Synchronization

OSATE Subcomponents Composition Rules

Page 13: Adele / OSATE Synchronization - SEI External Wiki Home · PDF fileAdele / OSATE Synchronization ... Implemented as an Xtext fragment provider using qualified names. ... the Xtext editor

AADL Standards Meeting, July 9th, 2013Adele / OSATE Model Synchronization

OSATE Meta-Model

273 classes (declarative model only).

Strongly typed (much more than Adele).◦ Stronger semantics.

OSATE:◦ Good for analyses.

Adele:◦ Good for diagramming.

Page 14: Adele / OSATE Synchronization - SEI External Wiki Home · PDF fileAdele / OSATE Synchronization ... Implemented as an Xtext fragment provider using qualified names. ... the Xtext editor

AADL Standards Meeting, July 9th, 2013Adele / OSATE Model Synchronization

14

Model Synchronization Tools

Very few tools can perform model synchronization.◦ The most well known tools are all based on Triple-Graph Grammars

(TGG).

Three main tools currently developed:◦ TGG Interpreter (University of Paderborn).

◦ eMoflon (Technische Universität Darmstadt).

◦ MoTE (Hasso-Plattner-Institute, University of Potsdam)

Compared in: ◦ A Survey of Triple Graph Grammar Tools. Stephan Hildebrandt et al.,

Proceedings of the Second International Workshop on Bidirectional Transformations, 2013.

Page 15: Adele / OSATE Synchronization - SEI External Wiki Home · PDF fileAdele / OSATE Synchronization ... Implemented as an Xtext fragment provider using qualified names. ... the Xtext editor

AADL Standards Meeting, July 9th, 2013Adele / OSATE Model Synchronization

15

Generic Architecture of TGG Tools

From Hildebrandt et al., 2013.

Page 16: Adele / OSATE Synchronization - SEI External Wiki Home · PDF fileAdele / OSATE Synchronization ... Implemented as an Xtext fragment provider using qualified names. ... the Xtext editor

AADL Standards Meeting, July 9th, 2013Adele / OSATE Model Synchronization

16

Comparison of Tools Features

All tools have their strengths and weaknesses and the best tool depends on the use case.

TGG interpreter and MoTE:◦ Are fully EMF based (like Adele and OSATE).

◦ Can perform model synchronization.

eMoflon:◦ Synchronization not implemented yet.

◦ Specification and integration environment defined as plugins of distinct tools.

TGG specification in Enterprise Architect.

Transformation integration in Eclipse EMF.

Operational rules implemented as EMF Java classes.

Page 17: Adele / OSATE Synchronization - SEI External Wiki Home · PDF fileAdele / OSATE Synchronization ... Implemented as an Xtext fragment provider using qualified names. ... the Xtext editor

AADL Standards Meeting, July 9th, 2013Adele / OSATE Model Synchronization

17

Performances

Both MoTE and eMoflon have good performances.

TGG interpreter about 10 times slower, but still remains fast.

From Hildebrandt et al., 2013.

Page 18: Adele / OSATE Synchronization - SEI External Wiki Home · PDF fileAdele / OSATE Synchronization ... Implemented as an Xtext fragment provider using qualified names. ... the Xtext editor

AADL Standards Meeting, July 9th, 2013Adele / OSATE Model Synchronization

18

Tool Selection

MoTE seems to be the best compromise for Adele / OSATE.

Fully EMF based like Adele and OSATE.

Fast.

Support available.

Version 2 under development.o Improved TGG expressivity and performances.

Transformation of TGG towards another tool should be possible since similar language.

Page 19: Adele / OSATE Synchronization - SEI External Wiki Home · PDF fileAdele / OSATE Synchronization ... Implemented as an Xtext fragment provider using qualified names. ... the Xtext editor

AADL Standards Meeting, July 9th, 2013Adele / OSATE Model Synchronization

19

TGG development environment.

A few rules and their corresponding Story Diagrams (SD).

Generation of SDs.

Synchronization at work.

Global Model Management.

Demo

Page 20: Adele / OSATE Synchronization - SEI External Wiki Home · PDF fileAdele / OSATE Synchronization ... Implemented as an Xtext fragment provider using qualified names. ... the Xtext editor

AADL Standards Meeting, July 9th, 2013Adele / OSATE Model Synchronization

20

Project Summary

Adele / OSATE Synchronization Layer

Difficulties in Synchronization Layer Development

TOPCASED Modeling Framework

Issues with Adele and OSATE

Next Work

Conclusion

Agenda

Page 21: Adele / OSATE Synchronization - SEI External Wiki Home · PDF fileAdele / OSATE Synchronization ... Implemented as an Xtext fragment provider using qualified names. ... the Xtext editor

AADL Standards Meeting, July 9th, 2013Adele / OSATE Model Synchronization

21

Features and subcomponents are duplicated in Adele:◦ From type in implementations and

subcomponents.

◦ From extended and refined types.

Useful for system edition mode.

Duplication handled by the Adele editor, as user navigates through the diagrams.

Connections refer to the duplicated features and subcomponents.

Adele Cloned Elements

Page 22: Adele / OSATE Synchronization - SEI External Wiki Home · PDF fileAdele / OSATE Synchronization ... Implemented as an Xtext fragment provider using qualified names. ... the Xtext editor

AADL Standards Meeting, July 9th, 2013Adele / OSATE Model Synchronization

22

The MoTE synchronization tool can perform batch transformations.◦ Used when no corresponding specification exists (e.g. the first time an

Adele diagram is saved).

Features and subcomponents must be duplicated at AADL to Adele transformation time to be able to transform connections.

The MoTE TGG language provides post-creation call actions◦ E.g.: Can call a Java method after the object is created.

Post-creation actions were not generated in the SD rules so we had to implement it.

Adele Cloned Elements (cont’d)

Page 23: Adele / OSATE Synchronization - SEI External Wiki Home · PDF fileAdele / OSATE Synchronization ... Implemented as an Xtext fragment provider using qualified names. ... the Xtext editor

AADL Standards Meeting, July 9th, 2013Adele / OSATE Model Synchronization

23

Model elements are often spread in different files (resources) and need to refer to each other:

Components of the instance model referring to types of the declarative model.

RDAL requirements assigned to AADL model elements.

Adele graphical model elements to Adele semantic model elements.

Traceability model used to synchronize Adele and OSATE.

Reference Problems

Page 24: Adele / OSATE Synchronization - SEI External Wiki Home · PDF fileAdele / OSATE Synchronization ... Implemented as an Xtext fragment provider using qualified names. ... the Xtext editor

AADL Standards Meeting, July 9th, 2013Adele / OSATE Model Synchronization

24

The Adele and OSATE meta-models do not identify any attribute in their classes that can be used as IDs for cross file references.

In such case, by default, EMF uses an indexes mechanism.

E.g. for instance to declarative model:<property

href="../../Plugin_Resources/SEI.aadl#//@ownedProperty.20"/>

As model elements are added or removed, all references to these elements are shifted and wrong elements are reffered.

Reference Problems (cont’d)

Page 25: Adele / OSATE Synchronization - SEI External Wiki Home · PDF fileAdele / OSATE Synchronization ... Implemented as an Xtext fragment provider using qualified names. ... the Xtext editor

AADL Standards Meeting, July 9th, 2013Adele / OSATE Model Synchronization

25

After discussion with Peter, it was decided to use a symbolic name mechanism to refer to AADL model elements of the declarative model.◦ Implemented as an Xtext fragment provider using qualified names.

◦ Next task could be to agree on file system independent URI for AADL specifications.

The Adele meta-model was reviewed to declare the existing id attribute as ecore ID, so that it could be used as reference.

Reference Problems (cont’d)

Page 26: Adele / OSATE Synchronization - SEI External Wiki Home · PDF fileAdele / OSATE Synchronization ... Implemented as an Xtext fragment provider using qualified names. ... the Xtext editor

AADL Standards Meeting, July 9th, 2013Adele / OSATE Model Synchronization

26

The MoTE tool operates on a root resource that is assumed to contain all model elements. ◦ Model objects that are not within the root resource are not matched.

This is obviously not the case for the AADL.

A workaround (as suggested by the MoTE team) consists of treating the external references as attribute assignments.◦ Implement a translation function between Adele and AADL model

elements in Java.

In the long term, the tool could be adapted to handle cross file references in a transparent way.

Cross File References in MoTE

Page 27: Adele / OSATE Synchronization - SEI External Wiki Home · PDF fileAdele / OSATE Synchronization ... Implemented as an Xtext fragment provider using qualified names. ... the Xtext editor

AADL Standards Meeting, July 9th, 2013Adele / OSATE Model Synchronization

27

The expressivity of the TGG language needs to be improved.◦ The Adele / AADL grammar contains more about 150 rules.

◦ Many are just duplicated for each component category.

◦ E.g.: The set Adele / AADL TGG rules for component type features:

TGG Language Expressivity Issues

Page 28: Adele / OSATE Synchronization - SEI External Wiki Home · PDF fileAdele / OSATE Synchronization ... Implemented as an Xtext fragment provider using qualified names. ... the Xtext editor

AADL Standards Meeting, July 9th, 2013Adele / OSATE Model Synchronization

28

Currently, Java classes are developed to duplicate the rules automatically.

A TGG rule inheritance mechanism would be nice.

Rules Duplication (cont’d)

Page 29: Adele / OSATE Synchronization - SEI External Wiki Home · PDF fileAdele / OSATE Synchronization ... Implemented as an Xtext fragment provider using qualified names. ... the Xtext editor

AADL Standards Meeting, July 9th, 2013Adele / OSATE Model Synchronization

29

MoTE requires to maintain the object instances for synchronization.

EMF Compare Issues

Page 30: Adele / OSATE Synchronization - SEI External Wiki Home · PDF fileAdele / OSATE Synchronization ... Implemented as an Xtext fragment provider using qualified names. ... the Xtext editor

AADL Standards Meeting, July 9th, 2013Adele / OSATE Model Synchronization

30

Some editors like do not maintain the objects references when edited.◦ E.g.: the Xtext editor repars-es the objects every time the document is

modified.

We use EMF Compare to merge the changes from outside intethe MoTE resources cache (resource set).

Two issues have been discovered in EMF compare.

EMF Compare Issues (cont’d)

Page 31: Adele / OSATE Synchronization - SEI External Wiki Home · PDF fileAdele / OSATE Synchronization ... Implemented as an Xtext fragment provider using qualified names. ... the Xtext editor

AADL Standards Meeting, July 9th, 2013Adele / OSATE Model Synchronization

31

Error in counting the non null features: ◦ AADL no-like features (noFeatures(), noSubcomponents, noConnections,

etc.) always counted as set.

◦ Use Ecore eIsSet instead of testing null value.

Error in merging references to newly created object with deep hierarchy:◦ Reference is set as the object of the source resource while it should refer

the merged target resource.

◦ Issue currently being fixed.

EMF Compare Issues (cont’d)

Page 32: Adele / OSATE Synchronization - SEI External Wiki Home · PDF fileAdele / OSATE Synchronization ... Implemented as an Xtext fragment provider using qualified names. ... the Xtext editor

AADL Standards Meeting, July 9th, 2013Adele / OSATE Model Synchronization

32

The transformation of TGG rules into story diagrams does not seem to scale very well.

No incremental compilation of TGGs implemented in MoTE.

Investigated how is could be implemented.◦ Reference problem again.

◦ The SD use UUIDs and reference from existing SD to regenerated SD are broken.

◦ Using symbolic ID’s like AADL would fix the problem.

MoTE Tooling

Page 33: Adele / OSATE Synchronization - SEI External Wiki Home · PDF fileAdele / OSATE Synchronization ... Implemented as an Xtext fragment provider using qualified names. ... the Xtext editor

AADL Standards Meeting, July 9th, 2013Adele / OSATE Model Synchronization

33

Project Summary

Adele / OSATE Synchronization Layer

Difficulties in Synchronization Layer Development

TOPCASED Modeling Framework

Issues with Adele and OSATE

Next Work

Conclusion

Agenda

Page 34: Adele / OSATE Synchronization - SEI External Wiki Home · PDF fileAdele / OSATE Synchronization ... Implemented as an Xtext fragment provider using qualified names. ... the Xtext editor

AADL Standards Meeting, July 9th, 2013Adele / OSATE Model Synchronization

34

Developed a lightweight version of TMF.◦ Removed dependencies on Papyrus and other plugins.

Old Eclipse update manager (before P2).

Now using our own branch of TMF (TMF2).

A few issues were fixed:◦ Dependency problem in the code generator for the Juno platform.

Improved TMF features:◦ Specification of super class of generated code in model.

◦ Specification of container feature of semantic model elements for graphical elements.

TOPCASED Modeling Framework Light

Page 35: Adele / OSATE Synchronization - SEI External Wiki Home · PDF fileAdele / OSATE Synchronization ... Implemented as an Xtext fragment provider using qualified names. ... the Xtext editor

AADL Standards Meeting, July 9th, 2013Adele / OSATE Model Synchronization

35

Project Summary

Adele / OSATE Synchronization Layer

Difficulties in Synchronization Layer Development

TOPCASED Modeling Framework

Issues with Adele and OSATE

Next Work

Conclusion

Agenda

Page 36: Adele / OSATE Synchronization - SEI External Wiki Home · PDF fileAdele / OSATE Synchronization ... Implemented as an Xtext fragment provider using qualified names. ... the Xtext editor

AADL Standards Meeting, July 9th, 2013Adele / OSATE Model Synchronization

36

The Adele meta-model has been reviewed before developing the TGG:◦ Cleaned the dependencies on Adele in the SPICES kernel.

◦ Removed the “ADELE_” prefix from the meta-model class names.

TMF editor models updated and editor regenerated.

◦ Make use of opposite reference mechanism for parent / children.

◦ Reference problem.

Other various issues have been fixed:◦ Synchronization between semantic and graphical models.

◦ Load resource action.

◦ Connection legality rules between ports.

Other minor issues with OSATE is addition to the reference problem.

Adele / OSATE Issues

Page 37: Adele / OSATE Synchronization - SEI External Wiki Home · PDF fileAdele / OSATE Synchronization ... Implemented as an Xtext fragment provider using qualified names. ... the Xtext editor

AADL Standards Meeting, July 9th, 2013Adele / OSATE Model Synchronization

37

Project Summary

Adele / OSATE Synchronization Layer

Difficulties in Synchronization Layer Development

TOPCASED Modeling Framework

Issues with Adele and OSATE

Next Work

Conclusion

Agenda

Page 38: Adele / OSATE Synchronization - SEI External Wiki Home · PDF fileAdele / OSATE Synchronization ... Implemented as an Xtext fragment provider using qualified names. ... the Xtext editor

AADL Standards Meeting, July 9th, 2013Adele / OSATE Model Synchronization

38

EMF Compare issue.

Adele / OSATE Synchronization Layer:◦ Feature refinement.

◦ Complete connection rules.

◦ With clause.

◦ System edition mode.

◦ Functional tests.

◦ Documentation.

◦ Private / public package sections.

◦ Comments problem.

Adele:◦ Synchronization of the semantic and graphical models.

◦ Feature group declarations and classifier management.

◦ Flows, Modes, etc.

Next Work

Page 39: Adele / OSATE Synchronization - SEI External Wiki Home · PDF fileAdele / OSATE Synchronization ... Implemented as an Xtext fragment provider using qualified names. ... the Xtext editor

AADL Standards Meeting, July 9th, 2013Adele / OSATE Model Synchronization

39

Potential work on MoTE:◦ Partial TGG grammar compilation.

Adele sources and releases will be hosted at Ellidiss.

Next Work (cont’d)

Page 40: Adele / OSATE Synchronization - SEI External Wiki Home · PDF fileAdele / OSATE Synchronization ... Implemented as an Xtext fragment provider using qualified names. ... the Xtext editor

AADL Standards Meeting, July 9th, 2013Adele / OSATE Model Synchronization

40

Project Summary

Adele / OSATE Synchronization Layer

Difficulties in Synchronization Layer Development

TOPCASED Modeling Framework

Issues with Adele and OSATE

Next Work

Conclusion

Agenda

Page 41: Adele / OSATE Synchronization - SEI External Wiki Home · PDF fileAdele / OSATE Synchronization ... Implemented as an Xtext fragment provider using qualified names. ... the Xtext editor

AADL Standards Meeting, July 9th, 2013Adele / OSATE Model Synchronization

41

The development of the synchronization layer required a lot of effort.

Several open-source frameworks / tools required to be improved:◦ TMF

◦ Adele

◦ MoTE

◦ OSATE

Probably the first complete synchronization use-case with TGG.

Conclusion

Page 42: Adele / OSATE Synchronization - SEI External Wiki Home · PDF fileAdele / OSATE Synchronization ... Implemented as an Xtext fragment provider using qualified names. ... the Xtext editor

AADL Standards Meeting, July 9th, 2013Adele / OSATE Model Synchronization

42

MoTE is a great tool but could benefit from a few improvements to reduce synchronization layer development effort.◦ Cross-file reference.

◦ Rule inheritance.

◦ Incremental compilation of TGGs.

The result is promising since model integration is a recurrent problem.

Many of the efforts spent on Adele / OSATE synchronization can be reused for other tools.

Conclusion (cont’d)


Recommended