Skip to content

Relationships

Relationships make the model navigable and testable. The reasoning: a model element on its own is a note; a typed relationship is a claim a reviewer can challenge. Select the narrowest relationship whose meaning and endpoint direction match what you are asserting.

Visual relationship guide

Relationship families

MEMO defines typed relationships across operational, architecture, assurance, and product domains. The chart shows representative pairs in the direction declared by the ontology:

Representative typed relationships across MEMO domains

Relationship From To Use it to say…
Motivates Need UseCase This need is why the goal exists
Initiates User UseCase This user pursues the goal
Supports OperationalWorkflow UseCase This organized work supports the goal
Selects MemoScenario WorkflowStep This scenario selects this path element
Enables SystemFunction OperationalActivity The system enables this work
AllocatedTo Function Component This component is responsible for this behavior
Realizes Software / physical element LogicalComponent This implementation realizes this responsibility
BuildsInto / DeploysTo / HostedBy Module / unit / node Unit / node / runtime The deployment chain
DerivesFrom Need, risk, or source driver Requirement This requirement exists because of this driver
SatisfiedBy Requirement Design element This design element satisfies the obligation
Mitigates Risk control Hazard This control reduces this hazard (mitigationKind = hazard)
CommitsUseError / Causes Task / use error Use error / hazard The use-related risk path
VerifiedBy / Validates Claim / use case / task V&V case This case checks the claim
ProducesEvidence V&V case Evidence This activity produced this evidence

The ontology includes more specialized links for cybersecurity, FMEA, fault trees, lifecycle change, interaction, and document views — every one is a connection def specializing MemoRelationship with typed ends, so the full inventory is discoverable in src/core/relationships and each domain package.

Before you reach for a new connection def, check that SysML v2 does not already supply the construct: many relationships (flow, bind, actor, succession, nesting) are native, and a reinvented edge suppresses the checking the native one performs. See Naming and native constructs for the corpus-first rule, the native-construct lookup table, and the allocation … : DeploysTo allocate … extension pattern.

Direction matters

Write the relationship so its endpoint roles read as a sentence:

connection : VerifiedBy
    connect verificationTarget ::> reqFlowAccuracy
    to verificationCase ::> testFlowAccuracy;

This reads: “reqFlowAccuracy is verified by testFlowAccuracy.”

Typed references

Where an element holds a reference—a flow's start function, an exchange's endpoints, an instance's definition—MEMO uses typed refs. The tool resolves the reference, and the conformance rules (rules/ontology) can check it. Path-like labels (sourcePortPath) serve as descriptive annotations for external tool round-trips.

A generic trace only says two records are related. A semantic relationship says how they are related and enables stronger validation. Use a generic trace only when no stable, more precise relationship exists, and record the rationale.