数据流图深入讲解
- 格式:docx
- 大小:200.86 KB
- 文档页数:13
实验三数据流图与数据字典数据流图与数据字典是软件工程中常用的工具,用于描述系统的功能和数据流动。
本文将详细介绍数据流图和数据字典的定义、结构和使用方法。
一、数据流图数据流图(Data Flow Diagram,简称DFD)是一种图形化的工具,用于描述系统内部的数据流动和处理过程。
它由四个基本元素组成:数据流、处理器、数据存储和外部实体。
下面分别对这些元素进行详细介绍。
1. 数据流(Data Flow)数据流是系统中不同部分之间传输的数据。
它用箭头表示,箭头的方向表示数据的流向。
数据流可以分为输入数据流和输出数据流。
输入数据流表示从外部实体进入系统的数据,输出数据流表示从系统流出到外部实体的数据。
2. 处理器(Process)处理器表示对数据进行处理的功能模块或子系统。
它可以是一个人、一个机器或一个软件模块。
处理器接收输入数据流,经过处理后产生输出数据流。
3. 数据存储(Data Store)数据存储表示系统中用于存储数据的位置,如数据库、文件等。
数据存储是持久化的,可以在系统的不同执行过程中保存数据。
4. 外部实体(External Entity)外部实体表示系统外部的实体,可以是用户、其他系统或设备等。
外部实体与系统之间通过数据流进行数据交换。
在数据流图中,以上四个元素通过连线连接起来,形成一个完整的系统模型。
数据流图可以分为多个层次,从整体到细节逐步展开,以便更好地理解系统的功能和数据流动。
二、数据字典数据字典(Data Dictionary)是对系统中使用的数据元素进行定义和描述的文档。
它包含了系统中使用的数据元素的名称、定义、属性和关系等信息。
数据字典的主要作用是提供对系统中数据元素的统一定义和描述,以便于系统开发和维护。
数据字典的内容包括以下几个方面:1. 数据元素名称(Data Element Name)数据元素名称是对数据元素进行命名的标识符。
它应该具有描述性,能够清晰地表达数据元素的含义。
·单向关联在一个单向关联中,两个类是相关的,但是只有一个类知道这种联系的存在。
一个单向的关联,表示为一条带有指向已知类的开放箭头(不关闭的箭头或三角形,用于标志继承)的实线。
如同标准关联,单向关联包括一个角色名和一个多重值描述,但是与标准的双向关联不同的时,单向关联只包含已知类的角色名和多重值描述。
简单的说就是OverdrawAccountReport中包含了BankAccount属性,而BankAccount中不需要包含OverdrawnAccountsReport对象6.聚合的表示:聚合是一种特别类型的关联,用于描述“总体到局部”的关系。
在基本的聚合关系中,部分类的生命周期独立于整体类的生命周期。
你想到的问题在小组里交流,每举例来说,我们可以想象,车是一个整体实体,而车轮轮胎是整辆车的一部分。
轮胎可以在安置到车时的前几个星期被制造,并放置于仓库中。
在这个实例中,Wheel类实例清楚地独立于Car类实例而存在。
然而,有些情况下,部分类的生命周期并不独立于整体类的生命周期 -- 这称为合成聚合。
举例来说,考虑公司与部门的关系。
公司和部门都建模成类,在公司存在之前,部门不能存在。
这里Department类的实例依赖于Company类的实例而存在。
让我们更进一步探讨基本聚合和组合聚合。
注意:聚合与普通的关联的区别在于:普通的关联可能只是一个简单的“包含、引用”关系,关联和被关联类之间在逻辑概念上不一定有紧密的联系,而聚合则不同,它表示的是一种内在关系紧密,相互依存,相互包含的概念,其中的一部分是构成另外一部分的不可或缺的成分。
·基本聚合有聚合关系的关联指出,某个类是另外某个类的一部分。
在一个聚合关系中,子类实例可以比父类存在更长的时间。
为了表现一个聚合关系,你画一条从父类到部分类的实线,并在父类的关联末端画一个未填充棱形。
图中清楚的表明了类Car对象包含了另一类Wheel的4个实例,这两者在概念上是密不可分的,其中的一个类是另一个类的构成成分。
数据流图(DFD)专题讲解及例题分析——解题的方法与技巧1.首先要懂得数据流图设计要略有时为了增加数据流图的清晰性,防止数据流的箭头线太长,减少交叉绘制数据流条数,一般在一张图上可以重复同名的数据源点、终点与数据存储文件。
如某个外部实体既是数据源点又是数据汇点,可以在数据流图的不同的地方重复绘制。
在绘制时应该注意以下要点:(1)自外向内,自顶向下,逐层细化,完善求精。
(2)保持父图与子图的平衡。
为了表达较为复杂问题的数据处理过程,用一个数据流图往往不够。
一般按问题的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系。
根据层次关系一般将数据流图分为顶层数据流图、中间数据流图和底层数据流图,除顶层图外,其余分层数据流图从0开始编号。
对任何一层数据流图来说,称它的上层数据流图为父图,在它的下一层的数据流图为子图。
顶层数据流图只含有一个加工,表示整个系统;输入数据流和输出数据流为系统的输入数据和输出数据,表明了系统的范围,以及与外部环境的数据交换关系。
底层数据流图是指其加工不能再分解的数据流图,其加工称为“原子加工”。
中间数据流图是对父层数据流图中某个加工进行细化,而它的某个加工也可以再次细化,形成子图。
中间层次的多少,一般视系统的复杂程度而定。
任何一个数据流子图必须与它上一层父图的某个加工对应,二者的输入数据流和输出数据流必须保持一致,此即父图与子图的平衡。
父图与子图的平衡是数据流图中的重要性质,保证了数据流图的一致性,便于分析人员阅读和理解。
在父图与子图平衡中,数据流的数目和名称可以完全相同;也可以在数目上不相等,但是可以借助数据字典中数据流描述,确定父图中的数据流是由子图中几个数据流合并而成的,也即子图是对父图中加工和数据流同时进行分解,因此也属于父图与子图的平衡,如图1所示。
图1 父图与子图的平衡(3)保持数据守恒。
也就是说,一个加工所有输出数据流中的数据必须能从该加工的输入数据流中直接获得,或者是通过该加工能产生的数据。
实验三数据流图与数据字典数据流图与数据字典是系统分析与设计中常用的工具,用于描述系统的数据流动和数据存储。
本文将详细介绍数据流图和数据字典的概念、作用、构成要素以及使用方法。
一、数据流图(Data Flow Diagram,简称DFD)数据流图是一种图形化的工具,用于描述系统内部的数据流动。
数据流图由一系列的过程、数据流、数据存储和外部实体组成,通过箭头来表示数据的流向。
数据流图可以帮助分析师和设计师理解系统的数据流动过程,找出系统中的问题和改进方案。
1. 概念和作用数据流图是一种图形化的工具,用于描述系统内部的数据流动。
数据流图由一系列的过程、数据流、数据存储和外部实体组成,通过箭头来表示数据的流向。
数据流图可以帮助分析师和设计师理解系统的数据流动过程,找出系统中的问题和改进方案。
2. 构成要素数据流图由以下几个要素构成:2.1 过程(Process):过程表示系统内部的功能模块或子系统,通常用圆角矩形表示。
过程通过处理输入的数据流生成输出的数据流。
2.2 数据流(Data Flow):数据流表示系统内部的数据流动,通常用箭头表示。
数据流可以是实体、文件、报表等。
2.3 数据存储(Data Store):数据存储表示系统中的数据存储位置,通常用平行四边形表示。
数据存储可以是数据库、文件、表格等。
2.4 外部实体(External Entity):外部实体表示系统外部的参与者或其他系统,通常用矩形表示。
外部实体可以是用户、其他系统、传感器等。
3. 使用方法数据流图的绘制一般分为以下几个步骤:3.1 确定系统的边界:确定系统的输入和输出,确定系统与外部实体的交互。
3.2 确定过程:确定系统内部的功能模块或子系统。
3.3 确定数据流:确定系统内部的数据流动过程,包括输入、输出和中间过程。
3.4 确定数据存储:确定系统中的数据存储位置。
3.5 绘制数据流图:根据以上确定的要素,绘制数据流图。
4. 示例数据流图以下是一个示例的数据流图:(图中省略)在这个示例中,外部实体是用户,用户通过输入数据流将数据送入系统。
为数据处理)。
对数据流进⾏某些操作或变换。
每个加⼯也要有名字,通常是动词短语,简明地描述完成什么加⼯。
在分层的数据流图中,加⼯还应编号。
(3)数据存储(⼜称为⽂件),指暂时保存的数据,它可以是数据库⽂件或任何形式的数据组织。
(4)数据源点或终点,是本软件系统外部环境中的实体(包括⼈员、组织或其他软件系统),统称外部实体。
⼀般只出现在数据流图的顶层图。
画数据流图的步骤 (1)⾸先画系统的输⼊输出,即先画顶层数据流图。
顶层流图只包含⼀个加⼯,⽤以表⽰被开发的系统,然后考虑该系统有哪些输⼊数据、输出数据流。
顶层图的作⽤在于表明被开发系统的范围以及它和周围环境的数据交换关系。
下图为飞机机票预订系统的顶层图。
(2)画系统内部,即画下层数据流图。
不再分解的加⼯称为基本加⼯。
⼀般将层号从0开始编号,采⽤⾃顶向下,由外向内的原则。
画0层数据流图时,分解顶层流图的系统为若⼲⼦系统,决定每个⼦系统间的数据接⼝和活动关系。
例如,在上⾯的机票预订系统按功能可分成两部分,⼀部分为旅⾏社预订机票,另⼀部分为旅客取票,两部分通过机票⽂件的数据存储联系起来,0层数据流图如图3-4。
(3)注意事项。
①命名。
不论数据流、数据存储还是加⼯,合适的命名使⼈们易于理解其含义。
②画数据流⽽不是控制流。
数据流反映系统”做什么”,不反映“如何做”,因此箭头上的数据流名称只能是名词或名词短语,整个图中不反映加⼯的执⾏顺序。
③⼀般不画物质流。
数据流反映能⽤计算机处理的数据,并不是实物,因此对⽬标系统的数据流图⼀般不要画物质流。
④每个加⼯⾄少有⼀个输⼊数据流和⼀个输出数据流,反映出此加⼯数据的来源与加⼯的结果。
⑤编号。
如果⼀张数据流图中的某个加⼯分解成另⼀张数据流图时,则上层图为⽗图,直接下层图为⼦图。
⼦图及其所有的加⼯都应编号。
⑥⽗图与⼦图的平衡。
⼦图的输⼊输出数据流同⽗图相应加⼯的输⼊输出数据流必须⼀致,此即⽗图与⼦图的平衡。
⑦局部数据存储。
当某层数据流图中的数据存储不是⽗图中相应加⼯的外部接⼝,⽽只是本图中某些加⼯之间的数据接⼝,则称这些数据存储为局部数据存储。
dfd的名词解释dfd是数据流图(Data Flow Diagram)英文的缩写,是一种用于描述和分析系统功能的图形化工具。
通过dfd可以清晰地展示系统中的数据流、处理过程和数据存储,并从整体上把握系统的运行机制和功能需求。
下面将从dfd的基本概念、构造方法以及应用领域三个方面进行解释。
一、基本概念数据流图由数据流、处理过程、数据存储和外部实体四个基本要素组成。
数据流表示信息在系统中的流动,可以是输入数据、输出数据或系统内部传递的中间数据。
处理过程指对数据进行加工、转换和处理的活动,可以是计算、判断、合并等操作。
数据存储指系统中用于存储数据的位置,可以是数据库、文件或者内部的数据结构。
外部实体指与系统进行交互的外部用户、外部系统或设备。
通过这四个要素的组合和联系,可以形成具体系统的数据流图。
二、构造方法dfd的构造方法主要包括四个步骤:识别主题、构造0层dfd、展开0层dfd和进一步展开。
首先,识别主题是通过对系统进行分析,确定需要建模的功能和界限。
其次,构造0层dfd是在主题的基础上,用一个整体的图形展示系统的输入、输出、处理和存储。
0层dfd通常只包含一个外部实体和一个处理过程,用来代表整个系统。
然后,展开0层dfd是通过逐步细化和拆分的方法,将系统的子功能和细节展示出来,形成多个层级的dfd。
最后,进一步展开是在需要详细描述某个子功能时,再次对该层次的dfd进行细化,形成更加详细的图示。
三、应用领域dfd可以广泛应用于信息系统的分析与设计、业务流程管理、系统改进等方面。
在信息系统的分析与设计中,通过构建和分析数据流图,可以帮助系统分析师深入了解系统的功能需求,从而为系统的实现提供指导。
在业务流程管理中,通过对业务流程进行建模和优化,可以发现流程中的问题和瓶颈,并提出相关的解决方案。
在系统改进中,通过对现有系统的数据流图进行分析,可以发现系统中的缺陷和不足之处,为系统的改进提供依据和方向。
总结而言,dfd作为一种图形化工具,可以帮助人们更好地理解和把握系统的功能和运行机制。
数据流图懂不懂?最近备战软考,复习到数据流图,学习成果与大家分享。
数据流图(Data Flow Diagram):简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。
(百科)谈谈我的一点理解有时候我们要开发或者理解一个系统,总体的系统结构我们弄清楚了,但是细节上需要再深入,而数据流图“自顶向下,由外到内,逐步细化”的思想就凸显出很重要的作用,它可以作为我们系统分析的指导方法。
数据流图分析关注的重点是数据,将面向控制的信息作为数据进行处理,包括了系统的所有数据,能准确的抽象系统数据的流向和处理过程.概括的描述当数据在系统流程中流动和处理的移动变换过程;数据流图分层进行分析,对顶层图的分析可以发现是否有输入信息或需要输出的信息被遗漏,容易及早发现系统各部分的逻辑错误,也容易修正.每一层都明确强调“需要什么”,“干了什么”“给出什么”;这样逐层分解下去,系统被严密的展开,系统的框架就展现出来了.采用数据流图进行分析,可以提高分析的可见性和可控性,更容易理解软件要完成什么功能,数据来源于哪里,结果要输出到哪里等等,清晰明了。
下面我们来看看数据流图的组成,设计原则和应用基本图形符号加工(数据处理):输入数据在此进行变换产生输出数据。
加工对象为:数据结构或数据内容。
数据流:箭头表示数据流向,作为加工之间传输数据的命名通道(数据流有名字),或数据存储文件与加工之间的非命名通道(数据流没名字,但其连接的加工和文件的名字,和流向可以确定其含义)。
同一个数据流图上不能有同名的数据流,如果两个以上的数据流指向一个加工,或是从一个加工中输出两个以上的数据流,这些数据流往往存在一定关系,如图:数据存储文件:流向数据存储的数据流可以理解为写入文件或查询文件,从数据存储流出的数据流可以理解为从文件读数据或得到查询结果。
软件设计---数据流图数据流图(Data Flow Diagram,简称DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经历的变换,其既提供了功能建模机制也提供了信息建模机制。
一、数据流程图基本图形符号:(必备知识)正方形(或立方体):表示数据的源点或终点;圆角矩形(或圆形):代表变换数据的处理;开口矩形(或两条平行横线):代表数据存储;箭头:表示数据流,即特定数据的流动方向;二、数据流程图的设计要点:(重点)1、自外向内,自顶向下,逐层细化,完善求精;2、保持父图与子图的平衡。
也就是说,父图中某加工的输入输出数据必须与它们子图的输入输出数据流在数量和名字上相同;3、保持数据守恒。
即一个加工所有输出数据流中的数据必须能从该加工的输入数据流中直接获得,或者通过该加工能产生的数据;4、根据抽象原则,加工细节隐蔽,只需画出加工和加工之间的关系即可;5、均匀分解。
应该使一个数据流中的各个加工分解层次大致相同;6、每个加工必须既有输入数据流,又有输出数据流;注意要点:数据存储与数据流都是数据,仅仅所处的状态不同。
前者是处于静止状态的数据,而后者则是处于运动中的数据。
数据流程图的基本要点是描绘“做什么”而不考虑“怎么做”,因此通常在数据流图中忽略出错处理,也不包括诸如打开或关闭文件之类的内务的处理。
在数据流图中应该描绘所有可能的数据流向,而不应该描绘出现某个数据流的条件;画数据流图的步骤(1)首先画系统的输入输出,即先画顶层数据流图。
顶层流图只包含一个加工,用以表示被开发的系统,然后考虑该系统有哪些输入数据、输出数据流。
顶层图的作用在于表明被开发系统的范围以及它和周围环境的数据交换关系。
下图为飞机机票预订系统的顶层图。
(2)画系统内部,即画下层数据流图。
不再分解的加工称为基本加工。
一般将层号从0开始编号,采用自顶向下,由外向内的原则。
画0层数据流图时,分解顶层流图的系统为若干子系统,决定每个子系统间的数据接口和活动关系。
实验三数据流图与数据字典数据流图(Data Flow Diagram,简称DFD)和数据字典(Data Dictionary)是软件工程中常用的两种工具,用于描述系统的功能和数据流动。
本文将详细介绍数据流图和数据字典的定义、使用方法以及相关的注意事项。
一、数据流图(Data Flow Diagram)数据流图是一种图形化的工具,用于描述系统内部的数据流动和处理过程。
它通过图形符号表示系统的各个组件(称为处理器)以及它们之间的数据流动(称为数据流),从而清晰地展示系统的功能和数据流向。
1. 数据流图的符号和构成数据流图由以下几种基本符号构成:- 矩形框:表示系统的功能或者处理过程,也称为处理器(Process)。
每一个处理器都有一个名称,用于描述它的功能。
- 箭头线:表示数据流(Data Flow),用于表示数据在不同处理器之间的流动。
- 圆圈:表示数据存储(Data Store),用于表示数据在系统中的存储位置。
- 菱形:表示外部实体(External Entity),用于表示与系统交互的外部实体,如用户、其他系统等。
2. 数据流图的层次结构数据流图可以按照层次结构进行划分,从而更好地描述系统的功能和数据流向。
普通来说,数据流图可以分为多个层次,每一个层次都包含了更加详细的功能和数据流动。
- 0级数据流图(Level 0 DFD):是最高层次的数据流图,用于描述系统的整体功能和数据流向。
- 1级数据流图(Level 1 DFD):是对0级数据流图的进一步细化,用于描述系统的具体功能和数据流动。
- 更高级别的数据流图:如果需要更详细地描述系统的功能和数据流动,可以继续划分更高级别的数据流图。
3. 数据流图的绘制步骤绘制数据流图的普通步骤如下:- 确定系统的边界:确定系统的范围和边界,即哪些功能和实体属于系统的一部份,哪些属于外部实体。
- 确定处理器:确定系统中的功能和处理过程,将每一个功能表示为一个矩形框,并为每一个处理器命名。
软件设计师:数据流图深入讲解[1] 作者:佚名来源:考试吧2010年6月28日发表评论进入社区软件设计师考试的下午题的第一道题,数据库系统工程师考试的下午题的第一道题都是数据流图题,而能够将这道题全部做对的考生是非常少的。
根据历年的辅导和阅卷经验,发现很多考生不是因为这方面的解题能力不够,而是缺乏解这种题的方法与技巧。
本文介绍一些解这种类型题的方法和技巧,希望起来抛砖引玉的效果。
一、解题当中考生表现出的特点由于这是下午考试的第一道题,所以很多考生从考前的紧张氛围当中逐渐平静下来开始答题,头脑还比较清醒,阅读起来比较流畅,速度还可以,自我感觉不错。
可偏偏这道题有很多人不能全取15分,纠其原因有以下一些特点:1.拿卷就做,不全面了解试卷,做到心中有数。
这样会导致在解题过程当中缺少一种整体概念,不能明确自己在哪些题上必需拿分(多花时间),哪些题上自己拿不了分(少花时间)。
这样,在解题时目标就会明确很多。
2.速度快,读一遍题就开始动手做。
3.速度慢,用手指逐个字的去看,心想看一遍就能做出题来。
4.在阅读题目时,不打记,不前后联系起来思考。
5.边做边怀疑边修改,浪费时间。
6.缺少的数据流找不准,可去掉的文件找不出来。
7.由于缺少项目开发经验,对一些事务分析不知如何去思考。
8.盲目乐观,却忽略了答题格式,丢了不应该丢的分。
二、解题的方法与技巧1.首先要懂得数据流图设计要略有时为了增加数据流图的清晰性,防止数据流的箭头线太长,减少交叉绘制数据流条数,一般在一张图上可以重复同名的数据源点、终点与数据存储文件。
如某个外部实体既是数据源点又是数据汇点,可以在数据流图的不同的地方重复绘制。
在绘制时应该注意以下要点:(1)自外向内,自顶向下,逐层细化,完善求精。
(2)保持父图与子图的平衡。
为了表达较为复杂问题的数据处理过程,用一个数据流图往往不够。
一般按问题的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系。
根据层次关系一般将数据流图分为顶层数据流图、中间数据流图和底层数据流图,除顶层图外,其余分层数据流图从0开始编号。
对任何一层数据流图来说,称它的上层数据流图为父图,在它的下一层的数据流图为子图。
顶层数据流图只含有一个加工,表示整个系统;输入数据流和输出数据流为系统的输入数据和输出数据,表明了系统的范围,以及与外部环境的数据交换关系。
底层数据流图是指其加工不能再分解的数据流图,其加工称为“原子加工”。
中间数据流图是对父层数据流图中某个加工进行细化,而它的某个加工也可以再次细化,形成子图。
中间层次的多少,一般视系统的复杂程度而定。
任何一个数据流子图必须与它上一层父图的某个加工对应,二者的输入数据流和输出数据流必须保持一致,此即父图与子图的平衡。
父图与子图的平衡是数据流图中的重要性质,保证了数据流图的一致性,便于分析人员阅读和理解。
在父图与子图平衡中,数据流的数目和名称可以完全相同;也可以在数目上不相等,但是可以借助数据字典中数据流描述,确定父图中的数据流是由子图中几个数据流合并而成的,也即子图是对父图中加工和数据流同时进行分解,因此也属于父图与子图的平衡,如图1所示。
图1 父图与子图的平衡(3)保持数据守恒。
也就是说,一个加工所有输出数据流中的数据必须能从该加工的输入数据流中直接获得,或者是通过该加工能产生的数据。
每个加工必须有输入数据流和输出数据流,反映此加工的数据来源和加工变换结果。
一个加工的输出数据流只由它的输入数据流确定。
数据流必须经过加工,即必须进入加工或从加工中流出。
(4)加工细节隐蔽。
根据抽象原则,在画父图时,只需画出加工和加工之间的关系,而不必画出各个加工内部的细节。
当某层数据流图中的数据存储不是父图中相应加工的外部接口,而只是本图中某些加工之间的数据接口时,那么这些数据存储为局部数据存储。
为了强调局部数据存储的隐蔽性,一般情况下,局部数据存储只有作为某些加工的数据接口或某个特定加工的输入和输出时,才画出来。
即按照自顶向下的分析方法,某数据存储首次出现时只与一个加工有关,那么这个数据存储应该作为与之关联加工的局部数据存储,在该层数据流子图中不必画出,而在该加工的子图中画出,除非该加工为原子加工。
(5)简化加工间的关系。
在数据流图中,加工间的数据流越少,各个加工就越相对独立,所以应尽量减少加工间输入输出数据流的数目。
(6)均匀分解。
应该使一个数据流中的各个加工分解层次大致相同。
(7)适当地为数据流、加工、文件、源/宿命名,名字应反映该成分的实际意义,避免空洞的名字。
(8)忽略枝节。
应集中精力于主要的数据流,而暂不考虑一些例外情况、出错处理等枝节性的问题。
(9)表现的是数据流而不是控制流。
数据流图与传统的程序流程图不同,数据流图是从数据的角度来描述一个系统的,而流程图则是从对数据加工的角度来描述系统的。
数据流图中的箭头是数据流,而流程图中的箭头则是控制流,它表达的是程序执行的次序。
数据流图适合于宏观地分析一个组织的业务概况,而程序流程图只适合于描述系统中某个加工的执行细节。
每个加工必须既有输入数据流,又有输出数据流;在整套数据流图中,每个文件必须既有读文件的数据流又有写文件的数据流,但在某一张子图中可能只有读、没有写,或者只有写、没有读。
2.解题的方法(1)数据平衡原则。
数据平衡原则分为两个方面:①在分层数据流图中,父图和子图要平衡,也就是说,父图中某加工的输入输出数据流必须与它的子图的输入输出数据流在数量和名字上相同。
②数据平衡的另一个方面是说:每个加工必须即有输入数据流又有输出数据流,而且一个加工所有输出数据流中的数据必须能从该加工的输入数据流中直接获得,或者是通过该加工能产生的数据。
(2)要特别注意的几个细节问题。
①除了流向数据存储(文件)或从数据存储流出的数据流不必命名外,其它每个数据流都必须有一个合适的名字。
②流向文件的数据流,表示写入数据,流出文件的数据流表示读文件。
在整套数据流图中,每个文件必须既有读的数据流又有写的数据流,但在某一张子图中可能只有读没有写,或者只有写没有读。
③在逐步精化的过程中,若一个文件首次出现时只与一个加工有关,既该文件是个加工的内部文件,那么该文件在当层图中不必画出,可在该加工的细化图中画出。
3.解题的技巧(1)阅读题干的技巧。
快速的阅读第一遍,基本了解题目所涉及到的知识点或者事务,打记实体对象和存储文件,甚至可以将数据流也标记一下;这一步重点落在问题上,一般问题不难,但一定要看清问题。
带着问题来看第二遍,边看边解决。
(2)要有整体的概念,不能因一个点符合就断定是它,尤其是数据对象。
(3)注意解题的速度,一般在20分钟以内为最好。
(4)解题的过程中,每一条数据流都能够在[说明]中找到相应的语句。
(5)数据流名称要写对,每错一个字扣0.5分;流向也要写对。
(6)做好以后,复查一遍;不要边做边怀疑、边修改,那样会担误时间,且错误更多。
三、例题讲解例1:【软件设计师(数据库系统工程师)2007年11月真题】试题一(共15分)阅读以下说明和图,回答问题1至问题4,将解答填入答题纸的对应栏内。
【说明】某高校欲开发一个成绩管理系统,记录并管理所有选修课程的学生的平时成绩和考试成绩,其主要功能描述如下:1. 每门课程都有3到6个单元构成,每个单元结束后会进行一次测试,其成绩作为这门课程的平时成绩。
课程结束后进行期末考试,其成绩作为这门课程的考试成绩。
2. 学生的平时成绩和考试成绩均由每门课程的主讲教师上传给成绩管理系统。
3. 在记录学生成绩之前,系统需要验证这些成绩是否有效。
首先,根据学生信息文件来确认该学生是否选修这门课程,若没有,那么这些成绩是无效的;如果他的确选修了这门课程,再根据课程信息文件和课程单元信息文件来验证平时成绩是否与这门课程所包含的单元相对应,如果是,那么这些成绩是有效的,否则无效。
4. 对于有效成绩,系统将其保存在课程成绩文件中。
对于无效成绩,系统会单独将其保存在无效成绩文件中,并将详细情况提交给教务处。
在教务处没有给出具体处理意见之前,系统不会处理这些成绩。
5. 若一门课程的所有有效的平时成绩和考试成绩都已经被系统记录,系统会发送课程完成通知给教务处,告知该门课程的成绩已经齐全。
教务处根据需要,请求系统生成相应的成绩列表,用来提交考试委员会审查。
6. 在生成成绩列表之前,系统会生成一份成绩报告给主讲教师,以便核对是否存在错误。
主讲教师须将核对之后的成绩报告返还系统。
7. 根据主讲教师核对后的成绩报告,系统生成相应的成绩列表,递交考试委员会进行审查。
考试委员会在审查之后,上交一份成绩审查结果给系统。
对于所有通过审查的成绩,系统将会生成最终的成绩单,并通知每个选课学生。
现采用结构化方法对这个系统进行分析与设计,得到如图1-1所示的顶层数据流图和图1-2所示的0层数据流图。
图1-2 0层数据流图【问题1】(4分)使用说明中的词语,给出图1-1中的外部实体E1~E4的名称。
【问题2】(3分)使用说明中的词语,给出图1-2中的数据存储D1~D5的名称。
【问题3】(6分)数据流图1-2缺少了三条数据流,根据说明及数据流图1-1提供的信息,分别指出这三条数据流的起点和终点。
【问题4】(2分)数据流图是在系统分析与总体设计阶段宏观地描述系统功能需求的重要图形化工具,程序流程图也是软件开发过程中比较常用的图形化工具。
简要说明程序流程图的适用场合与作用。
试题分析:本题考查的是DFD的应用,属于比较传统的题目,考查点也与往年类似。
问题1考查的是顶层DFD。
顶层DFD通常用来确定系统边界,其中只包含一个唯一的加工(即待开发的系统)、外部实体及外部实体与系统之间的输入输出数据流。
题目要求填充的正是外部实体。
从顶层DFD可以看出,数据流是完整的。
所以只要根据数据流从题目说明的上下文中,找出E1~E4所对应的外部实体,分别为考试委员会、主讲教师、学生和教务处。
0层DFD中缺少的东西比较多,要求填写数据存储及缺失的数据流。
先来确定数据存储。
首先,从说明中找出可能是数据存储的元素来。
很明显,学生信息文件、课程信息文件、课程单元信息文件、课程成绩文件和无效成绩文件应该是数据存储。
下面的工作就是对号入座。
从0层DFD上可以看到,加工3到D5有一条数据流;而加工3所完成的操作是“记录无效成绩”。
从说明中可知,“对于无效成绩,系统会单独将其保存在无效成绩文件中”,所以D5应该是数据存储“无效成绩文件”;类似地,从加工2记录有效成绩到D4有一条数据流,这说明D4就是数据存储“课程成绩文件”。
D1输出两条数据流,分别流向加工1“验证学生信息”和加工4“生成成绩列表”。
由说明“根据学生信息文件来确认该学生是否选修这门课程”可知,验证学生信息时,需要根据学生信息文件来进行;而生成成绩列表及成绩单时,学生信息都是必要的。