Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "EMF Compare/Specifications/StereotypedElementChangePostProcessor"

(Created page with "= Evolution Specification: Creation of differences for UML profile dsl = Current status is '''DRAFT''' == Introduction == Profiles are more and more used to create DSL. T...")
 
(Detailed Specification)
Line 32: Line 32:
 
* CORE_070: A UMLDslElementChange should keep track of the base element creation/deletion difference (discriminant) and all the stereotype application/removal differences (new feature) for UI uses.
 
* CORE_070: A UMLDslElementChange should keep track of the base element creation/deletion difference (discriminant) and all the stereotype application/removal differences (new feature) for UI uses.
 
* CORE_080: Merging a UMLDslElementChange should merge both the base element difference (creation/deletion) and all stereotype application differences (application/removal).
 
* CORE_080: Merging a UMLDslElementChange should merge both the base element difference (creation/deletion) and all stereotype application differences (application/removal).
* CORE_090: If one of the sub differences (Base element or stereotypes) is set to REJECTED then the UMLDslElementChange should be set to unmergeable. ''TBD''
 
* CORE_1: If one of the sub differences (Base element or stereotypes) is merge one side to another then the UMLDslElementChange should only be mergeable the same way. ''TBD''
 
  
  

Revision as of 04:23, 12 June 2014

Evolution Specification: Creation of differences for UML profile dsl

Current status is DRAFT

Introduction

Profiles are more and more used to create DSL. This means that a UML element which is stereotyped should be handled as a single semantic element:

  • Atomic merge.
  • It should handle and display the same way stereotype attribute differences and base class attribute differences.

The aim of this evolution is to improve the way stereotyped elements are handled by EMF Compare to help a better integration of UML DSL profiles.

Detailed Specification

In order to create the previous described features we have to focus on two tasks:

  • Core:
    • Create a new type of difference which is able to link the based element and the stereotype applications.
    • Handle the merge of those differences.
  • UI:
    • Improve the way stereotype attributes are displayed.
    • Find a way to displayed the newly created difference in the structure merge viewer as it was an atomic element.
    • Create or reuse a filter to hide unnecessary differences.

Here are the requirement for those tasks:

  • CORE_010: If EMF Compare detects both the creation of the base element and an application of a stereotype (of the new created element) it should create a new "header difference". This difference should be a UMLDslElementChange of kind ADD.
  • CORE_020: If EMF Compare detects both the deletion of the base element and a removal of a stereotype (of the deleted element) it should create a new "header difference". This difference should be a UMLDslElementChange of kind DELETE. TBD since each time a UML element will be deleted all its stereotypes will be removed automatically
  • CORE_030: If several stereotypes are applied "in the same time" on a newly created base element then EMF Compare should only create one difference handling all stereotypes.
  • CORE_040: If several stereotypes are removed "in the same time" on a deleted base element then EMF Compare should only create one difference handling all stereotypes.
  • CORE_050: A UMLDslElementChange should be stored under the same element as the difference of base element creation/deletion. TBD
  • CORE_060: A UMLDslElementChange should be refined by the difference of the creation/deletion of the base element and by all the differences of stereotype application/removal on this element.
  • CORE_070: A UMLDslElementChange should keep track of the base element creation/deletion difference (discriminant) and all the stereotype application/removal differences (new feature) for UI uses.
  • CORE_080: Merging a UMLDslElementChange should merge both the base element difference (creation/deletion) and all stereotype application differences (application/removal).


  • UI_010: The new type of difference should hide all differences it refines (creation/deletion of the base element and application/removal of its stereotypes).
  • UI_020: The differences on stereotypes attributes should be displayed the same way the differences of the base element attributes are (under the base element match, correct icon, correct label).

TO COMPLETE...

Backward Compatibility and Migration Paths

No migration needed.

Metamodel Changes

Creation of a new element in UMLCompare.ecore :

  • UMLDslElementChange -> UMLDiff
    stereotypeApplications [0..*] : EObjects

User Interface Changes

See UI_* requirements.

Documentation Changes

A new section on the documentation should be created.

Back to the top