书城计算机网络综合应用软件设计
8724600000012

第12章 软件需求分析(2)

4.图表格式

对于一个较大的系统来说,其数据流图可能多达十几张、几十张,一般都将它们装订成册。为了方便收集、整理和阅读,可以设计一个图表进行格式化。

5.数据字典的使用

尽管数据流图给出了系统数据流向和加工等情况,但其各个成分的具体含义仍然不清楚或不明确。因此,在实际中常采用数据词典这一基本工具对其作进一步的详细说明。数据词典(Data Dictionary,DD)和数据流图密切配合,能清楚地表达数据处理的要求。数据词典用于对数据流图中出现的所有成分给出定义,它使数据流图上的数据流名字、加工名字和数据存储名字具有确切的解释。每一条解释就是一条词条,按一定的顺序将所有词条排列起来,就构成了数据词典,就像日常使用的英汉词典、新华词典一样。

数据词典包括数据流、数据存储和加工等条目类型,下面将分别介绍它们的表示方法。

1)数据流表示

采用自上而下、逐层分解的方式对每一条数据流进行定义。在数据流的定义式中,通常采用下述符号:

=被定义为

+与

m..n界域

[...,...]或,选择括号内的某一项

[...|...]或,选择括号内的某一项

{...}重复,花括号内的项多次重复出现,重复次数的上、下限也可在括号边上标出

(...)可选,圆括号内的项可出现也可不出现

”...”引号内给出的是基本数据元素,它们无须进一步定义

以大学教务管理系统数据流图中数据流的定义为例:

(D01)学生证=学号+密码

(D02)申请单=学号+(课程号+选课学期)

(D03)谢绝=[”非法证件”|”不合格单”|”证单不符”]

(D04)注册=学号

(D05)选课=学号+课程号+选课学期

(D06)无此课=学号+课程号+”无此课”

(D07)注册记录无效=学号+”注册无效”

(d01.1)学号=”00000001”..”99999999”

(d01.2)密码=”000001”..”999999”

(d02.2)课程号=1{”英文字母”}4+”0001”..”9999”

(d02.3)选课学期=”0001”..”9999”+[”季”|”秋季”]

2)数据存储表示

有两种类型的数据存储,一种是文件形式,另一种是数据库形式。对于文件形式,其定义包括定义文件的组成数据项和文件的组织方式两项内容,其中文件组成数据项的定义方式与数据流的定义方式相同。例如,某图书馆借书系统数据流图中文件的定义为:

文件组成数据项:

(F1)借书记录={证号+姓名+书号+书名+借书日期}

(F2)库存书目={书号+书名+”库存总数”+”现库存数”}

(F1.5)借书日期=日期

文件组织方式:

借书记录=按借书日期先后排列

库存书目=按书名先后排列

3)加工表示

数据词典中只需列出基本加工的定义即可,因为任何一个加工最后总能分解成一些基本加工,只要有了基本加工的定义,就可以理解其他加工。加工的定义又称为小说明,它集中描述一个加工做什么,也可包括一些与加工有关的信息,如执行条件、优先次序、执行频率和出错处理等。目前小说明采用以下几种方式描述:

(1)结构化语言

用结构化语言描述小说明的形式如下。

加工编号:在数据流图中的编号;

加工名:在数据流图中的加工名字;

加工逻辑:本加工的处理方法说明;

有关信息:执行条件等。

例如,大学教务管理系统中的加工定义如下。

加工编号:2.1

加工名:检验

加工逻辑:读入“学生证”及“申请单”,检验“学生证”的有效性和“申请单”的合格性,如果检验均通过,则让“申请单”通过,否则输出“谢绝”。

加工编号:2.2

加工名:审查接受申请

加工逻辑:根据传送过来的“申请单”审查申请人的以往注册记录,如果审查通过则根据申请内容区分不同的申请事务,否则输出“注册记录无效”。

加工编号:2.3

加工名:注册登记

加工逻辑:为申请人进行本次注册登记。

有关信息:每学期开学注册时间内执行此加工。

加工编号:2.4

加工名:检索课程

加工逻辑:根据“申请单”检索课程开设情况,如果有满足要求的课程则让“选课”通过,否则输出“无此课”。

有关信息:每学期开学选课时间内执行此加工。

加工编号:2.5

加工名:选课登记

加工逻辑:为申请人进行选课登记和选课单打印。

有关信息:每学期开学选课时间内执行此加工。

(2)判定表

判定表用于描述一些结构化语言不易表达清楚的加工逻辑。例如,旅游票预订系统中,在旅游旺季7~9月份、12月份,如果订票超过50张,则优惠票价的15%;50张以下,优惠5%。在旅游淡季1~6月份、10月份和11月份,若订票超过50张,优惠30%;50张以下,则只优惠20%。用语言表达显得啰嗦,如果用判定表形式表示,则简单明了。

(3)判定树

判定树以图形方式描述加工逻辑,它结构简单,易读易懂。例如,上面的判定表,若用判定树来表示就很清晰。加工逻辑可以用结构化语言、判定表、判定树等多种形式表示,也可将它们结合起来表示。

6.其他注意事项

①保持父图与子图的平衡:父图中某加工的输入输出数据流必须与它的子图的输入输出数据流在数量和名字上相同。

②若一个文件首次出现时只与一个加工有关,那么这个文件应该作为这个加工的内部文件而不必画出。

③一个加工所有数据流中的数据必须能从该加工的输入数据流中直接获得(或通过该加工就能产生)。

④每个加工必须既有输入数据流,又有输出数据流。