We don’t have the need to build complex
Constraint hierarchy, end-users are totally lost when too
much concept are used.
We really want to keep it as simple as
possible.
If the invariant Constraint of StateInvariant
couldn't be contained by StateInvariant, it will solve our
problem, does-it make sense to have a unique Constraint into
StateInvariant that couldn’t be link with anything else ?
Each time you will want to express a
pre-requisite on a lifeline (related to a state expressed
into a statemachine), you will have to build another
instance of Constraint even if it’s the same state
invariant… it’s really counter-productive. In this case we
could use an Action that will check something instead of
using a StateInvariant that finally is useless ...
The norm doesn’t affirm that the invariant
cannot be reused, it’s just an implementation problem due to
the usage of EMF technology (and particularly its
serialization engine that require a parent container for any
object).
As is the mdt-uml2 implementation doesn’t allow
to make a logical link between State stateInvariant and
StateInvariant invariant whereas it would be convenient to
reuse state already described into sequence diagram.
Best Regards