SlideShare ist ein Scribd-Unternehmen logo
1 von 45
Downloaden Sie, um offline zu lesen
M O SKitt Extensibility
       “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
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/
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
Extension Points
         Plugin B




         Plugin C

 Host      .
Plugin     .
           .


         Plugin Z
Extension Points
What to adapt?
 The Method
 
     Method contents        
                                Cheatsheets
 
     Creation wizards
                            
                                Contextual help



 The Editors
 
     Model templates    
                                Extended Properties
 
     Palette
                        
                                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
Cheatsheets
2. Contribute the cheatsheet with the
   'org.eclipse.ui.cheatsheets.cheatsheetCo
   ntent' extension point
Cheatsheet
3. 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




                                                           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
Contextual help
•   How to contribute contextual help
    to MOSKitt:
    1. Create your context help file:
Contextual help
2. 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
• 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
Palette customization
1. Define the customization via the
'es.cv.gvcase.mdt.common.editorPalet
te' 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 properties
1. Define     your    properties   via   the
   'es.cv.gvcase.mdt.common.featureExtender'
   extension point.
Extended properties
2. Define
         property type:
      ➢      Integer
      ➢      Double
      ➢      Boolean
      ➢      String
      ➢      Reference
         minimum multiplicity
         maximum multiplicity
Extended properties
3. Define
     Extended elements (AdaptTo):
     Candidate values ('AvailableValue')
Extended properties
4. Implement and define property sections using
   available infraestructure:




       Double Properties


                                Collection Properties




     String Properties




                                References Properties

     Integer 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 normal Class          A decorated 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 change                2.- update
             in input                traced models
Synchronization
•   Specific actions on traced models changes
Contents
•   Introduction

•   Adapting the Method

•   Adapting the Editors

•   Adapting the Transformations

•   Conclusions
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 /
M O SKitt Extensibility
       “mutatis mutandis”

Javier Muñoz, Francisco Javier Cano
     {jmunoz, fjcano}@prodevelop.es
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/

Weitere ähnliche Inhalte

Ähnlich wie MOSKitt Extensibility. Mutatis mutandis

Project Tools in Web Development
Project Tools in Web DevelopmentProject Tools in Web Development
Project Tools in Web Development
kmloomis
 

Ähnlich wie MOSKitt Extensibility. Mutatis mutandis (20)

Cleaning Code - Tools and Techniques for Large Legacy Projects
Cleaning Code - Tools and Techniques for Large Legacy ProjectsCleaning Code - Tools and Techniques for Large Legacy Projects
Cleaning Code - Tools and Techniques for Large Legacy Projects
 
Design p atterns
Design p atternsDesign p atterns
Design p atterns
 
Chapter 4_Introduction to Patterns.ppt
Chapter 4_Introduction to Patterns.pptChapter 4_Introduction to Patterns.ppt
Chapter 4_Introduction to Patterns.ppt
 
Chapter 4_Introduction to Patterns.ppt
Chapter 4_Introduction to Patterns.pptChapter 4_Introduction to Patterns.ppt
Chapter 4_Introduction to Patterns.ppt
 
Modern Software Architecture
Modern Software Architecture Modern Software Architecture
Modern Software Architecture
 
Few minutes To better Code - Refactoring
Few minutes To better Code - RefactoringFew minutes To better Code - Refactoring
Few minutes To better Code - Refactoring
 
CATIA V5 Lectures.ppt
CATIA V5 Lectures.pptCATIA V5 Lectures.ppt
CATIA V5 Lectures.ppt
 
CATIA Lectures.ppt
CATIA Lectures.pptCATIA Lectures.ppt
CATIA Lectures.ppt
 
Easing Cloud Migrations with Software Pipelines as a Service - Christopher J...
 Easing Cloud Migrations with Software Pipelines as a Service - Christopher J... Easing Cloud Migrations with Software Pipelines as a Service - Christopher J...
Easing Cloud Migrations with Software Pipelines as a Service - Christopher J...
 
Project Tools in Web Development
Project Tools in Web DevelopmentProject Tools in Web Development
Project Tools in Web Development
 
Deployment is the new build
Deployment is the new buildDeployment is the new build
Deployment is the new build
 
Git Going w/ Git
Git Going w/ GitGit Going w/ Git
Git Going w/ Git
 
Staging and Deployment
Staging and DeploymentStaging and Deployment
Staging and Deployment
 
Introduction To Design Patterns Class 4 Composition vs Inheritance
 Introduction To Design Patterns Class 4 Composition vs Inheritance Introduction To Design Patterns Class 4 Composition vs Inheritance
Introduction To Design Patterns Class 4 Composition vs Inheritance
 
Facilitating continuous delivery in a FinTech world with Salt, Jenkins, Nexus...
Facilitating continuous delivery in a FinTech world with Salt, Jenkins, Nexus...Facilitating continuous delivery in a FinTech world with Salt, Jenkins, Nexus...
Facilitating continuous delivery in a FinTech world with Salt, Jenkins, Nexus...
 
Facilitating continuous delivery in a FinTech world with Salt, Jenkins, Nexus...
Facilitating continuous delivery in a FinTech world with Salt, Jenkins, Nexus...Facilitating continuous delivery in a FinTech world with Salt, Jenkins, Nexus...
Facilitating continuous delivery in a FinTech world with Salt, Jenkins, Nexus...
 
Advantages of DITA for the Life Sciences
Advantages of DITA for the Life SciencesAdvantages of DITA for the Life Sciences
Advantages of DITA for the Life Sciences
 
From 1 to 100
From 1 to 100From 1 to 100
From 1 to 100
 
Why We Refactor? Confessions of GitHub Contributors
Why We Refactor? Confessions of GitHub ContributorsWhy We Refactor? Confessions of GitHub Contributors
Why We Refactor? Confessions of GitHub Contributors
 
DITA Quick Start Webinar Series: Building a Project Plan
DITA Quick Start Webinar Series: Building a Project PlanDITA Quick Start Webinar Series: Building a Project Plan
DITA Quick Start Webinar Series: Building a Project Plan
 

Mehr von Javier Muñoz (6)

Mecanismos de Persistencia en Android
Mecanismos de Persistencia en AndroidMecanismos de Persistencia en Android
Mecanismos de Persistencia en Android
 
Taller Práctico de Android
Taller Práctico de AndroidTaller Práctico de Android
Taller Práctico de Android
 
MOSKitt UIM (short description)
MOSKitt UIM (short description)MOSKitt UIM (short description)
MOSKitt UIM (short description)
 
MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software
MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del SoftwareMOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software
MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software
 
No más "programación copy&paste". Generación automática de código con MOSKitt
No más "programación copy&paste". Generación automática de código con MOSKittNo más "programación copy&paste". Generación automática de código con MOSKitt
No más "programación copy&paste". Generación automática de código con MOSKitt
 
MOSKitt Transformations And Traceability
MOSKitt Transformations And TraceabilityMOSKitt Transformations And Traceability
MOSKitt Transformations And Traceability
 

Kürzlich hochgeladen

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Kürzlich hochgeladen (20)

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 

MOSKitt Extensibility. Mutatis mutandis

  • 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
  • 7. Extension Points Plugin B Plugin C Host . Plugin . . Plugin Z
  • 9. What to adapt? The Method  Method contents  Cheatsheets  Creation wizards  Contextual help The Editors  Model templates  Extended Properties  Palette  Graphical decorators The Transformations  Transf. override  Synchronization
  • 10. Contents • Introduction • Adapting the Method • Adapting the Editors • Adapting the Transformations • Conclusions
  • 11. Method contents • Changing method steps
  • 12. Method contents • Changing method steps
  • 13. Creation Wizards • Specific actions on project creation
  • 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
  • 17. Cheatsheets 2. Contribute the cheatsheet with the 'org.eclipse.ui.cheatsheets.cheatsheetCo ntent' extension point
  • 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:
  • 22. Contextual help 2. Contribute your contextual help via the 'org.eclipse.help.contexts' extension point.
  • 23. Contents • Introduction • Adapting the Method • Adapting the Editors • Adapting the Transformations • Conclusions
  • 24. Model Templates • Initial model contents
  • 25. Model Templates • Initial model contents
  • 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
  • 27. Palette customization 1. Define the customization via the 'es.cv.gvcase.mdt.common.editorPalet te' extension point
  • 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
  • 31. Extended properties 1. Define your properties via the 'es.cv.gvcase.mdt.common.featureExtender' extension point.
  • 32. Extended properties 2. Define  property type: ➢ Integer ➢ Double ➢ Boolean ➢ String ➢ Reference  minimum multiplicity  maximum multiplicity
  • 33. Extended properties 3. Define  Extended elements (AdaptTo):  Candidate values ('AvailableValue')
  • 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
  • 37. Contents • Introduction • Adapting the Method • Adapting the Editors • Adapting the Transformations • Conclusions
  • 38. Transformation Override • Define higher priority transformations
  • 39. Transformation Override • Define higher priority transformations
  • 40. Synchronization • Specific actions on traced models changes Traces between “X.uml” and “Y.sqlschema” 1.- on change 2.- update in input traced models
  • 41. Synchronization • Specific actions on traced models changes
  • 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/