软件设计师 · DFD · 父子图平衡

DFD 父图和子图平衡原则怎么判断?

DFD 题里,“父图和子图平衡”是很多同学看着懂、做题却容易漏的点。老师讲这类题时,一般不会让你背定义,而是让你盯住一句话:父图中某个加工的输入输出,展开成子图后,边界上的输入输出不能凭空增加,也不能少掉。

软件设计师专题 软考题库编辑部 持续更新

先把父图里的那个加工圈出来

父图到子图的展开,本质上是把一个较粗的加工拆成多个更细的加工。你先不要急着看子图空缺,先在父图里找到被分解的加工,看看它和外部实体、数据存储之间有哪些输入和输出。

如果父图中加工 P 有两个输入、一个输出,那么子图展开后,在子图边界上也应当能看到这几个输入输出的对应关系。中间怎么拆、加工编号怎么细化,可以变化;但外部看到的输入输出边界要守住。

检查对象要看什么常见错误
父图加工进入和离开该加工的数据流只看子图,不回父图
子图边界是否保留父图输入输出子图凭空多出外部输入
外部实体是否和父图边界一致外部实体之间直接传数据
数据存储是否通过加工读写数据存储之间直接连线

平衡不是说图形长得一样

很多人误以为父图和子图平衡,就是箭头数量必须完全一样、名字必须逐字一样。实际做题时,名字可以更具体,内部加工也可以更多;关键是父图对外表现出来的输入输出,在子图中要能解释得通。

比如父图中“订单信息”进入加工,子图中可能拆成“订单基本信息”和“订单明细”,这不一定错,要看题干是否支持这种拆分。反过来,如果子图突然出现父图没有来源的“审批结果”,就要警惕不平衡。

老师式判断

先看父图:这个加工从外部拿了什么,又给外部什么。

再看子图:这些输入输出有没有在边界上出现。

最后看题干:空格名称尽量用题干原词,不要自己发明。

下午题填空怎么利用平衡原则

如果子图某条数据流空着,可以回父图找同方向、同业务含义的数据流。尤其是从外部实体进入系统、从系统输出给外部实体的数据流,父图通常已经给过暗示。

如果父图里有,而子图里找不到对应,就优先怀疑子图缺少某条数据流;如果子图里有一个父图完全没有来源的边界数据流,就要看它是否应该来自内部加工,而不是外部边界。

最容易丢分的地方

第一,外部实体之间直接传数据。DFD 里外部实体和外部实体之间不应绕过系统加工直接连线。第二,数据存储之间直接传数据。数据存储的读写通常要通过加工。第三,父图有输入输出,子图展开后边界没体现。

做 DFD 题时别只盯空格。先按业务读题,再按平衡原则校验,最后再填名称。这个顺序比直接猜空格稳得多。

相关题目解析

下面这些题目和本专题的判断方法关联较强,适合读完概念后回到具体题干里校验理解。