In NF X50-151 functional analysis, a function is a relationship between the system and its environment, written as an infinitive verb + object without presuming any technical solution. Three categories: main function (FP) — a relationship running through the system between two external environments, and the reason the system exists; secondary function (FS) — same structure, but a complementary service that is not essential to the mission; constraint function (FC) — a relationship between the system and a single external environment, expressing a constraint the system must adapt to (“withstand”, “adapt to”).

What is it for?

Separating what the system must do (FP, FS) from what it must endure or comply with (FC) is the structuring move of the technical specification. The typology then allows you to draw, with the pieuvre, an exhaustive diagram of the system’s interactions with its surrounding environments. Each identified function is then turned into a quantified requirement through the criterion / level / flexibility triplet in the CdCF.

Statement format

A function is written as infinitive verb + object, never as a noun phrase and never by naming a technical solution.

✓ Correct statement✗ Incorrect statementWhy
Allow the operator to move an objectMovement of an object by servo”by servo” is a solution
Withstand the vibrations of transportRobustnessNot a verb, not measurable
Adapt to the 230 V mains supplyElectrical supplyNot a verb

Each function is numbered within its group: FP1, FP2…, FS1, FS2…, FC1, FC2… The numbering is a stable reference for the whole life of the project, from the CdCF to the final assessment grid.

Pitfalls

Naming a solution in the statement. If you can name a brand, a component, a technology or a protocol, the function is badly written. “Use a Raspberry Pi to drive the motors” is an implementation choice, not a function.

Confusing FP and FS. The FP is the reason the system exists. Without it, the system has no purpose. Test: if you remove the function, does the project still stand up? If it does, it is probably an FS.

Writing an FC with two environments. An FC links the system to one environment only. If the statement brings in two environments, it is probably a badly classified FP or FS.

See also