I am working on the following bug and would appreciate your feedback:
The bug is saying that when an expansion model is defined for one diagram kind, it does not apply to any sub diagram kinds defined by another (or the same) architecture framework. It is suggesting that the diagram expansion framework get integrated with the architecture framework.
1- Diagram Expansion Inheritance
One partial solution to this is to make an expansion model inherited in sub diagram kinds. However, when both the sub and the super diagram kinds have expansion models, the semantics of this situation is not very clear. One idea is to make an expansion model in a sub diagram kind redefine (i.e., apply instead of) the one in the super kind. Do you agree that this can be reasonable semantics?
2- Diagram Expansion SpecificationÂ
Currently, an Expansion Model references the diagram kinds it expands by specifying their ids in (one or more) Reuse Context objects that it owns. One possible idea to integrate it with the architecture framework is to make the diagram kinds, defined by an architecture model, reference the expansion models instead. This makes the expansion models reusable by any diagram kind. However, for this to work, an expansion model needs to own exactly one Reuse Context object. Alternatively, the diagram kind needs to reference the Reuse Context object (rather than the Expansion Model object). Notice that, at least in the SysML domain, every diagram kind has its own expansion model with one reuse context object. Do you see any issue if I changed the multiplicity of Reuse Context to be 0..1 instead of 0..*? Also, under this paradigm, the extension point for adding expansion model may not be needed, since one can reference an expansion model from a new diagram kind. Do you agree?
Thanks for your input,