Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Papyrus/Oxygen Work Description/NewFeature/Papyrus4Toolsmiths"

(TODO)
 
(10 intermediate revisions by one other user not shown)
Line 1: Line 1:
  
 
==3 major layers for One Papyrus==
 
==3 major layers for One Papyrus==
 
  
 
Papyrus is a modeling environment, standards based, with specific Domain specific extension with many enablers [1].  
 
Papyrus is a modeling environment, standards based, with specific Domain specific extension with many enablers [1].  
Line 19: Line 18:
 
==Problematic==
 
==Problematic==
  
Badly, these different plugins belonging the Papyrus-TOOLSMITH are sparsed accross the whole Papyrus repository. Even if identified, a short analysis shows also they do not have exactly the same Technology Readiness Level based on their code quality, documentation, included tests, specific editors not only based on String, extension point provided.
+
Badly, these different plugins belonging the Papyrus-TOOLSMITH are scattered across the whole Papyrus repository. Even if identified, a short analysis shows also they do not have exactly the same Technology Readiness Level, analysis based on their code quality, documentation (uptodate or abscence), included (or not) tests, specific editors not only based on String, extension point provided.
  
To produce a usefull TOOLSMITHS, work will be splitted into 3 phases:
+
To produce a useful Papyrus-TOOLSMITHS, work will be splited into 3 phases ( with a military metaphor):
  
 
* Phase 1: Identify the Soldier
 
* Phase 1: Identify the Soldier
 
** list the plugins that could belong to the Papyrus-TOOLSMITHS
 
** list the plugins that could belong to the Papyrus-TOOLSMITHS
** write a minimal documentation and a Standard Operating Procedure to integrate a new plugin into these TOOLSMITHS
 
** create an initial product that integrate some of them
 
 
** create a set of HIPP jobs to manage the TOOLSMITH continuous integration
 
** create a set of HIPP jobs to manage the TOOLSMITH continuous integration
* Phase 2: Manage them, from soldiers to army
+
** create an initial product that integrate some of them
** merge, enhance the documentation
+
* Phase 2: From individual soldiers to an army
 +
** merge, enhance the documentation with a specific focus on how to define the minimal level of documentation, test a plugin should have to integrate the Papyrus-ToolSmiths
 +
** create a specific menu to gather the different tools
 
** enhance the plugins with specific editors
 
** enhance the plugins with specific editors
*Phase 3: Develop a strategy for your army: from plugins to methodologies and sop implementation
+
** homogenize the way editors are working (usage of direct object in properties and not string reference for instance)
 +
*Phase 3: Develop a strategy for our army
 
** Goal will to be able to propose specific methodology on top of those plugins, ensuring fast development of DSL products.
 
** Goal will to be able to propose specific methodology on top of those plugins, ensuring fast development of DSL products.
** Full industrialization of the process
+
** Full industrialization of the DSL and DSML application creation process
 +
 
 +
 
 +
The TOOLSMITH project will require a good feedback from the developers of actual DSL,DSML like SysML...
 +
 
 +
The main bugzilla ticket for the phase 1 is located here: https://bugs.eclipse.org/bugs/show_bug.cgi?id=506177
 +
 
 +
===Proposed Identification Methodology===
 +
 
 +
====Questions to be answered====
 +
 
 +
* identify plugin with the help of papyrus experts such as Patrick, Florian
 +
* check if the plugin has documentation (plugin.properties, wiki, embedded)
 +
* check if the plugin is integrated in the continuous integration
 +
* check if the documentation is up-todate with the plugin: i am able to remark the doc/tutorial
 +
* check if the plugin provides an extension-point
 +
* check if the plugin is model based
 +
* check if the model proposed a menu
 +
 
 +
====Check list====
 +
 
 +
* Description: X
 +
* Doc: YES/NO/Localisation/MDE
 +
* Extension-point: YES/NO
 +
* POM: YES/NO
 +
* CI: YES/NO
 +
* Model-based: YES/NO
 +
* Menu contribution: YES/NO
 +
 
 +
 
 +
===Initial Proposed Listing===
 +
 
 +
NOTE: I have SURELY made errors! So if it is the case, please do not hesitate to update the data!
 +
 
 +
====Customization====
 +
 
 +
* ID: org.eclipse.papyrus/plugins/customization/org.eclipse.papyrus.customization
 +
* DES: This plug-ins provides a wizard for generating customization plug-ins for Papyrus. The customization process in Papyrus is essentially based on models, contributed to a Papyrus extension point. It can be complicated to distribute a set of customizations in a single plug-in, as you have to know all the plug-ins and extension points. This wizards simplifies the process. It supports the following customization elements : - EMF Facet UI Custom - UML Model Templates- UML Model- UML Profile- Property view- Diagram Palette
 +
* DOC: YES
 +
** Help-Eclipse>-
 +
** Plugin-Doc:-
 +
* Extension-point:
 +
* POM:
 +
* CI:
 +
 
 +
====Tables====
 +
 
 +
* ID: org.eclipse.papyrus/plugins/customization/org.eclipse.papyrus.customization.nattableconfiguration
 +
* DES: This plugin provides the Wizard used to create a new project with a Papyrus Table Configuration, to create a new Papyrus Table Configuration inside an existing project and the handler to edit an exiting table configuration
 +
* DOC: YES
 +
** Help Eclipse>Toolsmiths>Using tables ; http://help.eclipse.org/neon/nav/61_1_7
 +
** /org.eclipse.papyrus/plugins/doc/org.eclipse.papyrus.infra.nattable.doc
 +
* Extension-point: NO
 +
* POM: YES
 +
* CI: YES
 +
 
 +
 
 +
====TODO====
 +
 
 +
Expand topicscontainer topicViewpoints in Papyrus; http://help.eclipse.org/neon/topic/org.eclipse.papyrus.infra.viewpoints.doc/target/generated-eclipse-help/viewpoints.html?cp=61_1_0
 +
 
 +
Expand topicscontainer topicCustomizing properties view ; http://help.eclipse.org/neon/topic/org.eclipse.papyrus.views.properties.doc/target/generated-eclipse-help/properties-view.html?cp=61_1_1
 +
 
 +
Expand topicscontainer topicCSS Stylesheets ; http://help.eclipse.org/neon/topic/org.eclipse.papyrus.infra.gmfdiag.css.doc/target/generated-eclipse-help/css.html?cp=61_1_2
 +
 
 +
Expand topicscontainer topicMenu new child ; http://help.eclipse.org/neon/topic/org.eclipse.papyrus.infra.newchild.doc/target/generated-eclipse-help/newChild.html?cp=61_1_3
 +
 
 +
Expand topicscontainer topicElementTypeConfigurations Framework ; http://help.eclipse.org/neon/topic/org.eclipse.papyrus.infra.types.doc/target/generated-eclipse-help/types.html?cp=61_1_4
 +
 
 +
Expand topicscontainerFacet ; http://help.eclipse.org/neon/nav/61_1_5
 +
 
 +
Expand topicscontainer topicValidate (OCL) constraints of a profile ; http://help.eclipse.org/neon/topic/org.eclipse.papyrus.dsml.validation.doc/target/generated-eclipse-help/dsml-validation.html?cp=61_1_6
  
 +
==Team==
  
Papyrus Toolsmith will be tested with several pre-existing DSL customization: SysML 1.4, Marte etc...
+
* Francois Le Fevre
The project requires a good feedback from the developers of those projects.
+
* Florian Noyrit
 +
* Patrick Tessier

Latest revision as of 06:40, 4 November 2016

3 major layers for One Papyrus

Papyrus is a modeling environment, standards based, with specific Domain specific extension with many enablers [1].

Papyrus could be split into 3 major layers:

  • Papyrus is composed upon Eclipse with several features embedded plugins, i.e. Papyrus-CORE
  • In order to develop Papyrus-CORE, a set of plugins have been created to assist Papyrus developers. These plugins will be grouped and released as Papyrus-DEV.
  • Finally in order to allow Domain specific extension, a set of plugins have been specificly developed to speed-up Papyrus customization. These plugins belong to the Papyrus-TOOLSMITHS

In parralle of these 3 layers [Papyrus-CORE, Papyrus-DEV, Papyrus-TOOLSMITHS), Papyrus have several extensions. We introduce here the "Component" concept (Component word will be changed). In this category we have for instance SysML, Marte, Designer, RobotML, Moka. All components shared a common infrastruture for release engineering. Those elements are gather inside the Papyrus-Components plugins. These plugins are managed inside the papyrus-tools repository [3].


[1]: https://www.eclipse.org/papyrus/ [2]: https://git.eclipse.org/c/papyrus/org.eclipse.papyrus.tools.git/tree/components


Problematic

Badly, these different plugins belonging the Papyrus-TOOLSMITH are scattered across the whole Papyrus repository. Even if identified, a short analysis shows also they do not have exactly the same Technology Readiness Level, analysis based on their code quality, documentation (uptodate or abscence), included (or not) tests, specific editors not only based on String, extension point provided.

To produce a useful Papyrus-TOOLSMITHS, work will be splited into 3 phases ( with a military metaphor):

  • Phase 1: Identify the Soldier
    • list the plugins that could belong to the Papyrus-TOOLSMITHS
    • create a set of HIPP jobs to manage the TOOLSMITH continuous integration
    • create an initial product that integrate some of them
  • Phase 2: From individual soldiers to an army
    • merge, enhance the documentation with a specific focus on how to define the minimal level of documentation, test a plugin should have to integrate the Papyrus-ToolSmiths
    • create a specific menu to gather the different tools
    • enhance the plugins with specific editors
    • homogenize the way editors are working (usage of direct object in properties and not string reference for instance)
  • Phase 3: Develop a strategy for our army
    • Goal will to be able to propose specific methodology on top of those plugins, ensuring fast development of DSL products.
    • Full industrialization of the DSL and DSML application creation process


The TOOLSMITH project will require a good feedback from the developers of actual DSL,DSML like SysML...

The main bugzilla ticket for the phase 1 is located here: https://bugs.eclipse.org/bugs/show_bug.cgi?id=506177

Proposed Identification Methodology

Questions to be answered

  • identify plugin with the help of papyrus experts such as Patrick, Florian
  • check if the plugin has documentation (plugin.properties, wiki, embedded)
  • check if the plugin is integrated in the continuous integration
  • check if the documentation is up-todate with the plugin: i am able to remark the doc/tutorial
  • check if the plugin provides an extension-point
  • check if the plugin is model based
  • check if the model proposed a menu

Check list

  • Description: X
  • Doc: YES/NO/Localisation/MDE
  • Extension-point: YES/NO
  • POM: YES/NO
  • CI: YES/NO
  • Model-based: YES/NO
  • Menu contribution: YES/NO


Initial Proposed Listing

NOTE: I have SURELY made errors! So if it is the case, please do not hesitate to update the data!

Customization

  • ID: org.eclipse.papyrus/plugins/customization/org.eclipse.papyrus.customization
  • DES: This plug-ins provides a wizard for generating customization plug-ins for Papyrus. The customization process in Papyrus is essentially based on models, contributed to a Papyrus extension point. It can be complicated to distribute a set of customizations in a single plug-in, as you have to know all the plug-ins and extension points. This wizards simplifies the process. It supports the following customization elements : - EMF Facet UI Custom - UML Model Templates- UML Model- UML Profile- Property view- Diagram Palette
  • DOC: YES
    • Help-Eclipse>-
    • Plugin-Doc:-
  • Extension-point:
  • POM:
  • CI:

Tables

  • ID: org.eclipse.papyrus/plugins/customization/org.eclipse.papyrus.customization.nattableconfiguration
  • DES: This plugin provides the Wizard used to create a new project with a Papyrus Table Configuration, to create a new Papyrus Table Configuration inside an existing project and the handler to edit an exiting table configuration
  • DOC: YES
  • Extension-point: NO
  • POM: YES
  • CI: YES


TODO

Expand topicscontainer topicViewpoints in Papyrus; http://help.eclipse.org/neon/topic/org.eclipse.papyrus.infra.viewpoints.doc/target/generated-eclipse-help/viewpoints.html?cp=61_1_0

Expand topicscontainer topicCustomizing properties view ; http://help.eclipse.org/neon/topic/org.eclipse.papyrus.views.properties.doc/target/generated-eclipse-help/properties-view.html?cp=61_1_1

Expand topicscontainer topicCSS Stylesheets ; http://help.eclipse.org/neon/topic/org.eclipse.papyrus.infra.gmfdiag.css.doc/target/generated-eclipse-help/css.html?cp=61_1_2

Expand topicscontainer topicMenu new child ; http://help.eclipse.org/neon/topic/org.eclipse.papyrus.infra.newchild.doc/target/generated-eclipse-help/newChild.html?cp=61_1_3

Expand topicscontainer topicElementTypeConfigurations Framework ; http://help.eclipse.org/neon/topic/org.eclipse.papyrus.infra.types.doc/target/generated-eclipse-help/types.html?cp=61_1_4

Expand topicscontainerFacet ; http://help.eclipse.org/neon/nav/61_1_5

Expand topicscontainer topicValidate (OCL) constraints of a profile ; http://help.eclipse.org/neon/topic/org.eclipse.papyrus.dsml.validation.doc/target/generated-eclipse-help/dsml-validation.html?cp=61_1_6

Team

  • Francois Le Fevre
  • Florian Noyrit
  • Patrick Tessier

Back to the top