结构化分析设计
知识点
数据流图描述 数据在系统中如何被传送或变换,以及如何对数据流进行变换的功能或子功能,用于对功能建模。
数据流: 由一组固定成分的数据组成,表示数据的流向。在 DFD 中,数据的流向必须经过加工
加工:描述了输入数据流到输出数据流之间的变换,数据流图中常见的三种错误如图所示:
- 加工 3.1.2 有输入但是没有输出。称之为 “黑洞”
- 加工 3.1.3 有输出但没有输入。称之为“奇迹”
- 加工 3.1.1 中输入不足以产生输出,我们称之为灰洞。
数据存储:用来存储数据
外部实体(外部主题):是指存在于 软件系统之外的人员或组织,它指出系统所需数据的发源地(源)和系统所产生的数据的归宿地(宿).
多层数据流图
考试只考顶层图和 0 层图。
- 考点一:补充外部实体(看顶层图)
- 考点二:补充数据存储(数据存储在顶层图中是不会出现的)
- 靠点三:补充数据流(看零层图)
顶层图是系统作为一个整体与所有的外部实体进行交互,把这个整体进行进一步的划分(这个整体中包含了那些功能)得到 0 层图。再进一步分就会得到 1 层数据流图。
但是不管怎么划分,父图和子图都会保持数据流的平衡的,输入输出数据流必然都是一致的。
数据流图的设计原则
-
数据守恒原则:对任何一个加工来说,其 所有输出数据流中的数据必须能从该加工的输入流中直接获得,或者说是通过该加工能产生的数据。
-
守恒加工原则: 对同一个加工来说,输入与输出的名字必须不相同,即使它们的组成成分相同。
-
对于每个加工,必须 既有输入数据流,又有输出数据流,且输入输出必须有关联。
-
外部实体与外部实体之间不存在数据流
-
外部实体与数据存储之间不存在数据流
-
数据存储与数据存储之间不存在数据流
-
父图和子图的平衡原则:子图的输入输出数据流同父图相应加工的输入输出数据流必须一致,此即父图与子图的平衡。父图与子图之间的平衡原则不存在于单张图。
-
数据流与加工有关,且必须经过加工。
数据字典 DD
据流图描述了系统的分解,但没有对图中的各成分进行说明。数据字典就是为数据流图中的每个数据流、文件、加工,以及组成数据流或文件的数据项做出说明。
数据字典有以下 4 类条目:数据流、数据项、数据存储和基本加工
| 符号 | 定义 | 举例及说明 |
|---|---|---|
| = | 被定义为 | |
| + | 与 | x = a+b, 表示 x 由 a 和 b 组成 |
[...|...] | 或 | x=[a|b],表示 x 由 a 或 b 组成 |
{......} | 重复 | x={a}, 表示 x 由 0 各或多个 a 组成 |
加工逻辑也称为“小说明”。常用的加工逻辑描述方法有 结构化语言(伪代码)、判定表和判定树 3 种。
数据字典并不会去说明外部实体,认为外部实体不是系统内部的东西。
解题技巧
数据流图的 考试形式非常固定,第一小题补充外部实体,第二小题补充数据存储,第三题补充缺失数据流,第四小题考察简单概念。都不算难,以题目描述和数据流图为主,答案都在题目描述里,更像阅读理解题,技巧如下。
-
补充外部实体:外部实体就是与系统进行交互的其它实体,可以是大型系统、公司部门、相关人员等。外部实体会与系统进行交互,反映在数据流图中就是一个 事件流,依据事件的名称结合题目描述可以轻易得到答案。
-
补充数据存储:数据存储出现在 0层数据流图中,反应系统内部数据的存储,可以直接根据数据 流图中 数据存储的输入数据流和输出数据流判断该数据存储的信息得到答案,但注意 要使用题目说明的数据存储名词作为答案。
-
补充缺失数据流:详细阅读题目描述,依据题目描述 对涉及的数据流图进行一一核对,这是 最为简单直接的方法,因为即使开始就去考虑数据守恒、父图子图平衡等原则,最终还是要根据题目描述核对,不如一开始就直接核对。
-
简单概念:题型不固定,一般只有 2-3 分,都是比较简单的判断。
常见问题
Q: 补充数据存储时,题目中没有具体存储名称怎么办? A: 此时可依据数据流图中数据存储的输入输出数据流自行起名。
Q:补充数据流时,该写多少条? A:一般按分写,几分就写几条。
Q:觉得要补充的数据流很多,比分数更多怎么办? A:可以多写,这个是按点给分的,多写不会扣分,但要注意不能太过分。
Q:总觉得数据流把握不准,跟答案有出入怎么办? A:首先要注意,软考官方不公布标准答案,所有答案都是考试老师校对的,可能会不全面;其次,部分真题本身也不太严谨,有二义性。因此不用太纠结,掌握解题方法,多刷题即可。
需要拿到 12 分以上
往年真题
真题一
真题二
