大家好,欢迎来到IT知识分享网。
文章目录
数据流图
数据流图也称为数据流程图(Data Flow Diagram,DFD),它是一种便于用户理解、分析系统数据流程的图形工具。它摆脱了系统的物理内容,精确地在逻辑上描述系统的功能、输入、输出和数据存储等,是系统逻辑模型的重要组成部分。
数据流图的基本图形元素
2)加工
加工描述了输入数据流到输出数据流之间的变换,也就是输入数据流经过什么处理后变成了输出数据流。每个加工都有一个名字和编号。编号能反映出该加工位于分层 DFD 中的哪个层次和哪张图中,也能够看出它是哪个加工分解出来的子加工。
一个加工可以有多个输入数据流和多个输出数据流,但至少有一个输入数据流和一个输出数据流。数据流图中常见的 3 种错误如下图所示。
加工 3.1.2 有输入但是没有输出,我们称之为“黑洞”。因为数据输入到过程,然后就消失了。在大多数情况下,建模人员只是忘了输出。
加工 3.1.3 有输出但没有输入。在这种情况下,输入流似乎被忘记了。
加工 3.1.1 中输入不足以产生输出,我们称之为“灰洞”。这有几种可能的原因:一个错误的命名过程;错误命名的输入或输出;不完全的事实。灰洞是最常见的错误,也是最使人为难的错误。一旦数据流图交给了程序员,到一个加工的输入数据流必须足以产生输出数据流。
3)数据存储
数据存储用来存储数据。通常,一个流入加工的数据流经过加工处理后就消失了,而它的某些数据(或全部数据)可能被加工成输出数据流,流向其他加工或外部实体。除此之外,在软件系统中还常常要把某些信息保存下来以供以后使用,这时可以使用数据存储。例如,在考务处理系统中,报名时产生的考生名册要随着报名的过程不断补充,在统计成绩和制作考生通知书时还要使用考生名册的相关信息。因此,考生名册可以作为数据存储存在,以保证相关的考生信息。
每个数据存储都有一个定义明确的名字标识。可以有数据流入数据存储,表示数据的写入操作;也可以有数据流从数据存储流出,表示数据的读操作;还可以用双向箭头的数据流指向数据存储,表示对数据的修改。
这里要说明的是,DFD 中的数据存储在具体实现时可以用文件系统实现,也可以用数据库系统实现。数据存储的存储介质可以是磁盘、磁带或其他存储介质。
4)外部实体(外部主体)
外部实体是指存在于软件系统之外的人员或组织,它指出系统所需数据的发源地(源)和系统所产生的数据的归宿地(宿)。例如,对于一个考务处理系统而言,考生向系统提供报名单(输入数据流),所以考生是考务处理系统的一个源;而考务处理系统要将考生成绩的统计分析表(输出数据流)传递给考试中心,所以考试中心是该系统的一个宿。
在许多系统中,某个源和某个宿可以是同一个人员或组织,此时,在 DFD 中可以用同一个符合表示。考生向系统提供报名单,而系统向考生送出准考证,所以在考务处理系统中,考生既是源又是宿。
源和宿采用相同的图形符合表示,当数据流从该符合流出时,表示它是源:当数据流流向该符号时,表示它是宿:当两者皆有时,表示它既是源又是宿。
数据流图的扩充符号
2)加号(+)
加号表示数据流之间存在“或”关系。如果是输入流则表示其中任何一个输入流到达后就能进行加工处理;如果是输入流则表示加工处理的结果是至少产生其中一个输出数据流。
3)异或(⊕)
异或表示数据流之间存在“互斥”关系。如果是输入流则表示当且仅当其中一个输入流到达后才能进行加工处理;如果是输出流则表示加工处理的结果是仅产生这些输出数据流中的一个。
数据流图的层次结构
1)层次结构
分层数据流图的顶层只有一张图,其中只有一个加工,代表整个软件系统,该加工描述了软件系统与外界之间的数据流,称为顶层图。
顶层图中的加工(即系统)经分解后的图称为 0 层图,也只有一张。处于分层数据流图最底层的图称为底层图,在底层图中,所有的加工不再进行分解。分层数据流图中的其他图称为中间层,其中至少有一个加工(也可以是所有加工)被分解成一张子图。在整套分层数据流图中,凡是不再分解成子图的加工称为基本加工。
2)图和加工的编号
首先介绍父图和子图的概念。
如果某图((记为 A)中的某一个加工分解成一张子图(记为 B),则称 A 是 B 的父图,B 是 A 的子图。若父图中有 n 个加工,则它可以有 0~n 张子图,但每张子图只对应一张父图。
为了方便对图进行管理和查找,可以采用下列方式对 DFD 中的图和加工编号。
① 顶层图中只有一个加工(代表整个软件系统),该加工不必编号。
② 0 层图中的加工编号分别为1、2、3……。
③ 子图号就是父图中被分解的加工号。
④ 对于子图中加工的编号,若父图中的加工号为 x 的加工分解成某一子图,则该子图中的加工编号分别为 x.1、x.2、x.3……。
分层数据流图的画法
分层数据流图的审查
数据流图平衡原则
- 父图与子图之间的平衡
- 子图内平衡
父图与子图之间的平衡
父图中的数据流在子图中都有体现。
监测数据、控制信息、检测信息、统计分析/预测信息、规则、控制指令在子图中都有体现。
子图内平衡
加工数据不能没有结果产生如上图(a)所示,为黑洞;加工数据没有输入数据直接产生数据如上图(b)所示,为奇迹。
数据字典
数据流图描述了系统的分解,但没有对图中各成分进行说明。数据字典就是为数据流图中的每个数据流、文件、加工,以及组成数据流或文件的数据项做出说明。其中,对加工的描述称为“小说明”,也可以称为“加工逻辑说明”。
数据字典的内容
符号 | 含义 | 举例及说明 |
---|---|---|
= | 被定义为 | |
+ | 与 | x = a + b,表示 x 由 a 和 b 组成 |
[…|…] | 或 | x = [a|b],表示 x 由 a 或 b 组成 |
{…} | 重复 | x = {a},表示 x 由 0 个或多个 a 组成 |
m{…}n 或 {…}nm | 重复 | x = 2{a}5 或 x = {a}52,表示 x 中最少出现 2 次 a,最多出现 5 次 a。5、2 为重复出现的上、下限 |
(…) | 可选 | x = (a) 表示 a 可在 x 中出现,也可不出现 |
“…” | 基本数据元素 | x = “a”,表示 x 是取值为字符 a 的数据元素 |
. . | 连接符 | x = 1. .9,表示 x 可取 1~9 中的任意值 |
数据词典管理
词典管理主要是把词典条目按照某种格式组织后存储在词典中,并提供排序、查找和统计等功能。如果数据流条目包括了来源和去向,文件条目包含了读文件和写文件,还可以检查数据字典与数据流图的一致性。
加工逻辑的描述
答题技巧
- 详细分析试题说明
- 利用数据平衡原则
- 详细分析试题说明
数据管理员可通过中间件进行用户管理、操作管理和权限管理。用户管理维护用户信息,用户信息(用户名、密码)存储在用户表中;操作管理维护数据实体的标准操作及其所属的后端数据库信息,标准操作和后端数据库信息存放在操作表中;权限管理维护权限表,该表存储用户可执行的操作信息。
(1)数据管理员是一个外部实体;
(2)中间件中有“用户管理”、“操作管理”、“权限管理”这些加工;
(3)中间件中有“用户表”这个数据存储,且该存储与“用户管理”相关;后端数据库是一个外部实体;
(4)中间件中有“操作表”这个数据存储,且该存储与“操作管理”相关;
(5)中间件中有“权限表”这个数据存储,且该存储与“权限管理”相关。 - 利用数据平衡原则
二、补充存储
存储的文字方面特征:“ 文件 ”“ 表 ”“ 库 ”“ 清单 ”“ 档案 ”
三、补充数据流
1、数据平衡原则
(1)顶层图与0层图对比,是否有顶层图有,但0层图无的数据流,或反之。
(2)检查图中每个加工,是否存在只有入没有出,或只有出没有入,或根据输入的数据无法产生对应的输出的情况。
2、按题目说明与图进行匹配
说明中的每一句话,都能与图中有对应关系,当把说明中的实体与数据流标识出来之后,容易缩小对应范围,找出纰漏。
四、补充加工名
加工是用于处理数据流的,所以要补充加工名,可以把该加工涉及到的数据流,在说明中标识出来,再在数据流名称所在的句子中,找“动词+名词”的结构,分析是否可作为加工。
“动词+名词”如:生成报告,发出通知,批改作业,记录分数,当然这只是普遍情况,也有例外,如物流跟踪、用户管理
题目示例
题目
解题
【参考答案】
数据流名称 | 起点 | 终点 |
---|---|---|
重要生命体征 | 本地监控 | 格式化生命体征 |
格式化后的生命体征 | 格式化生命体征 | 检查生命特征 |
病例 | 生成病例 | D3或病例(文件) |
生命体征 | D2或日志(文件) | 生成病例 |
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/139045.html