Hi, Eve,
Had a bit of a play with the different types of constraints. Doesn't seem to be working the way you suggested.
The help should have something like this.
Special MetaclassesYou can specify the source of a connector to be a superclass of all specialized forms, and the target to a special metaclass that specifies a relationship to the actual metaclass when it's used.
Metaclass | Description |
source.metatype | The target element must match the exact stereotype defined at the source. |
source.metatype.general | The target element may match the exact stereotype used at the source and any concrete (isAbstract=false) generalized stereotypes. |
source.metatype.specific | The target element may match the exact stereotype used at the source and any concrete (isAbstract=false) specialized stereotypes. |
source.metatype.both | The target element may match the exact stereotype used at the source and any concrete (isAbstract=false) generalized or specialized stereotypes. |
[/quote]
Define Abstract Stereotype 'Element' (may extend Concept if you're following their metamodel)
Abstract Stereotype 'Motivation Element' specializes Element (possibly indirectly)
Concrete Stereotypes 'Value', 'Meaning', 'Driver', 'Assesment', 'Goal', 'Outcome', 'Principle', and 'Requirement' all specialize 'Motivation Element'
Concrete Stereotype 'Constraint' specializes Requirement.
Create a stereotype «stereotyped relationship» {stereotype=Composition} to a «metaclass» with one of the names in my previous post. In all cases, each of the stereotypes will be allowed to have a composition to other elements with the same stereotype. How they differ is in the behaviour of Requirement and Constraint.
If the target is 'source.metatype' Neither Requirement or Constraint will be able to have a composition relationship with the other.
If the target is 'source.metatype.general', A Constraint can have a Composition to Requirement.
If the target is 'source.metatype.specific', A Requirement can have a Composition to Constraint.
If the target is 'source.metatype.both', both can have a Composition to the other. (Which happens to match the relationship table in the ArchiMate specification)
What we found...
If the target is 'source.metatype', neither Requirement nor Constraint has a Composition relationship to the other.
If the target is 'source.metatype.general', both have a Composition to the other.
If the target is 'source.metatype.specific', neither Requirement nor Constraint has a Composition relationship to the other.
If the target is 'source.metatype.both', neither Requirement nor Constraint has a Composition relationship to the other.
For testing purposes, we create a Motivational Element (Abstract) item on the toolbox.
If the target is 'source.metatype', Motivation Element has a Composition relationship Requirement. The reverse is not available.
If the target is 'source.metatype.general', Motivation Element has a Composition relationship Requirement. The reverse is not available.
If the target is 'source.metatype.specific', Motivation Element has a Composition relationship Requirement. The reverse is not available.
If the target is 'source.metatype.both', neither Requirement nor Motivation Element has a Composition relationship to the other.
Are we doing something wrong? Or is there bugs? Can you confirm your version works as specified?
TIA,
Paolo