声明:本资料来源于个人对网上相关资料的整理;
在信息处理系统中应用数据流图,通过对系统中数据、数据加工的全面分析,准确勾画出系统的框架,系统开发人员问以此为交流平台,共同分析可行性、合理性等,有助于系统缺陷在分析阶段被及时的发现和消除,为系统的设计、实现、测试阶段提供准确而充分的分析,是确保系统及产品质量的必要条件.
采用语言描述、控制流图、程序框图分析是不是比用数据流图更好呢?
用语言描述进行分析,分析的结果是无形的,只有对这个系统需要完成功能的描述.是否对所有数据的输人、输出、数据的处理过程进行分析是不可见的,也就无法考证分析的正确性和充分性,分析是不可控的,必然导致软件的缺陷,要到软件开发阶段后期才能发现,有可能对系统产生一定危害.
用控制流图进行分析,分析关注的重点是控制,通过标识其状态描述系统的行为;标识这些状态是如何达到的,并定义状态间的变迁.信息处理领域的系统S是通过数据驱动的,用控制流图的分析不能涵盖所有数据,只对能产生系统行为的数据被分析,分析是不充分的,那么某些软件的缺陷在软件开发阶段早期不会被发现.
用程序框图进行分析,分析关注的重点是如何实现系统的功能,注重的是细节,它应使用在软件开发的设计阶段.在分析阶段要注重系统的框架,用程序框图的分析不能清楚地看出系统的框架,将分析和设计过程混在一起,容易掩盖软件的缺陷.
用数据流图进行分析,分析关注的重点是数据,将面向控制的信息作为数据进行处理,涵盖系统的所有数据,能准确的抽象系统的信息处理过程.概括的描述信息流和当数据从输人移动到输出时被应用的变换,每一层都明确强调“干什么“,“需要什么”,“给出什么”;可以反映出数据的流向和处理过程;数据流图分层进行分析,对顶层图的分析可以发现是否有输入信息或需要输出的信息被遗漏,容易及早发现系统各部分的
逻辑错误,也容易修正.这样逐层分解下去,系统被严密的展开,系统的框架被展现出来.数据流图还有助于消除通常存在于软件开发人员与系统总体及硬件人员的交流隔阂.系统开发人员通过数据流图更容易理解软件要完成什么功能,数据来源于哪里,结果要输出到哪等等,他们可以给软件人员更多合理的建议.由于采用数据流图进行分析,提高分析的可见性和可控性,有助于软件的缺陷在软件开发阶段早期被及时的发现和消除.
一,数据流图的基本元素
数据流图中只能有四种基本元素,如下:
描述一个处理.输入数据在此进行变换产生输出数据.其中注明处理的名称.
描述一个输入源点或输出汇点.其中注明源点或汇点的名称.
描述一个数据流.被加工的数据及其流向.流线上注明数据名称,箭头代表数据流动方向.
描述一个数据存储.通常用于代表一个数据表,其中注明数据表的名称.
二,分层数据流图
为了表达数据处理过程的数据加工情况,用一个数据流图往往是不够的.稍为复杂的实际问题,在数据流图上常常出现十几个甚至几十个加工.这样的数据流图看起来很不清楚.层次结构的数据流图能很好地解决这一问题.按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统.
下图给出分层数据流图的示例.数据处理S包括三个子系统1,2,3.顶层下面的第一层数据流图为DFD/L1.第二层数据流图DFD/L2.1,DFD/L2.2及DFD/L2.3分别是子系统1,2和3的细化.对任何一层数据流图来说,我们称它的上层图为父图,在它下一层的图则称为子图.
三,画数据流图的步骤和原则
基本步骤:自外向内,自顶向下,逐层细化,完善求精.
基本原则:
① 数据流图上所有图形符号只限于前述四种基本元素.
② 顶层数据流图必须包括前述四种基本元素,缺一不可.
③ 顶层数据流图上的数据流必须封闭在外部实体之间.
④ 每个加工至少有一个输入数据流和一个输出数据流.
⑤ 在数据流图中,需按层给加工框编号.编号表明该加工处在哪一层,以及上下层的父图与子图的对应关系.
⑥ 规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致.此即父图与子图的平衡.
⑦ 可以在数据流图中加入物质流,帮助用户理解数据流图.
⑧ 图上每个元素都必须有名字.数据流和数据文件的名字应当是"名词"或"名词性短语",表明流动的数据是什么.加工的名字应当是"名词+宾语",表明做什么事情.
⑨ 数据流图中不可夹带控制流.
⑩ 初画时可以忽略琐碎的细节,以集中精力于主要数据流.
四,数据流图应用举例
例子待续