功能需求

功能性需求（functional requirement）为一软件工程用语，功能需求定义一个软件系统或组件的功能，也是一个系统需提供的功能及服务。功能可以用一组输入、行为及输出的组合来表示。功能需求可以是计算、技术细节、数据处理或其他说明系统希望达成功能的内容。功能需求会以非功能性需求（或是质量需求）为其基础，后者会描述设计或实現时的限制条件（例如性能需求、保安性或可靠度等）。
若依照需求工程的定义，功能需求会列出系统的特定结果，而非功能性需求会列出系统的一些整体特性（如成本及可靠度），功能需求有关系统的应用架构，而非功能性需求和系统的技术架构有关。
例如一个计算机的功能需求可能是可计算9位数字的加减乘除及根号，而其非功能性需求是成本需在美金10元以下。
功能需求理论上需要有全面性及一致性，一方面描述用户所需要的所有机能，同时各机能的说明不能前后冲突。不过对于大型的系统，由于系统的复杂及参与人员看待事物的观点不同，要作到全面性及一致性相当困难。
有时需求分析师会在收集许多功能需求后，会依功能需求创建一系列的用例。功能需求的层次结构为：用户或利益相关者的需求->功能->用例->业务规则，每一个用例都会描述一个到多个功能需求所对应的行为。不过有时需求分析师也会从一些用例开始，再从用例中找出用例中需要用的功能需求。

起源

一篇1953年物流学会议的论文将数据处理设备的需求分为二类：分别是功能需求及非功能性需求。
功能需求及非功能性需求的概念最早是在1982年由Raymond T. Yeh在计算机软件及应用会议（COMPSAC）中提出。G.C. Roman在1985年4月的《计算机》杂志中的“A taxonomy of current issues in requirements engineering”也有提到机能需求的特点。

程序

典型的功能需求会包括一个不重复的名称及编号，简单的说明及原因。这些信息有助于读者了解为何需要这些机能，而且可以在系统开发过程中去追踪这些功能需求对应的设计、实现及测试。
功能需求的重点是对于所需行为的描述，这部分必须清楚具体，容易阅读。所需行为可以来自组织或是商业规则，或是由用户、利益相关者及组织内相关领域的专家一起开会讨论。此时需求分析师会先为需求取一个名字及略作说明，在大家对此需求有些研究，比较了解所需的行为时，再完成功能需求的数据。