数据流图(DFD)专题讲解
讲义:数据流程图dfd

数据流程图(DFD)数据流程图——描述数据流动、存储、处理的逻辑关系,也称为逻辑数据流程图,一般用DFD (Data Flow Diagram)表示。
一、数据流程图的基本成分数据流程图用到四个基本符号,即:外部实体、数据处理、数据流和数据存储。
现分别介绍如下:1、外部实体外部实体——指系统以外又与系统有联系的人或事物。
它表达该系统数据的外部来源和去处,例如:顾客、职工、供货单位等等。
外部实体也可以是另外一个信息系统。
一般用一个正方形,并在其左上角外边另加一个直角来表示外部实体,在正方形内写上这个外部实体的名称。
为了区分不同的外部实体,可以在正方形的左上角用一个字符表示。
在数据流程图中,为了减少线条的交叉,同一个外部实体可在一张数据流程图中出现多次,这时在该外部实体符号的右下角画小斜线,表示重复。
若重复的外部实体有多个,则相同的外部实体画数目相同的小斜线。
外部实体的表示如图6.1所示。
图6.1外部实体2.数据处理处理指对数据的逻辑处理,也就是数据的变换。
在数据流程图中,用带圆角的长方形表示处理,长方形分为三个部分,如图6.2所示。
图6.2 处理标识部分用来标别一个功能,一般用字符串表示,如P1、P1.1等等。
功能描述部分是必不可少的,它直接表达这个处理的逻辑功能。
一般用一个动词加一个作动词宾语的名词表示。
功能执行部分表示这个功能由谁来完成,可以是一个人,也可以是一个部门,也可以是某个计算机程序。
3.数据流数据流是指处理功能的输人或输出,用一个水平箭头或垂直箭头表示。
箭头指出数据的流动方向。
数据流可以是信件、票据,也可以是电话等。
一般说来,对每个数据流要加以简单的描述,使用户和系统设计员能够理解一个数据流的含义。
对数据流的描述写在箭头的上方,一些含义十分明确的数据流,也可以不加说明,如图6.3所示。
图6.3数据流4.数据存储数据存储表示数据保存的地方。
这里"地方"并不是指保存数据的物理地点或物理介质,而是指数据存储的逻辑描述。
实验三 数据流图与数据字典

实验三数据流图与数据字典数据流图与数据字典是软件工程中常用的工具,用于描述系统的功能和数据流动。
本文将详细介绍数据流图和数据字典的定义、结构和使用方法。
一、数据流图数据流图(Data Flow Diagram,简称DFD)是一种图形化的工具,用于描述系统内部的数据流动和处理过程。
它由四个基本元素组成:数据流、处理器、数据存储和外部实体。
下面分别对这些元素进行详细介绍。
1. 数据流(Data Flow)数据流是系统中不同部分之间传输的数据。
它用箭头表示,箭头的方向表示数据的流向。
数据流可以分为输入数据流和输出数据流。
输入数据流表示从外部实体进入系统的数据,输出数据流表示从系统流出到外部实体的数据。
2. 处理器(Process)处理器表示对数据进行处理的功能模块或子系统。
它可以是一个人、一个机器或一个软件模块。
处理器接收输入数据流,经过处理后产生输出数据流。
3. 数据存储(Data Store)数据存储表示系统中用于存储数据的位置,如数据库、文件等。
数据存储是持久化的,可以在系统的不同执行过程中保存数据。
4. 外部实体(External Entity)外部实体表示系统外部的实体,可以是用户、其他系统或设备等。
外部实体与系统之间通过数据流进行数据交换。
在数据流图中,以上四个元素通过连线连接起来,形成一个完整的系统模型。
数据流图可以分为多个层次,从整体到细节逐步展开,以便更好地理解系统的功能和数据流动。
二、数据字典数据字典(Data Dictionary)是对系统中使用的数据元素进行定义和描述的文档。
它包含了系统中使用的数据元素的名称、定义、属性和关系等信息。
数据字典的主要作用是提供对系统中数据元素的统一定义和描述,以便于系统开发和维护。
数据字典的内容包括以下几个方面:1. 数据元素名称(Data Element Name)数据元素名称是对数据元素进行命名的标识符。
它应该具有描述性,能够清晰地表达数据元素的含义。
教你怎么画数据流图包括数据流图实例PPT课件

2021/3/9
管理信息系统》
第一步,画出关联数据流图。
S1顾客
F1订单
P 图书预订
F2汇总订单
S2 出 版 社
图书预订系统关联图
2021/3/9
管理信息系统》
第二步,逐层分解加工,画出下层DFD。注意到根据题意,当绘出系统 顶层图后并不能将所有加工分解成基本加工,还要进行二层图分解。 并在分解加工过程中逐步充实进数据存储。见图。
2021/3/9
管理信息系统》
(3)加工 加工又称处理亦称变换,它表示对数据流的操作。 加工的符号分成上、下两部分,从上到下分别是标识部分和功能描 述部分。 标识部分用于标注加工编号,加工编号应具有唯一性,以标识加工 ,以“P”开头。 功能描述部分用来写加工名。为使DFD清晰易读,加工名应简单,能 概括地说明对数据的加工行为,其详细描述在数据词典中定义。 加工要逐层分解,以求得分解后的加工功能简单、易于理解。
建立新系统的DFD是一项十分重要的工作。因为建立的DFD是系统 开发乃至系统维护的依据,是系统的重要文档之一。系统分析员要在 详细调查中,在与用户的反复交流中修改DFD,力求新建DFD是正确的 、准确的。
2021/3/9
管理信息系统》
放映结束 感谢各位的批评指导!
谢 谢!
让我们共同进步
2021/3/9
21
D5 订单数目
D6
顾
P2.2
客
情
订单分类
况
D7
D4 出版社要求
P3 发送订单
F2汇总订单
S2 出 版社
优
P2.3
先
订
随时处理
单
D3
D8
DFD数据流程图画法过程34张课件

订货单
仓库
缺货通知单
订货
催货单
供货单位
订货合同单
取货通知
EX2
EX3:请根据以下储蓄所存款过程画出数据流程图:储户将 填写好的存款单、存折和存款交储蓄所,查对储户帐,将不 合格的存款单退给储户重填,合格的存款单交存款处理,处 理时要修改储户帐,并将存折交还储户,而将存款放入现金 库。
存折
不合格存款单
到库存台帐去查找,显示查询结果。
查询条件
查询
查询结果
保管员
入库单 出入库处理
出库单
EX4
库存台帐
统计 打印
库存日 报表
注意:
(1)数据流程分析采用自顶向下逐层分解的方法,通过 分析绘制分层的数据流程图(data flow diagram,DFD)来 进行系统分析。
(2)DFD由顶层图、一级细化图、二级细化图等一组图 构成。在顶层图中,将系统视为由一个处理功能所构成的 系统;一级细化图是对顶层图处理功能的分解与细化。
在某个地方有材料库存量和库存量临界值这样的数 据。因此,需要有一个保存清单的数据存储。
一旦把数据流程图中的四种成份都分离出来之后,就可 着手绘制系统的数据流程图了。数据流程图的绘制也是采 用自顶向下的方法,由粗到细,逐层细化,最后形成一套 完整的拟建系统的数据流程图。
D1 库存信息
仓管
事务
1.0
员
发货票
用户
订货单
检验
出库 合格订单 处理
采购通知 采购员
不合格订单 EX1
库存台帐
EX2:请根据以下定货过程画出数据流程图:采购员从 仓库收到缺货通知单后立即进行定货处理,即,查阅 订货合同单,若已定货,则向供货单位发出催货单, 否则,填写定货单送供货单位。供货单位发运货物后, 立即向采购员发出取货通知。
数据流图(DFD)专题讲解

数据流图(DFD)专题讲解及例题分析——解题的方法与技巧1.首先要懂得数据流图设计要略有时为了增加数据流图的清晰性,防止数据流的箭头线太长,减少交叉绘制数据流条数,一般在一张图上可以重复同名的数据源点、终点与数据存储文件。
如某个外部实体既是数据源点又是数据汇点,可以在数据流图的不同的地方重复绘制。
在绘制时应该注意以下要点:(1)自外向内,自顶向下,逐层细化,完善求精。
(2)保持父图与子图的平衡。
为了表达较为复杂问题的数据处理过程,用一个数据流图往往不够。
一般按问题的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系。
根据层次关系一般将数据流图分为顶层数据流图、中间数据流图和底层数据流图,除顶层图外,其余分层数据流图从0开始编号。
对任何一层数据流图来说,称它的上层数据流图为父图,在它的下一层的数据流图为子图。
顶层数据流图只含有一个加工,表示整个系统;输入数据流和输出数据流为系统的输入数据和输出数据,表明了系统的范围,以及与外部环境的数据交换关系。
底层数据流图是指其加工不能再分解的数据流图,其加工称为“原子加工”。
中间数据流图是对父层数据流图中某个加工进行细化,而它的某个加工也可以再次细化,形成子图。
中间层次的多少,一般视系统的复杂程度而定。
任何一个数据流子图必须与它上一层父图的某个加工对应,二者的输入数据流和输出数据流必须保持一致,此即父图与子图的平衡。
父图与子图的平衡是数据流图中的重要性质,保证了数据流图的一致性,便于分析人员阅读和理解。
在父图与子图平衡中,数据流的数目和名称可以完全相同;也可以在数目上不相等,但是可以借助数据字典中数据流描述,确定父图中的数据流是由子图中几个数据流合并而成的,也即子图是对父图中加工和数据流同时进行分解,因此也属于父图与子图的平衡,如图1所示。
图1 父图与子图的平衡(3)保持数据守恒。
也就是说,一个加工所有输出数据流中的数据必须能从该加工的输入数据流中直接获得,或者是通过该加工能产生的数据。
实验三 数据流图与数据字典

实验三数据流图与数据字典数据流图与数据字典是软件工程中常用的工具,用于描述系统的信息流动和数据处理过程。
本文将详细介绍数据流图和数据字典的定义、组成部分、绘制方法以及使用场景。
一、数据流图的定义和组成部分数据流图(Data Flow Diagram,简称DFD)是一种图形化工具,用于描述系统中数据的流动和处理过程。
它由一系列的图形符号组成,包括实体(Entity)、过程(Process)、数据流(Data Flow)和数据存储(Data Store)。
1. 实体(Entity):实体代表系统的外部对象,可以是人、组织或其他系统。
它们与系统交互,输入和输出数据流。
2. 过程(Process):过程表示对数据流进行处理的功能模块或子系统。
它接收输入数据流,执行一定的操作,并产生输出数据流。
3. 数据流(Data Flow):数据流表示数据在系统中的传输路径。
它可以是输入数据流,也可以是输出数据流。
4. 数据存储(Data Store):数据存储用于存储系统中的数据。
它可以是数据库、文件或其他数据存储介质。
二、数据流图的绘制方法绘制数据流图的方法主要有两种:基于功能分解和基于数据流分析。
1. 基于功能分解的数据流图绘制方法:(1)确定系统的功能模块:根据需求分析,将系统的功能划分为多个模块或子系统。
(2)绘制顶层数据流图:将系统的输入和输出数据流与功能模块连接起来,形成顶层数据流图。
(3)细化数据流图:对每个功能模块进行进一步细化,绘制下一级数据流图,直到达到足够细节的层次。
2. 基于数据流分析的数据流图绘制方法:(1)识别数据流和数据存储:通过需求分析,识别系统中的数据流和数据存储。
(2)绘制顶层数据流图:将数据流和数据存储与功能模块连接起来,形成顶层数据流图。
(3)细化数据流图:对每个功能模块进行进一步细化,绘制下一级数据流图,直到达到足够细节的层次。
三、数据字典的定义和组成部分数据字典(Data Dictionary)是数据流图的补充,用于详细描述数据流图中使用的数据元素和数据结构。
跟我学如何创建软件系统数据库设计中的数据流程图(DFD)
1.1跟我学如何创建软件系统数据库设计中的数据流程图(DFD)1.1.1数据流程图DFD(Data Flow Diagram)概述1、什么是数据流图它是一种最常用的结构化分析工具,主要实现从数据传递和加工角度,以图形的方式刻画和描述出系统内的数据运动情况(数据的来龙去脉和实际流程----数据在对象间流动),从而实现对系统中信息运动的抽象,是MIS系统数据建模的主要形式。
下面为一个在Excel中设计出的人员管理系统中的DFD示例2、主要的作用一个软件系统的逻辑模型应能表示当某些数据输入到该系统,经过系统内部一系列处理(变换或加工)后产生某些逻辑结果的过程。
而DFD是描述系统内部处理流程、用于表达软件系统需求模型的一种图形工具,亦即描述系统中数据流程的图形工具。
(1)向数据库设计过渡系统分析员用这种形式的工具实现对系统“自顶向下”方式的系统信息流程的分析,并可在图上画出计算机处理的部分;同时根据逻辑存贮,对数据作进一步的分析,最终可实现向数据库设计过度。
(2)向程序设计过渡根据数据流向,决定出对数据的“存取方式”----该“存取方式”最终应该对应一个处理过程或者功能实现,我们可用相应的程序语言来表达该处理方法的要求,最终可实现向程序设计过渡。
(3)有助于系统的客户对系统的理解和交流由于数据流图描述了信息系统中数据处理的过程和信息传递的方向与联系,因此,便于在系统分析阶段中用户与系统分析员之间沟通。
因为,客户、特别是商业系统的客户,一般都会有自己的业务流程图,如票据流转图和操作流程图,它们与我们现在的数据流图很相识。
3、主要的应用场合DFD作为结构化系统分析与设计的主要方法,已经得到了广泛的应用---- DFD可以在需求分析、业务建模阶段发挥作用,以实现对系统的需求的深入理解。
另外,DFD尤其适用于MIS类型的系统的需求分析、业务建模。
4、DFD的主要优缺点在传统的结构化程序设计中,DFD或许比较重要。
DFD(数据流图)
1DFD(数据流图)(2006-09-02 14:46:15)转载分类:精品转载3.3 数据流图(DFD)数据流图,简称DFD,是SA方法中用于表示系统逻辑模型的一种工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。
下图是一个飞机机票预订系统的数据流图,它反映的功能是:旅行社把预订机票的旅客信息(姓名、年龄、单位、身份证号码、旅行时间、目的地等)输入机票预订系统。
系统为旅客安排航班,打印出取票通知单(附有应交的账款)。
旅客在飞机起飞的前一天凭取票通知单交款取票,系统检验无误,输出机票给旅客。
3.3.1 基本图形符号数据流图有四种基本图形符号::箭头,表示数据流;〇:圆或椭圆,表示加工;= :双杠,表示数据存储;□:方框,表示数据的源点或终点。
(1) 数据流。
数据流是数据在系统内传播的路径,因此由一组成分固定的数据组成。
如订票单由旅客姓名、年龄、单位、身份证号、日期、目的地等数据项组成。
由于数据流是流动中的数据,所以必须有流向,除了与数据存储之间的数据流不用命名外,数据流应该用名词或名词短语命名。
(2)加工(又称为数据处理)。
对数据流进行某些操作或变换。
每个加工也要有名字,通常是动词短语,简明地描述完成什么加工。
在分层的数据流图中,加工还应编号。
(3)数据存储(又称为文件),指暂时保存的数据,它可以是数据库文件或任何形式的数据组织。
(4)数据源点或终点,是本软件系统外部环境中的实体(包括人员、组织或其他软件系统),统称外部实体。
一般只出现在数据流图的顶层图。
3.3.2画数据流图的步骤(1)首先画系统的输入输出,即先画顶层数据流图。
顶层流图只包含一个加工,用以表示被开发的系统,然后考虑该系统有哪些输入数据、输出数据流。
顶层图的作用在于表明被开发系统的范围以及它和周围环境的数据交换关系。
下图为飞机机票预订系统的顶层图。
(2)画系统内部,即画下层数据流图。
数据流图(DFD)和数据词典(DD)
管理信息系统
贵州大学计算机学院 蒋朝惠
25
在数据字典的定义式中出现的符号
符号 = + [ , ] [ | ] ( ) {} M{ }N “ ”
‥
含义 被定义为 与 或 可选 重复 重复 基本数据元素 连接符
解释 例:X=A+B,表示 X 由 A 和 B 组成。 例:X=[A,B],X=[A|B],表示 X 由 A 或由 B 组成。 例:X=(A) ,表示 A 可在 X 中出现,有可不出现。 例:X={A},表示 X 由 0 个或多个 A 组成。 例:X=3{A}8,表示 X 中至少出现 3 次 A,至多出现 8 次 A。 例:X=“A” ,表示 X 为取值为 A 的数据元素。 例:X=1‥9,表示 X 可取 1 到 9 之中的任一值。
一、数据流图(DFD) 数据流图(DFD)
定义
是描述数据处理过程的工具,从数据传递和加工的 角度,以图形的方式刻画数据流从输入到输出的移动变换 过程。
组成
外部实体,数据流,数据处理,数据存储
管理信息系统
贵州大学计算机学院 蒋朝惠
1
DFD组成元素
外部实体: 外部实体: 表示图中要处理数据的输入来源或处理结果要送往 何处,是存在于数据流图的外围环境中的实体,在实际问 题中可能是人员、计算机外围设备或是传感装置。 处理过程(又称“加工 加工”): 处理过程 加工 是以数据结构或数据内容作为处理的对象,其名字 通常是一个动词短语,简明扼要地表明要完成的是什么加 工。
现有系统的物理DFD
用户 需求
客户
2 识别和分析 逻辑过程
现有系统的逻辑DFD
供应商
3 新系统的 细化模型
新逻辑DFD
4
指定的物理对应设备 新物理DFD
教你怎么画数据流图_包括数据流图实例ppt课件
14 .2 数据流图的绘制步骤(1)
14.2 数据流图的绘制步骤
(1)确定所开发的系统的外部项(外部实体),即系统的数据来源和 去处。
(2)确定整个系统的输出数据流和输入数据流,把系统作为一个加工 环节,画出关联图。
(3)确定系统的主要信息处理功能,按此将整个系统分解成几个加工 环节(子系统)确定每个加工的输出与输入数据流以及与这些加工有 关的数据存储。
S储户
F1取款单、存 折
P1
取款审核
F1.2 不 合 格 存 折 、 取款单
F1.1 合格存折、取
P2
款单
取款处理
F2存折、利率单 、结算清单
S储户
D1 帐目库
D2 取款记录
取款处理顶层图
《管理信息系统》
14.5 数据流图绘制举例(4)
(2)图书预订系统:书店向顾客发放订单,顾客将所填订单交由系统 处理,系统首先依据图书目录对订单进行检查并对合格订单进行处理 ,处理过程中根据顾客情况和订单数目将订单分为优先订单与正常订 单两种,随时处理优先订单,定期处理正常订单。最后系统根据所处 理的订单汇总,并按出版社要求发给出版社。
由于图形描述简明、清晰,不涉及到技术细节,所描述的内容是 面向用户的,所以即使完全不懂信息技术的用户单位的人员也容易理 解。因此数据流图是系统分析人员与用户之间进行交流的有效手段, 也是系统设计(即建立所开发的系统的物理模型)的主要依据之一。
《管理信息系统》
14.1 数据流图的构成(1)
14.1 数据流图的构成
建立新系统的DFD是一项十分重要的工作。因为建立的DFD是系统 开发乃至系统维护的依据,是系统的重要文档之一。系统分析员要在 详细调查中,在与用户的反复交流中修改DFD,力求新建DFD是正确的 、准确的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据流图(DFD)专题讲解软件设计师考试的下午题的第一道题,数据库系统工程师考试的下午题的第一道题都是数据流图题,而能够将这道题全部做对的考生是非常少的。
根据历年的辅导和阅卷经验,发现很多考生不是因为这方面的解题能力不够,而是缺乏解这种题的方法与技巧。
本文介绍一些解这种类型题的方法和技巧,希望起来抛砖引玉的效果。
一.解题当中考生表现出的特点由于这是下午考试的第一道题,所以很多考生从考前的紧张氛围当中逐渐平静下来开始答题,头脑还比较清醒,阅读起来比较流畅,速度还可以,自我感觉不错。
可偏偏这道题有很多人不能全取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-1 顶层数据流图图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“生成成绩列表”。
由说明“根据学生信息文件来确认该学生是否选修这门课程”可知,验证学生信息时,需要根据学生信息文件来进行;而生成成绩列表及成绩单时,学生信息都是必要的。