moskitt extensibility. mutatis mutandis

Post on 13-Jun-2015

772 Views

Category:

Technology

4 Downloads

Preview:

Click to see full reader

DESCRIPTION

Description of extension capabilities of the MOSKitt tool (http://www.moskitt.org)

TRANSCRIPT

M OSKitt ExtensibilityM OSKitt Extensibility““mutatis mutandis”mutatis mutandis”

Javier Muñoz, Francisco Javier Cano{jmunoz, fjcano}@prodevelop.es

Contents• Introduction

• Adapting the Method

• Adapting the Editors

• Adapting the Transformations

• Conclusions

Contents• Introduction

• Adapting the Method

• Adapting the Editors

• Adapting the Transformations

• Conclusions

Motivation• Every organization is different

Internal culture

Background and experience

Goals and expectations

• All the organizations change New responsibilities and goals

Continuous improvement

h t t p ://w w w .sx c .h u /p h o t o /98441 8

How to tailor MO SKitt to every specific context?

h t t p ://w w w .f l ic k r .c o m /p h o t o s/83476873@ N 00/1 1 0993877/

How to adapt?• Adding tools

New editors

New transformations

• Modifying tools Changing code + recompile branching→

➢ Hard to maintain and evolve :(

Dynamic extensions mechanisms

➢ Implementing and declaring new functionality

➢ Existing code must be ready

➢ Tools remains untouchedh t t p ://w w w .sx c .h u /p h o t o /1 1 52 1 27

Extension Points

HostPlugin

Plugin B

Plugin C

Plugin Z

.

.

.

Extension Points

What to adapt? Cheatsheets Contextual help

The Method Method contents Creation wizards

The Editors Model templates Palette

Extended Properties Graphical decorators

The Transformations Transf. override Synchronization

Contents• Introduction

• Adapting the Method

• Adapting the Editors

• Adapting the Transformations

• Conclusions

Method contents• Changing method steps

Method contents• Changing method steps

Creation Wizards• Specific actions on project creation

Creation Wizards

Cheatsheets

• What is a cheatsheet?1. Defines step by step

instructions to perform a task.

2. Steps can have instructions and actions.

3. Some steps can be ommitted.

Cheatsheets• How to use a cheatsheet in your

methodology:

1. Create the cheatsheet with the Eclipse editor

Cheatsheets2. Contribute the cheatsheet with the

'org.eclipse.ui.cheatsheets.cheatsheetContent' extension point

Cheatsheet3. Add the 'OpenCheatsheetAction' to one of

your task in a dashboard:

4. Select a cheatsheet for the action in the property sheets:

Cheatsheet• The cheatsheet will be available from the

task in the dashboard and the cheatsheet selection dialog:

Contextual help• GMF editors and FEFEM editors show help depending

on the selected element

• Third party plugins can contribute help contents to this system

FEFEM ed i t o r w it h e lem en t se le c t e dC o n e x t u al h e lp sh o w in g h e lp co n t e n t s fo r t h e

se le c t e d e lem en t

Contextual help• How to contribute contextual help

to MOSKitt:1. Create your context help file:

Contextual help2. Contribute your contextual help via the

'org.eclipse.help.contexts' extension point.

Contents• Introduction

• Adapting the Method

• Adapting the Editors

• Adapting the Transformations

• Conclusions

Model Templates• Initial model contents

Model Templates• Initial model contents

Palette customization• Change groups and tools names in a palette.

• Move tools from one group to another.

• Create and remove groups and tools from a palette.

Fu l l e d i t o r 's p ale t t e

C u st o m ize d e d i t o r 's p ale t t e

Palette customization

1. Define the customization via the 'es.cv.gvcase.mdt.common.editorPalette' extension point

Palette customization• 'Group' element:

adding a new group change an existing group's name removing a group

Palette customization

• 'Tool' element changing a tool's name moving an existing tool between groups removing a tool

Extended properties

• Adding new properties to existing entities

• Editing the properties with property sections

• Keeping compatibility with non-extended versions

Extended properties1. Define your properties via the

'es.cv.gvcase.mdt.common.featureExtender' extension point.

Extended properties2. Define

property type:➢ Integer

➢ Double

➢ Boolean

➢ String

➢ Reference

minimum multiplicity maximum multiplicity

Extended properties3. Define

Extended elements (AdaptTo): Candidate values ('AvailableValue')

Extended properties4. Implement and define property sections using

available infraestructure:

Integer Properties

String Properties

Double Properties

Collection Properties

References Properties

Graphical decorators

• Provide decorations to figures in GMF editors

• Contribute the decorators from third party plugins

• Easyly use icons and images to decorate figures

A decorated ClassA normal Class

Graphical decorators

Contents• Introduction

• Adapting the Method

• Adapting the Editors

• Adapting the Transformations

• Conclusions

Transformation Override

• Define higher priority transformations

Transformation Override

• Define higher priority transformations

Synchronization• Specific actions on traced models changes

Traces between“X.uml” and

“Y.sqlschema”

1.- on changein input

2.- updatetraced models

Synchronization• Specific actions on traced models changes

Contents• Introduction

• Adapting the Method

• Adapting the Editors

• Adapting the Transformations

• Conclusions

h t t p ://w w w .f l ic k r .c o m /p h o t o s/851 691 1 8@ N 00/93296381 /

• Many adaptation chances

• Ready to fit into your

organization

• We want to hear your

feedback

• What do you miss?

Conclusions

M OSKitt ExtensibilityM OSKitt Extensibility““mutatis mutandis”mutatis mutandis”

Javier Muñoz, Francisco Javier Cano{jmunoz, fjcano}@prodevelop.es

• You are free: to share — to copy, distribute and transmit the work

to Remix — to adapt the work

• Under the following conditions: Attribution — You must attribute the work in the manner specified by the

author or licensor (but not in any way that suggests that they endorse you or your use of the work).

Noncommercial — You may not use this work for commercial purposes.

Share Alike — If you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one

Creative CommonsAttribution-Noncommercial-Share Alike 3.0

Unported

h t t p ://c r e at iv e c o m m o n s.o r g/l ic e n se s/b y-n c-sa/3.0/

top related