摘要:数据流贯穿于企业组织的每一个活动中,可以说没有数据流就没有企业的活动。通过对数据流程的分析,一方面可以更准确地了解企业管理活动的全过程,分析出各种管理活动的实质和相互间的关系;另一方面,数据是信息的载体,是正在开发的企业信息系统的主要对象,因此必须对系统调查中所收集的数据和数据处理过程进行分析整理,为以后的新系统逻辑模型、数据库结构和功能模块设计打下基础。
知识点精讲
数据流图的考查中需要考生掌握数据流图的基本概念,另外还会涉及数据字典、数据库、面向对象方法、转换图、状态迁移图等概念,考生对这些概念都要非常清晰。
对于基本概念的考查一般都结合在题目中,有时也会针对这些基本概念出题,比如有的题目要求说明逻辑数据流图和物理数据流图之间的主要区别。
数据流图的基本概念
数据流贯穿于企业组织的每一个活动中,可以说没有数据流就没有企业的活动。通过对数据流程的分析,一方面可以更准确地了解企业管理活动的全过程,分析出各种管理活动的实质和相互间的关系;另一方面,数据是信息的载体,是正在开发的企业信息系统的主要对象,因此必须对系统调查中所收集的数据和数据处理过程进行分析整理,为以后的新系统逻辑模型、数据库结构和功能模块设计打下基础。
数据流程分析就是把数据在现行系统内部的流动情况抽象出来,舍去了具体组织机构、信息载体、处理工作等物理组成,单纯从数据流动过程来考查实际业务的数据处理模式。数据流程分析主要包括对信息流动、传递、处理、存储等的分析,其目的就是确定合理的数据项,确定合适的数据流向,确认合适的数据处理过程,并发现和解决数据流通中存在的问题。
1.数据流
一个系统的基本组件包括输入流、输出流以及处理过程。企业作为一个系统也存在输入流、输出流以及处理过程,企业输入流、输出流的表现形式多种多样,在处理过程中经常要涉及各式各样的输入流、输出流。要想很好地了解一个企业的活动,需具体分析其中所包含的各种流。
(1)物资流
工厂输入原材料与零配件,经过加工制造过程,输出成品;商店进货,经过销售过程,把货卖给顾客。这些输入与输出物品的流动都属物资流。
(2)事务流
事务是指系统与其外部环境或子系统之间发生的交往活动而引起的一系列信息处理活动。例如,工商企业接到订货单,便有开发货单、发票、记账等信息处理活动,它们统称为订单处理,这就是一项事务。再如政府经济行政管理部门接到下级的请示报告,经过调查研究和有关主管人员分析、开会讨论,协调不同意见,做出统一决定,作为对下级的指示,这也是一种事务,可称之为请示报告的处理。这两种事务的流动有一个重要不同之处:工业企业是制造和出售产品的,商业企业是买卖产品的,这是它们的主要业务,事务是随其主要业务而生的,如原材料的购买、产品的购进与售出等,事务流是伴随物资流而产生的;而政府经济行政管理部门只有事务流,没有物资流,这里的主要业务是事务,即情况的处理。
(3)货币流
货币流是指资金的流动,如购买原材料的付款、工资的支付等。货币流一般是伴随物资流和劳务偿付而产生的,但在银行业务中货币流则随存取及信贷业务而产生。
(4)人员流
人员流是指组织内部工作人员的增减和流动。
(5)机器及设备流
机器及设备也是一种物资流,这里指的是机器、设备等的买卖和流动,它们不同于物质生产的物资流。
(6)数据流
数据流是人们用以记录以上各种流的抽象表达形式。各种流在一个企业内的出现,都各自同时伴随着一个数据流的产生。例如,一个产品制造的物资流,总伴随着生产计划安排,并产生领料单、出料单、生产记录、送货单、入库单等数据的流动。数据流经常贯穿于组织内每个活动中。可以说没有数据流就没有企业的活动。信息的物理表达为数据,票据、凭证、函电、公文等均为数据不同的具体形式。事务流的具体表现也是数据流。因此,数据流和事务流往往会存在于同一渠道内而不易区别。区别的重要标准是,数据流是用以控制其他流的,而事务流则为被控制的对象。数据流在所有各流中有特别重要的意义,即任何其他流的产生与存在总伴随有数据流的产生与存在,数据流是对其他流进行控制的依据。
2.数据流图
数据流图或称数据流程图(DataFlowDiagram,DFD)是一种便于用户理解、分析系统数据流程的图形工具,它描述了信息流和数据从输入移动到输出的过程中所经受的各种变换。在数据流图中没有任何具体的物理部件,它摆脱了系统的物理内容,只是精确地在逻辑上描述系统的功能、输入、输出和数据存储等,是系统逻辑模型的重要组成部分。
数据流图就是组织中信息运动的抽象,是企业信息系统逻辑模型的主要内容之一。这个模型与系统的物理描述无关,它用一种图形及与此相关的注释来表示系统的逻辑功能,表示所开发的系统在信息处理方面要做什么。由于图形描述简明、清晰,不涉及到技术细节,所描述的内容是面向用户的,所以数据流图是系统分析人员与用户进行交流的有效手段,也是系统设计,即建立所开发的系统物理模型的主要依据之一。
3.数据流图的基本成分
数据流图的基本成分及其图形表示方法如表1-2所示。
(1)加工
用圆或椭圆描述,又称数据处理,表示输入数据在此进行变换产生输出数据,以数据结构或数据内容作为加工对象。每个加工都有一个名字和编号。加工的名字通常是一个动词短语,简明扼要地表明要完成的加工。加工的编号能反映出该加工位于分层数据流图中的哪个层次和哪张图中,也能够看出它是哪个加工分解出来的子加工。
(2)数据流
用箭头描述,由一组固定的数据项组成,箭头方向表示数据的流向,作为数据在系统内的传输通道。需要注意的是,数据流图中描述的是数据流,而不是控制流。
数据流大多是在加工之间传输加工数据的命名通道,其名称反映该数据流的含义;也有在数据存储文件和加工之间的非命名数据通道,虽然这些数据流没有命名,但其连接的加工和文件的名称,以及流向可以确定其含义。
同一数据流图上不能有同名的数据流。如果有两个以上的数据流指向一个加工,或是从一个加工中输出两个以上的数据流,这些数据流之间往往存在一定的关系。其具体的描述如图1-1所示,其中"*"表示相邻之间的数据流同时出现(与的关系);"+"表示相邻之间的数据流或者取其中一条,或者同时出现(或的关系);"⊕"表示相邻之间的数据流只取其一(互斥的关系)。
(3)数据存储文件
用双杆描述,在数据流图中起保存数据的作用,又称数据存储或文件,可以是数据库文件或任何形式的数据组织。每个数据存储文件都有一个名字。流向数据存储的数据流可以理解为写入文件或查询文件,从数据存储流出的数据流可以理解为从文件读数据或得到查询结果。
(4)数据源点或终点
用方框描述,表示数据流图中要处理数据的输入来源或处理结果要送往的地方,在图中仅作为一个符号,并不需要以任何软件的形式进行设计和实现,是系统外部环境中的实体,故称外部实体。它们作为系统与系统外部环境的接口界面,在实际的问题中可能是人员、组织、其他软硬件系统等。一般只出现在分层数据流的顶层图中。
4.数据流图的绘制与检验
采用数据流图的方式进行数据流程分析一般应遵循以下原则:
(1)明确系统边界。一张数据流图表示某个子系统或某个系统的逻辑模型。系统分析人员要根据调查材料,首先识别出那些不受所描述的系统控制,但又影响系统运行的外部环境,这就是系统的数据输入的来源和输出的去处。把这些因素都作为外部实体确定下来。确定了系统和外部环境的边界,就可集中力量分析和确定系统本身的功能。
(2)在总体上遵循自顶向下逐层分解的原则,即按照结构化方法的思想,采用分层的数据流图,把大问题、复杂的问题分解成若干个小问题,然后分别解决。
(3)在局部上遵循由外向里的原则,即先确定每一层数据流图的边界或范围,再考虑流图的内部,先画加工的输入和输出,再画加工的内部。
(4)分层的数据流图一般由顶层、中间层和底层组成。顶层抽象地描述了整个系统的情况,包括系统的范围、系统与外界实体间的关系(输入输出流);底层具体画出了系统的细节;中间层则是从抽象到具体的逐步过渡。
对于不同的问题,数据流图可以有不同的画法。具体操作时可按下述步骤进行。
(1)识别系统的输入和输出
在系统分析初期,系统的功能需求等还不很明确,为了防止遗漏,不妨先将范围定大一些,系统边界确定后。越过边界的数据流就是系统的输入或输出。
可以首先确定所开发的系统的外部实体,即系统的数据来源和去处。然后再确定整个系统的输出数据流和输入数据流,把系统作为一个加工环节,画出关联图。一般应把数据来源置于图的左侧,数据去处置于图的右侧。
(2)绘制系统内部数据流
从系统输入端到输出端(也可反之),逐步把数据流和加工连接起来,当数据流的组成或数据发生变化时,就在该处画一个"加工".
首先确定系统的主要信息处理功能,按此将整个系统分解成几个加工环节。确定每个加工的输出与输入数据流以及与这些加工有关的数据存储。根据各加工环节和数据存储环节以及输出与输入数据流的关系,将外部实体、各加工处理、数据存储环节用数据流联结起来,为各数据流、各加工环节和数据存储环节命名、编号,这样就形成了所开发系统的数据流图顶层图(总图)的草图。
然后再补充一些细节,如出错处理等;画数据流图时还应同时画上文件,以反映各种数据的存储位置,并表明数据流是流入还是流出文件;再回过头来检查系统的边界,补上遗漏但有用的输入输出数据流,删去那些没被系统使用的数据流。
(3)对复杂加工进行分解
运用"由外向里"、"自顶向下"的方式对加工进行分解。将需要分解的上一层图的加工环节分解成具有明确逻辑功能的数个加工环节,按上一步骤中的作法,对上层需分解的加工环节画出分解数据流草图。
(4)对草图进行检查和合理布局
主要是检查分解是否恰当、彻底,DFD中各成分是否有遗漏、重复、冲突之处,各层DFD及同层DFD之间关系是否正确及命名、编号是否确切、合理等,对错误与不当之处进行修改。
(5)和用户交流
和用户讨论的主要问题是:系统逻辑功能的设置和描述是否合理,能否满足用户的信息需求,数据流和数据存储的内容以及数据来源和去处(外部项)是否符合实际,描述是否准确、合理;用户在了解数据流图的全部内容后对系统逻辑功能有什么进一步的意见与要求。系统分析人员根据与用户讨论的结果对数据流图的草图进行修订。
(6)检查、修改、完善
系统分析负责人对数据流图进行复审。检查数据流图是否全面、准确地反映了系统调查以及用户的意见,勾画出现行系统的数据处理逻辑。如果有地方不太明确,应重新调查,并进行修改完善。否则通过复审,数据流图绘制过程结束。
5.数据流图设计要点
数据流图的基本目的是利用它作为系统分析和系统设计,以及交流信息的工具。在数据流图中通常仅仅使用4种基本符号,而且不包含任何有关物理实现的细节,因此,绝大多数用户都可以理解和评价它。在绘制数据流图时应该注意以下要点:
(1)有时为了增加数据流图的清晰性,防止数据流的箭头线太长,减少交叉绘制数据流条数,一般在一张图上可以重复同名的数据源点、终点与数据存储文件。如某个外部实体既是数据源点又是数据汇点,可以在数据流图的不同的地方重复绘制。
(2)适当地为数据流、加工、文件、源/宿命名,名字应反映该成分的实际意义,避免空洞的名字。
①为数据流(或数据存储)命名
·名字应代表整个数据流(或数据存储)的内容,而不是仅仅反映它的某些成分。
·不要使用空洞的、缺乏具体含义的名字(如"数据"、"信息"、"输入"之类)。
·如果在为某个数据流(或数据存储)起名字时遇到了困难,则很可能是因为对数据流图分解不恰当造成的,应该试试重新分解,看是否能克服这个困难。
②为加工命名
·通常先为数据流命名,然后再为与之相关联的加工命名。这样命名比较容易,而且体现了人类习惯的"由表及里"的思考过程。
·名字应该反映整个加工的功能,而不是它的一部分功能。
·名字最好由一个具体的动词加上一个具体的宾语组成。应该尽量避免使用"加工"、"处理"等空洞笼统的动词作名字。
·通常名字中仅包括一个动词,如果必须用两个动词才能描述整个加工的功能,则把这个加工再分解成两个加工可能更恰当些。
·如果在为某个加工命名时遇到困难,则很可能是发现了分解不当的迹象,应考虑重新分解。
③为数据源点或终点命名
数据源点或终点并不需要在开发目标系统的过程中设计和实现,它并不属于数据流图的核心内容,只不过是目标系统的外围环境部分(可能是人员、计算机外部设备或传感器装置)。通常,为数据源点或终点命名时采用它们在问题域中习惯使用的名字(如"采购员"、"仓库管理员"等)。
(3)自外向内,自顶向下,逐层细化,完善求精。
①简化加工间的关系。在数据流图中,加工间的数据流越少,各个加工就越相对独立,所以应尽量减少加工间输入输出数据流的数目。
②均匀分解。应该使一个数据流中的各个加工分解层次大致相同。
(4)保持数据守恒。
①一个加工所有输出数据流中的数据必须能从该加工的输入数据流中直接获得,或者是通过该加工能产生的数据。
②每个加工必须既有输入数据流,又有输出数据流;在整套数据流图中,每个文件必须既有读文件的数据流又有写文件的数据流,但在某一张子图中可能只有读、没有写,或者只有写、没有读。
③保持父图与子图的平衡。也就是说,父图中某加工的输入输出数据流必须与它的子图的输入输出数据流在数量和名字上相同。
(5)加工细节隐蔽。
根据抽象原则,在画父图时,只需画出加工和加工之间的关系,而不必画出各个加工内部的细节。忽略枝节,应集中精力于主要的数据流,而暂不考虑一些例外情况、出错处理等枝节性的问题。
数据流图表现的是数据流而不是控制流。数据流图与传统的程序流程图不同,数据流图是从数据的角度来描述一个系统的,而流程图则是从对数据加工的角度来描述系统的。数据流图中的箭头是数据流,而流程图中的箭头则是控制流,它表达的是程序执行的次序。数据流图适合于宏观地分析一个组织的业务概况,而程序流程图只适合于描述系统中某个加工的执行细节。
6.数据流图的检验
对于一个大型企业信息系统,由于在系统分析初期,开发人员对问题的理解深度不够,数据流图也不可避免会存在某些缺陷或错误,此时就需要进行检查、修改和完善工作。下面介绍如何从正确性和可读性两方面对数据流图进行改进。
数据流图的正确性可从以下几方面检查:
(1)数据守恒。一个加工环节的输出数据流仅由它的输入数据流确定,这个规则绝不能违背。数据不守恒的错误有两种,一是漏掉某些输入数据流;二是某些输入数据流在加工环节内部没有被使用。
(2)文件使用。在数据流图中,文件与加工环节之间数据流的方向应按规定认真标注,这样有利于对文件使用正确性的检查。例如,如果发现某个文件只有输入流,而没有输出流,要么是画错了,要么是系统分析出现了问题,因为一个不产生任何输出流的文件是没有意义的。
(3)子图和父图平衡。造成子图与父图不平衡的一个常见原因是在增加或删除一个加工环节时,忽视了对父图或子图的修改。在检查数据流图时应特别注意这一点。
(4)加工和数据流的命名。加工和数据流的名字必须体现被命名对象的全部内容,而不是一部分。对于加工的名字,应检查它的含义与被加工的输入输出数据流是否匹配。
如果数据流图的可读性不强,即使正确无误,也不会很好地发挥作用。一般可以从以下几方面提高数据流图的可读性:
(1)简化加工之间的联系。各加工之间的数据流越少,各加工的独立性就越高,因此应当尽量减少加工之间的数据流的数目。加工间的数据流最好控制在1-2条,否则就应该考虑对加工进行合并、删除。
(2)分解应当均匀。在同一张数据流图上,应避免出现某些加工已是最小功能单元,而另一些加工却还等待继续分解好几层的情况出现。
(3)命名应当恰当。理想的加工名由一个具体的动词和一个具体的宾语组成。数据流和文件的名字也应具体、明确。命名应尽量做到使人一目了然。
数据流图从总体上描述了系统的逻辑功能,系统内各部分的信息联系及与系统外各有关事物的联系,反映了系统中信息运动的规律,是系统逻辑模型的主要描述形式。但数据流图在描述系统逻辑功能和有关信息内容的细节方面仍存在较大的局限性。如:
(1)难以在数据流图上标识出数据流、数据存储、加工和外部项的具体内容,如数据流的组成元素、数据存储的数据结构、存取要求、数据量、加工的处理过程与算法等。
(2)不能反映系统中的决策与控制过程。
(3)难以对系统中人机交互过程以及信息的反馈与循环处理进行描述。
因此,在系统分析中,除了用数据流图描述系统逻辑模型外,还要辅以其他工具,如数据字典结构化语言、决策表、决策树等。
相关推荐:
软考备考资料免费领取
去领取