需求
定义
系统必须提供的能力和必须遵从的条件。
通常我们把需求分为功能性和非功能性,可以这样理解,但千万不要这样去划分和实现。 非功能性需求是依附在功能性需求,
- 功能性强调的系统能够做什么
- 非功能性需求强调的是此功做的怎样(性能、安全)
建议将非功能性需求定义理解成质量属性(即遵从or限制条件),来描述(功能)需求。(类似元数据)
例子
例如房屋抗震等级
作为房屋的一种质量属性,在开始建造的时候必须要确定,因为它决定了房屋设计的框架以及建筑材料的选择等等。一旦房屋建造完毕,发现抗震等级不过关,想想也是太可怕了。同理,软件后期的主要问题大多都关于性能问题,都源于设计。
结论
需求=功能描述+质量属性
摘录
UML和模式应用
功能描述
质量属性
* 性能(performance):响应时间、吞吐量、准确性、有效性、资源利用率
可用性(usability):人性化因素、帮助、文档。
可靠性(reliability):鼓掌频率、可恢复性、可预测性。
可支持性(supportability):适应性、可维护性、国际化、可配置性。
其他
* 实现 (implement):资源限制、语言和工具、硬件等。 * 接口(interface):强加于外部系统接口之上的约束。
- 操作 (operation):对操作设置的系统管理
- 授权 (legal): 许可以及其他
- 包装 (packaging):物理包装盒等
网友评论