Download presentation
Presentation is loading. Please wait.
Published byReynold Lawrence Modified over 9 years ago
1
Round-trip Engineering of Eclipse Plug-ins using Eclipse Workbench Part Interaction FSML Michał Antkiewicz, Krzysztof Czarnecki {mantkiew, kczarnec}@swen.uwaterloo.ca OOPSLA’06 Generative Software Development Lab http://gp.uwaterloo.ca
2
Outline Eclipse Workbench Part Interaction (WPI) Domain Models Framework-Specific Modeling Languages (FSMLs) WPI FSML Round-trip engineering Prototype demonstration
3
CompilationUnit editor ContentOutline view PageSelectionServicePartService Workbench requires adapter provides selection listens to selections listens to parts
4
The model and the code Framework Code Workbench PartService PageSelectionService Completion Code CompilationUnit.java ContentOutline.java plugin.xml CompilationUnit editor ContentOutline view PageSelectionService PartService requires adapter provides selection listens to selections listens to parts WPI Model
5
Eclipse Workbench Part Interaction FSML A Framework-Specific Modeling Language Is a Domain-Specific Modeling Language Designed for an area of concern (e.g., Part Interaction) of an OO framework (e.g., Eclipse Workbench) WPI FSML defines Concepts (e.g., editor, view, requires adapter) Features (e.g., implementsIEditorPart, partId, multiPage) Mappings concepts, features and framework API forward & reverse
6
Example Concept: editor Implementation steps and choices made explicit Every editor is a class with a name and qualifier Every editor has to implement IEditorPart interface An editor can optionally be multi- page, in which case it has to extend MultiPageEditorPart Optional contributor of a multi-page editor, if present, has to extend MultiPageActionBarContributor
7
Example Concept Instance Concept defines all valid concept instances selected partId feature and provided value eliminated multiPage feature Class testPlugin.ui.SampleEditor implements the instance
8
Agile Round-Trip Engineering framework completion code asserted model reverse engineering implementation model comparison JavaFSML last- reconciled model identified changes persistent artifacttemporary artifact data flow automatic process
9
Prototype Demonstration Eclipse Workbench Part Interaction FSML
10
Reverse Engineering Create a model for existing code
11
Model-Code Reconciliation Reconcile changes made to the model and to the code
12
Specification of a new editor Create new instance of editor in the model and create implementation in the code
13
Specification of a new requires adapter interaction Create new instance of requires adapter interaction in the model and create implementation in the code
14
Implementation of a new listens to selections interaction Create new instance of listens to selections interaction in the code and update the model
15
Fixing broken instance of the listens to selections interaction Remove implementation of a mandatory feature sourceDeregistersWithService. Update and validate the model and fix the error.
16
Reconfiguration of existing editor. Addition of multiPage feature Add multiPage feature to the editor. Enforce the feature in the code.
17
Conclusion Prototype of WPI FSML FSMLs enable automatic round-trip engineering Lightweight modeling Keeping the model and the code consistent Allowing customization FSMLs help with framework-instantiation Creating, modifying and recognizing concept instances in the code
18
Resources Framework-Specific Modeling Languages with Round-Trip Engineering. MoDELS’06 On-line demonstration, Technical Report http://gp.uwaterloo.ca/ http://gp.uwaterloo.ca/ Round-Trip Engineering of Eclipse Plug-ins Using Eclipse Workbench Part Interaction FSML. OOPSLA’06
19
Questions?
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.