结构化分析方法(SA)是一种面向数据流的需求分析方法,适用于分析大型数据处理系统,是一种简单、实用的方法。
基本思想是自顶向下逐层分解。分析结果有一套分层的数据流图、一本数据词典、一组小说明(加工逻辑说明)和补充材料。
一、数据流
1、数据流图(DFD)组成成分:
(1)数据流:由一组固定成分的数据组成,表示数据的流向。
(2)加工:描述了输入数据流到输出数据流之间的变换,也就是输入数据流经过什么处理后变换成输出数据流。
(3)数据存储:用来表示暂时存储的数据。
(4)外部实体:存在于系统之外的人员或组织。
2、分层数据流图的画法
(1)画系统的输入和输出 :把整个软件系统看作一个大的加工,然后根据系统从哪些外部实体接收数据流,以及系统发送数据流到哪些外部实体,这张图称为顶层图。
(2)画系统的内部:将顶层图的加工分解成若干个加工,并用数据流将这些加工连接起来,使得顶层图中的输入数据经过若干个加工处理后变换成顶层图的输出数据流。这张图称为0层图。
(3)画分解之后加工的内部:把每个加工看成一个小系统,继续画DFD图,直到图中的尚未分解的加工都足够简单。
3、数据流图中需要注意的问题
(1)数据平衡原则:
1)分层数据流图的数据平衡原则:父图和子图之间的数据流必须保持一致。如父图某加工中有两个输入数据流和一个输出数据流,那么该加工的子图中也必须有两个输入数据流和一个输出数据流。
2)每张数据流图的数据平衡原则:加工的输入数据流和输出数据流要平衡,即保证加工的输出数据流都有相应的输入数据流。
注意:如果上层数据流底部某一加工的一个输入(输出)数据流对应于下层数据流图中若干个输入(输出)数据流,而且下层数据流图中这些数据流的成分之和正好等于上层数据流底部的这个数据流,那么仍然算是平衡的。
(2)每个加工都应该同时有输出数据流和输入数据流,否则它就是一个无意义的加工。
(3)外部实体之间是没有数据流通信的,它们之间是通过系统来协同完成特定操作。
(4)文件和数据存储之间也是没有数据流的。
4、图和加工编号
顶层图只有一张,里面的加工也只有一个,所以不必编号
0层图只有一张,图中的加工号可以是"0.0,0.1,0.2......."也可以是"1,2,3..."
子图号就是父图中被分解的加工号
子图中的加工号由图号、圆点和序号表示,如2.3.4
二、数据字典
数据字典中数据元素的表示法:
=:由。。。构成
+:表示顺序连接的关系
[|]:从中选取一个
{}*:n次重复
():可以选择也可以不选的数据项
*…*特定限制的注释
例如:A=(B)+C表示数据项A包括B和C,B是可选可不选的