Skip to content

Operational layer

The question this layer answers

Why does the device exist, for whom, and in what setting?

The operational layer models the work the device enters, before it names any part of the device. Its heart is four elements: the goal a user pursues (UseCase), the workflow that realises it, the scenarios that are paths through the workflow, and the actions those scenarios are made of. Everything else on this page supports those four.

The operational layer: use case, workflow, scenario and action at the centre, with who, why and where around them

The colours say which part of MEMO an element belongs to: blue is architecture, red is assurance. A solid line is one of MEMO's own relationships, a dashed line is native SysML, a diamond is containment, and a dotted line is a reference. How to read the figures

Building it up

Step 1 · The work

Step 1: UseCase, OperationalWorkflow, OperativeScenario, OperativeAction

Start from the goal. A UseCase is a standard SysML use case: a goal held by an actor, with the system as its subject. An OperationalWorkflow is how the work toward that goal is organised, and it realises the use case (RealizesUseCase). Many workflows can realise one use case.

A workflow contains its scenarios (OperativeScenario): one nominal path, and alternate paths for exceptions and recovery, told apart by scenarioKind. Each scenario contains the actions (OperativeAction) it is made of, ordered natively with first … then, and an action can nest finer steps.

Step 2 · Who and why

Step 2: User, Need, IntendedUse, OperationalCapability

A User pursues the use case as its native actor, and performs actions (perform). Who performs an action is a relationship, not a type, so an action can move from the user to the system without being remodelled.

The goal exists for reasons. A Need, from Requirements, motivates the use case (Motivates). Above it all, the IntendedUse is the device's declared purpose (IEC 62366-1, ISO 14971). It requires operational capabilities (OperationalCapability, via RequiresCapability), and each capability enables use cases (EnablesUseCase).

Step 3 · Where

Step 3: UseContext and UseEnvironment

A scenario happens in a UseContext: its care setting, its jurisdiction, and whether use is connected. The context is situated in a UseEnvironment, the physical and organisational environment (IEC 62366-1, 3.20). Keeping the two apart lets one environment serve several contexts.

Step 4 · Supporting detail

Step 4: WorkflowControlNode and TaskDifficultyAssessment

A workflow's decisions, forks, joins and handoffs are control nodes inside it (WorkflowControlNode). A TaskDifficultyAssessment records how demanding an action is in its context (AssessesDifficulty), which feeds the human-factors analysis.

Where it leads

  • Down to Functional: the functional layer answers this one. An action performs (perform) the function that carries it out, and functional steps refine operational actions (#refinement).
  • Across to assurance: a task is where a use error is committed (CommitsUseError, Human factors); risk items and threats play out in scenarios (HazardRelatedScenario, RealizedByScenario); and a validation case validates a use case or task (Validates, Verification and validation).

In the running example

In the temperature alarm, the ICU nurse is the user. Monitor patient temperature is the use case the nurse initiates, and acknowledge alarm is a high-criticality task inside the work of reviewing an alarm.

part icuNurse : User {
    attribute :>> actorKind = ActorKind::clinician;
    @MemoIdentity { :>> providedId = "TA-USR-001"; }
}
use case ucMonitorTemp : UseCase {
    attribute :>> useCaseKind = UseCaseKind::clinical;
    @MemoIdentity { :>> providedId = "TA-UC-001"; :>> label = "MonitorPatientTemperature"; }
    attribute :>> goalStatement = "Continuously monitor core temperature and be alerted when it leaves the safe range.";
    subject supportingSystem;
    actor icuNurseInitiator = icuNurse;
}
action actAcknowledgeAlarm : OperativeAction {
    @MemoIdentity { :>> providedId = "TA-ACT-001"; :>> label = "ReviewAndAcknowledgeAlarm"; }
    attribute :>> criticality = CriticalityKind::high;

    action taskAckAlarm : OperativeAction {
        attribute :>> criticality = CriticalityKind::high;
        @MemoIdentity { :>> providedId = "TA-TASK-001"; :>> label = "AcknowledgeTemperatureAlarm"; }
        attribute :>> taskGoal = "recognize, assess, and acknowledge the alarm";
        attribute :>> potentialHarm = "delayed intervention for hypo-/hyperthermia";
        attribute :>> severityIfFailed = SeverityKind::serious;

The GPCA infusion pump shows the full shape: a workflow such as manage active therapy contains a nominal scenario and alternates such as bolus request during lockout. Read it layer by layer.

Every element and relationship in this layer (generated from src/architecture/operational/)

Elements

Activities

Element SysML kind What it is
OperativeAction action def Operative action definition specializing MemoAction.
TaskDifficultyAssessment part def Difficulty of a task in a particular context (§17). Associated by typed references, not inheritance; assessments are evidence-bearing.

Context

Element SysML kind What it is
OperationalParticipant (abstract) part def Operational participant definition specializing MemoPart.
User part def A human who interacts with the medical device (IEC 62366-1 intended user). User is the only human actor type: do not add an alternative type name. The human actor.…
ArchitectureDescription part def Architecture description definition specializing MemoPart.
ModelKind part def Model definition specializing MemoPart.
CorrespondenceRule part def Correspondence rule definition specializing MemoPart.
UseContext part def Use context definition specializing MemoPart.
UseEnvironment part def The physical/organizational environment of use (IEC 62366-1 3.20), separable from the care-setting context so environments are reusable.

Scenarios

Element SysML kind What it is
OperativeScenario action def A scenario is a MemoConstrainedOccurrence: it carries the native precondition and postcondition constraints a function does, redefined with an expression (constraint :>> precondition { level >= 0 }).…

Structure

Element SysML kind What it is
IntendedUse requirement def Intended use definition specializing MemoMission.
OperationalEntity part def Operational entity definition specializing MemoPart.
OperationalCapability part def Operational capability definition specializing MemoPart.

Use cases

Element SysML kind What it is
UseCase use case def Use case definition specializing MemoUseCase.

Workflows

Element SysML kind What it is
OperationalWorkflow action def Operational workflow definition specializing MemoAction.
WorkflowControlNode action def A workflow control node. The role is given by controlKind; the kind-specific fields below are set only for the relevant controlKind. handoff = transfer of responsibility between roles (shift change, room-to-lab).
WorkflowResource part def Resources a workflow requires: information, materials, or equipment by reference.

Connections at a glance

Each arrow is one relationship, from its source end to its target end. A grey box belongs to another layer.

flowchart LR
  TaskDifficultyAssessment["TaskDifficultyAssessment"]
  OperativeAction["OperativeAction"]
  anyElement["any element"]:::other
  MemoPart["MemoPart"]:::other
  UseContext["UseContext"]
  UseEnvironment["UseEnvironment"]
  IntendedUse["IntendedUse"]
  OperationalCapability["OperationalCapability"]
  UseCase["UseCase"]
  Need["Need"]:::other
  OperationalWorkflow["OperationalWorkflow"]
  MemoAction["MemoAction"]:::other
  InteractionFlow["InteractionFlow"]:::other
  RequirementDriver["RequirementDriver"]:::other
  OperativeScenario["OperativeScenario"]
  UseError["UseError"]:::other
  MemoEvidence["MemoEvidence"]:::other
  MemoNeed["MemoNeed"]:::other
  OperationalParticipant["OperationalParticipant"]
  RiskItem["RiskItem"]:::other
  TaskDifficultyAssessment -->|AssessesDifficulty| OperativeAction
  anyElement -->|Governs| MemoPart
  MemoPart -->|InteractsInContext| anyElement
  UseContext -->|AppliesInContext| MemoPart
  UseContext -->|SituatedIn| UseEnvironment
  IntendedUse -->|RequiresCapability| OperationalCapability
  OperationalCapability -->|EnablesUseCase| UseCase
  Need -->|Motivates| UseCase
  OperationalWorkflow -->|RealizesUseCase| UseCase
  MemoAction -->|Transforms| MemoAction
  InteractionFlow -->|FlowServesUseCase| UseCase
  RequirementDriver -->|RealizedByScenario| OperativeScenario
  OperativeAction -->|CommitsUseError| UseError
  MemoEvidence -->|EvaluatesTask| OperativeAction
  MemoNeed -->|HeldBy| OperationalParticipant
  RiskItem -->|HazardRelatedScenario| OperativeScenario
  classDef other fill:#eef1f4,stroke:#9aa7b2,color:#4a5a66

Relationships declared here

Relationship From To What it says
AssessesDifficulty TaskDifficultyAssessment OperativeAction Typed relationship from TaskDifficultyAssessment to OperativeAction.
Governs any element MemoPart Typed relationship from any element to MemoPart.
InteractsInContext MemoPart any element The single relation a system context view draws. A context diagram labels its edges with open-ended verbs — "directs procedure", "electrical power", "fluid supply", "environmental conditions".…
AppliesInContext UseContext MemoPart Typed relationship from UseContext to MemoPart.
SituatedIn UseContext UseEnvironment Typed relationship from UseContext to UseEnvironment.
RequiresCapability IntendedUse OperationalCapability The intended use requires these operational capabilities (ARCADIA: Mission Requires Capability).
EnablesUseCase OperationalCapability UseCase An operational capability enables a use case (the ability the actor draws on to accomplish the goal). Capability is tied to the use case, not to individual activities.
Motivates Need UseCase Typed relationship from Need to UseCase.
RealizesUseCase OperationalWorkflow UseCase The use case a workflow realizes. Many workflows may trace to one use case; the use case does not own its workflows (the trace points upward, workflow → use case).
Transforms MemoAction MemoAction Typed relationship from MemoAction to MemoAction.

Relationships from elsewhere that reach this layer

Relationship Declared in From To What it says
FlowServesUseCase implementation InteractionFlow UseCase Typed relationship from InteractionFlow to UseCase.
RealizedByScenario cybersecurity RequirementDriver OperativeScenario Typed relationship from RequirementDriver to OperativeScenario.
CommitsUseError human-factors OperativeAction UseError Typed relationship from OperativeAction to UseError.
EvaluatesTask human-factors MemoEvidence OperativeAction Typed relationship from MemoEvidence to OperativeAction.
HeldBy requirements MemoNeed OperationalParticipant Whose need this is. The holder is a modelled participant — a User, with the profile IEC 62366-1 asks for, or another operational participant — so "which users does this need serve" is a question the model answers rather than a sentence a reader interprets.
HazardRelatedScenario safety-risk RiskItem OperativeScenario Typed relationship from RiskItem to OperativeScenario.

Enumerations

Enumeration Values
DemandLevelKind minimal, low, moderate, high, extreme
GovernKind correspondence
ScenarioKind nominal, alternate
UseCaseKind clinical, service, manufacturing, development
WorkflowStateKind asIs, toBe, contingency, deprecated
StepTransformationKind preserves, automates, augments, eliminates
ControlNodeKind decision, handoff
TransformKind step, workflow, replacesWorkflow