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.
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 (allocatedFromandallocatedTocompartments inside block/part symbols), (3) Callout Notation (dog-eared note box displayingallocatedTo:orallocatedFrom:), 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:
allocatedFromcompartment: 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.allocatedTocompartment: 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
allocatedFromorallocatedTo. Synonyms such asallocations,assignedFrom, orhostsare 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:
allocatedTofollowed by entries such as«block» HostElementName(when attached to a client element)allocatedFromfollowed 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/allocatedFromvalues 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 : BlockNameor: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 populatesallocatedTo/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
- Orphan Function Detection: Any row without a mark represents an unallocated action—a function that has no physical component assigned to execute it.
- Underutilized Hardware Identification: Any column without marks indicates a physical component with no functional responsibilities assigned to it.
- 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:
- Dependency Arrow (
bdd): A dashed arrow labeled«allocate»originates atComputeAttitudeErrorand terminates atAvionicsController. - Compartment (
bdd): TheAvionicsControllerblock displays anallocatedFromcompartment containingComputeAttitudeError. - Callout Note (
act): Next to the actionComputeAttitudeError, a note box statesallocatedTo: AvionicsController, anchored by a dashed line. - Swimlane (
act): The actionComputeAttitudeErroris placed inside an activity partition labeled«allocate»over the simple nameAvionicsController(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 Format | Graphical Syntax | Applicable Diagram Kinds | Primary Readability Strength | Main Limitation |
|---|---|---|---|---|
| Explicit Dependency Arrow | Dashed line with open stick arrowhead and «allocate» | bdd, ibd, act, pkg | Explicit, intuitive visual connection across separate shapes. | Severe clutter and crossing lines on dense diagrams. |
| Compartment Notation | allocatedFrom / allocatedTo compartments inside a block, part, or action | bdd, ibd, act | Zero crossing lines; compact; maintains clean modular layout. | Requires inspecting inside block shapes; does not show spatial topology. |
| Callout Notation | Dog-eared note with allocatedTo: or allocatedFrom: via dashed anchor line | All 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 Partition | Swimlane 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 columns | Tabular views / Model browser | Comprehensive, 100% auditability; detects orphan elements easily. | Lacks visual architectural context and flow sequence information. |
Exam Pitfalls & Misconceptions
| Concept | Correct SysML Rule | Common Exam Trap / Distractor |
|---|---|---|
| Swimlane Metamodel Effect | Placing 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 Comment | Callout allocation is formal syntax for «allocate», not an informal user comment. | Confusing an allocation callout note with an unstereotyped UML descriptive note. |
| Notational Semantic Parity | All 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 Naming | The compartment titles must be strictly allocatedFrom or allocatedTo. | Using incorrect names such as allocations, assignedBehavior, or hostedFunctions. |
| «allocate» Keyword | Only 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 Sync | Changes 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. |
On an activity diagram, action RegulateChamberPressure sits in a partition whose label shows «allocate» above pressCtrl : PressureController. What model relationship does this placement establish?
PressureController becomes the composite owner of RegulateChamberPressure as an internal operation
An «allocate» dependency from the action RegulateChamberPressure (client) to the part property pressCtrl (supplier)
A «satisfy» relationship linking the activity diagram to a requirement named PressureController
A control token held inside PressureController until the action completes
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?
By nesting the two action shapes inside a dashed generalization compartment labeled «realizes»
By writing IngestTelemetry and ValidateChecksum inside the operations compartment followed by the stereotype «behavior»
By displaying an allocatedFrom compartment within the FlightAvionics block shape listing IngestTelemetry and ValidateChecksum
By attaching a composition black diamond connector pointing from each action to the FlightAvionics block
Which statement accurately describes the relationship between Callout Notation and Explicit Dependency Arrow Notation when modeling allocations in SysML?
Callout notation represents an informal user comment, whereas explicit dependency arrows enforce formal mathematical execution semantics
Explicit dependency arrows can only be used on Package Diagrams, whereas callout notation is restricted strictly to Parametric Diagrams
Callout notation creates a temporary view that is discarded upon saving, whereas dependency arrows persist permanently in the repository
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.