Legacy Issue Number: 3244
Source: OpenModeling ( Jos Warmer)
ISSUE FOR UML, SECTION ActivityGraphs
The metaclass ClassifierInState is too limited and can be generalized
to become more useful. It might show to be completely unneccesary.
The Definition of ClassifierInSate in UML 1.3 is as follows:
A classifier-in-state characterizes instances of a given classifier
that are in a particular state or states. ......
ClassifierInState is a child of Classifier and may be used in static
structural models and collaborations (e.g., it can be used to show
associations that are only relevant when objects of a class are in a
This might be a useful concept, but defined in a too limited way.
Specifying that only instances which fulfil certain condiations
can be used is meaningful at many places. However, these restrcitions
are not based only on the state in which the instance is. They can also
be based on attribute values and link values.
Therefore the ClassifierInState is too restricted, because the
condition can only be a (or more) state(s).
Instead I would like to define a metaclass RestrictedClassifier (or
ConstrainedClassifier) instead of ClassifierInState. The definition should
A RestrictedClassifier characterizes instances of a given classifier
that conform to certain constraints.
For modeling the restrictions UML already has a perfect metaclass called
Constraint. A RestrictedClassifier has an association to Constraint with
multiplicity 1..* (at least one constraint)
The constraint can either be stated in OCL, which allows one to specify
generically any restrictions you want (or in any other language).
OCL allows to check whether an instance is in a certain state by the
expression "instance.oclInState(statename)", and is therefore able to
specify at least everything you can specify with ClassifierInState.
Potentially we could define a stereotype (e.g. <<restriction>>) for this
kind of Constraint.
Reported: UML 1.2 — Mon, 24 Jan 2000 05:00 GMT
Disposition: Resolved — UML 1.3
Updated: Fri, 6 Mar 2015 21:37 GMT