非功能需求

非功能需求

💡 原文英文,约1100词,阅读约需4分钟。
📝

内容提要

系统设计时,功能需求和非功能需求都很重要。功能需求描述系统行为的不同方面,对设计、实现、维护甚至废弃都有严重影响。非功能需求以不易用流程图描述的方式定义系统行为,如安全性、可靠性、可扩展性等。

🔎

延伸解读

非功能需求为何难以定义与测量

非功能需求常涉及定性标准,如“用户友好”或“响应迅速”,这些标准主观性强,不同利益相关者可能有不同理解。与功能需求不同,非功能需求难以精确测量,确定“多快算快”或“多安全算足够”需要具体指标,而这些指标可能不易建立或达成一致。此外,基准测试可能主观,且与系统在实际动态环境中的使用方式存在差异。

非功能需求对系统设计的深远影响

非功能需求在系统设计过程中需尽早考虑,因为它们会显著影响架构和技术选择。事后改造以满足非功能需求可能成本高昂甚至不可行。例如,处理每分钟10个请求的系统与处理每秒百万个请求的系统设计方式截然不同。因此,在项目初期识别并权衡非功能需求至关重要。

非功能需求中的权衡与估算挑战

满足非功能需求常涉及与其他系统属性的权衡。例如,提高安全性可能损害可用性或降低性能;可扩展性往往伴随成本增加。成本与预算因素对系统设计有重大影响。此外,由于非功能需求的影响短期内不易察觉,且缺乏快速反馈循环,估算时容易过度设计,导致技术赌博。平衡这些权衡需要经验、谈判和一定的猜测。

❓

Q&A

什么是非功能需求?

非功能需求描述系统执行某项功能的方式,如安全性、可靠性和可扩展性等。

功能需求和非功能需求有什么区别?

功能需求定义系统应执行的操作,而非功能需求描述系统执行这些操作的方式。

为什么非功能需求在系统设计中重要?

非功能需求对系统设计、成本和用户满意度有重大影响,尽早考虑可以避免后期改造的高成本。

非功能需求的实施有哪些挑战?

非功能需求通常难以定义、实施和测量,涉及主观性和定性标准,且需要经验和权衡。

如何捕获功能需求?

功能需求通常通过用例捕获,有时也通过用户故事描述系统行为。

非功能需求的准确性如何确保?

非功能需求的准确性需要经验、谈判和权衡,涉及一定的猜测和预算。

🏷️

标签

➡️

继续阅读