数据流图(Data Flow Diagram,DFD)
数据流图是一种图形化工具,用于描述系统中的数据流动,它通过表示系统中的不同处理步骤和数据存储方式,帮助开发人员更好的理解和设计系统。
DFD图分为多个层次,每个层次都描述了不同的数据流动细节,DFD显示了系统中的总体数据流程,包括输入、处理和输出。在更低层次上,DFD图则显示了更详细的数据流程和处理步骤。
数据流图的基本图形元素
DFD一般由四个主要元素组成:外部实体、加工、数据流和数据存储
·外部实体(External Agent/Entity):代表数据输入或输出的来源和目的地,它可以是人、组织、设备和其他系统。
·处理/加工(Process):代表数据在系统中的处理步骤,过程可以是计算、转换、汇总或其他数据的处理操作。
·数据存储(Data Store):代表系统中的数据存储位置。数据存储可以是文件、数据库或其他数据存储设备。
例题:2023下半年软考真题
随着深度学习的广泛应用,现代聊天机器人系统需要大规模的训练数据集才能达到其最佳性能,而手动收集如此庞大的数据集需要耗费巨大的人力和时间成本。现欲开发一众包信息系统来辅助收集训练数据集,其主要功能是:
(1)用户管理。众包工作者提供角色和标识,并存储在用户表中。
(2)添加问题。在不同情况下接收来自众包工作者和管理员输入的问题:众包工作者输入问题建议,管理员负责添加初始问题。将问题和问题类别分别进行存储。问题类别说明问题是由众包工作者还是管理员提供的。
(3)答复问题。众包工作者回答或拒绝系统随机展示的5个问题。答复流程是,如果回答问 题则提供答案,如果拒绝问题则提供拒绝原因,如果回答问题数不足5个,继续展示问题,否则众包工作者提供问题建议。无论是回答还是拒绝,数据都存储在带有不同状态标记的答复表中。
(4) 数据服务。根据其它训练平台的请求,为其提供问题、问题类别、回复的数据集。
现采用结构化方法对众包信息系统进行分析与设计,获得如图1所示的上下文数据流图和图2所示的0层数据流图
图1-1 上下文数据流图
图1-2 0层数据流图
【问题1】(3分)
使用说明中的词语,给出图1中的实体EI~E3 的名称。
【问题2】(4分)
使用说明中的词语,给出图2中的数据存储DI~D4 的名称
【问题3】(4分)
根据说明和 图中术语,补充图2中缺失的数据流及其起点和终点。
【问题4】(4分)
什么是分层数据流图中父图与子图的平衡?如何保持。
(1)答案:E1:管理员,E2:众包工作者,E3:其他训练平台
解析:根据“管理员负责添加初始问题”,结合初始问题数据流,可以推出EI是管理员:根据“众包工作者回答或拒绝系统随机展示的5个问题”以及问题数据流和回复数据流,可以推出E2是众包工作者;根据“根据其它训练平台的请求,为其提供问题、问题类别、回复的数据集。”以及数据集请求和数据数据流,可以推出E3为其他训练平台。
(2)答案:D1:用户表,D2:答复表,D3:问题类别表,D4:问题表
解析:根据“众包工作者提供角色和标识,并存储在用户表中”,可以推出DI为用户表;根据“无论是回答还是拒绝,数据都存储在带有不同状态标记的 答复表中”,可以推出D2是答复表:题干没有提及问题类别所存储的表,但数据流“问题类别”,我们可以推断D3是问题类别表:同理我们也可以推出D4是问题表。
(3)E2->P2 问题建议;D2->P2问题解析:
根据“如果回答问题数不足5个,继续展示问题,否则众包工作者提供问题建议。”,可以推断出缺少从E2指向P2的数据流“问题建议”;E2向E2“问题”数据流,但P2和D4之间没有“问题”数据流,此种情况为“奇迹”,为保持数据流平衡,因此需要补充从D4指向P2的“问题”数据流
此类题一般会给你两张图:上下文数据流图和底层数据流图,即顶层和0层。
上下文数据流图不会给你过于清晰的描述,我们要填的一般只有实体,也就是本体1中问的E1~E3;
第二问会问让你补充数据存储,也就是根据输入输出的数据,给这个存储数据的东西起名字,一般是在输入后边加一个“表”,比如D1输入了角色和角色的标识,D1就取名为用户表,D2输入了问答,D2就取名为问答表或答复表,合理即可;
第三问会让你补充缺失数据流,这题是三问中最不好拿分的一问,但总的来说还是“阅读理解”,就是仔细回顾整个题干,将缺失的数据流补充,一般来说是“几分几点”,现在已经全面改为机试,这一问要在电脑上绘制一个表,具体要求参考考试说明;
第四问考一个小概念,一般是考察结构化语言对某条加工逻辑的描述,即伪代码,一般格式为:
即用IF、ELSE等逻辑表示加工过程