10.2 Allocation Representations: Callouts, Compartments, Partitions & Tables

Key Takeaways

  • SysML shows one underlying «allocate» dependency in several ways: dependency arrows, allocatedFrom/allocatedTo compartments, callout notes, «allocate» activity partitions, and tables.

  • All of these notations display the same «allocate» dependency and its derived allocatedTo and allocatedFrom properties; switching notation changes only the picture.

  • Compartment notation renders allocatedFrom and allocatedTo compartments directly inside block or part boundary rectangles, displaying allocated elements textually without cluttering diagrams with crossing lines.

  • Callout notation is a note anchored to an element that lists allocatedFrom and/or allocatedTo entries written as «elementType» ElementName.

  • A partition labeled «allocate» makes each action inside it the client of an «allocate» to the partition's element; plain partitions do not create allocations.

Last updated: September 2026

10.2 Allocation Representations: Callouts, Compartments, Partitions & Tables

Quick Reference: SysML allows systems engineers to represent the exact same underlying «allocate» dependency using four canonical visual notations: (1) Explicit Dependency Arrow (dashed line with «allocate»), (2) Compartment Notation (allocatedFrom and allocatedTo compartments inside block/part symbols), (3) Callout Notation (dog-eared note box displaying allocatedTo: or allocatedFrom:), and (4) Allocate Activity Partitions (swimlanes whose label carries the keyword «allocate»). In addition, Allocation Tables/Matrices present these mappings in tabular format. All notations are semantically identical in the model repository.


The Principle of Notational Equivalence in SysML

One of the most powerful design principles in SysML is the separation of abstract syntax (the underlying model repository graph) from concrete syntax (the visual diagrams rendered on the screen or page). An «allocate» relationship is a unique element in the model repository consisting of a client and a supplier; the elements at each end display it through the derived properties allocatedTo and allocatedFrom.

Because systems engineering models span dozens of subsystems, hundreds of components, and thousands of operations, drawing explicit dependency lines between every action and every block quickly produces illegible "spaghetti diagrams." To preserve visual clarity while maintaining rigorous model traceability, SysML provides four distinct graphical representations for the allocation dependency.

Core Rule: Switching between dependency arrows, compartments, callouts, and activity partitions changes only the visual presentation on the diagram canvas. It does not alter the underlying model semantics, nor does it create redundant dependencies in the model repository.


The Four Canonical Visual Notations

+---------------------------------------------------------------------------------------+
|                                 SysML ALLOCATION NOTATIONS                            |
+---------------------------------------------------------------------------------------+
| 1. Dependency Arrow:    [Action] - - - «allocate» - - - > [Block]                     |
+---------------------------------------------------------------------------------------+
| 2. Compartment:         +-------------------------+                                   |
|                         |     «block» Avionics    |                                   |
|                         +-------------------------+                                   |
|                         | allocatedFrom           |                                   |
|                         |   ComputeTrajectory     |                                   |
|                         +-------------------------+                                   |
+---------------------------------------------------------------------------------------+
| 3. Callout Note:        +-------------------------+      +--------------------------+ |
|                         |  «action» ComputeTraj   |- - - | allocatedTo:             | |
|                         +-------------------------+      |   AvionicsProcessor      | |
|                                                          +--------------------------+ |
+---------------------------------------------------------------------------------------+
| 4. Activity Partition:  +-----------------------------------------------------------+ |
|    (Swimlane)           |         «allocate» adcs : ADCS_Computer                   | |
|                         |  +-----------------------+     +-----------------------+  | |
|                         |  | ComputeAttitudeError  | --> | FireReactionThruster  |  | |
|                         |  +-----------------------+     +-----------------------+  | |
|                         +-----------------------------------------------------------+ |
+---------------------------------------------------------------------------------------+

1. Explicit Dependency Arrow Notation

  • Visual Syntax: A dashed line with an open stick arrowhead bearing the stereotype keyword «allocate». The arrow points from the client (allocated element) to the supplier (target host element).
  • Applicable Diagrams: Block Definition Diagrams (bdd), Internal Block Diagrams (ibd), Activity Diagrams (act), and Package Diagrams (pkg).
  • Advantages: Unambiguous, highly intuitive visual path; immediately highlights cross-domain dependencies.
  • Limitations: Causes visual clutter and line crossings when many elements participate in allocations on the same diagram.

2. Compartment Notation

  • Visual Syntax: Dedicated rectangular compartments embedded directly inside the shape boundary of a block, part, or action:
    • allocatedFrom compartment: Displayed inside a supplier host (e.g., a Block). Contains a bulleted or comma-separated list of client elements that have been allocated to this host.
    • allocatedTo compartment: Displayed inside a client element (e.g., an Action or Logical Block). Contains a list of supplier elements to which this client has been allocated.
  • Entry Format: Entries are written without braces as «elementType» ElementName (e.g., «activity» ComputeTrajectory); the element type may be elided for brevity.
  • Applicable Diagrams: Block Definition Diagrams (bdd, on blocks), Internal Block Diagrams (ibd, on parts), and Activity Diagrams (act, on actions).
  • Advantages: Eliminates all crossing lines; keeps structural and behavioral views neatly organized within the respective element symbols.
  • Exam Detail: The compartment label must be precisely allocatedFrom or allocatedTo. Synonyms such as allocations, assignedFrom, or hosts are non-standard and invalid on the certification exam.

3. Callout Notation

  • Visual Syntax: A standard note symbol (a rectangle with a dog-eared upper-right corner) connected to the target model element by a dashed line without arrowheads (an anchor line).
  • Internal Content: The body of the note box displays an explicit text string:
    • allocatedTo followed by entries such as «block» HostElementName (when attached to a client element)
    • allocatedFrom followed by entries such as «activity» ClientElementName (when attached to a supplier host element)
  • Metamodel Distinction: Although callout notation visually resembles a standard UML comment, it is not an informal comment. In SysML, the callout displays the derived allocatedTo / allocatedFrom values of an existing «allocate» dependency. It is a view of a real model relationship, not a free-text remark.
  • Applicable Diagrams: Any SysML diagram kind, especially useful on Activity Diagrams (act) and Internal Block Diagrams (ibd) where drawing dependency arrows across subsystem boundaries would degrade legibility.

4. Allocate Activity Partitions (Swimlanes)

  • Visual Syntax: An activity partition (swimlane) whose label shows the keyword «allocate», SysML's short keyword for the AllocateActivityPartition stereotype.
  • Element Binding: A label with a colon (partName : BlockName or :BlockName) designates a part property; a simple name (BlockName) designates the block itself.
  • Allocation Semantics: Each action inside an «allocate» partition is the client of an «allocate» dependency whose supplier is the partition's element. A plain partition without the keyword shows UML responsibility, not allocation.
  • Multi-Dimensional Partitions: SysML supports two-dimensional grids (e.g., horizontal rows representing physical location and vertical columns representing subsystem blocks). In a two-dimensional grid, an action at an intersection lies in both partitions; only partitions marked «allocate» imply allocation.
  • Underlying Mechanism: When an action is dragged into an allocate partition in an MBSE authoring tool, the tool automatically instantiates an «allocate» dependency from that Action to the partition's classifier and populates allocatedTo / allocatedFrom.

Tabular Representation: Allocation Matrices & Tables

While graphical diagrams provide spatial intuition, systems engineering verification and audit gates require exhaustive, comprehensive mapping validation. For this reason, SysML 1.2 lets allocations be shown in tables: "A separate row is provided for each «allocate» dependency. 'from' is the client of the «allocate» dependency, and 'to' is the supplier," and both the element type and element name appear for each end. Tools also offer the same data as a matrix.

Structure of an Allocation Matrix

  • Row Axis (Left): Lists all client elements (e.g., every Action in a functional decomposition, or every Logical Block).
  • Column Axis (Top): Lists all supplier host elements (e.g., every physical subsystem, processor, or assembly).
  • Intersection Cells: Marked with a checkmark (✓), X, or the keyword «allocate» to indicate an active allocation dependency between that row and column.

Systems Engineering Value

  1. Orphan Function Detection: Any row without a mark represents an unallocated action—a function that has no physical component assigned to execute it.
  2. Underutilized Hardware Identification: Any column without marks indicates a physical component with no functional responsibilities assigned to it.
  3. Redundancy & Overload Auditing: Highlights whether safety-critical functions are concentrated in a single processor (single point of failure) or properly distributed across redundant hardware.
Allocation table (one row per «allocate» dependency):
+-----------+---------------------------+----------+---------------------------+
| from type | from name                 | to type  | to name                   |
+-----------+---------------------------+----------+---------------------------+
| «action»  | AcquireSensorData         | «part»   | sensorSuite : SensorSuite |
| «action»  | FilterIMUBias             | «part»   | fc : FlightComputer       |
| «action»  | ComputeAttitudeTrajectory | «part»   | fc : FlightComputer       |
| «action»  | ModulateThrusterDutyCycle | «part»   | fc : FlightComputer       |
| «action»  | FireReactionThruster      | «part»   | thrusters : ThrusterPack  |
+-----------+---------------------------+----------+---------------------------+

Allocation matrix (tool view of the same data):
+---------------------------+-------------+-----+-----------+
| client \ supplier         | sensorSuite | fc  | thrusters |
+---------------------------+-------------+-----+-----------+
| AcquireSensorData         |      X      |     |           |
| FilterIMUBias             |             |  X  |           |
| ComputeAttitudeTrajectory |             |  X  |           |
| ModulateThrusterDutyCycle |             |  X  |           |
| FireReactionThruster      |             |     |     X     |
+---------------------------+-------------+-----+-----------+

Worked Real-World Example: Satellite Attitude Control Subsystem

Consider the allocation of spacecraft attitude control behavior across different notations:

  • Behavioral Action: ComputeAttitudeError
  • Structural Block: AvionicsController

Here is how the exact same relationship is represented across the four notations:

  1. Dependency Arrow (bdd): A dashed arrow labeled «allocate» originates at ComputeAttitudeError and terminates at AvionicsController.
  2. Compartment (bdd): The AvionicsController block displays an allocatedFrom compartment containing ComputeAttitudeError.
  3. Callout Note (act): Next to the action ComputeAttitudeError, a note box states allocatedTo: AvionicsController, anchored by a dashed line.
  4. Swimlane (act): The action ComputeAttitudeError is placed inside an activity partition labeled «allocate» over the simple name AvionicsController (a simple name designates the block itself).

If an engineer alters the allocation by moving the action into a different «allocate» partition (thrusterController), the tool automatically updates the block's allocatedFrom compartment and the callout note text. All notations reflect the identical underlying repository model.


Comparison of SysML Allocation Representations

Representation FormatGraphical SyntaxApplicable Diagram KindsPrimary Readability StrengthMain Limitation
Explicit Dependency ArrowDashed line with open stick arrowhead and «allocate»bdd, ibd, act, pkgExplicit, intuitive visual connection across separate shapes.Severe clutter and crossing lines on dense diagrams.
Compartment NotationallocatedFrom / allocatedTo compartments inside a block, part, or actionbdd, ibd, actZero crossing lines; compact; maintains clean modular layout.Requires inspecting inside block shapes; does not show spatial topology.
Callout NotationDog-eared note with allocatedTo: or allocatedFrom: via dashed anchor lineAll SysML diagrams (act, ibd, bdd, stm)Localized clarity; avoids routing long arrows across canvas.Can obscure adjacent diagram elements if many callouts are placed.
Allocate Activity PartitionSwimlane whose label carries «allocate»act (Activity Diagrams)Directly integrates functional sequence flows with structural ownership.Restricted strictly to Activity Diagrams; cannot be used on BDDs or IBDs.
Allocation Matrix (Table)Cross-tabular matrix with client rows and supplier columnsTabular views / Model browserComprehensive, 100% auditability; detects orphan elements easily.Lacks visual architectural context and flow sequence information.

Exam Pitfalls & Misconceptions

ConceptCorrect SysML RuleCommon Exam Trap / Distractor
Swimlane Metamodel EffectPlacing an action in a partition labeled «allocate» establishes an «allocate» dependency to the partition's element.Believing swimlanes create UML composition, ownership, or aggregation between block and action.
Callout vs CommentCallout allocation is formal syntax for «allocate», not an informal user comment.Confusing an allocation callout note with an unstereotyped UML descriptive note.
Notational Semantic ParityAll four notations have identical semantic meaning in the underlying model repository.Claiming that explicit dependency arrows are "stronger" or "more binding" than compartment notation.
Compartment NamingThe compartment titles must be strictly allocatedFrom or allocatedTo.Using incorrect names such as allocations, assignedBehavior, or hostedFunctions.
«allocate» KeywordOnly partitions labeled «allocate» create allocations; a colon label (part : Block) designates a part, a simple name designates a block.Assuming every swimlane allocates its actions, or that the supplier is the block even when the label names a part.
Multi-Representation SyncChanges made in one notation (e.g., moving an action between swimlanes) automatically update all other views.Claiming that each diagram maintains independent, conflicting allocation records.
Loading diagram...
Four Equivalent Representations of the Same SysML Allocation
Test Your Knowledge

On an activity diagram, action RegulateChamberPressure sits in a partition whose label shows «allocate» above pressCtrl : PressureController. What model relationship does this placement establish?

A

PressureController becomes the composite owner of RegulateChamberPressure as an internal operation

B

An «allocate» dependency from the action RegulateChamberPressure (client) to the part property pressCtrl (supplier)

C

A «satisfy» relationship linking the activity diagram to a requirement named PressureController

D

A control token held inside PressureController until the action completes

Test Your Knowledge

A systems engineer wishes to indicate on a Block Definition Diagram that two actions, IngestTelemetry and ValidateChecksum, are assigned to a structural block FlightAvionics, without drawing crossing dependency lines across the diagram. How should this be displayed?

A

By nesting the two action shapes inside a dashed generalization compartment labeled «realizes»

B

By writing IngestTelemetry and ValidateChecksum inside the operations compartment followed by the stereotype «behavior»

C

By displaying an allocatedFrom compartment within the FlightAvionics block shape listing IngestTelemetry and ValidateChecksum

D

By attaching a composition black diamond connector pointing from each action to the FlightAvionics block

Test Your Knowledge

Which statement accurately describes the relationship between Callout Notation and Explicit Dependency Arrow Notation when modeling allocations in SysML?

A

Callout notation represents an informal user comment, whereas explicit dependency arrows enforce formal mathematical execution semantics

B

Explicit dependency arrows can only be used on Package Diagrams, whereas callout notation is restricted strictly to Parametric Diagrams

C

Callout notation creates a temporary view that is discarded upon saving, whereas dependency arrows persist permanently in the repository

D

Both notations convey the exact same underlying «allocate» dependency in the model repository, with identical derived allocatedTo and allocatedFrom properties

Sections you finish are checked off in the contents.