| Summary: | Control models and profile management | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [Modeling] MDT.UML2 | Reporter: | Thibault Landré <thibault.landre> | ||||
| Component: | Core | Assignee: | Kenn Hussey <Kenn.Hussey> | ||||
| Status: | VERIFIED FIXED | QA Contact: | |||||
| Severity: | enhancement | ||||||
| Priority: | P2 | Keywords: | plan | ||||
| Version: | 2.2.0 | Flags: | Kenn.Hussey:
kepler+
|
||||
| Target Milestone: | M7 | ||||||
| Hardware: | PC | ||||||
| OS: | Linux | ||||||
| Whiteboard: | Community Support | ||||||
| Attachments: |
|
||||||
|
Description
Thibault Landré
Created attachment 139958 [details]
A project containing an example
Custom control/uncontrol operation(s) would need to be implemented to override/extend the default behavior from EMF so that profiles and stereotypes are handled properly. This can perhaps be explored in Keppler. I have taken a closer look at this problem and made the following observations:
1. The "MainModel.uml" model that was provided has a corrupt profile application in it; more specifically, its profile application annotation has the following reference:
<references xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
which should look more like this:
<references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Standard.profile.uml#_yzU58YinEdqtvbnfB2L_5w"/>
2. Problem 3 deals with a scenario that isn't intended to be directly supported (at least not by UML2). When dealing with model "fragments" (i.e., resources that contain "controlled" objects), it is expected that all manipulation of controlled objects be done in the context of the "main" model - that is, one should not be loading and working with elements in "fragment" models independently of their "main" models. A tool based on UML2 might manage this constraint by identifying "fragment" models with a special file extension (e.g., .fragment.uml) and ensuring that "main" models are automatically loaded when "fragment" models are, possibly leveraging "back-pointers" from the root elements of "fragment" models (perhaps persisted in annotations) and/or a workspace index which keeps track of relationships between resources. In any case, support for such a mechanism is beyond the scope of UML2; certainly, at the very least, it is beyond the scope of the "sample" editor provided by UML2.
3. The solution I propose for problems 1 and 2 would be to customize the control/uncontrol action in the UML2 editor (actually in its action bar contributor) so that stereotype applications are moved to/from "fragment" resources when their base elements are controlled/uncontrolled.
The proposed solution for problems 1 and 2, as described in comment #3, has been committed/pushed to the 'master' branch in git. An integration build (for UML2 4.1) containing the changes is now available. |