需求(requirement)就是指项目中必须提供的功能或者遵守的条件。
在实际使用的过程用,需求又可以细分为功能性需求与非功能性需求。
功能性需求指的是项目中具体需要提供的功能和内容,比如用户登陆功能、收发邮件功能和论坛功能等。
非功能性需求指的是项目中为满足客户业务需要必须达到的一些特性,其中包括系统性能、可靠性、可维护性,可扩充性以及对技术与业务方面的适应性:
- 系统性能:如需要满足N个用户同时使用,页面响应速度不能超过M秒。
- 可靠性:系统需要7*24小时连续运行,年非计划宕机时间不能高于8小时,要求能快速部署,特别是在系统出现故障时,能够快速的切换到备用机。
在统一过程(UP)中需求按 FURPS+模型分类:
- 功能性(Functional):特性、功能、安全性;
- 可用性(Usability):人性化因素、帮助、文档;
- 可靠性(Reliability):故障频率、可恢复性、可预测性;
- 性能(Performance):响应时间、吞吐量、准确性、有效性、资源利用率;
- 可支持性(Supportability):适应性,可维护性、国际化、可配置性;
- + 指一些辅助性的和次要性的因素,比如:
- 实现(Implementation):资源限制、语言和工具、硬件等;
- 接口(Interface):强加于外部系统接口之上的约束;
- 操作(Operation):对其操作设置的系统管理;
- 包装(Packaging):例如物理的包装盒;
- 授权(Lagal):许可证或其它授权方式。
使用 FURPS+分类方案(或者其它分类方案)作为需求范围的检查列表是有效的,可以避免遗漏系统的某些重要方面。其中某些需求可以统称为质量属性(quality attribute)、质量需求(quality requirement)或系统的某属性,这些需求包括:可用性、可靠性、性能和可支持性。