Requirements and Architecture¶
Requirements state what must be true. Architecture assigns responsibility for making it true — first without technology commitments (logical), then with them (implementation). Keeping those two commitments apart is what lets you compare alternatives, argue independence of safety channels, and change a processor without rewriting the safety case.
Requirements¶
There is one Need definition and one Requirement definition; the
needKind / requirementKind attribute records the level of the claim, so
choose the kind value that matches:
| Definition and kind | Appropriate claim |
|---|---|
Need (needKind: stakeholder, user, clinicalUser, patientUser, business, service, regulatory, operational) |
Desired outcome in stakeholder language (see The Operational World) |
Requirement (requirementKind: system) |
Externally observable system behavior or constraint |
Requirement (requirementKind: software / hardware) |
Behavior or constraint allocated to one realization |
Need (needKind: designControl) / Requirement (requirementKind: designControl, systemSpecification, softwareSpecification, hardwareSpecification) |
Controlled design inputs and outputs |
A strong requirement has a stable identifier, one principal obligation, observable acceptance criteria, and a source or rationale. MEMO's EARS and obligation attributes let tools lint the pattern.
Logical architecture: organization without technology¶
The logical layer holds responsibility structure in one LogicalComponent
definition whose componentRole gives its place — system, subsystem,
channel, dataStore, controlElement, userInterface, or externalSystem — plus
the safety-architecture vocabulary: a LogicalComponent with
componentRole = channel carries a typed channelRole (primary, secondary,
redundant, diverse, monitor, watchdog, interlock, independent protection),
alongside IsolationBoundary and FaultContainmentRegion. Two design rules
follow from the reasoning, and both are checked:
- Redundancy is roles plus independence. Two channels claiming
independence are linked by
IndependentOfwith the basis stated (separate sensing, power, processing) — never modeled as two identically named copies. - Flows are typed. A logical connection carries a
FlowContentKind: information, command, measurement, alarm — but also energy, material, fluid, and mechanical force, because medical devices move more than data.
Implementation: software in three views, physics in one taxonomy¶
Software structure answers three different questions, so MEMO gives it three
views (the SEI viewtypes): the module view (SoftwareSystem,
SoftwareModule, SBOMEntry — the IEC 62304 decomposition), the runtime
view (SoftwareComponent, whose runtimeKind says process, thread, task,
service, container, partition, data store, or message broker — concurrency,
scheduling, WCET, restart policy), and the deployment view (SoftwareDeploymentUnit builds from
modules and deploys to a ProcessingNode; runtime components are hosted
there). Physical realization spans the full taxonomy — mechanical,
electrical, electronic, fluidic, pneumatic, optical, acoustic, thermal —
because "physical" means more than a circuit board.
| Concern | Element examples |
|---|---|
| Logical responsibility | LogicalComponent (componentRole: system…channel), IsolationBoundary |
| Software module view | SoftwareSystem, SoftwareModule, SBOMEntry |
| Software runtime view | SoftwareComponent (runtimeKind: process, thread, task, service, partition, …) |
| Deployment | SoftwareDeploymentUnit, ProcessingNode, RuntimeEnvironment |
| Physical realization | PhysicalAssembly, Sensor, Actuator, FluidicComponent, OpticalComponent, … |
| Interfaces | Interface taxonomy, LogicalPort/LogicalInterface, ComponentExchange, an interface between two ports |
flowchart LR
Need[Need: stakeholder] --> Req[Requirement: system]
Req --> Function[SystemFunction]
Function -->|AllocatedTo| Logical[LogicalComponent]
Logical -->|Realizes| Module[SoftwareComponent]
Module -->|BuildsInto| Unit[SoftwareDeploymentUnit]
Unit -->|DeploysTo| Node[ProcessingNode]
Logical -->|Realizes| Mech[MechanicalPart]
The embedded-infusion-pump example shows the three software views on one
device; functional-logical-physical shows one logical element realized by
software and mechanics at once — the reason the layers must not collapse.
Behavior¶
Use StateMachine (its mode states and native transitions) and
TimingConstraint when order, state, or timing matters, and keep device modes
distinct from UI states (UIState) — a confirmation screen is not a therapy mode.
Continue the story¶
Next, read Risk, Cybersecurity, and Assurance. It shows how hazards, threats, controls, verification, validation, and evidence attach to the same behavior and architecture.