(一)数据流图
又称数据流程图(Data Flow Diagram, DFD ),是一种便于用户理解、分析系统数据流程的图形工具。
摆脱了系统物理内容,精确地在逻辑上描述系统功能、输入、输出和数据存储等
是系统逻辑模型的重要组成部分。
(1)DFD基本成分
ID | 成分 | 说明 | 备注 |
1 | 数据流 | 由一组固定成分的数据组成,表示数据流向 | 每个数据流都必须有名字(除流入和流出) 注意:是数据流,非控制流 |
2 | 加工 | 描述了输入数据流到输出数据流之间的变换 | 每个加工都有名字和编号(分层DFD的层次和图,属于子加工)。 |
3 | 数据存储 | 表示存储的数据 | 每个数据存储都有名字 |
4 | 外部实体 | 存在于软件系统之外的人员或组织 | 指出系统所需数据的发源地和所产生数据的归宿地 |
(2)分层数据流图画法
步骤 | 说明 | |
1 | 画顶层图(系统的输入和输出) | 整个软件系统视为一个大的加工 |
2 | 画0层图 | 将顶层加工分解成若干加工,并用数据流连接 |
3 | 画加工内部 | 每个加工视为一个小系统 |
4 | 重复画子图中的加工内部 | 重复3步骤,直至图中尚未分解的加工不必再分解 |
(3)注意问题
1)数据流、加工、数据存储、外部实体的命名,应反映其实际含义。
2)画数据流而不要画控制流。
3)每条数据流的输入或者输出是加工。
4)某加工的输入和输出数据流不应同名,即使成分相同。
5)允许一个加工有多条数据流流向另一个加工,也允许一个加工有两个相同的输出数据流流向两个不同的加工。
6)保持父图与子图平衡。
7)在自顶向下的分解过程中,若一个数据存储首次出现时只与一个加工有关,那么这个数据存储应作为这个加工的内部文件而不必画出。
8)保持数据守恒。也就是说,一个加工所有输出数据流中的数据必须能从该加工的输入数据流中直接获得,或者是通过该加工能产生的数据。
9)每个加工必须既有输入数据流,又有输出数据流。
10)在整套数据流图中,每个数据存储必须同时拥有读和写的数据流。但某个子图可能只有读没有写,或者只有写没有读。
(二)数据字典(DD)
数据流图描述了系统的分解,但没有对图中各成分进行说明。
数据字典为数据流图中的每个数据流、文件、加工,以及组成数据流或文件的数据项做出说明。
(1)数据字典内容
有以下4类条目:数据流、数据项、数据存储和基本加工。
条目 | 说明 | |
1 | 数据流 | 给出 DFD中数据流定义 |
2 | 数据存储 | 对数据存储的定义 |
3 | 数据项 | 是不可再分解的数据单位 |
4 | 加工 | 说明DFD中基本加工处理逻辑的 |
(2)数据词典管理
作用:把词典条目按照某种格式组织后存储在词典中,并提供排序、查找和统计等功能。
如果数据流条目包含了来源和去向,文件条目包含了读文件和写文件,还可以检查数据词典与数据流图的一致性。
(三)加工逻辑(小说明)描述
小说明(加工逻辑说明):加工的描述。
描述方法 | 说明 | ||||
1 | 结构化语言 | 是一种介于自然语言和形式化语言之间的半形式化语言. 可分为内层(严格语法)和外层(语法灵活,接近自然语言)。 | |||
外层 | 用来描述控制结构,采用顺序、选择和重复三种基本结构。 | ||||
顺序结构 | 一组祈使、选择或重复语句的顺序排列 | ||||
选择结构 | IF-THEN-ELSE-ENDIF CASE-OF-ENDCASE | ||||
重复结构 | DO-WHLLE-ENDDO. REPEAT-UNTIL | ||||
内层 | 一般采用祈使句,使用数据字典中的名词和有限的自定义词,其动词含义要具体,尽量不用形容词和副词来修饰。可使用一些简单算法和逻辑运算符号。 | ||||
2 | 判定表 | 清楚表示复杂的条件组合与应做动作之间的对应关系(某个加工的一组动作依赖于多个逻辑条件的取值) | |||
3 | 判定树 | 是判定表的变形,比判定表更直观,且易于理解和使用。 |