数据流图概述

来源:互联网 发布:矩阵微分方程 编辑:程序博客网 时间:2024/05/18 01:14
 一、数据流图的描述
  数据流图(Data flow diagram,DFD)是描述系统中数据流程的图形工具,它标识了一个系统的逻辑输入和逻辑输出,以及把逻辑输入转换为逻辑输出所需的加工处理。
 
 二、数据流图的图符

  四种基本的图形符号

 
 三、画DFD的方法
    先全局后局部,先整体后细节,先抽象后具体,分为顶层、中间层、底层。
    顶层图说明了系统的边界,及系统的输入和输出数据流,顶层图只有一张。
    底层图由一些不能再分解的加工组成,称为基本加工。

四、实例:医院病房的监护系统

顶层:


中间层:



五、画分层DFD图的基本原则

 数据守恒:指加工的输入输出数据流是否匹配,即每一个加工既有输入数据流又有输出数据流,或者说一个加工至少有一个输入流,一个输出流。


六、分层DFD图的改进



七、数据词典
数据流、文件、数据项、加工。


八、加工说明

  对数据流图中的每一个不能在分解的基本加工都必须有一个小说明给出这个加工的精确描述。小说名中应精确描述加工的激发条件、加工逻辑、优先级、执行频率和出错处理等。对基本加工的说明有三种描述方式:结构化语言、判断表、判断树。应用举例:

结构化语言:


判断表:


判断树:



以前眼力的软件工程,虽然重要,但是却一直不太了解其用处到底有多大。现在开始渐渐接触大工程了,才开始真正体验到软件工程的威力。
    没有好的需求分析,软件等于白做;没有好的系统设计,做了也要重做。在大型软件中,人的因素越来越大,远远超过技术的因素。
    比如,一些ERP系统的实施成败并不是因为软件是否研发成功,而是在部署时遇到多大的难度。一套被人到处抵制的软件系统,是不会得到什么好的下场的。
    另外,就是一个系统中,参与的人数越多,一个人的编码量就越少。(by gashero)这个少到了什么程度呢,据说Vista的开发,9000名工程师,平均是1000行/人*年。在一个小项目中,这些工程师一天做到1000行也不是问题,但是在这种巨型项目在中,大家都很无奈。
    在这种巨型项目中的工程师,其存在的主要目的已经不是编码了,而是完善大家的想法,一起出力做好软件系统设计,做好需求分析。
    刚刚工作的我,刚开始也是非常急于参与编码,快些出成绩,但是总是被叫停,甚至根本不允许我编码。现在经历了两个多月的需求分析,才渐渐领略了大系统之大,也明白了实施前期工作的重要性。不过还是如此,作为一个急于编码的coder,偶被小鄙视了一下。
    对了,谈谈数据流图,刚刚开始做一个系统时,被要求做数据流图,很郁闷。于是到处找资料,试图找更加先进的工具来提高自己的软件工程前期的生产力。但是,结果当然是白费的,在一个真正的企业当中,他们所拥有的所有的知识几乎都是最前言的。(by gashero)比如这个数据流图,就是属于结构化分析方法SA中的一种分析手段,几乎可以说是做需求分析的唯一方法。
    这期间我也试过学学UML,但是最终无果。UML是用于系统设计和详细设计的工具,不过唯独没有涉及需求分析。最终的需求分析和还是要用到数据流图。当然这个UML也没有白学。数据流图仅仅是一种需求分析工具,是根本无法取代系统设计和详细设计的。所以粗略的做好数据流图,描述好了整个目标系统中的工作流程和职能分布之后就可以进行系统设计了。到头来还是说,数据流图能够的仅仅是系统的数据流动,对于逻辑描述和更加具体的东西还是需要使用其他工具的,比如UML。
    数据流图总的来说还是比较粗略的一种工具,所以还需要在需求分析阶段,已数据流图为主配合其他工具一同工作,这些工具包括数据字典,小说明(加工说明),判定表,判定树。
    有空去参加系分考试去看看,尽管不抱什么希望,但是追求系分的过程却可以让我更加深入的了解软工的知识。
    其实软工也是一种技术,掌握的软工的程序员才有更大的把握能力,大家共勉。

 
原创粉丝点击