Requirements

Functional Requirements

Statements of what a system must do — behaviors, inputs, outputs, and capabilities.

Functional requirements define the specific behaviors, functions, and capabilities that a system or component must exhibit. They answer the question 'what must this do?' — as opposed to non-functional requirements, which answer 'how well must it do it?' Functional requirements describe inputs, outputs, and the transformations between them. They are testable: a good functional requirement can be verified with a pass/fail test.

Well-written functional requirements follow the imperative form: 'The system shall [action] [object] [under what conditions].' For hardware: 'The motor controller shall maintain target speed within ±2 RPM under loads from 0 to maximum rated torque.' The word 'shall' denotes a mandatory requirement; 'should' denotes a desired but optional capability. IEEE 29148 recommends avoiding vague qualifiers like 'easy to use,' 'fast,' or 'reliable' in functional requirements — these are non-functional concerns that require quantified metrics.

Functional requirements drive concept selection and component specification. For each functional requirement, engineers identify candidate implementations (concepts), evaluate trade-offs, and select one. The selected concept's BOM items directly implement the requirement. This link — requirement → concept → component — forms the backbone of product traceability and is essential for managing engineering changes without unintended scope creep.

Standard reference: IEEE Std 29148-2018 defines functional requirements in the context of systems and software engineering requirements.

Practical Example

For a motor driver: FR-01: 'The driver shall support motor voltages from 6V to 48V DC.' FR-02: 'The driver shall provide current limiting adjustable from 0.5A to 10A.' FR-03: 'The driver shall support PWM frequency from 1 kHz to 20 kHz.'

How SpecZero handles this

In SpecZero, functional requirements are captured in the Requirements section as ESSENTIAL items with a target value (the measurable specification). Each requirement then drives a concept comparison in the Concept Planner.