一、结构化需求分析
在软件系统的需求工作中,通常面临三大挑战,即问题空间理解、人与人之间的通信、需求的变化性。为了应对这三大挑战,支持需求工作目标的实现,一种好的需求技术应具有以下基本特征:
① 提供方便的通信机制;
② 鼓励需求分析人员使用问题空间的术语思考问题,编写文档;
③ 提供定义系统边界的方法;
④ 提供支持抽象的基本机制;
⑤ 为需求分析人员提供多种可供选择的议案;
⑥ 提供特定的技术,适应需求的变化等。
典型的方法包括结构化方法、面向数据结构的软件开发方法以及近年来流行的面向对象方法等。
结构化方法是一种系统的软件开发方法,其中包括结构化分析方法、结构化设计方法以及结构化程序设计方法。
软件需求分析的目标是给出“系统必须做什么的一个估算”,即需求规格说明——以一种系统化的形式,准确地表达用户的需求,其中应不存在二义性和不一致性等问题。这样的需求需求规格说明可作为开发组织和客户关于“系统必须做什么”的一种契约,并作为以后开发工作的基础。
1、基本术语
(1) 数据流
在计算机软件领域中,把数据定义为客观事物的一种表示,而把信息定义为具有特定语义的数据。所以,数据是信息的载体。在结构化分析方法中,数据流是数据的流动。
(2) 加工
在结构化分析方法中,加工是数据的变换单元,即它接受输入的数据,对其进行处理,并产生输出。
既然加工是数据变换单元,因此它必须关联一个或多个输入/输出数据流,一个加工相关联的输入和输出数据,可进一步增强该加工的语义。有序的加工及相关的数据流形成系统的信息流。
(3) 数据存储
数据存储是数据的静态结构。
(4) 数据源和数据潭
数据源是数据流的起点;数据潭是数据流的归宿。数据源和数据潭是系统之外的实体,可以是人、物或其他软件系统。它们均用一个矩形来表示。
2、系统功能模型表示
需求分析的首要任务是建立系统功能模型,为此结构化分析方法给出了一种表达功能模型的工具,即数据流图,简称DFD图。
简单地说,DFD是一种描述数据变换的图形化工具,其中包含的元素可以是数据流,数据存储、加工、数据源和数据潭等。
在使用DFD图来表达系统功能模型时,应注意以下3个问题:
① 在DFD图中,数据流起到连接其他实体的作用;
② 加工之间可以有多个数据流,这些数据流之间可以没有任何直接关系,数据流图也不表明它们的先后次序;
③ 对于一个较大的软件系统,往往需要采用多层次的数据流图。
3、建模过程
(1) 建立系统环境图,确定系统语境
经过需求发现工作之后,分析人员一般可以比较容易地确定系统的数据源和数据潭,以及和这些数据源和数据潭相关的数据流,形成系统顶层数据流图,也称为系统环境图。
(2) 自顶向下,逐步求精,建立系统的层次数据流图
在顶层数据流图的基础上,按功能分解的设计思想,对加工进行分解,自顶向下的画各层设计流图,直到底层的加工足够简单,功能清晰易懂,不必再继续分解为止,并把这样的加工称为叶加工。
系统分层数据流图的层次编号是按