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

数据流图基本元素

  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层图之后,我们两个子加工工作量还是有点杂。我们尽力让我们的每个加工只完成一件事。(到这里了就看个人发挥了(记住加工找动词,数据存储找名词哈)。注意加工工作单一的同时,我们还要特别注意的是数据的流向,以及给每个加工标号)。下面的图就不一一赘述了

分层数据流图(画法+例子)相关推荐

  1. 【Powerdesigner】DFD分层数据流图的画法

    目录 powerDesigner画分层数据流图的方法 step 1 step 2 step 3 step 4 step 5 step 6 step 7 图文讲解到此结束 powerDesigner画分 ...

  2. 软件工程考试重点图形:数据流图画法介绍(★★★★★)

    目录 数据流图画法介绍 一.数据流图? 二.数据流图画法: A:画法介绍 B:案例分析 总结 1.画系统的输入和输出(顶层图) 2.画系统的内部(0层图) 3.画加工的内部 4.对第3步分解出来的DF ...

  3. 数据流图-2(分层数据流图)

    对于比较复杂的实际问题,在数据流图上常常出现十几个乃至几十个.上百个加工,这样的数据流图看起来很不清楚.采用层次结构的数据流图则能很好地解决这个问题. 如图中的系统S 图1.5 系统加工数据流图 它的 ...

  4. 分层数据流图简单介绍

    一.分层数据流图 从数据流图的基本目标出发,可以考虑在一张数据流图中包含多少个元素合适的问题.一些调查研究表明,如果一张数据流图中包含的加工多于5-9个,人们就难于领会它的含义了.因此为了表达较为复杂 ...

  5. 一步一步学Linq to sql(十):分层构架的例子

    项目介绍 这节将要把<一步一步学Linq to sql(三):增删改>中留言簿的例子修改为使用WCF的多层构架.我们将会建立以下项目: l         A,网站项目 WebSite:留 ...

  6. 软件设计工程——结构化分析与设计

    结构化分析方法 数据流图 --便于用户理解.分析系统数据流程的图形工具 基本图形元素 数据流:由固定成分的数据组成,表示数据的流向: 加工:描述输入数据流到输出数据流之间的变换: 数据存储:存储数据: ...

  7. (一)1. 数据流图(DFD)概念及画法

    数据流图(Data Flow Diagram):简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能.以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所 ...

  8. pd数据流图怎么画_数据流图(DFD)画法

    数据流图(DFD)画法要求 一.数据流图(DFD) 1.数据流图的基本符号 数据流图由四种基本符号组成,见图5-4-1所示. 图5-4-1  数据流图的基本符号 例:图5-4-2是一个简单的数据流图, ...

  9. 软件工程中数据流图的画法

    软件工程中数据流图的画法 数据流图(Data Flow Diagram):简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能.以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映 ...

最新文章

  1. python虚拟环境管理app_pyenv虚拟环境管理python多版本和软件库
  2. 光缆衰减标准(待补充)
  3. 第16天:函数的定义和调用
  4. 3.3.1 差错控制(检错编码)
  5. The Digits String
  6. Error when loading the SDK:解决方案
  7. 新鲜出炉!393本SCI杂志2020影响因子预测
  8. 第八届“图灵杯”NEUQ-ACM程序设计竞赛个人赛——L题 建立火车站
  9. 初涉龙芯I/龙芯II
  10. js扁平数组对象转成树结构
  11. SpringBoot生成二维码
  12. VBB、VCC、VDD、VEE、VPP 、VSS 的解释
  13. WIN7系统开启无线路由共享上网功能
  14. 用Python统计字符串个数
  15. 快速搭建免费的个人网站
  16. Luogu P4231 三步必杀 (差分)
  17. 今日头条搜索有站长平台!
  18. BZOJ1023 [SHOI2008]仙人掌图
  19. 【刷题】BZOJ 2959 长跑
  20. 著名画家赵准旺的名人评语

热门文章

  1. 抓取网络源码python_python中的复仇者网络抓取实体提取和网络图
  2. MySQL数据备份、恢复
  3. JS中怎样使用Date对象加减日期
  4. 5java讲解(xy)
  5. 关于java读写文件
  6. bugku-post
  7. Kaldi WFST最小化算法
  8. 深度学习与NLP 深度学习|机器学习|人工智能 精品视频教程合集分享
  9. 安卓web开发!你还在把Java当成Android官方开发语言吗?建议收藏
  10. DAC8568 Controller