Bug 512589 - [Capsules] Inheritance support for non-composite-structure elements
Summary: [Capsules] Inheritance support for non-composite-structure elements
Status: NEW
Alias: None
Product: Papyrus-rt
Classification: Modeling
Component: General (show other bugs)
Version: 0.9.0   Edit
Hardware: All All
: P3 enhancement
Target Milestone: 1.0.2   Edit
Assignee: Project Inbox CLA
QA Contact: Peter Cigehn CLA
URL:
Whiteboard: relnote
Keywords: Documentation, readme
Depends on: 511780
Blocks:
  Show dependency tree
 
Reported: 2017-02-22 15:17 EST by Christian Damus CLA
Modified: 2017-10-17 14:35 EDT (History)
2 users (show)

See Also:


Attachments
Sample model with attribute inheritance, redefinition and exclusion (4.39 KB, application/zip)
2017-02-22 15:52 EST, Ernesto Posse CLA
no flags Details
Sample model with operation inheritance, redefinition and exclusion (4.09 KB, application/zip)
2017-02-22 15:53 EST, Ernesto Posse CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Christian Damus CLA 2017-02-22 15:17:14 EST
The 0.9 release of Papyrus focused, for Capsules, on support for inheritance of the composite-structure elements:  ports, parts, and connectors.

Capsules also define non-composite-structure elements, such as

* attributes (non-parts)
* operations
* methods (behaviour specifications for operations)

that are inheritable, redefinable, and excludable by specializing capsules.  These inheritance use cases need to be implemented for these elements in:

* Model Explorer
* Properties View (at least with respect to restriction of what can be edited in an inherited element for the purpose of redefinition)
* the façade API

These aspects can be broken out, if and as needed, into separate bugzillae linked to this one.
Comment 1 Ernesto Posse CLA 2017-02-22 15:52:48 EST
Created attachment 266951 [details]
Sample model with attribute inheritance, redefinition and exclusion
Comment 2 Ernesto Posse CLA 2017-02-22 15:53:17 EST
Created attachment 266952 [details]
Sample model with operation inheritance, redefinition and exclusion
Comment 3 Peter Cigehn CLA 2017-02-23 04:04:38 EST
Just to be clear: In the legacy tooling attributes and operations are not excludable. That is only applicable to elements in structure diagrams and state-machine diagrams. Not sure if we have any strong indication that exclusion of attributes and operations really are needed. Attributes are not redefinable either in the legacy tooling.

As discussed in Bug 511780, the legacy tooling does not support the UML-RT style of redefinition for operations, but instead it uses the ordinary UML redefinition mechanism where for example the parameter list needs to be copied/duplicated in the subclass. Here we probably could make an improvement and introduce the UML-RT style of redefinition to avoid duplicating the parameter list in the subclass.

So I am not fully sure what redefinition and exclusion support we really need here, apart from what is already tracked by Bug 511780. What could be useful, is showing inherited attributes and operations in the model explorer (if the facet customization is enabled, by default inherited attributes and operations shall not be shown to reduce clutter). The inherited attributes and operations (with visibility taken into consideration, e.g. private elements are not inherited) shall be shown in the properties view in the attributes and operations list (as tracked by Bug 507530)
Comment 4 Charles Rivet CLA 2017-02-23 11:59:27 EST
Only operation will be redefinable.
Comment 5 Peter Cigehn CLA 2017-02-23 12:03:52 EST
(In reply to Charles Rivet from comment #4)
> Only operation will be redefinable.

We have some mis-match in planning here. Bug 511780 which tracks the UML-RT style of redefining operations are planned for 1.0.1, whereas this bug is planned for 1.0.0. I guess if we want redefinition for operations to 1.0.0, then we should implement it with UML-RT style of redefinition (instead of duplicating the parameter list according to base UML), as tracked by Bug 511780 and then it probably should be planned for 1.0.0 as well.
Comment 6 Charles Rivet CLA 2017-02-23 14:18:10 EST
(In reply to Peter Cigehn from comment #5)
> (In reply to Charles Rivet from comment #4)
> > Only operation will be redefinable.
> 
> We have some mis-match in planning here. Bug 511780 which tracks the UML-RT
> style of redefining operations are planned for 1.0.1, whereas this bug is
> planned for 1.0.0. I guess if we want redefinition for operations to 1.0.0,
> then we should implement it with UML-RT style of redefinition (instead of
> duplicating the parameter list according to base UML), as tracked by Bug
> 511780 and then it probably should be planned for 1.0.0 as well.

Indeed! Changed this bug's target milestone to align with Bug 511780 and added the dependency.
Comment 7 Ernesto Posse CLA 2017-10-17 14:35:47 EDT
Mass changing all 1.0.1 bugs to target milestone 1.0.2, because Bug 520039 depends on Bug 526168 which depends on Bug 526167 which modifies plugin MANIFEST files and therefore requires a new service version number in accordance to the guidelines at https://wiki.eclipse.org/Version_Numbering#When_to_change_the_service_segment. Hence the solution to these bugs must be merged as a new version (1.0.1) and therefore all old 1.0.1 bugs should become 1.0.2.