Skip to content

Unified Modeling Language (UML) Notation

The Common Information Model (CIM) is formally defined using Unified Modeling Language (UML), a standardized visual modeling framework widely adopted in software engineering and systems design. By leveraging UML notation, CIM provides a clear, structured, and universally interpretable representation of power system components, their attributes, and relationships.

Concepts

Generalization / Specialization

Generalization/Specialization (also known as Inheritance) is a key object-oriented concept that defines hierarchical relationships between classes. It allows for code reuse, logical categorization, and polymorphism in system design.

  • Generalization: The process of extracting common features from multiple classes to create a parent (superclass).

    • Example: Transformer inherits from ConductingEquipment, which inherits from PowerSystemResource.
  • Specialization: The inverse process, where a child (subclass) inherits from a parent but adds unique attributes/behaviors.

    • Example: Transformer adds attributes like windingType and ratedMVA.

Inheritance: The mechanism by which a subclass derives properties and methods from its superclas

Simple Association (aka Relationship)

In UML, a Simple Association (often called a Relationship) defines a logical connection between two or more classes, indicating that they interact or are linked in some way. Unlike generalization (inheritance), associations describe how objects of one class use or relate to objects of another class.

A Simple Association is depicted as a solid line connecting two classes. Optional details include:

  • Role names: Describe the purpose of the relationship (e.g., "ConductingEquipment" → "BaseVoltage").

  • Multiplicity: Indicates how many objects participate (e.g., 1..*, 0..1).

  • Navigation arrow: Shows directionality (if unidirectional).

Types of Simple Associations

  • Unidirectional Association: Only one class knows about the other (arrow shows direction).

  • Bidirectional Association: Both classes reference each other (no arrows, or double arrows).

Multiplicity in Associations

Defines the number of instances involved in the relationship:

Notation Meaning Example
1 Exactly one A Car has one Engine.
0..1 Zero or one A Person may have a Passport.
* or 0..* Zero or more A University has many Student.
1..* At least one An Order must have one or more Product.

Aggregation / Composition (aka Containment)

Aggregation and Composition are specialized forms of associations that represent whole-part relationships between classes. They define how objects are contained or owned by other objects, with key differences in lifecycle dependency.

Feature Aggregation ◇ Composition ♦
Relationship "Has-a" (loose ownership) "Contains-a" (strong ownership).
Lifespan Parts can exist independently. Parts die with the parent.
UML Notation Hollow diamond on parent. Filled diamond on parent.

  • Aggregation ◇: "Has-a" with independent parts.

  • Composition ♦: "Owns-a" with strict lifecycle control.

  • Rule of Thumb: If the parent dies, ask: "Should the child die too?" → Yes? Use ♦