Upload
thane
View
27
Download
0
Embed Size (px)
DESCRIPTION
Generative Software Development Lab http://gp.uwaterloo.ca. Round-trip Engineering of Eclipse Plug-ins using Eclipse Workbench Part Interaction FSML. Micha ł Antkiewicz , Krzysztof Czarnecki {mantkiew, kczarnec}@swen.uwaterloo.ca OOPSLA’06. Outline. Eclipse Workbench Part Interaction (WPI) - PowerPoint PPT Presentation
Citation preview
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 Labhttp://gp.uwaterloo.ca
Outline
Eclipse Workbench Part Interaction (WPI) Domain Models
Framework-Specific Modeling Languages (FSMLs) WPI FSML
Round-trip engineering Prototype demonstration
CompilationUnit editor
ContentOutline view
PageSelectionServicePartService
Workbench
requires adapter
provides selection
listens to selections
listens to parts
The model and the code
Framework Code Workbench PartService PageSelectionService
Completion Code CompilationUnit.java ContentOutline.java plugin.xml
CompilationUnit editor
ContentOutline view
PageSelectionServicePartService
requires adapter
provides selection
listens to selections
listens to parts
WPI Model
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
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
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
Agile Round-Trip Engineering
framework completion code
asserted model
reverseengineering
implementation model
comparison
Java FSMLlast-reconciled model
identified changes
persistent artifact temporary artifact data flow automatic process
Prototype Demonstration
Eclipse Workbench Part Interaction FSML
Reverse Engineering
Create a model for existing code
Model-Code Reconciliation
Reconcile changes made to the model and to the code
Specification of a new editor
Create new instance of editor in the model and create implementation in the code
Specification of a new requires adapter interaction
Create new instance of requires adapter interaction in the model and create implementation in the code
Implementation of a new listens to selections interaction
Create new instance of listens to selections interaction in the code and update the model
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.
Reconfiguration of existing editor. Addition of multiPage feature
Add multiPage feature to the editor. Enforce the feature in the code.
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
Resources
Framework-Specific Modeling Languages with Round-Trip Engineering. MoDELS’06
On-line demonstration, Technical Reporthttp://gp.uwaterloo.ca/
Round-Trip Engineering of Eclipse Plug-ins Using Eclipse Workbench Part Interaction FSML. OOPSLA’06
Questions?