10.1 The «allocate» Dependency: Semantics & Types

Key Takeaways

  • The «allocate» relationship is a specialized SysML dependency under the Cross-Cutting Constructs pillar that bridges disparate architectural aspects, such as behavior to structure, logical to physical components, or software to hardware.

  • Syntactically, an allocation dependency is depicted as a dashed line with an open stick arrowhead bearing the stereotype keyword «allocate», pointing from the client (source/allocated element) to the supplier (target/host element).

  • The «allocated» stereotype gives elements derived properties: allocatedTo on the client lists its suppliers, and allocatedFrom on the supplier lists its clients.

  • Behavioral-to-structural allocation maps functional activities, actions, operations, or state behaviors onto structural blocks or parts without modifying the underlying classifier definitions.

  • Structural, software-to-hardware, and flow allocations map logical blocks, software components, and item flows onto physical hardware assemblies, execution processors, and physical conduits.

Last updated: September 2026

10.1 The «allocate» Dependency: Semantics & Types

Quick Reference: The SysML «allocate» construct is a specialized Dependency that defines a non-structural, cross-cutting mapping between separate model elements. The graphical dependency arrow is drawn as a dashed line with an open stick arrowhead labeled with «allocate», pointing from the client (the source element being allocated, such as an Action) to the supplier (the target host element, such as a Block or Part). Elements at either end carry the derived properties allocatedTo (on the client) and allocatedFrom (on the supplier), which the «allocated» stereotype defines.


The Architectural Role of Allocation in MBSE

In Model-Based Systems Engineering (MBSE), complex architectures require a clear separation of concerns across multiple modeling viewpoints. Systems engineers typically formulate functional and behavioral requirements long before selecting specific commercial-off-the-shelf (COTS) hardware, microprocessors, or mechanical enclosures. Similarly, software architects design computational algorithms independently of the physical computing nodes that will eventually execute them.

Without a formalized mapping mechanism, linking functional behavior to physical structure would require hardcoding structural assignments directly into behavioral models (or vice versa). Such tight coupling undermines model reusability, complicates trade studies, and impedes modular lifecycle management.

SysML resolves this challenge through Allocation. Allocation provides a non-invasive, late-binding bridge across disparate model aspects, allowing engineers to:

  1. Map abstract system functions to physical or logical structural components.
  2. Trace logical architectural concepts to concrete physical components.
  3. Distribute software execution units across heterogeneous hardware processors.
  4. Route logical information and physical material flows across real-world communication links, buses, and piping systems.

Because allocation links distinct architectural domains without altering the internal definitions of the participating elements, multiple alternative allocation schemes can be evaluated in trade studies without modifying the underlying functional or structural libraries.


Metamodel Foundations: The «allocate» Dependency

In the SysML 1.2 metamodel, Allocate is a stereotype of UML Abstraction, a kind of dependency that is "permissible between any two NamedElements." A single «allocate» has exactly one client but may have one or more suppliers. In any UML/SysML dependency, two foundational roles exist:

  1. Client (Source Element): The element that requires, relies on, or is mapped to another element. In an allocation relationship, the client is the allocated element (the entity being assigned, such as an action, logical block, or item flow).
  2. Supplier (Target Element): The independent element that provides the capability, execution context, or physical realization. In an allocation relationship, the supplier is the target host element (the entity receiving the assignment, such as a physical block, part property, or hardware bus).

Dependency Arrow Directionality

A universal rule of UML and SysML dependencies is that the dependency arrow points from the client to the supplier:

Client (Allocated Element) - - - «allocate» - - - > Supplier (Target Host Element)

On the OCSMP Model User exam, this directionality is a frequent point of confusion. Many novice modelers assume that because a structural processor "executes" or "owns the workload of" an action, the arrow should point from the processor to the action. In SysML metamodel semantics, the opposite is true: the behavioral action depends on the structural host for its execution, so the arrow points from the action (client) to the structural block (supplier). Remember the universal mnemonic for the Model User exam: the element needing a host is always the client that initiates the dependency arrow, while the structural component providing the execution context is the supplier that receives the arrowhead. This directionality applies uniformly whether allocating software to processors or actions to structural blocks.

+-----------------------+                         +-------------------------+
|       «action»        |                         |        «block»          |
| ComputeSteeringAngle  | - - - «allocate» - - - >| NavigationComputerCore  |
+-----------------------+                         +-------------------------+
  [Client / Allocated]                              [Supplier / Target Host]

Bidirectional Navigation: allocatedTo & allocatedFrom

While the graphical dependency arrow is directed from client to supplier, SysML provides bidirectional navigation within the model repository through two derived properties defined by the «allocated» stereotype, which applies to any element at either end of an «allocate»:

1. allocatedTo (Client Property)

  • Location: Resides on the client element (the source being allocated).
  • Value: A reference (pointer) to the supplier element(s) that host the client.
  • Semantics: Identifies where this element is deployed, executed, or hosted.
  • Example: For the action ComputeSteeringAngle, its allocatedTo property holds NavigationComputerCore.

2. allocatedFrom (Supplier Property)

  • Location: Resides on the supplier element (the host receiving the allocation).
  • Value: A collection of references pointing back to all client element(s) allocated to this host.
  • Semantics: Identifies all responsibilities, behaviors, or logical components hosted by this element.
  • Example: For the block NavigationComputerCore, its allocatedFrom property lists ComputeSteeringAngle (and any other co-allocated actions).

These properties ensure that an automated tool or model reviewer can inspect either element and immediately discover the full allocation mapping without traversing the diagram canvas. Each value is written as «elementType» ElementName, for example «block» NavigationComputerCore. SysML 1.2 suggests element types such as «activity», «objectFlow», «controlFlow», «objectNode», «block», «itemFlow», «connector», «port», «flowPort», «atomicFlowPort», «interface», and «value», and recommends fully qualified names when a usage could be confused with its definition.


Canonical Allocation Categories in Systems Architecture

The SysML 1.2 specification describes three kinds of allocation: behavior, flow, and structure allocation. Practitioners commonly split structure allocation into logical-to-physical and software-to-hardware cases, which gives the four working categories below:

                         +-----------------------------+
                         |   SysML Allocation Types    |
                         +-----------------------------+
                                        |
         +-----------------+------------+------------+-----------------+
         |                 |                         |                 |
         v                 v                         v                 v
   +------------+   +--------------+          +--------------+   +------------+
   | Behavioral |   |  Structural  |          | Software-to- |   |  Flow &    |
   |     to     |   |  (Logical to |          |   Hardware   |   | Connector  |
   | Structural |   |   Physical)  |          |  Allocation  |   | Allocation |
   +------------+   +--------------+          +--------------+   +------------+

1. Behavioral to Structural Allocation (Functional Allocation)

  • Description: Allocating functional or behavioral elements to structural components.
  • Client Elements: Activities, Actions, Operations, State Behaviors, or Use Cases.
  • Supplier Elements: Blocks, Part Properties, Systems, Subsystems, or Human Actors.
  • Engineering Role: Answers the core systems engineering question: "Which component is responsible for performing this function?"
  • Modeler Practice: Often established on Activity Diagrams (via «allocate» activity partitions) or on Block Definition Diagrams (via explicit dependency arrows).

2. Logical to Physical Architecture Allocation

  • Description: Allocating conceptual, technology-agnostic logical architecture blocks to specific physical hardware, mechanical assemblies, or off-the-shelf components.
  • Client Elements: Logical Blocks (e.g., SensorDataFusionUnit).
  • Supplier Elements: Physical Blocks (e.g., NVIDIA_Jetson_AGX_Assembly).
  • Engineering Role: Facilitates trade studies where multiple physical implementation baselines can be swapped and evaluated against a single, stable logical architecture.

3. Software to Hardware Allocation

  • Description: Allocating software execution units to processing hardware, memory partitions, or execution threads.
  • Client Elements: Software Components, Application Software, OS Tasks, or Firmware Modules.
  • Supplier Elements: Microcontrollers, Multi-core Processors, Digital Signal Processors (DSPs), FPGAs, or Virtual Machines.
  • Engineering Role: Supports computing resource budgeting, timing verification, and safety-critical hardware/software isolation analysis.

4. Flow and Connector Allocation

  • Description: Allocating abstract logical flows (item flows, signal exchanges, interface contracts) to physical conduits, data buses, or mechanical transport lines.
  • Client Elements: Item Flows, Information Flows, or Logical Connectors.
  • Supplier Elements: Physical Connectors, Communication Buses (e.g., CAN Bus, MIL-STD-1553, ARINC 429, Ethernet), or Physical Pipelines (e.g., Hydraulic Tubes, Fuel Conduits).
  • Engineering Role: Validates bandwidth constraints, latency requirements, electrical isolation, and plumbing flow capacities.
  • Specification Notes: SysML 1.2 calls the allocation of an object flow to a connector an "Allocation of Usage" that implies nothing about the defining blocks or associations, and states that pin-to-port allocation "is not addressed in this release."

Allocation vs. Other SysML Relationships

Because SysML features several directed dependency relationships, certification candidates must clearly differentiate «allocate» from other stereotypes:

Relationship StereotypeBase (SysML 1.2)Primary Source (Client)Primary Target (Supplier)Semantic Meaning
«allocate»Abstraction (a dependency)Action, Logical Block, Item FlowBlock, Part, Physical LinkAssigns an architectural element (behavior, logical unit, flow) to a hosting structural element.
«satisfy»Trace (a dependency)Block, Part, ActionRequirementAsserts that a structural or behavioral design element fulfills the stated requirement text.
«verify»Trace (a dependency)Test CaseRequirementAsserts that a specific test case or qualification method proves a requirement is met.
«refine»UML Refine (an abstraction)Model Element (e.g., Use Case, Block)RequirementClarifies, details, or provides a more concrete specification of a requirement.
«deriveReqt»Trace (a dependency)Derived RequirementSource RequirementAsserts that a lower-level requirement is derived from a higher-level requirement.

Exam Trap: «satisfy» connects a system element to a Requirement. It is never valid to use «satisfy» to map an Action to a Block; that mapping must strictly use «allocate». Conversely, allocating a functional behavior to a physical block does not replace the «satisfy» relationship linking the block to its governing system requirement.


Worked Real-World Example: Autonomous Rover Steering System

To see how the four allocation categories integrate across an industrial MBSE project, consider an Autonomous Mobile Robot (AMR) steering system:

  1. Behavioral Allocation: The Action CalculateSteeringCurvature (residing in the SteeringControl activity) is allocated to the part property navCore : NavigationProcessor. In the model repository:
    • CalculateSteeringCurvature.allocatedTo = {navCore}
    • navCore.allocatedFrom = {CalculateSteeringCurvature}
  2. Logical to Physical Allocation: The logical block VisionObstacleDetector is allocated to the physical COTS hardware block StereoLidarUnit_v2.
  3. Software to Hardware Allocation: The software process PathPlannerThread is allocated to the physical hardware processor core CPU_Core_0.
  4. Flow Allocation: The logical Item Flow SteeringCommandFlow passing between the path planner and the motor driver is allocated to the physical internal connector CAN_Bus_Link.

This multi-tiered allocation scheme provides 100% end-to-end traceability from operational algorithms down to physical silicon and copper wires.


Summary Comparison of Allocation Categories

Allocation CategoryClient Element (Source)Supplier Element (Target Host)Typical SysML Diagrams UsedEngineering Purpose
Behavioral to StructuralAction, Activity, Operation, StateBlock, Part Property, ActorACT («allocate» partitions), BDD (arrows)Assigns computational or physical operational duties to architectural components.
Logical to PhysicalLogical Block, Conceptual SubsystemPhysical Block, COTS HardwareBDD (arrows, compartments)Bridges technology-independent designs to physical procurement and fabrication baselines.
Software to HardwareSoftware Component, Executable TaskProcessor, Core, Memory UnitBDD, IBD, Deployment viewsBalances computational throughput, memory budgets, and task execution priority.
Flow to ConnectorItem Flow, Information FlowConnector, Bus, Physical ConduitIBD (connectors), BDDMaps communication and fluid/power transfers to physical routing media.

Exam Pitfalls & Misconceptions

ConceptCorrect SysML RuleCommon Exam Trap / Distractor
Arrow DirectionArrow points from allocated client (Action/Logical) to target supplier host (Block/Physical).Inverting the arrow to point from the host block down to the action because "the block runs the action."
Arrow StylingDrawn as a dashed line with an open stick arrowhead labeled with «allocate».Drawing a solid line (association) or a closed hollow triangle (generalization/realization).
Derived Property RolesallocatedTo is shown on the client; allocatedFrom is shown on the supplier host.Inverting them (e.g., claiming a block shows allocatedTo: Action).
Metaclass Base«allocate» is a stereotype of UML Abstraction, a kind of dependency.Claiming that «allocate» is a subtype of Association, Generalization, or Composition.
Separation of ElementsAllocation links elements across models without modifying classifier feature definitions.Believing that allocating an action into a block automatically turns that action into an internal operation of the block.
Allocation vs Satisfy«allocate» maps design elements to design elements; «satisfy» maps design elements to requirements.Using «allocate» between a Block and a Requirement, or using «satisfy» between an Action and a Block.
Loading diagram...
Behavioral-to-Structural and Logical-to-Physical Allocation Topology
Test Your Knowledge

A systems modeler is drawing an explicit allocation relationship between a behavioral Action named ProcessTelemetry and a structural Block named TelemetryProcessor. According to SysML syntax rules, how must the dependency arrow be constructed?

A

A dashed line with an open stick arrowhead pointing from ProcessTelemetry to TelemetryProcessor, bearing the keyword «allocate»

B

A solid line with a filled triangular arrowhead pointing from TelemetryProcessor to ProcessTelemetry, bearing the keyword «allocate»

C

A dashed line with an open stick arrowhead pointing from TelemetryProcessor to ProcessTelemetry, bearing the keyword «satisfy»

D

A solid line with a hollow diamond on TelemetryProcessor and an arrow pointing to ProcessTelemetry

Test Your Knowledge

In a SysML model repository, an activity action ComputeTrajectory has been allocated to a flight computer part property named fcsCore. Which derived allocation properties result on these two participating elements?

A

fcsCore receives the property allocatedTo referencing ComputeTrajectory, and ComputeTrajectory receives allocatedFrom referencing fcsCore

B

ComputeTrajectory receives the property allocatedTo referencing fcsCore, and fcsCore receives allocatedFrom referencing ComputeTrajectory

C

Both ComputeTrajectory and fcsCore receive identical allocatedElement properties pointing to the enclosing package namespace

D

ComputeTrajectory receives a satisfyRequirement tagged value, and fcsCore receives a verifyMethod tagged value

Test Your Knowledge

A systems engineering team needs to map an abstract logical software component, ImageClassifier, to a multi-core processor hardware core, DSP_Core_1, and also map a logical data exchange to a physical CAN bus. Which statement correctly categorizes these modeling actions under SysML?

A

Both mappings represent generalization relationships that must be drawn with hollow triangular arrows on a class diagram

B

Mapping software to hardware requires an «extend» relationship, while mapping data to a bus requires an «include» relationship

C

Both mappings are valid applications of the «allocate» dependency: the first is software-to-hardware allocation and the second is flow/connector allocation

D

The team must define a new UML composition association because «allocate» is strictly restricted to mapping activities to blocks

Sections you finish are checked off in the contents.