软件工程中的功能需求是什么?
什么是功能需求?
A 功能需求 功能需求(FR)是对软件必须提供的服务的描述。它描述了软件系统或其组件。功能由输入、行为和输出定义。它可以是计算、数据操作、业务流程或用户交互,定义了系统必须执行的操作。软件工程中的功能需求也称为 功能规格.
功能需求的范围很广,从高层利益相关者的需求到详细的数学规范都包含在内。 功能软件 需求描述了系统的预期行为。
功能需求文档应包含哪些内容
功能需求文档应包含以下内容:
功能需求示例
功能需求文档通常包括:
- 每个屏幕上执行的操作详情
- 系统必须应用的数据处理逻辑
- Descript系统报告和其他输出的离子
- 有关系统执行的工作流程的完整信息
- 谁有权在系统中创建、修改或删除数据?
- 该系统如何满足适用的监管和合规要求
功能需求的好处
一份编写完善的功能需求文档的主要优点包括:
- 验证应用程序是否实现了所有指定的功能。
- 在同一位置定义系统及其子系统的功能。
- 结合需求分析,功能需求有助于识别缺失的需求并明确预期的系统行为。
- 在需求阶段发现的错误修复成本最低。
- 支持用户目标、任务和活动
功能需求的类型
常见的功能需求类别包括:
- 交易处理
- 业务规则
- 认证要求
- 报告要求
- 行政职能
- 授权级别
- 审计: Tracking
- 外部介面
- 历史数据管理
- 法律和监管要求
功能需求示例
以下是一些功能需求的实际示例:
- 该软件将自动根据 ABC 客户关系管理系统验证客户信息。
- 销售系统应允许用户记录客户销售情况。
- 应用程序所有窗口的背景颜色应为蓝色,十六进制 RGB 值为 0x0000FF。
- 只有管理层员工才有权查看收入数据。
- 该软件系统应与银行API集成。
- 该软件系统应满足 第508 可访问性要求。
功能性需求与非功能性需求
以下是功能性需求和非功能性需求之间的主要区别 软件工程:
| 参数 | 功能需求 | 非功能性需求 |
|---|---|---|
| 它是什么 | 动词 | Attributes |
| 需求 | 这是强制性的 | 这是非强制性的 |
| 捕捉型 | 它是在用例中捕获的。 | 它被捕获为质量属性。 |
| 最终结果 | 产品特点 | 产品特性 |
| 捕获 | 易于捕捉 | 难以捕捉 |
| 目的 | 帮助您验证软件的功能。 | 帮助您验证软件的性能。 |
| 重点领域 | 关注用户需求 | 专注于用户的期望。 |
| 文件记录 | 描述产品的用途 | 描述产品的工作原理 |
| 测试类型 | 功能测试,如系统、集成、端到端、 API测试等等。 | 非功能性测试,如性能、压力、可用性、 安全测试等等。 |
| 测试执行 | 功能性测试执行在非功能性测试之前进行。 | 功能测试后 |
| 产品信息 | 产品特色 | 产品属性 |
编写功能需求的最佳实践
编写功能需求文档最重要的最佳实践包括:
- 不要将两个需求合并成一个;要保持每个需求的细粒度。
- 务必使每一项要求都尽可能完整准确。
- 将所有技术要求拟定在文档中。
- 将每一项需求与推动软件成功交付的目标和原则进行对应。
- 通过访谈、研讨会和非正式对话来收集需求。
- 记录所有已知且经过验证的、对需求产生实质性影响的限制条件。
- 将所有假设记录在文档中。
编写功能需求时常见的错误
编写功能需求文档时常见的错误包括:
- 添加不必要的额外信息,这会令开发人员感到困惑。
- 省略了开发人员构建该功能所需的细节。
- 混合规则、示例、scoping 将陈述或目标融入需求本身。
- 遗漏了完整、准确地陈述需求所必需的信息。
- 当收到变更请求时,不是去寻找正确的解决方案,而是去维护现有的需求。
- 编写没有与任何目标或原则相对应的需求。


