11.3 Refine, Trace & Containment Hierarchies
Key Takeaways
The «refine» dependency indicates that a behavioral or structural model element (client) provides a more detailed, unambiguous specification of a requirement (supplier).
The «trace» dependency represents the weakest semantic relationship in SysML, serving as an auditable tracking link without behavioral or mathematical constraints.
Requirement Containment models hierarchical namespace decomposition where a compound parent requirement owns its constituent sub-requirements.
Containment is rendered visually either by physical nesting (box-in-box) or by a solid line with a circle-plus (+) symbol placed strictly at the parent requirement end.
Containment represents structural/namespace ownership breakdown, whereas «deriveReqt» represents logical derivation between distinct requirements across abstraction levels.
11.3 Refine, Trace & Containment Hierarchies
Quick Reference: While
«deriveReqt»,«satisfy», and«verify»form the core requirements-to-design backbone, SysML provides three additional mechanisms for structuring and contextualizing specifications:«refine»(where a behavioral model element elaborates what a requirement means),«trace»(a general-purpose, semantically unconstrained audit tracking link), and Containment (composite parent-child ownership rendered via a circle-plus(+)symbol or physical nesting).
1. The «refine» Relationship: Behavioral Clarification
Natural language requirements—no matter how meticulously drafted—suffer from inherent semantic ambiguity. A requirement stating "The automated teller machine shall authenticate customer credentials securely" does not describe the chronological exchange of PIN digits, biometric encryption tokens, or retry limit lockouts.
To eliminate ambiguity, systems engineers construct formal behavioral models (Use Cases, Activities, State Machines, or Sequence Diagrams). SysML connects these descriptive models to requirements using the «refine» dependency.
Metamodel Semantics and Visual Syntax
- Client (Tail): The refining model element (most commonly a Use Case, Activity, State Machine, Interaction, or SysML Model View).
- Supplier (Head): The requirement being refined.
- Arrowhead: A dashed line with an open arrowhead pointing from the refining model element to the requirement.
UseCase / Activity - - - «refine» - - - > Requirement
SysML 1.2 also permits the reverse use, where a text requirement refines a less detailed model element. Before reading a «refine» arrow, check which end is the requirement.
+---------------------------+ +---------------------------+
| «useCase» | | «requirement» |
| AuthenticateOperator |-----«refine»--->| OperatorSecurity |
| | | id = "REQ-SEC-001" |
+---------------------------+ +---------------------------+
The Critical Distinction: «refine» vs. «satisfy»
Candidates frequently confuse «refine» and «satisfy». While both point from a model element to a requirement, their engineering purposes are fundamentally different:
«refine»(Clarifying WHAT the requirement means): Connects a descriptive model (e.g., a Use Case, Activity flow, or State Machine) that elaborates, disambiguates, or formalizes the requirement's operational intent.«satisfy»(Asserting HOW the design realizes it): Connects a concrete architectural component (e.g., a physical Block, software module, or hardware part) that implements the requirement in the final system architecture.
| Modeling Question | Appropriate Relationship | Client Type | Supplier Type |
|---|---|---|---|
| "Which behavioral scenario explains the operational workflow of this requirement?" | «refine» | Use Case / Activity | Requirement |
| "Which physical component or structural part accomplishes this requirement?" | «satisfy» | Block / Part Usage | Requirement |
2. The «trace» Relationship: General-Purpose Audit Tracking
A «trace» relationship is a standard, general-purpose dependency used to record a historical, auditable, or tracking connection between two model elements, at least one of which is typically a requirement.
Characteristics of «trace»
- Weakest Semantic Relationship:
«trace»imposes no behavioral constraints, no mathematical bindings, and no design realization obligations. It merely asserts: "An auditable relationship exists between these two model elements for tracking, history, or compliance auditing." - Client and Supplier: Drawn as a dashed line with an open arrowhead pointing from client to supplier (
ElementA ----«trace»----> ElementB). - Broad Applicability: Used to link model requirements back to external regulatory documents, customer request-for-proposal (RFP) paragraphs, legacy specifications, or hazard analyses where a more specific relationship (such as
«satisfy»or«deriveReqt») does not apply.
Exam Warning: Modeler candidates should not use
«trace»as a lazy substitute when a semantically richer relationship is applicable. If a Block fulfills a requirement, use«satisfy». If a test validates a requirement, use«verify». If one requirement is deduced from another, use«deriveReqt». Reserve«trace»strictly for general historical or cross-reference auditing. SysML 1.2 itself recommends that trace "not be used in conjunction with the other requirements relationships."
3. Requirement Containment Hierarchies: Namespace Decomposition
Complex engineering systems frequently involve massive, multi-tiered compound requirements. For example, a high-level requirement EnvironmentalControl encompasses cabin temperature, cabin pressurization, oxygen replenishment, and humidity control.
SysML supports this compositional decomposition through Requirement Containment.
Ownership Semantics of Containment
Requirement containment is not a dependency relationship. It is a strict namespace ownership relationship governed by standard UML package/namespace containment rules:
- Single Owner: Every contained sub-requirement is owned by exactly one parent requirement namespace.
- Cascading Lifecycle: If the parent requirement is deleted from the model repository, all of its contained sub-requirements are automatically deleted with it.
- Namespace Qualified Name: Contained requirements reside inside the parent requirement's namespace path (e.g.,
SpacecraftReqs::EnvironmentalControl::CabinPressure).
Graphical Notations for Containment
SysML provides two alternative visual representations for requirement containment on a Requirement Diagram (req):
1. Circle-Plus Connector Notation
A solid line links the parent requirement to the child sub-requirement. At the end touching the parent (container) requirement, the line terminates in a circle enclosing a plus sign ((+)). No arrowhead is used.
+-----------------------+ +-----------------------+
| «requirement» | | «requirement» |
| EnvironmentalControl |(+)--------------| CabinPressure |
| id = "REQ-ENV-001" | | id = "REQ-ENV-002" |
+-----------------------+ +-----------------------+
Exam Trap: The circle-plus
(+)symbol must always touch the parent (enclosing) requirement. Placing the circle-plus at the child end is a syntactic violation frequently used as an incorrect answer choice on certification exams.
2. Physical Nesting (Box-in-Box Notation)
The child requirement box is drawn physically inside the boundary of the parent requirement box. This notation visually illustrates encapsulation without connecting lines, though it is practical only for small hierarchies.
+-------------------------------------------------------------+
| «requirement» |
| EnvironmentalControl |
| id = "REQ-ENV-001" |
+-------------------------------------------------------------+
| +---------------------------------------------------------+ |
| | «requirement» | |
| | CabinPressure | |
| | id = "REQ-ENV-002" | |
| +---------------------------------------------------------+ |
+-------------------------------------------------------------+
Containment vs. «deriveReqt»: The Crucial Distinction
A central topic on the OCSMP Model User exam is distinguishing between Containment and «deriveReqt»:
| Characteristic | Containment ((+)) | Derive Requirement («deriveReqt») |
|---|---|---|
| Relationship Category | Namespace Ownership (Compositional breakdown) | Directed Dependency (Logical deduction) |
| Metamodel Construct | Namespace Containment | Stereotyped Dependency («deriveReqt») |
| Graphical Line Style | Solid line with circle-plus (+) at parent end | Dashed line with open arrowhead at source end |
| Lifecycle Dependency | Tightly bound: Deleting the parent destroys the child sub-requirements. | Independent: Deleting the source requirement does not delete the derived requirement. |
| Abstraction Tier | Same tier: Part-whole breakdown of a single compound requirement. | Cross-tier: Subsystem requirement deduced from a system-level requirement through design synthesis. |
| Conceptual Meaning | "Requirement A is composed of sub-requirements A.1 and A.2." | "Requirement B was deduced from Requirement A as a consequence of choosing architecture X." |
The Complete 6-Way Requirement Relationship Comparison Matrix
| Relationship | Metamodel Type | Visual Line Style | Adornment / Arrowhead | Client (Tail) | Supplier (Head) | Core Meaning |
|---|---|---|---|---|---|---|
| Containment | Namespace Ownership (not a dependency) | Solid line | Circle-plus (+) at parent | Parent (owner) | Child (owned) | Structural/compositional decomposition of a compound requirement into owned parts. |
«deriveReqt» | Trace dependency | Dashed line | Open arrow at supplier | Derived Requirement | Source Requirement | Logical deduction of a lower-level requirement from a higher-level requirement. |
«satisfy» | Trace dependency | Dashed line | Open arrow at supplier | Design Element (Block) | Requirement | Assertion that an architectural design element fulfills a requirement. |
«verify» | Trace dependency | Dashed line | Open arrow at supplier | «testCase» (Activity) | Requirement | Assertion that a test procedure or evaluation proves compliance with a requirement. |
«refine» | UML Refine (abstraction) | Dashed line | Open arrow at supplier | Behavior (Use Case) | Requirement | Elaboration of a requirement's operational meaning via a formal behavioral scenario. |
«trace» | UML Trace (abstraction) | Dashed line | Open arrow at supplier | Any Model Element | Any Model Element | General-purpose, weak historical or audit tracking link without behavioral constraints. |
Worked Example: Comprehensive Requirements Model
Consider an automated baggage handling airport system:
«requirement»BaggageHandlingSystem (Top-Level Container)- Contains via
(+):BagRoutingandBagTracking.
- Contains via
«requirement»BagRouting- Refined by (
«refine»): Use CaseRouteLuggageToFlight. - Derived to (
«deriveReqt»):ConveyorMotorSpeed(Subsystem Requirement).
- Refined by (
«requirement»ConveyorMotorSpeed- Satisfied by (
«satisfy»): BlockElectricRollerConveyor. - Verified by (
«verify»): ActivityConveyorTachometerTeststereotyped as«testCase».
- Satisfied by (
«requirement»BaggageHandlingSystem- Traced to (
«trace»): External documentFAA-Airport-Safety-Standard-402.
- Traced to (
This integrated scenario demonstrates the clean separation of concerns among all six requirement relationships.
Exam Pitfalls & Misconceptions
| Concept | Correct SysML Rule | Common Exam Trap / Distractor |
|---|---|---|
| Circle-Plus Placement | The (+) symbol must be placed at the parent requirement end. | Placing (+) at the child sub-requirement end. |
| Refine vs. Satisfy | «refine» clarifies what the requirement means (via behaviors/use cases); «satisfy» asserts how design realizes it (via blocks). | Claiming a Block refines a requirement or an Activity satisfies a requirement when clarifying meaning. |
| Containment Line Style | Containment is drawn as a solid line with (+). | Drawing containment with a dashed line or an open arrowhead. |
| Trace Semantics | «trace» is an unconstrained audit pointer with the weakest semantics in SysML. | Claiming «trace» proves requirement fulfillment or enforces behavioral execution. |
| Derivation vs. Containment | «deriveReqt» connects separate requirements across tiers; Containment is parent-child namespace ownership. | Using «deriveReqt» to represent simple paragraph sub-clause numbering within a single requirement. |
A modeler decomposes a complex compound requirement PowerManagement into two sub-requirements: BatteryCharging and SolarGeneration. The modeler draws solid lines connecting PowerManagement to each sub-requirement with a circle enclosing a plus sign (+). Where must the circle-plus symbol be located?
At both ends of the line to show a bidirectional relationship
At the child sub-requirement end of the line
Strictly at the parent (PowerManagement) end of the line
Centered midway along the connecting line with an open arrowhead
A systems architect connects a Use Case named PerformEmergencyBraking to a requirement named BrakingResponse using a dashed arrow pointing to the requirement labeled with «refine». What is the precise semantic meaning of this relationship?
The Use Case executes laboratory qualification tests to prove that the BrakingResponse requirement has been achieved.
The Use Case is a physical component that realizes and fulfills the BrakingResponse requirement in the vehicle chassis.
The Use Case logically derives the BrakingResponse requirement from an external federal transportation standard.
The Use Case provides a more detailed, formalized behavioral description that clarifies the operational meaning of the BrakingResponse requirement.
Which of the following statements correctly characterizes the «trace» relationship in SysML requirement modeling?
It is a strict compositional ownership relationship where deleting the supplier deletes the client.
It is a general-purpose, auditable tracking dependency with the weakest formal semantics in SysML, asserting a traceable link without behavioral or mathematical constraints.
It guarantees that a structural block has implemented all properties required by a specification.
It requires the client element to return a VerdictKind of pass, fail, inconclusive, or error upon model execution.
Sections you finish are checked off in the contents.