Skip to content

Functional Analysis

The functional layer answers what the system must do without saying how. This separation is what lets one functional architecture survive a technology change — and what stops every function from silently becoming software. A SystemFunction may be realized by human action, mechanics, electronics, software, or a combination; the allocation decision is explicit and comes later.

Keep five meanings distinct

The vocabulary here earns its size by preventing one recurring confusion — work, responsibility, behavior, organization, and path are different claims:

Element Meaning
OperationalActivity Work performed in the operational world (by people)
SystemFunction Technology-independent responsibility of the system
FunctionalFlow / FunctionalFlowStep Reusable organization of functions with typed steps
MemoScenario[scenarioKind=functional] A selected path through a functional flow

FunctionalExchange is a typed transfer (measurement, command, alarm, …) between functions. An action flow may call a function, but it is diagram behaviour rather than another functional-architecture element.

Core relationships

Relationship Reads as
Enables This function enables that operational work — it does not perform it
InvolvesFunction / IncludesStep This flow organizes these functions and steps
selectedFlow / Realizes This functional scenario selects a flow and realizes an operative scenario
AllocatedTo This function is the responsibility of that logical component

Function-centered traceability

Functions provide a useful traceability anchor: requirements and risk controls constrain them, architecture elements take responsibility for them, and verification cases produce evidence about them. The source model remains the authority for the exact relationship types and their endpoints.

Example thread

flowchart LR
    Bolus[OperationalActivity: request bolus] --> Chain[FunctionalFlow: patient bolus]
    Chain --> Sense[SystemFunction: acquire sensors]
    Chain --> Limit[SystemFunction: enforce limits]
    Chain --> Command[SystemFunction: command pump]
    Limit --> Logical[LogicalComponent: monitor channel]

In the GPCA example, gpca_behavior_subsystems.sysml defines the functions and exchanges, and gpca_system.sysml organizes them into flows whose steps carry typed references to functions and exchanged items — follow FCS-001 through FCS-005 for the complete bolus path.

Continue the story

Next, read Requirements and Architecture. It connects the claims that constrain a function to the logical and implemented parts responsible for it.