软考:软件设计师 — 9.数据流图

news2024/9/21 16:32:59

九. 数据流图

数据流图是下午场考试中第一个题目,分值 15 分。通常会考察实体名、存储名、加工名的补充,以及找到缺失的数据流并改正等。

1. 数据平衡原则

数据流的分析依赖于数据平衡原则。

父图与子图之间的平衡

父图与子图之间平衡是指任何一张 DFD 子图边界上的输入/输出数据流必须与其父图对应加工的输入/输出数据保持一致。如果父图中某个加工的一条数据流对应于子图中的几条数据流,而子图中组成这些数据流的数据项全体正好等于父图中的这条数据流,那么它们仍然是平衡的。也就是可能存在一对一或一对多的类似关系。

子图内平衡

数据流图常见的 3 种错误:

  • 加工只有输入没有输出,称为黑洞。

  • 加工只有输出没有输入,称为奇迹。

  • 加工中输入不足以产生输出,称为灰洞。

找到缺失的数据流

如父图:

子图: 

先找到对应实体,然后再找对应数据流。如前端应用,子图中缺少处理后的操作结果数据流;后端数据库缺少操作结果数据流。 

2. 解题技巧

详细分析试题说明

数据管理员可通过中间件进行用户管理、操作管理和权限管理。用户管理维护用户信息,用户信息(用户名、密码)存储再在用户表中;操作管理维护数据实体的标准操作及其所属的后端数据库信息,标准操作和后端数据库信息存放在操作表中;权限管理维护权限表,该表存储用户可执行的操作信息。

  • 数据管理员是一个外部实体;
  • 中间件有用户管理、操作管理、权限管理这些加工;
  • 中间件有用户表这个数据存储,且该存储与用户管理相关;
  • 后台数据库是一个外部实体;
  • 中间件有操作表这个数据存储,且该存储与操作管理相关;
  • 中间件有权限表这个数据存储,且该存储与权限管理相关。

利用数据平衡原则

找到父图与子图对应外部实体缺失的数据流。

补充实体

实体可能是:

  • 人物角色:如 客户、管理员、主管、经理、老师、学生等。
  • 组织机构:如 银行、供应商、募捐机构等。
  • 外部系统:如 银行系统、工资系统、后台数据库(当要开发的是中间件时)等。

补充存储

存储的文字方面特征:**文件,**表,**库,**清单,**档案 等。

补充加工

加工是用于处理数据流的,所以要补充加工名,可以把该加工涉及到的数据流,在说明中标识出来,再在数据流名称所在的句子中,找 "动词 +  名词" 的结构,分析是否可作为加工。有时也是 "名词 + 动词" 。

"动词 +  名词" 如:生成报告、发出通知、批改作业、记录分数、物流跟踪、用户管理等。

补充数据流

① 数据平衡原则

  • 顶层图与 0 层图对比,是否有顶层图有,但 0 层图无的数据流,或反之。
  • 检查图中每个加工,是否存在只有输入没有输出或只有输出没有输入,或根据输入无法产生对应输出的情况。

② 按题目说明与图进行匹配

说明中的每一句话,都能与图中有对应关系,当把说明中的实体与数据流标识出来之后,容易缩小对应范围,找出纰漏。

3. 例题

(1)例题 1

说明:

现准备为某银行开发一个信用卡管理系统 CCMS,该系统的基本功能为:

  • 信用卡申请。非信用卡客户填写信用卡申请表,说明所要申请的信用卡类型及申请者的基本信息,提交 CCMS。如果信用卡申请被银行接受,CCMS 将记录该客户的基本信息,并发送确认函给该客户,告知客户信用卡的有效期及信贷限额;否则该客户将会收到一封拒绝函。非信用卡客户收到确认函后成为信用卡客户。
  • 信用卡激活。信用卡客户向 CCMS 提交激活请求,用信用卡号和密码激活该信用卡。激活操作结束后,CCMS 将激活通知发送给客户,告知客户其信用卡是否被成功激活。
  • 。信用卡客户的个人信息可以在 CCMS 中进行在线管理。每位信用卡客户可以在线查询和修改个人信息。
  • 交易信息查询。信用卡客户使用信用卡进行的每一笔交易都会记录在 CCMS 中。信用卡客户可以通过 CCMS 查询并核实其交易信息(包括信用卡交易记录及交易额)。

下面分别给出了该系统的顶层数据流图和 0 层数据流图的初稿。

问题1:

根据说明,将顶层数据流图中的 E1~E3 补充完整。

问题2:

顶层数据流图缺少三条数据流,根据说明,分别指出这三条数据流的起点和终点。(注:数据流的起点和终点均采用图中的符合和描述)

问题3:

0 层数据流图中有两条数据流是错误的,请指出这两条数据流的名称,并改正。

问题4:

根据说明,将 0 层数据流图中 P1~P4 的处理名称补充完整。

解析1:

首先分析题干,通常题干中每段以总分形式呈现的,最前面的描述往往就是加工。如信用卡申请、信号卡激活等。

E1~E3 分别代表三个实体,E1 接收到两个函,说明是非信用卡客户;E2 有查询修改个人信息的请求,也接收到激活通知,说明是信用卡客户;E3 接收到信用卡申请并返回验证结果,说明是银行。

E1:非信用卡客户  E2:信用卡客户  E3:银行

解析2:

顶层数据流图缺少三条数据流,继续分析题干。

首先看到非信用卡客户实体,填写信用卡申请表提交给 CCMS,此处缺失。即 E1(非信用卡客户)->(填写信用卡申请表) P0(CCMS)。然后是信用卡客户实体,向 CCMS 提交激活请求,操作结束后会收到来自 CCMS 的激活通知,此处缺失了提交激活请求,即 E2(信用卡客户)->(激活请求)P0(CCMS)。最后是信用卡客户提交了交易记录查询请求,CCMS 应该返回交易记录查询结果,此处缺失,即 P0(CCMS)->(交易信息)E2(信用卡客户)。

① 起点:E1(非信用卡客户) 终点:P0(CCMS) 数据流名称:填写信用卡申请表

② 起点:E2(信用卡客户) 终点:P0(CCMS) 数据流名称:激活请求

③ 起点:P0(CCMS) 终点:E2(信用卡客户) 数据流名称:交易信息

解析3:

0 层数据流图有两条错误的数据流,继续分析题干。

其实根据题干描述,可以先把 P0~P4 补充完整,也方便做题。

E2 是信用卡客户,提交了交易查询记录请求给 P1,因此 P1 应该是交易信息查询。也提交了查询/修改个人信息请求给 P2,因此 P2 应该是信用卡客户信息管理。P3 将激活通知发送给 E2,所以 P3 应该是信用卡激活,最后 P4 与 E1(非信用卡客户)交互,即 P4 是信用卡申请。

P1:交易信息查询  P2:信用卡客户信息管理  P3:信用卡激活  P4:信用卡申请

第一个错误的是 P4 ->(填写信用卡申请表) E1。应该是 E1(非信用卡客户)->(填写信用卡申请表) P0(CCMS),是非信用卡客户提交申请表给 CCMS,此处方向反了。

第二个错误的是 P4 -> (激活请求)P3。应该是 E2(信用卡客户)->(激活请求)P0(CCMS),是信用卡客户提交激活请求给 CCMS,即进行信用卡激活。

① 起点:P4(信用卡申请) 终点:E1(非信用卡客户) 数据流名称:填写信用卡申请表

改正后:起点:E1(非信用卡客户) 终点:P4(信用卡申请) 数据流名称:填写信用卡申请表

② 起点:P4(信用卡申请) 终点:P3(信用卡激活 ) 数据流名称:激活请求

改正后:E2(信用卡客户) 终点:P3(信用卡激活 ) 数据流名称:激活请求

解析4:

如解析3所述。

P1:交易信息查询  P2:信用卡客户信息管理  P3:信用卡激活  P4:信用卡申请

(2)例题 2

说明:

某证券交易所为了方便提供证券交易服务,欲开发一证券交易平台,该平台的主要功能如下:

  • 开户。根据客户服务助理提交的开户信息,进行开户,并将客户信息存入客户记录中,账户信息(余额等)存入账户记录中。
  • 存款。客户可以向其账户中存款,根据存款金额修改账户余额。
  • 取款。客户可以从其账户中取款,根据取款金额修改账户余额。
  • 证券交易。客户和经纪人均可以进行证券交易(客户通过在线方式,经纪人通过电话),将交易信息存入交易记录中。
  • 检查交易。平台从交易记录中读取交易信息,将交易明细返回给客户。

设计得到的数据流图如下所示:

问题1:

使用说明中的词语,给出上下文数据流图中的实体 E1~E3 的名称。

问题2:

使用说明中的词语,给出 0 层数据流图中数据存储 D1~D3 的名称。

问题3:

根据说明和图中的术语,补充 0 层数据流图中缺失的数据流及其起点和终点。

问题4:

实际的证券交易通常是在证券交易中心完成的,因此,该平台的证券交易功能需将交易信息传递给证券交易中心。针对这个功能需求,需要对两个数据流图进行哪些修改,请用 200 字以内的文字加以说明。

解析1:

分析题干可以得到信息,客户服务助理提交的开户信息,因此 E1 是客户服务助理;客户可以向其账户中存款,也可以取款,因此 E2 是客户;经纪人通过电话进行证券交易,所以 E3 是经纪人。

E1:客户服务助理  E2:客户  E3:经纪人

解析2:

客户信息存入客户记录中,账户信息(余额等)存入账户记录中,因此 D1 是客户记录,D2 是账户记录。平台从交易记录中读取交易信息,将交易明细返回给客户,D3 是交易记录。

D1:客户记录  D2:账户记录  D3:交易记录

解析3:

补充缺失的数据流时可以利用数据平衡原则,一个加工不能只有输入或输出。

根据题干,账户信息(余额等)存入账户记录中,并且根据存款或取款金额修改账户余额,因此存款和取款加工指向 D2,数据流名称为修改账户余额。交易信息存入交易记录中,因此证券交易(在线)和证券交易(电话)都需要指向 D3,数据流名称为交易信息存入交易记录。通常补充缺失数据流的题目需要用表格形式回答,如下:

起点终点数据流名称
存款D2(账户记录)修改账户余额
取款D2(账户记录)修改账户余额
证券交易(在线)D3(交易记录)交易信息存入交易记录(在线)
证券交易(电话)D3(交易记录)交易信息存入交易记录(电话)

解析4:

根据题目要求,增加了新的外部实体证券交易中心。在上下文数据流图中,增加证券交易平台指向证券交易中心的数据流,名称为交易信息。在 0 层数据流图中,分别增加证券交易(在线)和证券交易(电话)指向证券交易中心的数据流,名称均为交易信息。

起点终点数据流名称
证券交易平台证券交易中心交易信息
证券交易(在线)证券交易中心交易信息
证券交易(电话)证券交易中心交易信息

(3)例题 3

说明:

某医疗护理机构为老年人或有护理需求者提供专业护理,现欲开发一基于Web的医疗管理系统,以改善医疗护理效率。该系统的主要功能如下:

  • 通用信息查询。客户提交通用信息查询请求,查询通用信息表,返回查询结果。
  • 医生聘用。医生提出应聘/辞职申请,交由主管进行聘用/解聘审批,更新医生表,并给医生反馈聘用/解聘结果;删除解聘医生的出诊安排。
  • 预约处理。医生安排出诊时间,存入医生出诊时间表;根据客户提交的预约查询请求,查询在职医生及其出诊时间等预约所需数据并返回;创建预约,提交预约请求,在预约表中新增预约记录,更新所约医生出诊时间并给医生发送预约通知;给客户反馈预约结果。
  • 药品管理。医生提交处方,根据药品名称从药品数据中查询相关药品库存信息,开出药品,更新对应药品的库存以及预约表中的治疗信息;给医生发送药品已开出反馈。
  • 报表创建。根据主管提交的报表查询请求(报表类型和时间段),从预约数据、通用信息、药品库存数据、医生以及医生出诊时间中进行查询,生成报表返回给主管。

设计得到的数据流图如下所示:

问题1:

使用说明中的词语,给出上下文数据流图中的实体 E1~E3 的名称。

问题2:

使用说明中的词语,给出 0 层数据流图中数据存储 D1~D5 的名称。

问题3:

根据说明和图中的术语,补充 0 层数据流图中缺失的数据流及其起点和终点。

问题4:

使用说明中的词语,说明预约处理可以分解为哪些子加工,并说明两个数据流图是如何保持平衡的。

解析1:

根据题干得到信息,客户提交通用信息查询请求,因此 E1 是客户;医生提出应聘/辞职申请,交由主管进行聘用/解聘审批,所以 E2 是医生,E3 是主管。

E1:客户  E2:医生  E3:主管

解析2:

继续分析题干,客户提交通用信息查询请求,查询通用信息表,因此 D1 是通用信息表;更新医生表,D3 是医生表;医生安排出诊时间,存入医生出诊时间表,D4 是出诊时间表;在预约表中新增预约记录,D2 是预约表;根据药品名称从药品数据中查询相关药品库存信息,D5 是药品数据。

D1:通用信息表  D2:预约表  D3:医生表  D4:出诊时间表  D5:药品库存表

解析3:

删除解聘医生的出诊安排,此处缺失,应该由 P2 指向 D4,名称为删除解聘医生的出诊安排;更新所约医生出诊时间部分缺失,应该由 P3 指向 D4,名称为更新出诊时间;根据药品名称从药品数据中查询相关药品库存信息,开出药品,此处缺失,应该由 D5 指向 P4,名称为药品库存信息;更新对应药品的库存以及预约表中的治疗信息,更新预约表的治疗信息缺失,应该由 P4 指向 D2。

起点终点数据流名称
P2 医生聘用D4 出诊时间表删除解聘医生出诊安排
P3 预约处理D4 出诊时间表更新出诊时间
D5 药品数据P4 药品管理药品库存信息
P4 药品管理D2 预约表更新预约表的治疗信息

解析4:

预约处理的分解可以根据题干中对预约处理的描述,每个分号前代表一个加工,即安排出诊时间、预约查询、创建预约、反馈预约结果。

两个数据流图保持平衡即父图与子图之间的平衡,父图中某个加工的输入输出数据流必须与其子图的输入输出数据流在数量上和名字上相同。父图的一个输入或输出对应子图中的几个输入或输出,而子图中组成的这些数据流的数据项全体正好是父图中的这一个数据流。

数据流图部分的内容至此结束,后续如果有补充或修改会直接添加。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1972637.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

mp3剪辑音乐怎么剪?手把手教会你4个音频剪辑技巧

在制作创意无限的“矿泉水瓶烟花视频”时,音效的选择与剪辑往往是点睛之笔。想象一下,那绚烂的视觉盛宴搭配上恰到好处的背景音乐,是否能让你的作品更加引人入胜? 而要精准地控制每一个音符的起承转合,一款强大的mp3剪…

【学习笔记】Day 1

一、进度概述 1、配置相关环境——注:暂未完成,还有部分依赖没有补充完整 2、试运行 3、《地震数据全波形反演的深度学习方法》PPT知识梳理方法地震数据全波形反演的深度学 二、详情 1、配置相关环境 深度学习环境配置参考文章如下&a…

VS+Qt+C++点云PCL三维显示编辑系统

程序示例精选 VSQtC点云PCL三维显示编辑系统 如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助! 前言 这篇博客针对《VSQtC点云PCL三维显示编辑系统》编写代码,代码整洁,规则,易…

HttpRequest请求对象和HttpResponse响应对象

HttpRequest请求对象 1.获取请求头 2.获取请求参数 通过请求对象获取请求头 获取GET参数(valuerequest.GET.get(参数名称,默认值))获取POST参数valuerequest.POST.get(参数名称,默认值))获取URL参数&#xf…

C++ 预置和弃置的函数

在C11中,预置和弃置的函数是用于处理移动语义和完美转发的。 预置函数(Move Constructor)是在对象被移动时调用的构造函数。它允许将资源从一个对象转移到另一个对象,而不是进行复制。这可以提高性能,特别是在处理大型…

红酒与美食搭配:味觉的新探索

在美食的世界里,红酒如同一位优雅的舞者,与各种佳肴共舞,创造出无尽的味觉惊喜。当定制红酒洒派红酒(Bold & Generous)与各式美食相遇,便开启了一场味觉的新探索之旅。 一、红酒与美食的邂逅&#xff…

中国LLM研究所收集100+AI大模型资源

自ChatGPT为代表的大语言模型 (大型语言模型,LLM)出现以后,由于其惊人的类通用人工智能(AGI)的能力,掀起了新一轮自然语言处理领域的研究和应用的浪潮。尤其是以ChatGLM、LLaMA等平民玩家都能跑起来的较小规模的法学开源之后,业界…

@SchedulerLock注解使用

文章目录 Scheduled注解参数介绍建表配置类示例参考 如果服务中使用了Scheduled注解,且服务部署了多个节点。那么在同一时刻,所有节点都会执行定时任务。但有有些任务我们只需执行一次,这就需要使用分布式锁的方式来控制,如可以使…

写文案的软件有哪些,四款强大的文案生成器为你创作文案

文案,作为沟通和营销的桥梁,其重要性不言而喻。然而,创作出既吸引人又具有说服力的文案,往往需要投入大量的时间和精力。随着市场上出现了一些能够辅助甚至替代人工创作文案的生成器出现,它解决了大家创作文案的难题。…

(器件)ATMXT1664S1是电容式触摸屏控制器、而ATMXT2912TG-A则是maXTouch 2840节点触摸屏控制器

1、maXTouch mXT1664S电容式触摸屏控制器为大型触摸屏设备带来了S系列架构。mXT1664S得益于强大的32位AVR内核,并且由于S系列架构,它具有业界最高的信噪比(SNR),提供了无与伦比的触摸性能。与S系列中的其他设备一样,mXT1664S包括:…

在OA系统中,飞书的设计从颜值和体验上算是天花板了吧?

书是一款优秀的企业通讯协作工具,在 OA 系统的设计上有很多优点,如用户界面友好、安全性高和协作功能丰富等。但它也有一些可以改进的地方,以下是一些可能的方向: 用户体验一致性:飞书的不同功能模块可能在用户体验上…

TCP的可靠机制

TCP的可靠机制 前言 要了解TCP的可靠机制,我们必须要先熟悉TCP的报文,在这篇文章中有详细介绍TCP的报文 : 并且确认应答机制也在该文章中提到,所以这篇文章就不会再介绍确认应答了。 超时重传 我们都知道,报文在网…

2024年【起重机司机(限桥式起重机)】最新解析及起重机司机(限桥式起重机)找解析

题库来源:安全生产模拟考试一点通公众号小程序 起重机司机(限桥式起重机)最新解析根据新起重机司机(限桥式起重机)考试大纲要求,安全生产模拟考试一点通将起重机司机(限桥式起重机)模拟考试试题进行汇编,组成一套起重机司机(限桥式起重机)全…

c++(模版)

目录 函数模板格式 函数模版原理 函数模板的实例化 模板参数的匹配原则 类模板 函数模板格式 template<typename T1, typename T2,......,typename Tn> 返回值类型 函数名(参数列表){} template<typename T> void Swap( T& left, T& right) { T te…

cesium的flyTo在飞行完成后渲染

viewer.camera.flyTo({}); 替换自己要渲染的labe img等 viewer.camera.flyTo({destination: Cesium.Cartesian3.fromDegrees(lon,lat,height), // 飞行目的地&#xff0c;视角高度duration: 3, // 飞行所用时间// 飞行完成后的事件complete: function() {viewer.camera.flyTo…

pytorch: cpu,cuda,tensorRt 推理对比学习

0&#xff1a;先看结果 针对resnet模型对图片做处理 原图结果 分别使用cpu&#xff0c;cuda&#xff0c;TensorRt做推理&#xff0c;所需要的时间对比 方法时间cpu13s594mscuda711mstensorRt 113ms 项目地址&#xff1a; GitHub - july1992/Pytorch-vily-study: vily 学…

KubeVirt虚拟机存储及网络卸载加速解决方案

1. 方案背景 1.1. KubeVirt介绍 随着云计算和容器技术的飞速发展&#xff0c;Kubernetes已成为业界公认的容器编排标准&#xff0c;为用户提供了强大、灵活且可扩展的平台来部署和管理各类应用。然而&#xff0c;在企业的实际应用中&#xff0c;仍有许多传统应用或遗留系统难…

电脑缺少directx怎么办?电脑dll修复详细教程!7种方法!

DLL&#xff08;动态链接库&#xff09;文件是Windows操作系统中非常重要的组成部分&#xff0c;它们包含了程序运行所需的代码和数据。然而&#xff0c;由于各种原因&#xff0c;如系统更新、软件卸载不当或病毒感染&#xff0c;DLL文件有时会丢失或损坏&#xff0c;导致程序无…

day18 Java流程控制——Scanner进阶使用

day18 Java流程控制——Scanner进阶使用 本章目录 day18 Java流程控制——Scanner进阶使用1. 什么是Scanner&#xff1f;2. Scanner进阶使用&#xff08;实例&#xff09;2.1 整数&小数的输入输出2.2 我们可以输入多个数字&#xff0c;并求其总和与平均数&#xff0c;每输入…

96年高中程序员年收入30万

互联网创业交流群&#xff0c;从昨天晚上8.1建军节开始建群&#xff0c;到今天中午已经突破200人了。 这里面有我的朋友&#xff0c;也有马总的朋友&#xff0c;当然不管是谁的朋友&#xff0c;进来了大家都是一家人。 以后在不违反原则的情况下&#xff0c;希望大家能和谐相…