在记录项目中的需求时,您对非功能性需求有什么看法?
当我们说“非功能性”时,通常是指那些与系统功能性无关的需求,那么这些到底是什么以及为什么我们需要它们。
现在想象一下一个系统,它将在像印度这样的国家/地区发布10年级学生学校认证考试的结果,以及宣布结果时的负担。
因此,除了功能之外,我们还需要考虑该系统的所有要求,它必须具有高性能以处理负载以及适当的安全/身份验证系统。
这是一种要求,通常称为非功能性要求,这些要求对于用户社区或对于系统的平稳运行(如可用性,可靠性等)都很重要。
非功能性需求应始终以清晰的术语来描述,例如系统应能够同时处理10万个用户,每个用户的响应时间必须少于2秒。
广告
这是常见的非功能性需求的好清单:
NFR类别 |
非功能需求 |
简短说明 |
适用情况 |
可以通过测试 |
约束 |
价钱 |
解决方案的目标价格 |
最 |
检查清单 |
约束 |
资源限制 |
诸如由于移动设备的小屏幕尺寸而施加的约束等对开发施加的约束。 |
最 |
检查清单 |
合规 |
合规 |
合规性。 |
卫生保健(HIPAA,FDA) |
跨系统的集成测试 |
合规 |
文献资料 |
文件要求。 |
卫生保健,航空,汽车 |
色盲测试用例 |
合规 |
法律和许可问题或可避免专利侵权 |
遵守合规性要求。 |
最 |
测试用例验证记录数据更新 |
可维护性 |
可分析性 |
能够调查故障 |
最 |
备份恢复测试 |
可维护性 |
可变性 |
能够更改一个组件而不影响其他组件,并且不会引起意外故障的能力 |
最 |
查看应用程序代码 |
可维护性 |
部署方式 |
易于部署和升级应用程序。 |
最 |
查看应用程序代码 |
可维护性 |
第三方托管 |
应用程序的源代码被安全保存,并且在某些情况下可供买方使用 |
购买了外包产品 |
检查清单 |
可维护性 |
可扩展性/可修改性 |
轻松扩展产品的能力 |
最 |
消费者反馈 |
可维护性 |
可支持性 |
能够支持特定时期,特定地点等的应用程序 |
最 |
检查清单 |
可维护性 |
可测性 |
易于测试自动化 |
最 |
检查清单 |
性能 |
性能/响应时间(性能工程) |
响应用户请求所花费的时间。 |
最 |
检查清单 |
性能 |
资源利用率 |
已使用容量的百分比 |
最 |
检查清单 |
性能 |
可扩展性 |
支持指定数量的用户/交易的能力 |
支持大量用户的系统 |
查看应用程序代码 |
可移植性 |
互通性 |
能够使用现有系统。 |
最 |
查看应用程序代码 |
可移植性 |
平台兼容性 |
能够使用既定平台。 |
最 |
查看应用程序代码 |
可移植性 |
可更换性 |
最 |
查看应用程序代码 |
|
可靠性 |
可用性 |
系统可用时间的百分比。 |
关键系统 |
延迟测试 |
可靠性 |
后备 |
必须备份数据的频率。 |
普遍 |
在所需平台上测试 |
可靠性 |
灾难恢复 |
灾难后恢复应用程序所花费的时间。 |
最 |
多种浏览器测试 |
可靠性 |
故障管理(容错) |
能够管理故障。 |
最 |
检查清单 |
可靠性 |
质量(例如,发现故障,交付故障,清除故障的效率) |
目标缺陷密度 |
关键任务应用 |
Code 和 design Review |
可靠性 |
恢复/可恢复性(例如,平均恢复时间-MTTR) |
快速恢复能力 |
关键任务应用 |
查看应用程序代码 |
可靠性 |
可靠性(例如平均故障间隔时间-MTBF) |
能够在需要时提供服务 |
关键任务应用 |
查看应用程序代码 |
可靠性 |
可更换性 |
能够即时更换有故障的零件 |
关键任务应用 |
查看应用程序代码 |
可靠性 |
弹性 |
抵御攻击的能力 |
关键任务应用 |
检查清单 |
可靠性 |
坚固性 |
即使在不利条件下也能够连续运行。 |
最 |
模拟互联网攻击 |
可靠性 |
稳定性 |
最 |
检查清单 |
|
安全 |
审计和控制又名问责制 |
跟踪对数据所做的更改。 |
金融,卫生保健 |
查看应用程序代码 |
安全 |
真实性 |
最 |
查看应用程序代码 |
|
安全 |
保密 |
防止数据暴露给未经授权的用户 |
最 |
查看应用程序代码 |
安全 |
廉洁 |
维护数据的正确性 |
最 |
渗透测试 |
安全 |
隐私 |
保持个人数据安全的能力。 |
卫生保健 |
渗透测试 |
易用性 |
辅助功能 |
该应用程序可由色盲等有特殊需求的人使用。 |
政府 |
查看应用程序代码 |
易用性 |
使用方便 |
将点击次数限制为最多3次点击,以完成任何交易 |
最 |
查看应用程序代码 |
易用性 |
情感因素(例如娱乐或吸收) |
使应用程序吸引特定受众。 |
教育 |
检查清单 |
易用性 |
国际化 |
能够在不同国家/地区运行应用程序,例如处理多个时区,货币,语言等。 |
最 |
查看应用程序代码 |
易用性 |
易学性 |
不同的用户组应能够在经过培训或未经培训的情况下使用产品 |
最 |
查看应用程序代码 |
易用性 |
安全 |
确保安全使用产品,并防止因应用造成的损坏。例如,导航系统的安全功能。 |
危及人类生命的地方。航空,汽车,卫生保健等。 |
键盘控制测试 |
资质认证 |
特定技术的认证,例如Azure认证。 |
最 |
未经培训的用户测试 |
|
本土化 |
满足特定国家或地区(例如石油行业)需求的能力 |
最 |
查看应用程序代码 |
|
重用性 |
能够重用现有组件并创建新的可重用组件 |
最 |
查看应用程序代码 |
|
可移植性 |
可安装性 |
能够轻松安装或卸载 |
最 |
查看应用程序代码 |
而一些常见的功能要求包括:
- 业务规则,逻辑,验证
- 计算/公式
- 错误消息/处理
- 交易更正,调整和取消
- 管理员功能/访问权限,超级用户访问权限
- 认证方式
- 授权等级
- 交易审计日志
- 外部介面
- 报告要求
- 法律/法规/合规要求
非功能性需求应始终以清晰的术语来描述,例如系统应能够同时处理10万个用户,每个用户的响应时间必须少于2秒。
优点
- 使系统用户友好/易于使用并且可以接受
- 缺少它们使用户使用起来更加困难,有时由于缺少这些功能而可能放弃系统
缺点
- 在需求收集练习中经常被遗漏
- 难以表达或量化