数据流图DFD简介
数据流图DFD简介
在了解数据流图之前,先来了解下与之相关的软件开发方法与结构化方法的相关概念。
软件开发方法
软件方法学是以软件开发方法为研究对象的学科。从开发风格上来看,软件方法学可分为自顶向下开发方法和自底向上开发方法。自顶向下开发方法强调开发过程是由问题到解答、由总体到局部、由抽象到具体。自底向上开发方法从系统实现的最基础部分着手,由简单到复杂,逐层向上构造,直至得到最终所需的软件。
结构化方法属于自顶向下的开发方法,其基本思想是“自顶向下,逐步求精”,强调开发方法的结构合理性及所开发软件的结构合理性。结构是指系统内系统内各个组成要素之间的相互联系、相互作用的框架。
结构化开发方法提出了一组提高软件结构合理性的概念与规则,如分解与抽象、模块独立、信息隐蔽等。对应于软件生命周期各个不同的阶段,结构化方法包括结构化分析(SA)、结构化设计(SD)和结构化编程(SP)等方法。
其中,结构化设计是一种面向数据流的方法,在该方法中,模块是实现功能的基本单位。它通常与结构化分析方法衔接起来进行,以数据流图(DFD)为基础得到软件的模块结构。
数据流图
数据流图(Data Flow Diagram,简称DFD),是进行结构化分析和设计的重要工具,是表达系统内部数据的流动并通过数据流描述系统功能的一种方法。
在DFD中,有四种基本组成元素,分别是:数据流、加工、数据存储、外部实体(数据来源及数据终点)。这四种元素分别用四种基本符号表示。
→:数据流。数据流是具有名字和流向的数据。除了与数据存储之间的数据流不用命名外,其他一般都应该命名,将名字标注在带箭头的线旁边。在数据流图中应该体现所有可能的数据流,但不需要描绘出现某个数据流的条件。
□:外部实体。外部实体是指位于被建模的系统/模块之外的信息生产者或消费者,它们分别表示数据处理过程的数据来源和数据去向。用标有名字的方框表示。外部实体可以是人、物或其他软件系统。
○:对数据的加工(或处理)。它接收一定的数据输入,对其进行处理,并产生输出。一个处理节点可以代表一系列程序、单个程序或者程序的一个模块,可以称之为一个功能单元。
〓:数据存储。数据存储是可访问的数据信息,表示信息的静态存储。可以是文件、数据库的信息等。
例如,对于以下的计算序列:
x = a + by = c - dR1 = x * yR2 = b / d
用数据流图表示为:
可以看到,图中的每个圆圈表示一个操作,箭头表示数据的流向,即输入输出,同时还包含先后顺序。具体来说,图中的a、b、c、d、R1、R2属于外部实体,+、-、*、/为处理节点,箭头表示数据流向。
在上图中,执行 a+b 和 c-d 的顺序是任意的,x*y 和 b+d 的顺序也是任意的。它们没有数据依赖性,即两个步骤之间不存在一个步骤的输出是另一个步骤的输入。
在概念上,数据流图是有向非周期的图,包含节点和边。其中,节点代表功能单元,处理输入和产生输出;有向边是两个节点间的有向箭头,表示箭头节点的输入数据是箭尾节点的输出,意味着只有上一个节点计算完成才能进行下一个节点计算。
从图中可以看出,数据流图表达了数据的生产者、数据的产生顺序和数据的消费者,同时也可以看出数据流的并行情况、并发计算的时机和数据的生命周期。
数据流图的作用
数据流图从数据传递和处理的角度,利用图形符号通过逐层细分描述系统内各个部件的功能和数据在它们之间传递的情况,来说明系统所需要完成的功能。主要有以下作用
DFD是理解和表达用户需求的工具,是系统分析和系统设计的手段。图形符号简明易懂,不需要计算机专业知识也可以很好地理解。通过数据流图与客户交流很方便。DFD概括地描述了系统的内部逻辑过程,体现了系统分析的结果,可以作为系统设计的重要依据和参考资料,可以说是系统设计的起点。通过DFD可以进一步制定后续的系统开发计划。
物理与逻辑DFD
DFD可以是一个物理系统模型,也可以是逻辑系统模型,还可以是两者的混合。逻辑DFD与物理DFD最大的区别在于,逻辑DFD只描述了相关的组成元素,而物理DFD则会涉及具体的实现技术。
在系统分析中,逻辑DFD作为需求规格说明书的组成部分,用于建模系统的逻辑业务需求;在系统设计中,物理DFD作为系统构造和实现的技术性蓝图,用于建模系统实现的技术设计决策和人为设计决策。
数据流图的分层
通常在实际运用中,为了表达数据处理过程中的数据加工情况,用一个DFD是不够的。稍复杂的实际业务问题,在DFD中常常出现十几个甚至更多的加工。为了使DFD看起来更清晰直观,可以采用层次结构的DFD,按照系统的层次结构进行逐步分解。
一般,根据层级将数据流图分为顶层数据流图、中层数据流图和底层数据流图。除顶层数据流图外,其他数据流图按顺序从0开始编号。
顶层数据流图只含有一个处理节点,代表所要建模的整个系统;输入数据和输出数据为系统的输入和输出。通常用于表达系统范围,以及与外部系统或环境的关系。
中层数据流图是对顶层数据流图中某个处理进行细化,而它本身的某个处理节点还可以进一步细化,形成下一级的数据流图。中层数据流图的多少,一般与系统的复杂度有关。
底层数据流图是指处理节点不能再分解的数据流图。其处理节点称为“原子处理”或“原子加工”。
例如,某经销商经销系统的功能为:
(1) 向上级经销商提交订货订单;
(2) 接收下级经销商退货订单;
(3) 接收电商系统的消费者订单。
画出该系统的顶级数据流图为:
然后,可以的顶级数据流图进一步细化,细化为多个下级数据流图。在此举例细化消费者订单模块数据流图DFD/L0.1如下:
注意命名方式,顶级数据流图下面的第一层为DFD/L0,如果该层有多个数据流图,DFD/L0.1、DFD/L0.3、DFD/L0.3……,第一层的下一层为DFD/L1,依此类推。
-
- 猪渗出性皮炎的原因分析与预防治疗
-
2024-08-29 18:40:30
-
- 斯琴高娃:三婚丈夫陈亮声去世1年,她的选择令人泪目
-
2024-08-29 18:38:15
-
- 汝州市“赛比安”传销头目获刑六年!
-
2024-08-29 18:36:00
-
- 黄日华:妻子生前花750万为其治病,妻子走后发誓终生不娶
-
2024-08-29 18:33:45
-
- 我和4位上海美女同事合租的那些事!「第五集」
-
2024-08-29 18:31:31
-
- 琼瑶遭丈夫前妻控诉:有毒的琼瑶小说,来自于三观不正的她!
-
2024-08-29 18:29:16
-
- 郸城县第一高级中学:探秘“郸城一高现象”是如何形成的
-
2024-08-29 18:27:01
-
- 他是最后一名日籍八路军,99岁病逝,儿子以中国宪法命名
-
2024-08-29 18:24:46
-
- 杜致仁:考上哈佛没钱上,在家服药自尽,姐夫杨振宁为何不帮他?
-
2024-08-29 18:22:31
-
- 这就是街舞剪辑让何展成淘汰,参与录制的吃瓜群众说出真相!
-
2024-08-28 09:55:13
-
- 熊猫直播被曝破产
-
2024-08-28 09:52:58
-
- 七旬老人被困深山 汝阳警民150余人寻找12小时救回
-
2024-08-28 09:50:44
-
- 海贼王,路飞永远会对汉库克隐瞒的4件事情,说漏一件就会死一人
-
2024-08-28 09:48:29
-
- 13年的福特敞篷野马才几十万?90后小伙秒提,说天热这车开着凉快
-
2024-08-28 09:46:14
-
- 粽子叶要泡多久?粽子叶泡多长时间
-
2024-08-28 09:44:00
-
- 中华女子学院只招女生吗?男生也有机会哦
-
2024-08-28 09:41:45
-
- 喜马拉雅山隐藏一“最贵”的兰花,价值1500万,形状酷似跳跃青蛙
-
2024-08-28 09:39:30
-
- 了不起的中国基建-芜湖长江大桥
-
2024-08-28 09:37:15
-
- 华晨宝马和宝马,是一样的吗?差别还是很大的
-
2024-08-28 09:35:01
-
- 为什么很多大专毕业生毕业很难找到工作,难道三年专科白上了?
-
2024-08-28 00:34:08