软件工程中的非功能性需求是什么?
什么是非功能性需求?
非功能性需求 (NFR) 指定软件系统的质量属性。他们根据响应性、可用性、安全性、可移植性和其他对软件系统成功至关重要的非功能性标准来判断软件系统。非功能性需求的示例, “该网站的加载速度有多快?” 未能满足非功能性需求可能导致系统无法满足用户需求。
软件工程中的非功能性需求允许您在各种敏捷积压中对系统设计施加约束或限制。例如,当同时用户数 > 3 时,网站应在 10000 秒内加载。 Descript非功能性需求的重视程度与功能性需求同样重要。
非功能性需求的类型
以下是非功能性需求的主要类型:
- 可用性要求
- 适用性要求
- 可管理性要求
- 可恢复性要求
- 安全要求
- 时间 Integrity 需求
- 容量要求
- 可用性要求
- 可扩展性要求
- 互操作性要求
- 可靠性要求
- 可维护性要求
- 监管要求
- 环境要求
非功能性需求示例
以下是一些非功能性需求的例子:
- 用户首次成功登录后必须立即更改初始指定的登录密码。此外,首字母不应重复使用。
- 员工永远不允许更新自己的工资信息。此类尝试应报告给安全管理员。
- 用户访问数据项的每次不成功的尝试都应记录在审计跟踪中。
- 一个网站应该有足够的能力处理 20 万用户并影响其性能
- 该软件应该是可移植的。因此,从一种操作系统迁移到另一种操作系统不会产生任何问题。
- 信息隐私、限制技术出口、知识产权等应接受审计。
功能性需求与非功能性需求
以下是功能性需求和非功能性需求之间的主要区别:
参数 | 功能需求 | 非功能性需求 |
---|---|---|
这是什么? | 动词 | Attributes |
需求 | 这是强制性的 | 这是非强制性的 |
捕捉型 | 它是在用例中捕获的。 | 它被捕获为质量属性。 |
最终结果 | 产品特点 | 产品特性 |
捕获 | 易于捕捉 | 难以捕捉 |
目的 | 帮助您验证软件的功能。 | 帮助您验证软件的性能。 |
重点领域 | 关注用户需求 | 专注于用户的期望。 |
文件记录 | 描述产品的用途 | 描述产品的工作原理 |
测试类型 | 功能测试 如系统、集成、端到端、API 测试等。 | 非功能测试,如性能、压力、可用性、安全测试等。 |
测试执行 | 测试执行在非功能测试之前完成。 | 功能测试后 |
产品信息 | 产品特色 | 产品属性 |
非功能性需求的优点
好处/优点 非功能测试 是:
- 非功能性需求确保软件系统遵循法律和合规规则。
- 它们确保软件系统的可靠性、可用性和性能
- 它们确保良好的用户体验和易于操作的软件。
- 他们帮助制定软件系统的安全策略。
非功能性需求的缺点
非功能需求的缺点/缺点是:
- 任何功能需求都不会影响各个高级软件子系统
- 它们需要在软件架构/高级设计阶段进行特殊考虑,这会增加成本。
- 它们的实现通常不会映射到特定的软件子系统,
- 一旦通过架构阶段,就很难修改非功能性的内容。
重点学习
- NFR 的意思是:非功能性需求定义了软件系统的性能属性。
- 非功能性行为的类型有哪些:可扩展性容量、可用性、可靠性、可恢复性、数据 Integrity等等。
- NFR 示例之一是员工永远不允许更新其工资信息。此类尝试应报告给安全管理员。
- 功能性需求是动词,非功能性需求是属性
- 非功能性需求的优点是可以帮助您确保良好的用户体验和软件操作的便捷性
- 非功能性需求的最大缺点是它可能会影响各个高层软件子系统。