《需求工程——软件建模与分析》02

一、需求分类与表述:

(一)严格意义上的需求分类常见的有以下五种:

1.功能需求(functional requirement):和系统主要工作相关的需求,即在不考虑物理约束的情况下,用户希望所能够执行的活动。

2.性能需求(performance requirement):系统整体或者其他部分应该拥有的性能特征。

3.质量属性(quality attribute)

4.对外接口(external interface):软、硬件、数据库接口。

5.约束(constraint):例如编程语言、硬件设施等。

(二)五种需求的详细说明:

1.功能需求:

软件需求中最常见和最重要的需求,同时也是最为复杂的需求。

2.性能需求常见分类:

(1)速度:系统完成任务所需的时间。

(2)容量(capacity):存储的数据量。

(3)吞吐量(throughput):连续时间内完成的事务数量。

(4)负载(load):承载的并发工作量。

(5)实时性(time-critical)

3.质量属性:

为了度量系统的质量,需要选用某些质量要素进行量化处理,建立质量特征。书中介绍了[ISO/IEC 9126-1]、[IEEE 1061-1992,1998]两种质量模型,两者从大致的分类上一致,只是在细化时的子因素所包含的特征略微不同。下面以[IEE 1061-1992,1998]为例进行总结,其主要包含了以下几个要素:

(1)功能性

系统的完备性、正确性、安全性、兼容性、互操作性。

(2)可靠性

系统的无缺憾性、容错性、可用性。

(3)易用性

包含可理解性、易学习性、易操作性、通信性。

(4)效率

包含时间经济性、资源经济性。

(5)可维护性

包含可修正性、扩展性、可测试性。

(6)可移植性

包含软硬件独立性、可安装性、可复用性。

4.对外接口:

对系统的软硬件接口需要说明以下内容:

(1)接口的用途

(2)接口的输入输出

(3)格式规范,例如数据、命令格式

(4)异常处理要求

5.约束:

常见约束内容:

(1)系统开发及运行环境

(2)问题域的相关标准:包括法律法规、行业协定和企业规模等。

(3)商业规则

(4)社会性因素:例如文化、信仰。

6.其他需求:

例如安装需求、培训需求、数据需求等。

二、优秀需求的特性

(一)完备性

不需要做更多的扩展就可以充分说明用户需求的系统功能。在需求开发过程中,对于不清晰的信息可以标记为TBD(To be Determined,待确定),但在开发过程结束之前,所有的TBD都必须解决。

可通过对不同类型的需求从不同方面来保障需求描述的完备性。

1.对功能需求需要确保以下内容进行了描述:

(1)行为的触发者(trigger):它使系统执行功能需求的行为,常见触发者包括数据输入、接收的请求、要处理的异常等。

(2)行为的前置条件(pre-condition):系统成功满足功能需求的前提。常见的前置条件包括系统的模式或状态,其他外部系统的状态、任何系统数据的值。

(3)行为:前置条件下接受到触发者时,系统必须执行的行为。

(4)后置条件(post-condition):系统成功后执行行为后所处的状态。

(5)不满足前置条件情况下,相应情况的结果。

(二)正确性

(三)可行性

(四)必要性

(五)无歧义

(六)可验证

             

posted @ 2018-03-25 14:17  Someday&Li  阅读(564)  评论(0编辑  收藏  举报