需求定义:

需求(requirement)就是系统(更广义的说法是项目)必须提供的能力和必须遵从的条件。

需求分类:

(1) 在一般使用中,需求按照功能性(行为的)和非功能性其它所有的行为)来分类。

  功能性需求是说有具体的完成内容的需求。

  例如:比如客户登录、邮箱网站的收发收发邮件、论坛网站的发帖留言等。

  非功能性需求是指软件产品为满足用户业务需求而必须具有且除功能需求以外的特性,包括系统的性能、可靠性、可维护性、可扩充性和对技术和对业务的适应性等。

  例如:性能要求:要求系统能满足100个人同时使用,页面反应时间不能超过6秒;

     可靠性: 系统能7×24小时连续运行,年非计划宕机时间不能高于8小时。要求能快速的部署,特别是在系统出现故障时,能够快速的切换到备用机。

(2) 在统一过程(UP)中,需求按照“FURPS+”模型进行分类。


  • 功能性(Functional):特性、功能、安全性;
  • 可用性(Usability):人性化因素、帮助、文档;
  • 可靠性(Reliability):故障频率、可恢复性、可预测性;
  • 性能(Performance):响应时间、吞吐量、准确性、有效性、资源利用率;
  • 可支持性(Supportability):适应性、可维护性、国际化、可配置性。

“FURPS+”中的“+”是指一些辅助性的和次要的因素,比如:


  • 实现(Implementation):资源限制、语言和工具、硬件等;
  • 接口(Interface);强加于外部系统接口之上的约束;
  • 操作(Operation):对其操作设置的系统管理;
  • 包装(Packaging)例如物理的包装盒;
  • 授权(Legal):许可证或其他方式。

使用“FURPS+”分类方案(或其他分类方案)作为需求范围的检查列表是有效的,可以避免遗漏系统某些重要方面。

其中某些需求可以统称为质量属性(quality attribute)、质量需求(quality requirement)或系统的“某属性”。这些需求包括:可用性、可靠性、性能和可支持性。