SlideShare uma empresa Scribd logo
1 de 45
Baixar para ler offline
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/

Mais conteúdo relacionado

Semelhante a MOSKitt Extensibility. Mutatis mutandis

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 ProjectsMike Long
 
Chapter 4_Introduction to Patterns.ppt
Chapter 4_Introduction to Patterns.pptChapter 4_Introduction to Patterns.ppt
Chapter 4_Introduction to Patterns.pptRushikeshChikane1
 
Chapter 4_Introduction to Patterns.ppt
Chapter 4_Introduction to Patterns.pptChapter 4_Introduction to Patterns.ppt
Chapter 4_Introduction to Patterns.pptRushikeshChikane2
 
Modern Software Architecture
Modern Software Architecture Modern Software Architecture
Modern Software Architecture Ahmed Marzouk
 
Few minutes To better Code - Refactoring
Few minutes To better Code - RefactoringFew minutes To better Code - Refactoring
Few minutes To better Code - RefactoringDiaa Al-Salehi
 
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...AWS Chicago
 
Project Tools in Web Development
Project Tools in Web DevelopmentProject Tools in Web Development
Project Tools in Web Developmentkmloomis
 
Deployment is the new build
Deployment is the new buildDeployment is the new build
Deployment is the new buildAndrew Phillips
 
Git Going w/ Git
Git Going w/ GitGit Going w/ Git
Git Going w/ GitheyMP
 
Staging and Deployment
Staging and DeploymentStaging and Deployment
Staging and Deploymentheyrocker
 
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 InheritanceBlue Elephant Consulting
 
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...Chocolatey Software
 
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...Michel Buczynski
 
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 Sciencesdclsocialmedia
 
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 ContributorsNikolaos Tsantalis
 
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 PlanSuite Solutions
 

Semelhante a 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
 

Mais de Javier Muñoz

Mecanismos de Persistencia en Android
Mecanismos de Persistencia en AndroidMecanismos de Persistencia en Android
Mecanismos de Persistencia en AndroidJavier Muñoz
 
Taller Práctico de Android
Taller Práctico de AndroidTaller Práctico de Android
Taller Práctico de AndroidJavier Muñoz
 
MOSKitt UIM (short description)
MOSKitt UIM (short description)MOSKitt UIM (short description)
MOSKitt UIM (short description)Javier Muñoz
 
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 SoftwareJavier Muñoz
 
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 MOSKittJavier Muñoz
 
MOSKitt Transformations And Traceability
MOSKitt Transformations And TraceabilityMOSKitt Transformations And Traceability
MOSKitt Transformations And TraceabilityJavier Muñoz
 

Mais de 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
 

Último

A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
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 Processorsdebabhi2
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
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)wesley chun
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
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 BusinessPixlogix Infotech
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
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...Drew Madelung
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 

Último (20)

A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
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
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
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)
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
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
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
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...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 

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/