Without looking at the FAMIX2.2 specification, just of the top of my head, if superclass and subclass are defined as opposites in the inheritance definition, this is a wrong usage of opposite. Opposite is used as such in mse:
(MSE.Class (id: 1 ) (.. (MSE.Property (id: 2) (opposite (idref: 4)) (type (idref: 3)) ...)))
(MSE.Class (id: 3 ) (.. (MSE.Property (id: 4) (opposite (idref: 2)) (type (idref: 1)) ...)))
As you can see, the type of the opposite is always the Class in which the "opposited: property is embedded. Which doesn't match for those 2 properties, since they are embedded in InheritanceDefinition, not in Class.
I see. Adrian how do you detect the problems? running an OCL constraints interpreter?
this is good that you use now constraints.
- Opposites do not match: FAMIX.Class.incomingInheritance
- Opposites do not match: FAMIX.Class.outgoingInheritance
Could we change the name outgoingInhertiance because this is terrible. Consistent is good but not at that price.
generalizing...? specializing...?
superclass, subclass :)
- Container must be single-values: FAMIX.Class.method
cheers, AA
Moose-dev mailing list Moose-dev@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Moose-dev mailing list Moose-dev@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev