Skip to main content
Jump to: navigation, search

Difference between revisions of "Papyrus/NewAndNoteworthy/Oxygen"

(Work added in Oxygen 4)
 
(26 intermediate revisions by 3 users not shown)
Line 16: Line 16:
 
<code>$</code> is used as end key<br>
 
<code>$</code> is used as end key<br>
  
A case sensitive option is available (use Aa checkbox)
+
A case sensitive option is available.
  
 
======Customize UML Label in Model Explorer======
 
======Customize UML Label in Model Explorer======
Line 29: Line 29:
  
 
By default, the customized label is not activated.  
 
By default, the customized label is not activated.  
 +
 
To activate click at the icon "Customize Model Explorer". Add CustomizableUMLLabel to loaded customization then move it to the top of the list for the higher priority. Validate Changes.
 
To activate click at the icon "Customize Model Explorer". Add CustomizableUMLLabel to loaded customization then move it to the top of the list for the higher priority. Validate Changes.
Then clic on "Customize UML Label..." to customize the label visualization:
+
 
 +
Then click on "Customize UML Label..." to customize the label visualization:
  
 
[[File:labelUMLCusto.png]]
 
[[File:labelUMLCusto.png]]
Line 51: Line 53:
  
 
[[File:WidgetSelectionType.jpg]]
 
[[File:WidgetSelectionType.jpg]]
 +
 +
 +
=====Matrices for Relationship=====
 +
The table framework has been completed to provide a generic matrix to define Relationship between the UML Elements.
 +
 +
[[File:MatrixIllustration.png]]
 +
 +
On the previous snapshot, the matrix shows the Dependency between some classes in the model.
 +
The configuration of the matrix is done throw the property view. This one allows you to define:
 +
*the sources objects providing your rows and your columns
 +
*the filter to apply on the objects provided by the sources, to show only interesting sources and columns objects
 +
*the kind of relationship to edit
 +
*the direction of the relationship to edit
 +
*the filter to apply on the cell contents, to define more precisely the contents of the cells
 +
 +
===Domain Specific Modeling===
 +
====Papyrus Architecture Context====
 +
This new release introduces the notion of Architecture Context to let toolsmiths customize Papyrus for a given domain. An Architecture Context defines a regime for editing a Papyrus model semantically and notation-wise.
 +
 +
[[File:Papyrus-architecture-selection.png]]
 +
 +
====Papyrus for Toolsmiths====
 +
In this Oxygen release, the various customization mechanism of Papyrus has been improved to facilitate the definition of Domain Specific Customization of Papyrus. Informal relation among customization have notably been replaced by model references.
 +
Also to ease the access to the Papyrus customization facilities, a dedicated feature is now available on Papyrus' update site in addition to Papyrus UML.
 +
 +
====Palette customization====
 +
In order to facilitate the customization palettes, the old deprecated customization mechanism has been removed from Papyrus Oxygen and the model-based new mechanism has been completed to replace the deprecated one.
 +
 +
Also the palette editor has been improved to ease the definition of your own palettes.
 +
 +
[[File:Papyrus-palette-editor.png]]
 +
 +
=== Modeling and design facilities ===
 +
====Documentation View====
 +
 +
Papyrus Oxygen provides a Documentation view. The documentation view displays the "Documentation" attached to a model element.
 +
 +
[[File:DocumentationView.png]]
 +
 +
=== Architecture refactoring ===
 +
 +
====Papyrus Documentation refactoring====
 +
 +
The documentation organization has been reviewed and unified. A documentation plugin template has been provided to ease the homogeneity of documentation in Papyrus. Some documentation that was not part of the help content in previous releases has been moved to Papyrus Oxygen help content and is therefore now embedded in the release in addition to being available online. This improvement benefits to end users, toolsmiths and Papyrus developers.
 +
 +
====Papyrus Tests refactoring and modularity====
 +
 +
This improvement targets developers. Papyrus's tests have been reorganized to be aligned with the Papyrus plugin architecture. Also, they have been regrouped to form consistent tests suites that basically fit with the various layers of Papyrus's architecture. This improvement provides the ability to execute only relevant subsets of tests and therefore helps test execution to scale and ease debug by narrowing the scope of the tests to execute.
 +
 +
==Work added in Oxygen 3==
 +
All bugs may be found in the tracker [https://projects.eclipse.org/projects/modeling.mdt.papyrus/releases/3.3.0/bugs]
 +
===Layers===
 +
* [[Papyrus/Oxygen Work Description/NewFeature/Layers|Layers]] Development and adaptation of the Layer tool for the diagrams.
 +
===Model Explorer===
 +
* [https://bugs.eclipse.org/bugs/show_bug.cgi?id=484648 Bug 484648]: Link with Editor does not work with ModelExplorer customized through EMF Facets
 +
** Note: Follow-up ticket [https://bugs.eclipse.org/bugs/show_bug.cgi?id=528312 Bug 528312] targets only Photon
 +
===Sequence Diagram===
 +
Bugs about infinite loop and problems about movement of elements have been fixed.
 +
 +
===Performance fix===
 +
* [https://bugs.eclipse.org/bugs/show_bug.cgi?id=529945 Bug 529945]: [Performance] Creation of new element is not done in a constant time
 +
** We create a small class to get easily a benchmark of the performance to create 5000 elements in the same container.
 +
*** The best way to create 5000 Classes is to use the UML Factory. (constant time)
 +
*** The best way to create 5000 Classes stereotyped SysML Blocks is to use the UML Factory, then the stereotype application for Block (using its factory), then adding ourself the stereotype application to the resource (constant time)
 +
*** Using the native UML API or the Papyrus Edit Service is less efficient and not in constant time, so adding a stereotype application depends on the model's size (we filled the UML bug [https://bugs.eclipse.org/bugs/show_bug.cgi?id=528925 Bug 528925]: 528925)
 +
*** For UML element creation, the Papyrus Edit Service is less efficient than the UML factory itself, and not in constant time. We will continue to investigate on it.
 +
*** benchmarks after applying and testing some patches:
 +
#https://git.eclipse.org/r/#/c/115672/
 +
#https://git.eclipse.org/r/#/c/115671/
 +
#https://git.eclipse.org/r/#/c/115606/
 +
#https://git.eclipse.org/r/#/c/115682/
 +
{| class="wikitable"
 +
!
 +
! style="font-weight: bold;" | Before patches
 +
! style="font-weight: bold;" | Improving Stereotyped elements naming
 +
! style="font-weight: bold;" | + SysML 1.4 patches
 +
! style="font-weight: bold;" | + UML2 patches
 +
! style="font-weight: bold;" | All patches
 +
|-
 +
| style="font-weight: bold;" | 5000 blocks with service edit
 +
| 206 800 ms
 +
| 177 968ms
 +
| 18 090ms
 +
| 18 158ms (no impact using service edit?)
 +
|
 +
|-
 +
| style="font-weight: bold;" | 5000 classes + apply stereotype
 +
| 81 616
 +
| N/A
 +
| N/A
 +
| 1058ms
 +
| 915ms
 +
|}
 +
 +
In addition, we changed the method used to calculate the name of created elements in order to increase the performance of Papyrus. A preference has been added and 3 options are now available:
 +
*No Index
 +
*quick index (default): unique in the main usecase, don't start necessary to 1.
 +
*unique index: the previous implementation
 +
 +
We informed the users on the Papyrus forum, on this [https://www.eclipse.org/forums/index.php/t/1091719/ thread]
 +
==Work added in Oxygen 4==
 +
All bugs may be found in the tracker [https://projects.eclipse.org/projects/modeling.mdt.papyrus/releases/3.4.0/bugs Papyrus 3.4.0]
 +
===Diagrams:===
 +
*fix some null pointer exceptions
 +
*big work has be done on the sequence diagram ( about move of elements), some corrections have been done on combined fragment. This work continue for the version photon.
 +
===Property View===
 +
*Add a widget in to the Property View framework, to be able to select a directory (bug 533154)
 +
===Tables===
 +
*Fixes have been added to avoid crash (for example during migration of profiles)

Latest revision as of 04:34, 22 May 2018

New and Noteworthy - Papyrus 3.0.0 (Oxygen)

What's NEW?

User Experience and Usability

Model Explorer

Quick Search in Model Explorer

FilterInModelExplorer.png

You can use:
? for any character
* for any string
; is used as OR
^ is used as start key
$ is used as end key

A case sensitive option is available.

Customize UML Label in Model Explorer

It's possible to directly customize labels from model explorer.

For example, to have:

* Only the name
* The entire label with the stereotype, the metaclass and name
* the actual label
* the name, the stereotype in cold grey color.

By default, the customized label is not activated.

To activate click at the icon "Customize Model Explorer". Add CustomizableUMLLabel to loaded customization then move it to the top of the list for the higher priority. Validate Changes.

Then click on "Customize UML Label..." to customize the label visualization:

LabelUMLCusto.png

Expand in Model Explorer

The model explorer menu has two new menu items:

  • + : that will expand the tree inside the selected element (or everything if no selection)
  • - : that will collapse the tree inside the selected element (or everything if no selection)

ExpandInModelExplorer.jpg

Transversal Features

Internationalization

Papyrus now provides an internationalization mechanism for models using properties file by project. The internationalization is managed by language, country.

Papyrus-internationalization-example.png

Element Selection Dialog

The dialog that opens to select an element to be referenced has been improved to ease modeling experience.

WidgetSelectionType.jpg


Matrices for Relationship

The table framework has been completed to provide a generic matrix to define Relationship between the UML Elements.

MatrixIllustration.png

On the previous snapshot, the matrix shows the Dependency between some classes in the model. The configuration of the matrix is done throw the property view. This one allows you to define:

  • the sources objects providing your rows and your columns
  • the filter to apply on the objects provided by the sources, to show only interesting sources and columns objects
  • the kind of relationship to edit
  • the direction of the relationship to edit
  • the filter to apply on the cell contents, to define more precisely the contents of the cells

Domain Specific Modeling

Papyrus Architecture Context

This new release introduces the notion of Architecture Context to let toolsmiths customize Papyrus for a given domain. An Architecture Context defines a regime for editing a Papyrus model semantically and notation-wise.

Papyrus-architecture-selection.png

Papyrus for Toolsmiths

In this Oxygen release, the various customization mechanism of Papyrus has been improved to facilitate the definition of Domain Specific Customization of Papyrus. Informal relation among customization have notably been replaced by model references. Also to ease the access to the Papyrus customization facilities, a dedicated feature is now available on Papyrus' update site in addition to Papyrus UML.

Palette customization

In order to facilitate the customization palettes, the old deprecated customization mechanism has been removed from Papyrus Oxygen and the model-based new mechanism has been completed to replace the deprecated one.

Also the palette editor has been improved to ease the definition of your own palettes.

Papyrus-palette-editor.png

Modeling and design facilities

Documentation View

Papyrus Oxygen provides a Documentation view. The documentation view displays the "Documentation" attached to a model element.

DocumentationView.png

Architecture refactoring

Papyrus Documentation refactoring

The documentation organization has been reviewed and unified. A documentation plugin template has been provided to ease the homogeneity of documentation in Papyrus. Some documentation that was not part of the help content in previous releases has been moved to Papyrus Oxygen help content and is therefore now embedded in the release in addition to being available online. This improvement benefits to end users, toolsmiths and Papyrus developers.

Papyrus Tests refactoring and modularity

This improvement targets developers. Papyrus's tests have been reorganized to be aligned with the Papyrus plugin architecture. Also, they have been regrouped to form consistent tests suites that basically fit with the various layers of Papyrus's architecture. This improvement provides the ability to execute only relevant subsets of tests and therefore helps test execution to scale and ease debug by narrowing the scope of the tests to execute.

Work added in Oxygen 3

All bugs may be found in the tracker [1]

Layers

  • Layers Development and adaptation of the Layer tool for the diagrams.

Model Explorer

  • Bug 484648: Link with Editor does not work with ModelExplorer customized through EMF Facets
    • Note: Follow-up ticket Bug 528312 targets only Photon

Sequence Diagram

Bugs about infinite loop and problems about movement of elements have been fixed.

Performance fix

  • Bug 529945: [Performance] Creation of new element is not done in a constant time
    • We create a small class to get easily a benchmark of the performance to create 5000 elements in the same container.
      • The best way to create 5000 Classes is to use the UML Factory. (constant time)
      • The best way to create 5000 Classes stereotyped SysML Blocks is to use the UML Factory, then the stereotype application for Block (using its factory), then adding ourself the stereotype application to the resource (constant time)
      • Using the native UML API or the Papyrus Edit Service is less efficient and not in constant time, so adding a stereotype application depends on the model's size (we filled the UML bug Bug 528925: 528925)
      • For UML element creation, the Papyrus Edit Service is less efficient than the UML factory itself, and not in constant time. We will continue to investigate on it.
      • benchmarks after applying and testing some patches:
  1. https://git.eclipse.org/r/#/c/115672/
  2. https://git.eclipse.org/r/#/c/115671/
  3. https://git.eclipse.org/r/#/c/115606/
  4. https://git.eclipse.org/r/#/c/115682/
Before patches Improving Stereotyped elements naming + SysML 1.4 patches + UML2 patches All patches
5000 blocks with service edit 206 800 ms 177 968ms 18 090ms 18 158ms (no impact using service edit?)
5000 classes + apply stereotype 81 616 N/A N/A 1058ms 915ms

In addition, we changed the method used to calculate the name of created elements in order to increase the performance of Papyrus. A preference has been added and 3 options are now available:

  • No Index
  • quick index (default): unique in the main usecase, don't start necessary to 1.
  • unique index: the previous implementation

We informed the users on the Papyrus forum, on this thread

Work added in Oxygen 4

All bugs may be found in the tracker Papyrus 3.4.0

Diagrams:

  • fix some null pointer exceptions
  • big work has be done on the sequence diagram ( about move of elements), some corrections have been done on combined fragment. This work continue for the version photon.

Property View

  • Add a widget in to the Property View framework, to be able to select a directory (bug 533154)

Tables

  • Fixes have been added to avoid crash (for example during migration of profiles)

Back to the top