Enterprise AI Project Wiki · Requirements and business scenarios
Functional requirement
Also calledFunctional requirements · Functional specification · System functional requirement · FR
A functional requirement is a normative statement allocated to a named system level that specifies what the system must receive, validate, transform, store, retrieve, calculate, decide, control, present, transmit, record, prevent, or recover under explicit conditions, with a result observable or verifiable at its boundary. It should be necessary, atomic, unambiguous, feasible, verifiable, and bidirectionally traceable.
A functional requirement says what the system must do, not merely which features it has
Approval, search, knowledge Q&A, and report export are capability labels, not yet constraints on behaviour. A requirement names the system level bearing the obligation, the trigger, permission, data state and mode, the input and externally meaningful action, and the output or state that results or must be preserved on failure.
Functional requirements can exist at system, subsystem, software, service, or component level. A parent may require a service to receive and process an application, while children govern identity, evidence checks, rules, state changes, and notices. Those levels are not duplicates, but every child needs an upstream reason.
Function and performance must be coordinated. Function says what is done; performance says how quickly, accurately, at what scale, or how consistently under a named load and environment. They may appear together, but both behavioural and quantitative obligations must remain identifiable.
Behaviours commonly governed by functional requirements
Function does not begin and end with a button click. A system receives events, validates material, changes state, calls external services, creates notifications, and preserves or restores business objects after failure. Describing these behaviours separately shows whether a business task really closes from beginning to end.
Input and validation
Receive forms, files, events, sensor data, or messages and check format, presence, provenance, signature, authority, and applicable state; rejection of invalid input is also behaviour.
Transformation and calculation
Normalise, aggregate, classify, calculate, or derive facts under versioned rules, including treatment of rounding, nulls, time, units, and rule conflict.
Storage, retrieval, and records
Create, read, update, archive, or delete business information with object, condition, version, relationship, history, and immutable records defined.
Decisions and rule execution
Assess eligibility, choose a path, block an action, request review, or provide an authorised recommendation, separating the conclusion, explanation, and operational side effect.
State and mode control
Perform permitted transitions when events and conditions hold, block illegal transitions, and govern normal, degraded, maintenance, suspended, and recovery modes.
Presentation, notification, and interaction
Display, explain, request confirmation, prompt correction, or notify a named role with governed content source, recipient, trigger, acknowledgement, and duplicate behaviour; layout is normally design.
Interface interaction and orchestration
Call or answer services and orchestrate steps with semantics, order, idempotency, timeout, retry, compensation, and partial-success behaviour, while protocol detail can sit in an interface specification.
Access, protection, and audit actions
Authenticate, authorise, separate duties, mask data, record consent, and emit audit events. These implement some security and privacy objectives but do not exhaust protection requirements.
Exception, degradation, and recovery
Detect missing evidence, dependency failure, duplicate requests, conflict, and timeout and then refuse, preserve state, alert, hand over, compensate, retry, or recover—not merely show an error.
What to record in an actionable functional requirement
“Support procurement requests” is a feature name. It tells neither developers what follows a trigger nor testers which result is correct. An actionable requirement identifies actor, pre-state, input, processing, output, and failure result while linking applicable rules and permissions.
Stable ID and responsible level
Identify whether the service, system, subsystem, software item, or component bears the obligation so decomposition, verification, and change target the correct object.
Normative subject and one action
Use the system plus shall or the project's convention and carry one principal obligation. Support and provide capability do not replace a precise verb.
Trigger and requester
Name the event, schedule, message, or authorised role initiating the behaviour. If not everyone may trigger it, do not leave authority for testers to infer.
Precondition, state, and mode
State object and dependency status, existing data, time window, and normal or degraded mode. Cover unmet preconditions here or in linked requirements.
Input, provenance, and validity
Identify required input, authoritative source, format, version, permission, and validation boundary, distinguishing user claims, system facts, and external references.
Processing rule and order
Reference approved rules or algorithm objectives and required sequence, atomicity, and precedence. If a method or product is mandated, retain why design must be constrained.
Output and end state
State returned object, recipient, persisted record, notice, state change, or state that must not change so the result is observable at the boundary.
Exception, fallback, and prohibited side effect
Govern missing, unauthorised, conflicting, duplicate, timed-out, and partial failures, including decisions, payments, messages, or disclosures that must not occur.
Source, rationale, allocation, and trace
Trace upward to scenarios, stakeholder or system requirements, rules, and risks, and downward to functions, interfaces, design, implementation, and evidence; justify derived behaviour.
Verification method and decision
Name inspection, analysis, demonstration, or test with environment, role, initial state, input classes, expected result, and severe failures, linking separate performance requirements.
How to derive functional requirements from scenarios and upstream requirements
An upstream requirement states the outcome a stakeholder needs; a functional requirement identifies the system behaviours that reliably produce it. Walk through normal, exceptional, and insufficient-information scenarios to find each state change, external interaction, and human takeover instead of copying functions from a screen sketch.
Confirm the upstream outcome and boundary
Start from approved stakeholder, user, and system requirements, business rules, and risks; identify what belongs to the system rather than reverse-engineering needs from a current screen or supplier product.
Walk end-to-end scenarios
Traverse normal, exceptional, insufficient, cancelled, duplicate, dependency-failure, human-takeover, and recovery paths, recording roles, triggers, inputs, decisions, hand-offs, records, and end states.
Identify functions the system must perform
Find receipt, validation, transformation, persistence, retrieval, judgement, presentation, transmission, control, record, and recovery as logical functions before selecting screens or microservices.
Model input, process, output, and state
For each function identify inputs, controls, outputs, transitions, preconditions, postconditions, failure modes, and consequences. Activity, sequence, and state models expose gaps but are not automatically approved requirements.
Apply rules, authority, and data constraints
Map business rules, identity, data classification, and interface contracts to behaviour, distinguishing functional controls from performance, quality, and engineering constraints.
Decompose, derive, and allocate
Break parent functions into children that can be designed and verified, check collective sufficiency, and mark new functions arising from interfaces, architecture, or failure analysis as justified derived requirements.
Validate with counterexamples and boundaries
Business, user, operations, engineering, test, security, and interface owners walk legal and illegal states, nulls, duplicates, reversed order, permission change, and dependency failure to reveal hidden decisions.
Approve and preserve bidirectional traceability
Baseline named versions of requirements, models, rules, and TBDs; a function change must expose effects on upstream outcomes, adjacent states, interfaces, data, qualities, tests, and operations.
How far to decompose a functional requirement
Too large, and one failure implicates an entire workflow; too small, and the behaviour loses its business result and context. A useful unit can be allocated, verified, and changed independently while still pointing to the scenario step it serves.
Keep the externally meaningful result at the parent
A parent retains why the function exists and what outcome is observable, remaining linked to its scenario rather than becoming a list of internal calls.
Make children separately allocatable and verifiable
Split when actions belong to different elements or interfaces, have distinct failure treatment, or need distinct verification, assigning each child accurately.
Atomic does not mean context-free
One principal decidable obligation may still need conditions. Excessive splitting separates conditions from outcomes and creates fragments that cannot stand alone.
Test parent-child sufficiency and necessity
Children together must satisfy the parent; each child must trace to the parent, a constraint, or a derivation. Untraced convenience is scope and maintenance risk.
Functional decomposition is not component decomposition
First identify logical functions, then allocate them through architecture to people, software, hardware, or services. A function may span components and one component may perform several functions.
Stop when allocation and verification are credible
The current level is sufficient when statements are unambiguous, feasible, allocatable, designable, finitely verifiable, and their interfaces and failure behaviours are understood—not after an arbitrary number of levels.
Quality gates before baselining functional requirements
Functional requirements move directly into implementation and test, so vague words quickly become individual guesses. Review the normal path and also confirm that unauthorised use, duplicate requests, external failure, and no valid result cannot silently change business state.
- Necessary and supported upstream?
Every function supports an approved result, rule, risk, or documented derivation rather than existing because a product offers it.
Inspect upstream requirements, scenarios, rules, and derivation rationale.
- One subject, condition, behaviour, and result?
Readers agree who does what, when, to which object, and with which end state; one statement does not hide several principal obligations.
Use independent paraphrase, counterexamples, and glossary.
- Normal, exceptional, and prohibited outcomes complete?
Null, invalid, duplicate, unauthorised, conflicting, timed-out, failed-dependency, human, and recovery paths are explicit.
Inspect scenario-function and state coverage.
- Right level and appropriately solution-independent?
It is allocated without prematurely mandating a control, product, component, or algorithm; necessary constraints have sources.
Inspect boundary, architecture decisions, and constraints.
- Consistent with rules, data, interfaces, and qualities?
Decisions, states, terminology, semantics, authority, and errors do not conflict, and linked performance, security, reliability, and usability obligations exist.
Conduct cross-requirement and interface review.
- Feasible and verifiable?
It can be realised with available technology, data, people, and dependencies, and finite inputs, initial states, and observable results can decide compliance.
Inspect feasibility evidence and verification method.
- Bidirectionally traced and changeable?
Every necessary parent behaviour has coverage and every child has a source; changes reveal affected scenarios, interfaces, states, qualities, tests, and operations.
Inspect trace, orphan, and impact reports.
Constructed functional requirements for a procurement-request service
This customer-independent procurement service decomposes “find missing material before submission” into observable behaviours. It includes not only guidance on screen but rule retrieval, access protection, draft-state preservation, and failure handling. The identifiers and conditions illustrate writing, not an actual policy or default product design.
FR-101: check readiness
When an authorised applicant requests submission from draft state, the system shall use the approved rule version applicable at request time to inspect required facts and evidence and return every satisfied item, missing item, and rule ID without changing approval status.
FR-102: reject unauthorised submission
If the requester lacks valid authority to submit for the organisation or the request is not in an allowed state, the system shall refuse, preserve state, and record subject, request, policy version, reason code, and time.
FR-103: route insufficiency to a person
If required evidence is unreadable, the authoritative rule version is uncertain, or materials conflict, the system shall stop automated judgement, preserve confirmed facts, route to the designated review queue, and explain the pending matter.
FR-104: create the formal submission
Only if FR-101 is satisfied and FR-102 and FR-103 do not apply shall the system atomically create a distinct submission version, move draft to submitted, record rule and evidence versions, and issue one confirmation.
FR-105: handle duplicate requests
For a repeated request with the same application version and idempotency key, the system shall return the first result without creating another submission, changing state twice, or sending a duplicate confirmation.
FR-106: preserve the decision boundary
Completeness checks, evidence summaries, and AI explanations may support submission readiness but shall not approve procurement, select a supplier, or reserve budget; only separately authorised processes may do so.
Connecting functional requirements to design, test, acceptance, and operations
A functional requirement truly enters the system only when design identifies responsible components, tests return evidence, and operations leave observable records. That relationship remains useful after acceptance: during an incident, the team can follow the requirement to implementation, logs, dependencies, and recent changes.
Requirement-model consistency
Activity, state, sequence, use-case, or data-flow models show relationships across functions; model elements trace to normative requirements and model changes trigger impact review.
Requirement-design allocation
Architecture records which person, process, software, hardware, or external service realises each function and its cross-element interfaces and transaction boundaries.
Requirement-verification coverage
Each item has a method and normal, boundary, invalid, unauthorised, duplicate, failure, and recovery coverage. A test case is an evidence instance, not the source requirement.
Requirement-acceptance boundary
Acceptance criteria select pass rules for the delivery, version, environment, and business samples. Internal children may not each be customer-accepted, but evidence supports the parent decision.
Requirement-defect and waiver
Failures link requirement ID and version, environment, reproduction, severity, disposition, and retest. Deferral requires authority; rewriting a requirement to match a defect is not acceptance.
Requirement-operational monitoring
Critical functions expose governed evidence of triggers, success, failure, refusal, takeover, and side effects so real behaviour can be checked after release without violating privacy.
Enterprise AI functional requirements separate generation, tool action, and human authority
One AI response may retrieve evidence, generate text, and then call a tool that changes business state. Those steps have different risks and failure modes and cannot be compressed into “AI completes the task.” State where evidence comes from, which step only advises, and which step needs permission or human confirmation.
Context assembly and access filtering
Specify how subject, task, and object are identified and unauthorised data is removed before retrieval or model calls, recording actual input and version. Prompts do not replace server-side access control.
Retrieval and evidence selection
Govern query construction, allowed sources, version and freshness filters, deduplication, conflict flags, and citations, with an explicit insufficiency path when evidence is inadequate.
Generation and structured output
Define allowed content, mandatory fields, provenance, fact/advice separation, parse-failure treatment, and prohibited invention of approval, authority, state, or evidence.
Rules and model responsibility
Deterministic eligibility, access, transitions, and hard stops are executed by verifiable rules or code. A model may extract, summarise, or explain but not silently assume formal decision authority.
Insufficiency, conflict, and refusal
Define behaviour for missing or conflicting evidence, stale knowledge, prompt attack, invalid output structure, and high risk: stop, preserve state, state limitations, and route to a human or non-AI path.
Tool calls and side effects
Specify query, draft, send, write, delete, and approve separately with parameter checks, least privilege, confirmation, idempotency, timeout, rollback, and result validation. Intent to call is not permission.
Human review and takeover
State when a human task is created, which source material and rationale are shown, how correction and override work, how decisions return, and the safe state if nobody responds.
Audit, feedback, and version change
Record composite version, input class, evidence, rule result, tools, human decision, and severe failure, using these paths for regression and reapproval after model, knowledge, or prompt change.
Wording may vary; critical controls must not drift with it
When several phrasings are acceptable, govern structure, required content, and prohibited results and observe variation across repeated runs. Whether access is allowed, state changed, or insufficient evidence caused a stop must still produce a deterministic and repeatably testable result every time.
How functional requirements differ from neighbouring concepts
Features, screens, user stories, business rules, and test cases often share one work item but answer different questions: what the system does, why a user needs it, how the organisation constrains it, and how satisfaction is proved. Separating them retains business rationale without freezing today's interface as the requirement itself.
| Concept | Boundary from a functional requirement |
|---|---|
| Feature or capability name | Report, search, and AI assistant group communication and planning; a functional requirement continues to conditions, behaviour, and an observable result. |
| System requirement | The complete baseline also contains performance, interfaces, data, qualities, operations, and constraints; functional requirements are its behavioural class. |
| User requirement | Derived from user needs and capabilities for interaction and quality in use; it may derive functions but is not every internal system behaviour. |
| User story | A short role-goal-value narrative supporting conversation and planning; one story can need many functional and quality requirements and does not replace formal trace. |
| Use case or business scenario | Describes a multi-step path across roles and systems; functional requirements extract atomic normative obligations allocated to a named system level. |
| Business process | Shows end-to-end organisational work across people, systems, and decisions; a functional requirement governs only behaviour allocated to the target system. |
| Business rule | Defines business meanings, permissions, duties, prohibitions, and decisions; a functional requirement says how the system applies or supports the authoritative rule. |
| Non-functional or performance requirement | Governs how well a function is delivered and other qualities or constraints. Returning a result and how quickly under a specified load are separate decisions. |
| Interface requirement | Governs both sides' interaction semantics, protocol, timing, and responsibility. Calling or responding is functional behaviour, but the interface contract is broader. |
| Algorithm and design | Explain how behaviour is realised. A method should be mandated only with a standards, risk, or interoperability basis recorded as a constraint or derivation. |
| Acceptance criterion and test case | The criterion governs a deliverable's pass decision; the case supplies inputs, steps, and expected result. They verify the function rather than replace its specification. |
| Backlog item or task | Schedules analysis, design, development, or verification work for an increment; a functional requirement belongs to the product baseline and may span tasks and releases. |
Sources and scope
This entry explains a functional requirement in systems and software requirements engineering: a normative statement of the function, behaviour, or transformation that a clearly bounded system, subsystem, software item, or service must perform under stated triggers, preconditions, states, and modes, including observable results it must produce, preserve, or prevent. It answers what the system must do, but is not a feature name, product claim, user story, use case, business process, business rule, algorithm, interface or screen design, performance or non-functional requirement, complete system or software specification, acceptance criterion, or test case. Organisations classify data, security, error, and interface behaviours differently, so the project must state its taxonomy and authorised parties must approve actual content, priorities, thresholds, and applicability.
- ISO/IEC/IEEE 29148:2018: requirements-engineering processes, requirement characteristics, specification content, validation, traceability, and management; confirmed current in 2024
- ISO/IEC/IEEE 15288:2023: the system of interest and lifecycle processes for technical requirements, logical decomposition, design, and verification
- NASA Technical Requirements Definition: functional requirements define what functions accomplish objectives and join performance, interfaces, and cross-cutting requirements in a complete baseline
- NASA Logical Decomposition: functional analysis, decomposition and allocation, inputs, outputs, failure modes, consequences, interfaces, and derived requirements
- NASA Requirements Management: allocation, bidirectional traceability, status, baselines, and controlled change across requirement levels
- NASA SWE-050: decomposing and allocating functional and performance requirements while preserving necessity, completeness, verifiability, and traceability
- NASA Software Requirements Specification: functional behaviour, states and modes, data, I/O validation and error handling, decomposition, and derived requirements
- IREB CPRE Glossary: a functional requirement concerns a result or behaviour provided by a function of a system
- OMG SysML: use-case, activity, sequence, state, and requirements diagrams for behaviour, hierarchy, derivation, satisfaction, verification, and allocation
- NIST AI RMF Core: AI intended use, roles and authority, data and components, human oversight, risk controls, measurement, and lifecycle monitoring