1
面向对象软件工程实践指南
1.2.5.3 5.3 非功能需求和设计约束
5.3 非功能需求和设计约束

非功能需求是软件产品为满足用户业务需求而必须具有且除功能需求以外的特性。非功能需求有许多划分方法。典型的非功能需求包括:可用性、可靠性、性能、可支持性和设计约束。

5.3.1 可用性

可用性与用户使用该系统所需要付出的努力有关,典型的可用性指标包括:

(1)指出普通用户和高级用户要高效地执行特定操作所需的培训时间。

(2)指出需要提供的帮助用户使用系统的文档。

(3)指出需要符合的公认的可用性标准。

5.3.2 可靠性

软件系统的可靠性指的是软件产品在规定的条件下和规定的时间区间完成规定功能的能力。可以从以下方面定义可靠性:

(1)可用性:可用时间的百分比(xx.xx%)。

(2)平均故障间隔时间(mean time between failures,MTBF):通常表示为小时数,但也可表示为天数、月数或年数。

(3)平均修复时间(mean time to repair,MTTR):系统在发生故障后平均需要多少时间才能修复。

(4)精确度:指出系统输出要求具备的精密度(分辨率)和精确度(按照某一已知的标准)。

(5)缺陷率:通常表示为每千行代码的错误数目(bugs/KLOC)或每个功能点的错误数目(bugs/function-point)。

(6)分类错误或缺陷率:按照小错误、大错误和严重错误来分类。需求中必须对“严重”错误进行界定,例如数据完全丢失或完全不能使用系统的某部分功能。

5.3.3 性能

完成功能时展示出来的及时性或者资源消耗程度,它包括:

(1)对事务的响应时间(平均、最长)。

(2)吞吐量,例如每秒处理的事务数。

(3)容量,例如系统可以容纳的客户或事务数。

(4)降级模式(当系统以某种形式降级时可接受的运行模式)。

(5)资源利用情况,如内存、磁盘、通信等。

5.3.4 可支持性

提高所构建系统的可支持性或可维护性的所有需求,其中包括编码标准、命名约定、类库、维护访问权和维护实用程序。

5.3.5 设计约束

所构建系统的所有设计约束。设计约束代表已经批准并必须遵循的设计决定。其中包括软件语言、软件流程需求、开发工具的指定用途、构架及设计约束、购买的构件、类库等。