软件设计师 数据流图(DFD)专题讲解
讲义:数据流程图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.数据存储数据存储表⽰数据保存的地⽅。
这⾥"地⽅"并不是指保存数据的物理地点或物理介质,⽽是指数据存储的逻辑描述。
软件工程-数据流图(DFD)大题解析
1某公司为了给员工分配住房,开发了员工住房分配系统,功能如下:➢计算原始分:根据员工信息(员工号、姓名、年龄、性别、学历、工龄、婚否、职务、职称、住房情况)计算原始分,并将员工信息存入员工信息文件中。
➢计算标准分:根据员工的原始分计算标准分,并将其存入员工分数文件(员工号、标准分)。
➢计算分房分:根据标准分、分房计划文件(员工号、住房请求)中的分房人数,计算分房分,并存入分房分数文件(员工号、分房分)中。
➢分房分查询:员工可以根据自己的员工号查询相应的分房分,若输入错误则返回出错信息。
试根据上面的系统功能描述:(1)画出该系统的分层数据流图。
(8分)(2)写出相应的数据字典(要求至少写出三项)。
(4分)(3)将数据流图转换为软件的结构图。
(8分)(1):1)2)第一层数据流图员工信息文件员工分数文件夹分房分数文件2.名称:员工信息别名:描述:员工的各种信息定义:员工号+姓名+年龄+性别+学历+工龄+婚否+职务+职称+住房情况位置:员工信息文件名称:分房计划文件别名:描述:准备分房的计划定义:员工号+住房请求位置:公司系统名称:分房分数文件别名:描述:计算出的每个员工分房分数的文件定义:员工号+分房分位置:公司系统2阅读以下说明和图,回答问题1至问题5,将解答填入答题纸的对应栏内。
(20分)【说明】某高校欲开发一个成绩管理系统,记录并管理所有选修课程的学生的平时成绩和考试成绩,其主要功能描述如下:1)每门课程都有3到6个单元构成,每个单元结束后会进行一次测试,其成绩作为这门课程的平时成绩。
课程结束后进行期末考试,其成绩作为这门课程的考试成绩。
2)学生的平时成绩和考试成绩均由每门课程的主讲教师上传给成绩管理系统。
3)在记录学生成绩之前,系统需要验证这些成绩是否有效。
首先,根据学生信息文件来确认该学生是否选修这门课程,若没有,那么这些成绩是无效的;如果他的确选修了这门课程,再根据课程信息文件和课程单元信息文件来验证平时成绩是否与这门课程所包含的单元相对应,如果是,那么这些成绩是有效的,否则无效。
软件设计师数据流图(DFD)专题讲解
软件设计师考试的下午题的第一道题,数据库系统工程师考试的下午题的第一道题都是数据流图题,而能够将这道题全部做对的考生是非常少的。
根据历年的辅导和阅卷经验,发现很多考生不是因为这方面的解题能力不够,而是缺乏解这种题的方法与技巧。
本文介绍一些解这种类型题的方法和技巧,希望起来抛砖引玉的效果。
一.解题当中考生表现出的特点由于这是下午考试的第一道题,所以很多考生从考前的紧张氛围当中逐渐平静下来开始答题,头脑还比较清醒,阅读起来比较流畅,速度还可以,自我感觉不错。
可偏偏这道题有很多人不能全取15分,纠其原因有以下一些特点:1.拿卷就做,不全面了解试卷,做到心中有数。
这样会导致在解题过程当中缺少一种整体概念,不能明确自己在哪些题上必需拿分(多花时间),哪些题上自己拿不了分(少花时间)。
这样,在解题时目标就会明确很多。
2.速度快,读一遍题就开始动手做。
3.速度慢,用手指逐个字的去看,心想看一遍就能做出题来。
4.在阅读题目时,不打记,不前后联系起来思考。
5.边做边怀疑边修改,浪费时间。
6.缺少的数据流找不准,可去掉的文件找不出来。
7.由于缺少项目开发经验,对一些事务分析不知如何去思考。
8.盲目乐观,却忽略了答题格式,丢了不应该丢的分。
二.解题的方法与技巧1.首先要懂得数据流图设计要略。
有时为了增加数据流图的清晰性,防止数据流的箭头线太长,减少交叉绘制数据流条数,一般在一张图上可以重复同名的数据源点、终点与数据存储文件。
如某个外部实体既是数据源点又是数据汇点,可以在数据流图的不同的地方重复绘制。
在绘制时应该注意以下要点:(1)自外向内,自顶向下,逐层细化,完善求精。
(2)保持父图与子图的平衡。
为了表达较为复杂问题的数据处理过程,用一个数据流图往往不够。
软件工程DFD图示例 ppt课件
显然,图2.13 中子图与父图不平衡。子图 是父图中加工2 的分解,加工2 有输入数据流R 和M,输出数据流T,而子图则只有一个输入数 据流N,却有两个输出数据流T 与S。图2.14 中, 子图是父图中加工4 的分解,虽然表面上加工4 只有一个输入数据流“订货单”,而子图却有三
个输入数据流,但是如果“订货单”是由“客
⑵加工分解的原则 自然性:概念上合理、清晰; 均匀性:理想的分解是将一个问题分解成大小均匀 的几个部分; 分解度:一般每一个加工每次分解最多不要超过7 个子加工,应分解到基本加工为止。 ⑶子图与父图的“平衡”:父图中某个加工的输入输 出数据流应该同相应的子图的输入输出相同(相对应), 分层数据流图的这种特点称为子图与父图“平衡”。
一般来说,在上层可以分解得快些,而在中、 下层则应分解得慢些,因为上层是一些综合性的描 述,“易理解性”相对地说不太重要。
画分层DFD 图的基本原则 ⑴数据守恒与数据封闭原则
所谓数据守恒是指加工的输入输出数据流是否匹配 ,即每一个加工既有输入数据流又有输出数据流。或者 说一个加工至少有一个输入数据流,一个输出数据流。
为了降低系统的复杂性,采 取“逐层分解”的技术,画分层的 DFD 图。
画分层DFD 图的一般原则是: “先全局后局部,先整体后细节,先抽象 后具体”。通常将这种分层的DFD 图,分 为顶层、中间层、底层。顶层图说明了系 统的边界,即系统的输入和输出数据流,顶 层图只有一张。底层图由一些不能再分解 的加工组成,这些加工都已足够简单,称 为基本加工。在顶层和底层之间的是中间 层。中间层的数据流图描述了某个加工的 分解,而它的组成部分又要进一步分解。 画各层DFD 图时,应“由外向内”。
户”、“帐号”和“数量”三部分组成,即有如 下数据条目:订货单 =客户+帐号+数量 (2.2.5 数据词典),则子、父图平衡。
软件工程DFD图示例PPT课件
例2下图是培训中心管理系统的数据流图:
由于只有一层,因此分解的加工较多 不易理解,而且如果其中某个加工较复杂, 例如编号为3 的加工“付款”和编号为7 的加工“复审”仍很复杂,一时难以理解, 如果不继续分解下去,直到每个加工都足 够简单易于理解为止,则会影响需求分析 结果的可读性。
第15页/共18页
⑷合理使用文件 当文件作为某些加工之间的交界面时,文件 必须画出来,一旦文件作为数据流图中的一个独 立成份画出来了,那么它同其它成份之间的联系 也应同时表达出来。 理解一个问题总要经过从不正确到正确,从 不确切到确切的过程,需求分析的过程总是要不 断反复的,一次就成功的可能性是很小的,对复 杂的系统尤其如此,因此,系统分析员应随时准 备对数据流图进行修改和完善,与用户取得共识, 获得无二义性的需求,才能获得更正确清晰的需 求说明,使得设计、编程等阶段能够顺利进行, 这样做是必须和值得的。
第11页/共18页
画分层DFD 图的基本原则 ⑴数据守恒与数据封闭原则 所谓数据守恒是指加工的输入输出数据流是否匹配,
即每一个加工既有输入数据流又有输出数据流。或者说 一个加工至少有一个输入数据流,一个输出数据流。
⑵加工分解的原则 自然性:概念上合理、清晰; 均匀性:理想的分解是将一个问题分解成大小均匀 的几个部分; 分解度:一般每一个加工每次分解最多不要超过7 个子加工,应分解到基本加工为止。 ⑶子图与父图的“平衡”:父图中某个加工的输入 输出数据流应该同相应的子图的输入输出相同(相对应), 分层数据流图的这种特点称为子图与父图“平衡”。
第4页/共18页
第5页/共18页
如图所示,如果系统规模较 大,仅用一个DFD 图难以描述, 会使得系统变得复杂,且难以理 解。
软件工程DF数据流图图片
职工考勤信息包括:职工基本信息
职工出勤信息
职工出差信息
职工加班信息
职工请假信息
其中:
职工基本信息包括:职工姓名,职工编号,性别,年龄,职称。
职工出勤信息包括:姓名,编号,上班打卡时间,下班打卡时间,缺勤记录。
职工出差信息包括:姓名,编号,出差开始时间,出差结束时间,统计出差天数。
职工加班信息包括:姓名,编号,加班开始时间,加班结束时间,统计加班时间。
职工请假信息包括:姓名,编号,请假开始时间,请假结束时间,统计请假时间。
职工考勤系统(顶层DFD)
职工考勤系统(一层DFD)
职工考勤系统-职工信息(二层DFD)
对功能1分解(职工信息)
对功能2分解(加班)
对功能3分解(出差)
对功能4分解(请假)
对功能5分解(考勤)
职工考勤系统-职工信息-添加职工信息(对1.1再分解)
职工考勤系统-职工信息-查询职工信息(对1.1再分解)
数据字典(DD )
ConceptualDateModel
LogicalDataModel
(1)数据表格
设计表(逻辑模型):
职工基本信息表
职工出勤信息表
职工加班信息表
职工出差信息表
职工请假信息表
(1)设计E-R图
2
软件结构图。
软件需求说明书编写中的数据流绘制技巧
软件需求说明书编写中的数据流绘制技巧在软件开发的过程中,需求分析是非常关键的一步。
而在需求分析中,数据流图是常用的工具,用于描述系统中各个功能模块之间的数据流动情况。
本文将详细介绍软件需求说明书编写中的数据流绘制技巧,帮助开发团队更好地理解和掌握数据流图的绘制方法。
一、数据流图的概念和作用数据流图(Data Flow Diagram,简称DFD)是一种图形化的工具,用于描述系统中信息的流动和处理过程。
它可帮助软件开发人员清晰地了解系统中的数据流动,明确各个功能模块之间的关系,从而为需求分析和系统设计提供依据。
数据流图以图形的形式展示了系统中的数据流和处理功能,包括数据流入和流出的过程,以及在各个处理模块中进行的数据处理操作。
通过数据流图,团队成员可以直观地了解系统的结构和功能,快速定位问题和风险,并确保开发过程中的顺利进行。
二、数据流图的绘制步骤1. 确定关键功能模块:根据需求分析的结果,确定系统中的关键功能模块,并对其进行命名和标识,以便在数据流图中进行引用。
2. 确定数据流和处理过程:根据需求分析的结果,确定系统中的数据流和处理过程,并使用适当的符号进行标识。
数据流可以是输入数据、输出数据或系统内部流动的数据,而处理过程则可以是数据的加工、转换、存储等。
3. 绘制主要数据流和处理过程:根据系统中的主要数据流和处理过程,开始绘制数据流图的主干结构。
主要数据流通常包括系统的输入和输出数据,而处理过程则包括系统的各个功能模块。
注意根据功能模块之间的关系,合理安排数据流的流动方向和处理过程的顺序。
4. 细化和完善数据流图:在主干结构绘制完成后,进一步细化和完善数据流图。
可根据系统的具体要求,增加细节数据流和处理过程,以更全面地描述系统的功能和流程。
5. 验证和修正数据流图:在数据流图完成后,进行验证和修正是非常重要的。
团队成员可以通过检查数据流图的正确性、一致性和完整性,发现潜在的问题和错误,并进行相应的修正。
跟我学如何创建软件系统数据库设计中的数据流程图(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)画法要求一、数据流图(DFD)1.数据流图的基本符号数据流图由四种基本符号组成,见图5-4-1所示。
图5-4-1 数据流图的基本符号例:图5-4-2是一个简单的数据流图,它表示数据X从源S流出,经P加工转换成Y,接着经P加工转换为Z,在加工过程中从F中读取数据。
图5-4-2数据流图举例下面来详细讨论各基本符号的使用方法。
数据流由一组确定的数据组成。
例如“发票”为一个数据流,它由品名、规格、单位、单价、数量等数据组成。
数据流用带有名字的具有箭头的线段表示,名字称为数据流名,表示流经的数据,箭头表示流向。
数据流可以从加工流向加工,也可以从加工流进、流出文件,还可以从源点流向加工或从加工流向终点。
对数据流的表示有以下约定:对流进或流出文件的数据流不需标注名字,因为文件本身就足以说明数据流。
而别的数据流则必须标出名字,名字应能反映数据流的含义。
数据流不允许同名。
两个数据流在结构上相同是允许的,但必须体现人们对数据流的不同理解。
例如图5-4-3(a)中的合理领料单与领料单两个数据流,它们的结构相同,但前者增加了合理性这一信息。
两个加工之间可以有几股不同的数据流,这是由于它们的用途不同,或它们之间没有了解,或它们的流动时间不同,如图5-4-3(b)所示。
(a)(b)(c)图5-4-3 简单数据流图举例数据流图描述的是数据流而不是控制流。
如图5-4-3 (c)中,“月末”只是为了激发加工“计算工资”,是一个控制流而不是数据流,所以应从图中删去。
加工处理是对数据进行的操作,它把流入的数据流转换为流出的数据流。
每个加工处理都应取一个名字表示它的含义,并规定一个编号用来标识该加工在层次分解中的位置。
名字中必须包含一个动词,例如“计算”、“打印”等。
对数据加工转换的方式有两种:改变数据的结构,例如将数组中各数据重新排序;产生新的数据,例如对原来的数据总计、求平均等值。
4.文件文件是存贮数据的工具。
文件名应与它的内容一致,写在开口长条内。
DFD数据流图
DFD Data Flow Diagram,数据流图结构化分析数据流图(Data Flow Diagram,DFD)是一种能全面地描述信息系统逻辑模型的主要工具,它可以用少数几种符号综合地反映出信息在系统中的流动、处理和存储情况。
表达了数据和处理的关系。
DFD由数据流、加工、数据存储和外部实体4个要素构成。
外部实体是指存在于软件系统之外的人员或组织,它指出系统所需数据的发源地和系统所产生数据的归宿地。
1、分类一种是以方框、连线及其变形为基本图例符号来表示数据流动过程。
一种是以圆圈及连接弧线作为其基本符号来表示数据流动过程。
这两种方法实际表示一个数据流程的时候,大同小异,但是针对不同的数据处理流程却各有特点。
故在此我们介绍其中一种方法,以便读者在实际工作中根据实际情况选用。
2、画法自上而下,逐层展开;输入输出,保持平衡。
举例。
某财务系统数据流程绘制:从图中可看到数据流程图是分层次的,绘制时采取自顶向下逐层分解的办法。
1.画出顶层(第一层)数据流图。
顶层数据流图只有一张,它说明了系统的总的处理功能、输入和输出。
2.对顶层数据流图中的"处理"进行分解,也就是将"帐务处理"分解为更多的"处理"。
第2张图是第一层中的处理被分解后的第二层数据流程图中的一个。
数据流图分多少层次应根据现实际情况而定,对于一个复杂的大系统,有时可分至七八层之多。
为了提高规范化程度,有必要对图中各个元素加以编号。
通常在编号之首冠以字母,用以表示不同的元素,可以用P表示处理,F表示数据流,D表示数据存储,S表示外部实体。
3、特征抽象性。
在数据流图中具体的组织机构、工作场所、人员、物质流等等都已去掉,只剩下数据的存储、流动、加工、使用的情况。
这种抽象性能使我们总结出信息处理的内部规律性。
概括性。
它把系统对各种业务的处理过程联系起来考虑,形成一个总体。
而业务流程图只能孤立地分析各个业务,不能反映出各业务之间的数据关系。
DFD数据流图
3.3.1数据流图D F D任何软件系统(或计算机系统)从根本上来说,都是对数据进行加工(P r o c e s s i n g)或变换(T r a n s f o r m)的工具。
图3-7是一个高度抽象了的软件系统的逻辑模型。
图3-7软件模型组成符号:数据流图只使用4种基本图形符号:2、箭头代表数据的流向,数据名称总是标在箭头的边上;3、方框表示数据的源点和终点;4、双杠(或单杠)表示数据文件或数据库。
文件与加工之间用箭头线连接,单向表示只读或只写,双向表示有读有写。
注意:每一图形符号都必须标上名字,加工框还应该加上编号,以帮助识别。
【例1】把下图改画成D F D图。
图3-8计算机售书系统模型解:该图现有2个加工(审查并开发票,开领书单),4个数据流(购书单,发票,领书单,无效书单),数据的源点和终点都是“学生”。
但图中没有数据文件。
实际上在审查购书单和开出发票之前,至少要查阅两个文件:①各班学生用书表,用以核对学生是否需用这些教材;②教材存量表,了解有没有该生要买的教材。
把这两个文件加进图3-8中,并给加工添上编号,就得到计算机售书系统的完整的D F D,如图3-9所示。
加工1要从教材存量数中读出数据,以判断有没有可卖的教材;售出教材后又要在原存量中减去售出的数量,把新存量写回教材存量表,所以在加工1与教材存量表之间使用了带双箭头的连线。
各班学生用书表只读不写,应用单向箭头线连接,图中箭头的方向表示从文件读出。
图3-9改进了的计算机售书系统模型D F D的性质:与程序流程图(F l o w D i a g r a m或F l o w C h a r t)不同,D F D不能表示程序的控制结构,例如选择或循环结构等。
这是由这两种图形的不同用途决定的。
前者用于表示程序的过程设计(P r o c e d u r a lD e s i g n),后者则用作软件分析阶段的工具。
分析阶段只需考虑软件“干什么”,不必问“怎么干”,当然不应包括“控制流”、“控制结构”或“激发条件”之类的信息。
dfd图画法详解 ppt课件
D6 教材一览表
书库 保 管 员
dfd图画法详解
开发数据流程图时的注意事项: (1)上层数据流程图与下层数据流层图的平衡; (2)对图中各元素加以编号
P-处理, D-数据存储, F-数据流, .-流程图的层次 (3)图中只有数据流,无控制流
流。
仓管
事务
1.0
员
处理事务
2.0
订货报表 采购
产生报表
员
D2 订货信息 图 (b) 订货系统的一层数据流程图
dfd图画法详解
数据流图
仓管 员
D1 库存信息
F1 事务 1.1 事务输入
事务F2
和检验
F3 库存
1.2 更新库存
F4 缺货信息
1.3 处理订货
F5 订货信息 D2
订货信息
图(c) 订货系统的2层数据流程图 (子图1)
dfd图画法详解
发货票
用户
订货单
检验
出库 合格订单 处理
采购通知 采购员
不合格订单 EX1
库存台帐
dfd图画法详解
EX2:请根据以下定货过程画出数据流程图:采购员 从仓库收到缺货通知单后立即进行定货处理,即,查 阅订货合同单,若已定货,则向供货单位发出催货单, 否则,填写定货单送供货单位。供货单位发运货物后, 立即向采购员发出取货通知。
dfd图画法详解
考虑处理:问题给出“采购部需要报表”,因此 必须有一个用于产生报表的处理。输入事务的结果 是改变材料库存量,然而任何改变数据的操作都是 处理,因此对事务进行的加工是另一个处理。
考虑数据流:系统把订货报表送给采购部,因此 订货报表是一个数据流;仓库需要将每笔事务输入 到系统中,显然事务是另一个数据流。
数据流图(DFD)详解
为数据处理)。
对数据流进⾏某些操作或变换。
每个加⼯也要有名字,通常是动词短语,简明地描述完成什么加⼯。
在分层的数据流图中,加⼯还应编号。
(3)数据存储(⼜称为⽂件),指暂时保存的数据,它可以是数据库⽂件或任何形式的数据组织。
(4)数据源点或终点,是本软件系统外部环境中的实体(包括⼈员、组织或其他软件系统),统称外部实体。
⼀般只出现在数据流图的顶层图。
画数据流图的步骤 (1)⾸先画系统的输⼊输出,即先画顶层数据流图。
顶层流图只包含⼀个加⼯,⽤以表⽰被开发的系统,然后考虑该系统有哪些输⼊数据、输出数据流。
顶层图的作⽤在于表明被开发系统的范围以及它和周围环境的数据交换关系。
下图为飞机机票预订系统的顶层图。
(2)画系统内部,即画下层数据流图。
不再分解的加⼯称为基本加⼯。
⼀般将层号从0开始编号,采⽤⾃顶向下,由外向内的原则。
画0层数据流图时,分解顶层流图的系统为若⼲⼦系统,决定每个⼦系统间的数据接⼝和活动关系。
例如,在上⾯的机票预订系统按功能可分成两部分,⼀部分为旅⾏社预订机票,另⼀部分为旅客取票,两部分通过机票⽂件的数据存储联系起来,0层数据流图如图3-4。
(3)注意事项。
①命名。
不论数据流、数据存储还是加⼯,合适的命名使⼈们易于理解其含义。
②画数据流⽽不是控制流。
数据流反映系统”做什么”,不反映“如何做”,因此箭头上的数据流名称只能是名词或名词短语,整个图中不反映加⼯的执⾏顺序。
③⼀般不画物质流。
数据流反映能⽤计算机处理的数据,并不是实物,因此对⽬标系统的数据流图⼀般不要画物质流。
④每个加⼯⾄少有⼀个输⼊数据流和⼀个输出数据流,反映出此加⼯数据的来源与加⼯的结果。
⑤编号。
如果⼀张数据流图中的某个加⼯分解成另⼀张数据流图时,则上层图为⽗图,直接下层图为⼦图。
⼦图及其所有的加⼯都应编号。
⑥⽗图与⼦图的平衡。
⼦图的输⼊输出数据流同⽗图相应加⼯的输⼊输出数据流必须⼀致,此即⽗图与⼦图的平衡。
⑦局部数据存储。
当某层数据流图中的数据存储不是⽗图中相应加⼯的外部接⼝,⽽只是本图中某些加⼯之间的数据接⼝,则称这些数据存储为局部数据存储。
软件设计师中级下午题知识点总结
软件设计师中级下午题知识点总结一、数据流图(DFD)相关(3题)1. 题目。
- 某基于网络的文件处理系统,用户通过浏览器向服务器发出文件处理请求,服务器根据请求对文件进行处理,并将处理结果返回给用户。
其顶层数据流图如下,请补充完整该数据流图中的外部实体、数据存储和加工。
- 解析:- 外部实体:在这个系统中,用户通过浏览器与系统交互,所以“用户”是一个外部实体;另外,由于文件可能存储在文件系统或数据库等地方,这里假设存在一个“文件存储系统”作为外部实体(如果题目有更详细的存储相关描述,可以进一步细化,如数据库管理系统等)。
- 数据存储:考虑到文件处理系统,必然存在一个存储文件相关信息的地方,可命名为“文件库”。
- 加工:根据描述,服务器要对文件进行处理,这里可以有“文件请求处理”加工,负责接收用户请求并进行初步处理;“文件操作加工”,负责对文件库中的文件进行实际的操作(如读取、修改等);“结果返回加工”,负责将处理后的结果返回给用户。
2. 题目。
- 根据以下描述绘制数据流图。
某高校学生选课系统,学生登录系统后查询课程信息,根据课程信息进行选课操作。
系统管理员负责维护课程信息,包括课程的添加、删除和修改。
- 解析:- 外部实体:有“学生”和“系统管理员”。
- 数据存储:需要有一个“课程信息库”来存储课程相关信息。
- 加工:对于学生操作,有“课程信息查询加工”和“选课加工”;对于管理员操作,有“课程信息维护加工”,这个加工可以进一步细分为“课程添加子加工”“课程删除子加工”“课程修改子加工”。
- 数据流:学生到“课程信息查询加工”有“查询请求”数据流,“课程信息查询加工”到“课程信息库”有“查询操作”数据流,“课程信息库”到“课程信息查询加工”有“课程信息”数据流,“课程信息查询加工”到“选课加工”有“选定课程信息”数据流,“选课加工”到“课程信息库”有“选课操作”数据流;管理员到“课程信息维护加工”有“维护请求”数据流,“课程信息维护加工”到“课程信息库”有相应的“添加/删除/修改操作”数据流。
dfd的名词解释
dfd的名词解释dfd是数据流图(Data Flow Diagram)英文的缩写,是一种用于描述和分析系统功能的图形化工具。
通过dfd可以清晰地展示系统中的数据流、处理过程和数据存储,并从整体上把握系统的运行机制和功能需求。
下面将从dfd的基本概念、构造方法以及应用领域三个方面进行解释。
一、基本概念数据流图由数据流、处理过程、数据存储和外部实体四个基本要素组成。
数据流表示信息在系统中的流动,可以是输入数据、输出数据或系统内部传递的中间数据。
处理过程指对数据进行加工、转换和处理的活动,可以是计算、判断、合并等操作。
数据存储指系统中用于存储数据的位置,可以是数据库、文件或者内部的数据结构。
外部实体指与系统进行交互的外部用户、外部系统或设备。
通过这四个要素的组合和联系,可以形成具体系统的数据流图。
二、构造方法dfd的构造方法主要包括四个步骤:识别主题、构造0层dfd、展开0层dfd和进一步展开。
首先,识别主题是通过对系统进行分析,确定需要建模的功能和界限。
其次,构造0层dfd是在主题的基础上,用一个整体的图形展示系统的输入、输出、处理和存储。
0层dfd通常只包含一个外部实体和一个处理过程,用来代表整个系统。
然后,展开0层dfd是通过逐步细化和拆分的方法,将系统的子功能和细节展示出来,形成多个层级的dfd。
最后,进一步展开是在需要详细描述某个子功能时,再次对该层次的dfd进行细化,形成更加详细的图示。
三、应用领域dfd可以广泛应用于信息系统的分析与设计、业务流程管理、系统改进等方面。
在信息系统的分析与设计中,通过构建和分析数据流图,可以帮助系统分析师深入了解系统的功能需求,从而为系统的实现提供指导。
在业务流程管理中,通过对业务流程进行建模和优化,可以发现流程中的问题和瓶颈,并提出相关的解决方案。
在系统改进中,通过对现有系统的数据流图进行分析,可以发现系统中的缺陷和不足之处,为系统的改进提供依据和方向。
总结而言,dfd作为一种图形化工具,可以帮助人们更好地理解和把握系统的功能和运行机制。
软件工程讲义数据流图
[问题1]
指出图C的数据流图中①,②,③的数据流名。
[问题2]
要供应者,次要供应者)
(2)库存清单(零件编号,库存量,库存量临界值)
泉州师范学院数计学院计算机科学与技术专业
软件工程讲义
五、数据流图实例——定货系统
3、画顶层数据流图,即 系统的基本模型。
系统的基本模型由若干个 数据源点/终点以及一个 处理组成,这个处理代表 了系统对数据加工变换的 基本功能。
出入库
仓库 管理员
D1 库存清单
出入库 事务
库存 清单
1 处理 事务
2
定货
产生 报表
报表
采购员
订货 信息
D2
订货 信息
定货信息
图2: 定货系统的功能级数据流图(1层)
泉州师范学院数计学院计算机科学与技术专业
一、数据流图的概念
软件工程讲义
• 数据流图(Data Flow Diagram,DFD)是 一种图形化技术,它描绘信息流和数据从 输入移动到输出的过程中所经受的变换。 在数据流图中没有任何具体的物理部件, 它只是描绘数据在软件中流动和被处理的 逻辑过程。它与数据字典一起用来构成系 统的逻辑模型。
数据源点/终点的命名
• 不属于数据流图的核心内容,通常是目标系统的外围环境部分。 通常采用它们在问题域中习惯使用的名字。
泉州师范学院数计学院计算机科学与技术专业
软件工程讲义
六、使用数据流图的几点说明
2、在分析下层的数据流图时,有时没有给出源点与终 点。
3、从一个数据存储中取出来的或放进去的数据通常和 原来存储的数据相同,即数据存储和数据流只不过 是同样数据的两种不同形式。这时候,与数据存储 同名的数据流经常被省略。
关于数据流图DFD实例
主管部门批 准/不批准
主管部门
应收账款报表
生产部门
图6.19
当前价格 产品描述 已核对价 格的订单 应收账款
订单数据
顾客
1.1 核对价格
1.2 核对账目 状况
账目状况已核对的订单
批准/不批准
1.3 批准订单
主管部门 批准/不批准
核对订单数据
主管部门
关于数据流图DFD实例
关于数据流图DFD 概念:数据流图表达了数据和处理的关系。它 是将用户提供的业务流程图进一步标准化。用比 较规范DFD进行描述 设计:DFD设计过程就是将数据和处理进行逐 层分解就形成了若干层次的DFD。 数据流图DFD分为顶层图(第一层图)第二层 图、第三层图等等。 举例说明:下面通过销售系统流来说明DFD的 设计过程,其中图6.18是销售子系统第一层的数 据流图,图6.19是第二层图。
图例说明
外部实体
处理
存储18
1.0送 进订单
调整 发票 应收账款 顾客账目状况 产品描述
顾客
包装通知单
订单记录本
订单细节 未付 差额 调整 财务费 用变动 生产通知单 准备发 货细节 5.0提供应 收账款
1.0送 已批准订单 进订单
核对 订单 数据
2.0处理 订单
3.0开 发票
数据流图(DFD)画法要求
5.数据源或终点 5.数据源或终点 数据源和终点表示数据的外部来源和去 处。它通常是系统之外的人员或组织,不 受系统控制。 为了避免在数据流图上出现线条交叉,同 一个源点、终点或文件均可在不同位置多 次出现,这时要在源( 次出现,这时要在源(终)点符号的右下方画 小斜线,或在文件符号左边画竖线,以示 重复,如图5 重复,如图5-4-4所示。
数据流图(DFD)画法要求 数据流图(DFD)
1.数据流图的基本符号 1.数据流图的基本符号
数据流图(DFD)画法要求 数据流图(DFD)
2.数据流 2.数据流 数据流由一组确定的数据组成。例如 “发票”为一个数据流,它由品名、规格、 发票” 单位、单价、数量等数据组成。数据流用 带有名字的具有箭头的线段表示,名字称 为数据流名,表示流经的数据,箭头表示 流向。数据流可以从加工流向加工,也可 以从加工流进、流出文件,还可以从源点 流向加工或从加工流向终点。
数据流图(DFD)画法要求 数据流图(DFD)
对流进或流出文件的数据流不需标注名字,因为 文件本身就足以说明数据流。而别的数据流则必 须标出名字,名字应能反映数据流的含义。 数据流不允许同名。 两个数据流在结构上相同是允许的,但必须体现 人们对数据流的不同理解。例如图5 人们对数据流的不同理解。例如图5-4-3(a)中 3(a)中 的合理领料单与领料单两个数据流,它们的结构 相同,但前者增加了合理性这一信息。 两个加工之间可以有几股不同的数据流,这是由 于它们的用途不同,或它们之间没有联系,或它 们的流动时间不同,如图5 们的流动时间不同,如图5-4-3(b)所示。 3(b)所示。
数据流图(DFD)画法要求 数据流图(DFD)
对数据加工转换的方式有两种: 改变数据的结构,例如将数组中各数据重 新排序; 产生新的数据,例如对原来的数据总计、 求平均等值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件设计师考试的下午题的第一道题,数据库系统工程师考试的下午题的第一道题都是数据流图题,而能够将这道题全部做对的考生是非常少的。
根据历年的辅导和阅卷经验,发现很多考生不是因为这方面的解题能力不够,而是缺乏解这种题的方法与技巧。
本文介绍一些解这种类型题的方法和技巧,希望起来抛砖引玉的效果。
一.解题当中考生表现出的特点由于这是下午考试的第一道题,所以很多考生从考前的紧张氛围当中逐渐平静下来开始答题,头脑还比较清醒,阅读起来比较流畅,速度还可以,自我感觉不错。
可偏偏这道题有很多人不能全取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“生成成绩列表”。
由说明“根据学生信息文件来确认该学生是否选修这门课程”可知,验证学生信息时,需要根据学生信息文件来进行;而生成成绩列表及成绩单时,学生信息都是必要的。