需求分析活动要完成4项任务,分别是:
- 问题识别
- 评价和综合
- 形成规格说明
- 评审规格说明
这4项任务中,“问题识别”是要识别出用户提出软件需求要解决的问题;“评价和综合”是要评价数据信息的流程和数据结构,对软件功能逐步细化,阐明接口特性,揭示设计约束,并将其综合成一个总的用户问题的解法;“形成规格说明”和“评审规格说明”,顾名思义,这里不再赘述。
这4个任务中,主要的需求分析活动集中在“评价和综合”;而评价数据流程图和数据结构又是“评价和综合”中重要的一环。
首先,建立数据结构有助于发现软件功能的全貌,防止功能遗漏。
典型的数据结构如下图。
建立这样的结构是一个自顶向下逐层分解的过程。在每一层分解完成时,通过验证分解部分的总和是否覆盖上层院模块的所有功能,就可以有效地避免功能遗漏。如果不建立这样的数据结构,直接开始对功能的逐个描述,就有可能遗漏某个功能而不自知。
其次,建立数据流程图有助于分析软件的内外部接口。
数据流程图是一种描述信息流和变换的图示技术,当数据从输入流动到输出时就要应用这些变换。它的基本形式如下图。
在数据流程图中,软件元素被描述成为一个带有输入和输出数据的单个泡,而这些输入和输出数据分别由进入的箭头和出去的箭头来表示。这些数据路径同时也表明了软件元素之间的接口。当把整个软件元素及其之间的数据流都用数据流程图表现出来,实际上,软件的内部、外部接口也就表达得很清楚了。
所以,在需求分析的时候先建立数据结构和数据流程图,对于做好功能描述、接口分析会有很大帮助。
在GJB438B的需求规格说明书的内容要求中,并没有数据流程图和数据结构。这样使得一些依据438B标准编写需求规格说明,进行需求分析的软件设计师,只知道按照模版要求,在描述完软件运行状态和方式之后,就开始逐条描述软件功能了。由此就可能带来前面所说的遗漏需求等问题。要避免这样的问题,又要符合438B模版的要求,做法很简单,就是在“1.2系统概述”中增加数据流程图和数据结构。因为“系统概述”的内容是介绍系统和软件的用途,而数据流程图和数据结构所展现的软件的总体功能、数据信息,就是软件的总体介绍,与这一章节的内容很契合。