Phase

Category
AntiRigidSortal
Provides identity
no
Identity principle
simple
Rigidity
antirigid
Dependency
optional
Allowed supertypes
Kind, Subkind, Collective, Quantity, Relator, Phase, Role, Mixin
Allowed subtypes
Phase, Role
Forbidden associations
Structuration
Abstract
undefined

Definition

The «Phase» stereotype is used to represent anti-rigid subtypes of identity providersKind», «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.

Note

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:

Phase examples

Constraints

C1: A «Phase» must always have exactly one identity providerKind», «Collective», «Quantity», «Relator», «Mode», «Quantity») as an ancestor (a direct or indirect super-type). Our examples above should be modelled as:

Phase application 1

C2: A «Phase» must always be part of a partition (a generalization set disjoint and complete). Modeling a «Phase» as in example below is forbidden:

Phase forbidden 2

C3: A «Phase» cannot be a direct subtype of a «RoleMixin» or «Category».

Phase forbidden 3

C4: A «Phase» cannot be a super-type of a rigid type («Kind», «Collective», «Quantity», «Relator», «Mode», «Quantity», «Subkind», «Category»).

Phase forbidden 1

C5: A «Phase» cannot be a super-type of a mixin type («Category», «RoleMixin», «Mixin»).

Phase forbidden 4

Common questions

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.

Phase application 3

Examples

EX1: Conceptual model about Brazilian Universities (see more):

Example Brazilian University
Errata: Phase as subtype of Role (Class), no multiplicity on part-whole, not marked as material and multiplicity does not correspond with mediations, Role (Professor) has optional relation, no multiplicity on <<characterization>> relation with Field Quality, (Department gets identity from kind in different diagram), Class has no identity