1. M O SKitt Extensibility
“mutatis mutandis”
Javier Muñoz, Francisco Javier Cano
{jmunoz, fjcano}@prodevelop.es
2. Contents
• Introduction
• Adapting the Method
• Adapting the Editors
• Adapting the Transformations
• Conclusions
3. Contents
• Introduction
• Adapting the Method
• Adapting the Editors
• Adapting the Transformations
• Conclusions
4. 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
5. H ow to tailor M O SK itt to
every specific context?
h t t p ://w w w .flick r .c o m /p h o t o s/8 3 4 7 68 7 3 @ N 00/1 1 099 3 8 7 7/
6. 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 untouched
h t t p ://w w w .sx c .h u /p h o t o /1 1 52 1 2 7
15. 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.
16. Cheatsheets
• How to use a cheatsheet in your
methodology:
1. Create the
cheatsheet with
the Eclipse
editor
18. Cheatsheet
3. Add the 'OpenCheatsheetAction' to one of
your task in a dashboard:
4. Select a cheatsheet for the action in the
property sheets:
19. Cheatsheet
• The cheatsheet will be available from the
task in the dashboard and the cheatsheet
selection dialog:
20. Contextual help
• GMF editors and FEFEM editors show help depending
on the selected element
• Third party plugins can contribute help contents to
this system
C o n e x t u al h e lp sh o w in g h e lp c o n t e n t s fo r t h e
FEFEM e d it o r w it h e le m e n t se le c t e d se le c t e d e le m e n t
21. Contextual help
• How to contribute contextual help
to MOSKitt:
1. Create your context help file:
26. Palette customization
• names ingroups and tools
Change
a palette.
• to another. from one group
Move tools
Create and remove groups
• and tools from a palette.
C u st o m ize d
e d it o r 's p ale t t e
Fu ll e d it o r 's p ale t t e
28. Palette customization
• 'Group' element:
adding a new group
change an existing group's name
removing a group
29. Palette customization
• 'Tool' element
changing a tool's name
moving an existing tool between groups
removing a tool
30. Extended properties
• Adding new properties to existing entities
• Editing the properties with property sections
• Keeping compatibility with non-extended
versions
34. Extended properties
4. Implement and define property sections using
available infraestructure:
Double Properties
Collection Properties
String Properties
References Properties
Integer Properties
35. 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 normal Class A decorated Class
40. Synchronization
• Specific actions on traced models changes
Traces between
“X.uml” and
“Y.sqlschema”
1.- on change 2.- update
in input traced models
42. Contents
• Introduction
• Adapting the Method
• Adapting the Editors
• Adapting the Transformations
• Conclusions
43. Conclusions
• Many adaptation chances
• Ready to fit into your
organization
• We want to hear your
feedback
• What do you miss?
h t t p ://w w w .flick r .c o m /p h o t o s/8 5 1 6 91 1 8 @ N 00/9 3 2 96 3 8 1 /
44. M O SKitt Extensibility
“mutatis mutandis”
Javier Muñoz, Francisco Javier Cano
{jmunoz, fjcano}@prodevelop.es
45. Creative Commons
Attribution-Noncommercial-Share Alike 3.0
Unported
• 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
h t t p ://c r e at iv e c o m m o n s.o r g/lic e n se s/b y -n c -sa/3.0/