3.2 Multiplicities, Reference Properties & Association Ends
Key Takeaways
Multiplicity uses lower..upper syntax; a property declared without one defaults to 1, while SysML 1.2 assumes 0..1 at an unlabeled black or white diamond end.
Association ends define structural features owned by the opposite classifier, where role names establish property names and visibilities (+, -, #, ~).
Part properties come from composite aggregation (solid black diamond), appear in the parts compartment, and are drawn as solid-outline boxes on an ibd.
Reference properties come from associations without a black diamond, appear in the references compartment, and are drawn as dashed-outline boxes on an ibd.
In structural decomposition hierarchies, total component counts compound multiplicatively across levels, requiring rigorous traversal of parent and child multiplicity bounds.
3.2 Multiplicities, Reference Properties & Association Ends
Quick Summary: In SysML Block Definition Diagrams, multiplicities define instance cardinalities (allowable instance counts) using the canonical
lower..uppernotation. A property declared without a multiplicity defaults to1; SysML 1.2 adds diagram defaults for association ends (see below). Association ends define properties typed by the opposite block: composite aggregation produces part properties (listed in thepartscompartment; solid-outline boxes on an ibd), while associations without composition produce reference properties (listed in thereferencescompartment; dashed-outline boxes on an ibd).
In Model-Based Systems Engineering (MBSE), defining system topology requires precision regarding not only how blocks connect, but how many instances of each block can or must exist, who owns them, and what role they play in the system architecture. On a Block Definition Diagram (BDD), these details are captured through multiplicities, association ends, and their realization as part properties or reference properties.
Multiplicity Syntax and Specification Grammar
A multiplicity is a definition of cardinality that constrains the number of allowable instances of a property, parameter, or association end in a valid system. In SysML, multiplicity expressions conform to formal grammar rules derived from UML:
General Format: lower..upper
The canonical multiplicity format specifies an inclusive range from a lower bound to an upper bound:
lowerbound: A non-negative integer (0, 1, 2, …) specifying the minimum number of instances required.upperbound: A positive integer or the literal asterisk character (*), which signifies an unbounded or unlimited number of instances.
Multiplicity Variations and Semantic Meanings
| Multiplicity Format | Formal Meaning | Lower Bound | Upper Bound | Practical Engineering Example |
|---|---|---|---|---|
1 (or 1..1) | Exactly one instance | 1 | 1 | A Spacecraft has exactly 1 GuidanceComputer. |
0..1 | Optional (zero or one instance) | 0 | 1 | An Automobile has 0..1 TowHitch. |
* (or 0..*) | Zero or more (unbounded collection) | 0 | ∞ | A FileServer stores * LogFile records. |
1..* | At least one (non-empty collection) | 1 | ∞ | A NetworkRouter connects to 1..* SubnetInterface ports. |
2..4 | Explicit range (inclusive) | 2 | 4 | An Aircraft is powered by 2..4 JetEngine units. |
UML 2, the base of SysML 1.2, defines a multiplicity as a single lower..upper interval. Comma-separated lists such as 1, 3, 5 or 2..4, 6..8 came from UML 1.x and are not valid SysML multiplicities.
Default Multiplicity Rules
Three defaults matter when a multiplicity is not shown:
| Where the multiplicity is missing | Default you may assume | Source |
|---|---|---|
A property declaration in a compartment or on an ibd (e.g., engine : Engine) | 1 (exactly one) | UML multiplicity default |
| The black- or white-diamond end of a part or shared association | 0..1 | SysML 1.2, Section 8.3.1.1, "Default multiplicities" |
| The target (arrowhead) end of a unidirectional association | 1 | SysML 1.2, Section 8.3.1.1, "Default multiplicities" |
The specification adds: "To avoid confusion, any multiplicity other than the default should always be shown on a diagram."
Exam Trap: Do not read a missing multiplicity as * (zero-to-many). First identify where it is missing: a bare part label such as sensorPod : SensorUnit means exactly one, while an unlabeled black-diamond end means at most one whole (0..1).
Association Ends and Property Duality
An association line between two blocks has two association ends. Each end represents a property owned either by the association itself or by the classifier at the opposite end of the relationship.
Anatomical Breakdown of an Association End
An association end on a BDD can display a full textual string adhering to standard property syntax:
[visibility] [name] : [Type] '[' [multiplicity] ']' [ {constraints} ]
- Visibility: Specifies accessibility. In SysML, the standard notations are:
+Public (default in SysML)-Private#Protected~Package
- Role Name: The identifier of the property in the context of the owning block (e.g.,
frontBrake,payloadController). - Type: The block typing the end (typically implicit from the block attached to that end).
- Multiplicity: Enclosed in square brackets (e.g.,
[4],[0..1],[1..*]). - Modifiers: Optional tagged values or property modifiers in curly braces (e.g.,
{readOnly},{ordered},{unique}).
Graph-to-Compartment Duality
In SysML, there is a strict 1-to-1 equivalence between drawing an association on a BDD and listing a property within a block compartment:
- Graphical Representation: An association line drawn between Block A and Block B.
- Compartment Representation: A text entry inside the feature compartments of Block A and Block B.
A system modeler can choose either representation—or use both across different diagrams. They represent the exact same underlying repository element.
Part Properties vs. Reference Properties
Understanding the distinction between part properties and reference properties is fundamental to passing the OCSMP Model User exam. The type of property created depends entirely on the aggregation kind of the association end:
1. Part Properties (Composition)
- Creation: Generated when the association features a solid black diamond attached to the owning block.
- Semantics: Represents exclusive whole-part containment. The owning block is responsible for the creation, management, and destruction of the part.
- Compartment Location: Displayed inside the
partscompartment of the block. - Visual Styling: On an ibd, a part property is drawn as a solid-outline box.
- Syntax Example: Inside the
partscompartment ofAutomobile:parts +engine : InternalCombustionEngine [1] +wheels : WheelAssembly [4]
2. Reference Properties (Reference Association)
- Creation: Generated when the association end has no black diamond: aggregation none, or the white diamond of shared aggregation (which the MU100 map excludes).
- Semantics: Represents a "knows-about" or "points-to" reference. The referencing block holds a pointer or handle to an external instance without owning it or controlling its lifecycle.
- Compartment Location: Displayed inside the
referencescompartment of the block. - Visual Styling: On an ibd, a reference property is drawn as a dashed-outline box.
- Syntax Example: Inside the
referencescompartment ofAutomobile:references +currentDriver : Person [0..1] +assignedMechanic : Technician [1]
Comprehensive Comparison Table
| Feature / Property Dimension | Part Property (parts) | Reference Property (references) | Value Property (values) |
|---|---|---|---|
| Originating BDD Relationship | Composite aggregation line (solid black diamond ◆) | Reference association line (no diamond, or open arrow -->) | Typing by a «valueType» (primitive, dimensioned, or unit) |
| Block Compartment | parts | references | values |
| Symbol on an ibd | Solid-outline box | Dashed-outline box | Solid-outline box (or an optional small square) |
| Ownership Nature | Strict, exclusive whole-part ownership | Non-exclusive shared or directed reference | Intrinsic, non-independent data value |
| Lifecycle Semantics | Coincident: part dies when whole dies | Independent: target survives referencing block | Bound to block state: value exists only as block attribute |
| Allowable Multiplicity on Owner End | Strictly 0..1 or 1 | Any valid multiplicity (0..*, 1..*, 1, etc.) | N/A (owned as feature attribute) |
| Example in Aerospace Model | +reactionWheel : ReactionWheel [4] | +activeGroundStation : GroundStation [1] | +totalMass : Kilogram = 1250.0 |
Multiplicity Calculations in Structural Trees
On the OCSMP Model User exam, questions frequently present a hierarchical decomposition tree and ask candidates to calculate the minimum and maximum possible instances of a leaf component in a system instance.
Instance Multiplication Rule
When traversing a composition hierarchy from parent to child, total instance counts are calculated by multiplying the multiplicities along the path:
When ranges are involved, calculate the lower and upper bounds independently:
Detailed Step-by-Step Scenario: Commercial Aircraft Structural Tree
Consider the following structural decomposition modeled on a BDD:
FleettoAircraft:- Relationship: Composition.
- End at
Aircraft:+planes : Aircraft [10..20]
AircrafttoTurbofanEngine:- Relationship: Composition.
- End at
TurbofanEngine:+engines : TurbofanEngine [2..4]
TurbofanEnginetoTurbineBlade:- Relationship: Composition.
- End at
TurbineBlade:+blades : TurbineBlade [50..80]
TurbofanEnginetoFullAuthorityDigitalEngineControl (FADEC):- Relationship: Composition.
- End at
FADEC:+fadec : FADEC [2](dual-redundant channels per engine)
Calculating Component Cardinalities:
-
How many
TurbofanEngineinstances exist in a singleAircraft?- Minimum: 2
- Maximum: 4
-
How many
TurbineBladeinstances exist in a singleAircraft?- Minimum: min engines × min blades = 2 × 50 = 100
- Maximum: max engines × max blades = 4 × 80 = 320
-
How many
FADECunits exist across the entireFleet?- Minimum: min planes × min engines × FADECs per engine = 10 × 2 × 2 = 40
- Maximum: max planes × max engines × FADECs per engine = 20 × 4 × 2 = 160
-
How many
TurbineBladeinstances exist across the entireFleet?- Minimum: 10 × 2 × 50 = 1,000
- Maximum: 20 × 4 × 80 = 6,400
Special Handling of Optional Parts (0..1)
If an intermediate block has a lower bound of 0, the lower bound of all downstream leaf components automatically drops to 0.
- For example, if an
Aircrafthas0..1AuxiliaryPowerUnit (APU), and eachAPUhas2StarterGenerators, the number ofStarterGeneratorsin an aircraft is between 0 × 2 = 0 and 1 × 2 = 2.
Common Exam Pitfalls with Multiplicities and Roles
- Reading Roles at the Wrong Block:
- A role name placed adjacent to Block B specifies a property owned by Block A, typed by Block B.
- If an association between
SatelliteandBatteryhas+powerStorage [2]placed next toBattery, thepowerStorageproperty belongs toSatellite! TheBatterydoes not own apowerStorageproperty.
- Confusing Multiplicity Brackets with Array Indices:
- In programming languages,
[4]might signify an array index or fixed size. In SysML,[4]means the instance cardinality is exactly 4 instances (4..4), not an index from 0 to 3.
- In programming languages,
- Ignoring Which End Is Unlabeled:
- A property label with no multiplicity means
1, but an unlabeled black-diamond end means0..1. Neither default is*.
- A property label with no multiplicity means
- Treating Reference Properties as Parts:
- If a question asks which components are destroyed when
SystemAis deleted, eliminate any blocks linked via reference associations (no diamond). Only blocks linked via composite aggregation (solid black diamond) undergo cascading deletion.
- If a question asks which components are destroyed when
On a Block Definition Diagram, Vehicle has a black-diamond (composite) association to Engine. The part end reads engine 1, but no multiplicity appears at the diamond end next to Vehicle. Per SysML 1.2, what multiplicity may be assumed at the diamond end?
1..*, because a whole must always exist before any part
*, because an unlabeled association end is unbounded
0..1, the SysML default for the diamond end of a part association
2, because every composite association links exactly two instances
A system architect creates an association between NavigationComputer and GPSReceiver with no diamond at either end (aggregation is none). Which compartment in the NavigationComputer block definition will display the resulting property, and what visual styling distinguishes it?
It appears in the references compartment, and when shown on an ibd the property is drawn as a dashed-outline box, marking a non-owning reference.
It appears in the parts compartment with a solid outline box icon, signifying exclusive whole-part ownership.
It appears in the values compartment, because associations without diamonds automatically convert into primitive value types.
It appears in the operations compartment, because associations without aggregation denote callable behavioral services.
A system model for an autonomous surveillance system specifies that a SurveillancePlatform block contains 4 SensorPod part properties. Each SensorPod contains 2..3 OpticalCamera parts and 1 ThermalImager part. If an operational site deploys 5 SurveillancePlatform systems, what is the minimum and maximum possible total number of OpticalCamera instances operating at the site?
Minimum 20, Maximum 30
Minimum 10, Maximum 15
Minimum 40, Maximum 60
Minimum 8, Maximum 12
Sections you finish are checked off in the contents.