分层数据流图(画法+例子)

分层数据流图(画法+例子)

数据流图基本元素
  1. 数据流图基本元素:
    1. 数据流:每个数据流都应该命名,以反映该数据流的含义
    2. 加工:每个加工应有名字和编号以反映其功能和在DFD中的层次位置。有输入无输出称位黑洞,输入不足以产生输出称为灰洞。
    3. 数据存储:读,写,修改
    4. 外部实体:存在于软件系统之外的人员或组织,指出系统数据的源和宿
  2. 数据流图一些扩充符号:
    1. 星号(*):表示数据流之间的“与”关系
    2. 加号(+):表示数据流之间的“或”关系
    3. 异或符号
  3. 数据流图层次结构:层次+编号;(一般控制在7±2的范围内)
    在这里插入图片描述

1. 步骤

1.1 个人理解(说人话)

画数据流图的大概步骤就是:

  1. 我们根据题目分析出这个系统的外部系统,找出数据流的宿,搞清楚每个数据流的流向画出顶层图
  2. 根据刚刚我们画出的顶层图,把系统的加工分成若干个子加工,这里是关键点,一个数据流图画的好不好大概率就取决于我们把加工分得合不合理。
  3. 画得时候搞清楚有哪些数据流注意一下数据该不该存储
1.2 具体步骤(说得人话过于简单,看看加深理解)
  1. 画系统的输入输出:
    系统的输入和输出用典藏图来描述 ,及描述系统从哪些外部实体接收数据,以及系统发送数据到哪些外部实体。顶层图只有一个加工及开发的软件系统 顶层图中的数据流就是系统的输入输出信息定成图中通常没有数据存储。

  2. 画系统的内部
    将顶层图的加工分解成若干个加工 并用数据流将这些加工连接起来 使得顶层图中的输入数据经过若干个加工处理后 变换成顶层图的输出数据流 这张图称为零层图 。从一个加工画出一张数据流图的过程 实际上就是对这个加工的分解 。

    1. 确定加工。 这里的加工指的是父图中某加工分解而成的子加工,可以采用下面两种方法来确定加工。
      1. 根据功能分解来确定加工。一个加工实际 上反映了系统的一种功能,根据功能分解的原理,可以将一一个复杂的功能分解成若干个较小的功能,每个较小的功能就是分解后的子加工。这种方去多应用于高层DFD中加工的分解。
      2. 根据业务处理流程确定加工。分析父图中待分解的加工的业务处理流程,流程中的每一步都可能是一 个子加工。特别要注意在业务流程中数据流发生变化或数据流的值发生变化的地方,应该存在一个加工, 该加工将原数据流(作为该加工的输入数据流)处理成变化后的数据流(作为该加工的输出数据流)。该方法较多应用于低层DFD中加工的分解,它能描述父加工中输入数据流到输出数据流之间的加工细节。
    2. 确定数据流。 当用户把若干个数据看作一个整体来处理(这些数据一起到达, 一一起加工)时,可以把这些数据看成一一个数据流。通常,实际工作环境中的表单就是一种数据流。在父图中某加工分解而成的子图中,父图中相应加工的输入/输出数据流就是子图边界上的输入/输出数据流。另外,在分解后的子加工之间应增添- 些新的数据流,这些数据流是加工过程中的中间数据(对某子加工输入数据流的改变),它们与所有的子加工一起完成了父图中相应加工的输入数据流到输出数据流的变换。如果某些中间数据需要保存,以备使用,那么可以表示为流向数据存储的数据流。
    3. 确定数据存储。 在由父图中某加工分解而成的子图中,如果父图中该加工存在流向数据存储的数据流(写操作),或者存在从数据存储流向该加工的数据流(读操作),则这种数据存储和相关的数据流都画在子图中。在分解的子图中,如果需要保存某些中间数据,以备以后使用,那么可以将这些数据组成一个新的文件。 在自顶向下画分层数据流图时,新数据存储(首次出现的)至少应有一个加工为其写入记录,同时至少存在另一个加工读取该数据存储的记录。注意,对于从父图中继承下来的数据存储,在子图中可能只对其读记录,或者写记录。
    4. 确定源和宿。 通常在0层图和其他子图中不必画出源和宿,有时为了提供可读性,可以将顶层图中的源和宿画在0层图中。当同一个外部实体(人或组织)既是系统的源,又是系统的宿时,可以用同一一个图形符号来表示。为了画图的方便,避免图中线的交叉,同一个源或宿可以重复画在DFD的不同位置,以增加可读性,但它们仍代表同一个实体。
  3. 画加工的内部。 当DFD中存在某个比较复杂的加工时,可以将它分解成一张DFD子图。分解的方法是将该加工看作一一个小系统,该加工的输入/输出数据流就是这个假设的小系统的输入/输出数据流,然后采用画0层图的方法画出该加工的子图。

题目:考务处理系统

考务处理系统的功能需求如下。
①对考生送来的报名单进行检查。
②对合格的报名单编好准考证号后将准考证送给考生,并将汇总后的考生名单送给阅卷站。
③对阅卷站送来的成绩清单进行检查,并根据考试中心指定的合格标准审定合格者。
④制作考生通知单(内含成绩合格/不合格标志)送给考生。
⑤按地区、年龄、文化程度、职业和考试级别等进行成绩分类统计和试题难度分析,产生统计分析表。
部分数据流的组成如下。
报名单=地区+序号+姓名+文化程度+职业+考试级别+通信地址
正式报名单=准考证号+报名单
准考证=地区+序号+姓名+准考证号+考试级别+考场
考生名单={准考证号+考试级别} (其中, {w}表示w重复多次)
考生名册=正式报名单
统计分析表=分类统计表+难度分析表
考生通知单=准考证号+姓名+通信地址+考试级别+考试成绩+合格标志

  1. 顶层图分析:我们先分析以下题目找出外部实体。分析可知外部实体有:学生,阅卷站,考试中心。(特别说明一下,别把考务处理系统也理解成实体,处理系统要完成我们得数据处理工作,所以考务处理系统是加工)。接下来我们分析每个数据流的走向
    1. 报名单:考生–>考务处理系统
    2. 准考证:考务处理系统–>考生
    3. 考生名单:考务处理系统–>阅卷站
    4. 成绩清单:阅卷站–>考务处理系统
    5. 合格标准:考试中心–>考务处理系统(这里得好好理解,合格标准是审判合不合格的依据,也是数据流)
    6. 考生通知单:考务处理系统–>考试
    7. 统计分析表:考务处理中心–>考试中心(题中没有说清楚该数据流的宿,但是仔细分析,统计分析表应该是送回给考试中心,供他们进行下次考试的参考准备,所以宿应该的考试中心)
    8. 不合格报名单:考务处理系统–>考生(看到这里别觉得奇怪,题中确实没有这个数据流。但是仔细想想,我们的系统应该是有容错处理的,考试送上来一张错的报名单,系统应该退回告诉考生的。注意有提到要检查报名单的)
    9. 错误成绩清单:考务处理系统–>阅卷站(同上条,注意考务处理中心要检查阅卷站送来的成绩清单的)

有了这些东西我们就能画出我们的顶层图啦, 图如下:
在这里插入图片描述

  1. 画完顶层图(找动词, ),接下来我们就该分析我们的考务处理系统究竟做了那些工作了(加工–>子加工)。分析一下我们的考务处理系统为考生提供了啥处理?就登记学生提交的报名单,合格的报名单就等级上,给考生发准考证,不合格的就退回给考生;给考试中心提供了啥处理?就根据合格标准和成绩清单来统计考生成绩然后生成考生通知单和统计分析表和错误成绩清单。这里再考虑一个问题,我们登记和统计中间产物是啥?我们得形成一个正式得报名单(=考生名册)吧。上述分析中加粗字:动词是加工,名词是数据存储

通过上述分析,我们把加工分为了两个子加工,画出0层图,图如下:
在这里插入图片描述

  1. 同样的画出0层图之后,我们两个子加工工作量还是有点杂。我们尽力让我们的每个加工只完成一件事。(到这里了就看个人发挥了(记住加工找动词,数据存储找名词哈)。注意加工工作单一的同时,我们还要特别注意的是数据的流向,以及给每个加工标号)。下面的图就不一一赘述了
    在这里插入图片描述
    在这里插入图片描述
  • 112
    点赞
  • 619
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
PowerDesigner 是一个功能强大的数据建模和设计工具,可以帮助用户创建和管理各种类型的数据模型。在 PowerDesigner 中,可以使用分层数据流图(Layered Data Flow Diagram)来描述系统或软件的数据流。 分层数据流图是一种图形化表示方法,用于显示系统中数据的流动和处理过程。它由一个或多个水平的层级组成,每个层级代表系统中的一个子系统或模块。在每个层级内部,可以使用数据流、处理器和存储器等元素来描述数据的流动和处理。 通过分层数据流图,可以清晰地展示系统的结构和各个组件之间的关系。它可以帮助开发人员更好地理解系统的功能和数据流程,并且在设计和维护系统时提供指导。 要在 PowerDesigner 中创建分层数据流图,可以按照以下步骤进行操作: 1. 打开 PowerDesigner 并创建一个新的数据模型。 2. 在模型中选择 "Diagram" 选项卡,并点击 "Data Flow Diagram"。 3. 在弹出的对话框中,选择 "Layered" 作为图形类型,并点击 "OK"。 4. 在图形编辑器中,可以使用工具栏上的不同工具来添加数据流、处理器、存储器等元素,并通过拖拽和连接它们来定义数据流动和处理过程。 5. 可以使用图形编辑器的布局和格式化功能来优化分层数据流图的展示效果,例如调整元素的位置和大小,设置连线的样式等。 通过以上步骤,您可以在 PowerDesigner 中创建和绘制分层数据流图,以便更好地描述系统的数据流动和处理过程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值