Infrastructure

The infrastructure package consists of two subpackages: Core and Profiles.

Core

The Core package consists of four subpackages:

Primitive Types

Of course a typical UML model may consist of many primitive types: float, double, char, etc. But the only primitive types that will be needed in the superstructure are these:

Constructs

A model is composed of many related elements.

An element can own other elements.

A relationship relates one or more elements.

A relationship is an element.

A directed relationship is a relationship that relates source elements to target elements.

Example

The Student, Course, and Seminar classes are elements. The name attribute of Student is an element owned by Student. Similarly, the title and units attributes of Course are owned by Course.

The enrolledIn association is a relationship relating Student and Class.

The generalization is a directed relationship with Seminar as its source and Course as its target.

Note that the multiplicities are also elements. They are owned by the endpoints of the enrolledIn association.

Basics

Some elements have names. For example, a multiplicity doesn't have a name, while a class does.

A typed element has a name and a type.

Types are named elements.

A package is a named element that contains types and nested packages.

Abstractions

Abstractions is a large package containing many sub-packages. I have combined several diagrams from this package into a single diagram that captures the essence of UML semantics.

A classifier is a type.

Classifiers can be related through generalization.

A classifier is a collection of structural and behavioral features.

A classifier represents a classification of instances.

An instance specification in a model M of system S (partially) specifies/represents an (possible) instance/entity in S, perhaps at some particular point of time, t.

An instance specification may instantiate 0 or more classifiers. This means that the instance specification owns slots that instantiate the stuctural features of those classifiers.

A slot contains value specifications.

A value specification is an expression that denotes values (data values or objects/entities/instances in the system being modeled.

 

Examples

Profiles

Profiles are used to extend or constrain UML.

A profile is a package containing stereotypes.

Examples

The C++ profile contains stereotypes such as:

<<cppTypeDef>>

<<cppStruct>>

<<cppUnion>>