- Provides identity
- Identity principle
- Allowed supertypes
- Kind, Subkind, Collective, Quantity, Relator, Phase, Role, Mixin
- Allowed subtypes
- Phase, Role
- Forbidden associations
The «Phase» stereotype is used to represent anti-rigid subtypes of identity providers («Kind», «Collective», «Quantity», «Relator», «Mode» and «Quantity») that are instantiated by changes in intrinsic properties (e.g. the age of a person, the color of an object, the condition of a car). All instances of a particular «Phase» must follow the same identity principle. Phases always come in partitions.
Tip: When defining a phase partition, think about which property (or properties) variation is causing the instantiation of the phases and include it in your model. For instance, when defining the phases Child, Adult and Elder for Person, you should include an age property for the type Person.
Here are some examples of phases:
C1: A «Phase» must always have exactly one identity provider («Kind», «Collective», «Quantity», «Relator», «Mode», «Quantity») as an ancestor (a direct or indirect super-type). Our examples above should be modelled as:
Q1: Do I have to represent the intrinsic property which is affecting the instantiation of the phase?
A1: No, OntoUML does not require you to do that. However, whenever it is possible, you should represent everything needed to define the phase. On one hand, if you want to represent the Living and Deceased phases of a Person, it is ok. On the other hand, if representing Adult and Child, your model would be a lot more precise if you include the age property on your model and the OCL constraint defining the instantiation of the two phases.
Q2: Can I define phases using modes?
A2: Yes. The fragment below is an example of how to do that.
EX1: Conceptual model about Brazilian Universities (see more):