资源描述
第四章第四章 数据流图数据流图新系统的逻辑模型主要是新系统的逻辑模型主要是DFD和和DD1、DFD如何建立?如何建立?2、出发点:、出发点:OP(I)。P就是目标系统。就是目标系统。3、方法:分解。、方法:分解。方法:分解方法:分解/层层分解。展示系统内部对层层分解。展示系统内部对信息加工的具体过程。当数据流的每一信息加工的具体过程。当数据流的每一次改变都清清楚楚了,模型也就建成了。次改变都清清楚楚了,模型也就建成了。所以所以SA&DSA&D建模的方法是:建模的方法是:从系统的抽象从系统的抽象模型出发,对功能做层层分解,并用图模型出发,对功能做层层分解,并用图形、表格把这一过程表达出来。出发点形、表格把这一过程表达出来。出发点:系统基本模型;方法系统基本模型;方法:分解分解。4.1 4.1 数据流图的构成数据流图的构成数据流图脱离系统中的物理因素数据流图脱离系统中的物理因素(如计算机等如计算机等),表达出系统对信息的加工情况。,表达出系统对信息的加工情况。DFDDFD可可以描述原系统以描述原系统/新系统新系统/子系统。子系统。DFDDFD是是SASA的主要工具,它简单、直观,用图形、的主要工具,它简单、直观,用图形、文字描述系统。它便于使用、便于交流、文字描述系统。它便于使用、便于交流、便于讨论、便于形成共识,是计算机专业便于讨论、便于形成共识,是计算机专业人员和用户单位业务人员的共同语言。人员和用户单位业务人员的共同语言。4.1.1 DFD使用的符号使用的符号DFD中共有四种实体:加工、数据流、文件中共有四种实体:加工、数据流、文件和外部项。分别用四种符号表示和外部项。分别用四种符号表示4.1.2 加工加工v加工又称处理亦称变换,它是对数据流的加工又称处理亦称变换,它是对数据流的操作。操作。v加工的符号由标识部分、功能描述部分和加工的符号由标识部分、功能描述部分和功能执行部分组成。功能执行部分组成。v标识部分用于标注加工编号。所有的加工标识部分用于标注加工编号。所有的加工都必须统一编号,编号应具有唯一性。编都必须统一编号,编号应具有唯一性。编号要与数据字典一致。号要与数据字典一致。v功能描述部分用来标注加工名。为使功能描述部分用来标注加工名。为使DFDDFD清清晰易读,加工名应简单,又能概括地说明晰易读,加工名应简单,又能概括地说明对数据的加工行为,其详细描述在数据字对数据的加工行为,其详细描述在数据字典中做出。典中做出。v功能执行部分用来做必要的说明。如该加功能执行部分用来做必要的说明。如该加工由谁来执行。可选。工由谁来执行。可选。v顶层加工就是系统,建模时要对它逐层分顶层加工就是系统,建模时要对它逐层分解,以展示其内部结构。解,以展示其内部结构。v基本加工基本加工:对数据的处理功能简单、:对数据的处理功能简单、加工逻辑清楚的加工称基本加工。例加工逻辑清楚的加工称基本加工。例如:打印工资表、合计工时等。分解如:打印工资表、合计工时等。分解加工到基本加工为止。为了区别基本加工到基本加工为止。为了区别基本加工,在编号前打加工,在编号前打“*”“*”号标志。号标志。v加工符号说明如下:加工符号说明如下:1 1;顶层加工名可以是系统的名字。如红;顶层加工名可以是系统的名字。如红星厂信息系统等。星厂信息系统等。2 2加工名要简捷易懂,由动词或动宾词组加工名要简捷易懂,由动词或动宾词组组成。未分解的加工本身具有抽象性,所组成。未分解的加工本身具有抽象性,所以加工名必然具有抽象性。如帐务处理、以加工名必然具有抽象性。如帐务处理、成本核算等。每一个加工都必须:成本核算等。每一个加工都必须:v有输入数据流,有输入数据流,v有输出数据流,有输出数据流,v输人数据流与输出数据流要有所变化。输人数据流与输出数据流要有所变化。4.1.3 数据流数据流(Data Flow)数据流由一个或一组确定的数据项组成。数据流由一个或一组确定的数据项组成。“领料单领料单由:领料单位名、材料名称、数量、由:领料单位名、材料名称、数量、单价、日期等数据项组成。数据流用标名箭头表示,单价、日期等数据项组成。数据流用标名箭头表示,箭头的指向表示数据流的流向。箭头的指向表示数据流的流向。对数据流符号的说明对数据流符号的说明1数据流名应能直观地反映数据流的含义。如产数据流名应能直观地反映数据流的含义。如产量日报表、汇款单、录取通知书、课程表等。也量日报表、汇款单、录取通知书、课程表等。也可以用一组数据中的主要数据为数据流命名。例可以用一组数据中的主要数据为数据流命名。例如如“考生成绩单考生成绩单由考生姓名、成绩、通讯地由考生姓名、成绩、通讯地址等数据组成,但成绩是主要的,所以可用址等数据组成,但成绩是主要的,所以可用“考考生成绩生成绩”作为数据流的名字。作为数据流的名字。对数据流符号的说明对数据流符号的说明2数据流应统一编号,编号要与数据字典一数据流应统一编号,编号要与数据字典一致。致。3数据流的流向,有以下五种情况:数据流的流向,有以下五种情况:PP,SP,PD,PF,FP 其中前三种情况应注明数据流名。后两种其中前三种情况应注明数据流名。后两种情况,因文件的结构可以说明数据流,可不情况,因文件的结构可以说明数据流,可不标注。标注。对数据流符号的说明对数据流符号的说明4数据流经过一个加工后其数据结构数据流经过一个加工后其数据结构/数据数据含义含义/数据的顺序一定要有所变化,否则这个数据的顺序一定要有所变化,否则这个加工就没有意义了。加工就没有意义了。5两个实体间可以有多个数据流存在,但两个实体间可以有多个数据流存在,但DFD并不表明它们之间的任何关系,诸如次并不表明它们之间的任何关系,诸如次序、主次等。序、主次等。4.1.4 文件文件文件是用来存贮数据的。在分层文件是用来存贮数据的。在分层DFD中,文件一般中,文件一般仅属于某一层或某几层,故又称仅属于某一层或某几层,故又称局部文件局部文件。1.文件名应概要地说明文件中的主要数据。文件名应概要地说明文件中的主要数据。2.文件上一定要有数据流。表示写文件上一定要有数据流。表示写/读读/修改文件。修改文件。3文件统一编号。编号应与文件统一编号。编号应与DD中的编号一致。中的编号一致。4为避免为避免DFD中出现交叉线,同一文件可在多处中出现交叉线,同一文件可在多处画出,用符号表示重复的文件。画出,用符号表示重复的文件。4.1.4 文件文件5.虚文件文件符号代表多个文件,它本身并虚文件文件符号代表多个文件,它本身并不是系统中的文件,所以不需要在数据字不是系统中的文件,所以不需要在数据字典中定义,只在它出现处做出说明就可以典中定义,只在它出现处做出说明就可以了。了。4.1.5 4.1.5 外部项外部项外部项是存在于环境之中,与系统有直接的外部项是存在于环境之中,与系统有直接的信息联系实体。外部项可以是人、设备或信息联系实体。外部项可以是人、设备或其它系统。引入外部项是为了划定系统的其它系统。引入外部项是为了划定系统的边界,不需严格定义。但也要统一编号,边界,不需严格定义。但也要统一编号,而且要与数据字典中的编号相一致。源点而且要与数据字典中的编号相一致。源点和终点可以在多处出现,用特定符号表示和终点可以在多处出现,用特定符号表示重复的外部项。重复的外部项。4.1.5 外部项外部项为了使为了使DFD清楚易懂,我们对加工、数清楚易懂,我们对加工、数据流、文件的命名都力求简单。至于据流、文件的命名都力求简单。至于加工的加工逻辑、数据流的数据结构加工的加工逻辑、数据流的数据结构等,将在数据字典中定义。数据字典等,将在数据字典中定义。数据字典和和DFD一起来描述系统。一起来描述系统。操作操作员员外部项外部项 重复的外部项重复的外部项操作操作员员4.2 DFD设计设计4.2.1 DFD4.2.1 DFD设计步骤设计步骤1 1先画出顶层先画出顶层DFDDFD;2 2逐步分解,画出中间各层逐步分解,画出中间各层DFDDFD;3 3装配平面数据流图。装配平面数据流图。第一步,把系统基本模型加上外部项作为顶第一步,把系统基本模型加上外部项作为顶层层DFD。1、外部项支持现在顶层;、外部项支持现在顶层;2、可能有多个外、可能有多个外部项。部项。顶层顶层DFDDFD说明系统的功能说明系统的功能(包括用户需求和包括用户需求和系统责任系统责任),指出,指出I/OI/O数据流。由外部项划定数据流。由外部项划定系统的边界。要画出所有的外部项,其它各系统的边界。要画出所有的外部项,其它各层无需再画出。层无需再画出。第二步,分解加工,画出以下各层第二步,分解加工,画出以下各层DFDDFD。对。对加工逐层分解下去,产生一层层子图。当分加工逐层分解下去,产生一层层子图。当分解产生的加工全部变成基本加工时停止分解。解产生的加工全部变成基本加工时停止分解。基本加工不再产生子图。基本加工不再产生子图。v逐层画出逐层画出DFDDFD的过程就是自顶向下,逐层对的过程就是自顶向下,逐层对加工分解的过程。每一层加工分解的过程。每一层DFDDFD是一张或多张是一张或多张平面图,全部平面图,全部DFDDFD是一个立体构对是一个立体构对DFDDFD统统一编号一编号v层号:顶层:层号:顶层:DFD/0,DFD/0,一层:一层:DFD/1,DFD/1,二层:二层:DFD/2DFD/2。以此类推。通常顶层只含有一个加。以此类推。通常顶层只含有一个加工,顶层和一层只有一张图。以下各层可工,顶层和一层只有一张图。以下各层可能有多张图上层能有多张图上层DFDDFD称父图,下层称子图。称父图,下层称子图。v图号;分层图号;分层DFDDFD中每一张图要有一个图号中每一张图要有一个图号子图的图号就是其父加工的编号顶层和子图的图号就是其父加工的编号顶层和一层只有一张图不必编号二层以下都要一层只有一张图不必编号二层以下都要编号。编号。v加工编号:每一个加工要有加工编号,加加工编号:每一个加工要有加工编号,加工编号由田号加上加工的顺序号组成,图工编号由田号加上加工的顺序号组成,图号和加工的顺序号之间用圆点隔开。基本号和加工的顺序号之间用圆点隔开。基本加工的加工编号前要打一个星号。加工的加工编号前要打一个星号。第三步,装配平面数据流图第三步,装配平面数据流图定义:平面数据流图定义:平面数据流图(Plane DFD(Plane DFD:PDFD)PDFD)是一是一种图形工具,它用不同抽象度的加工及加工种图形工具,它用不同抽象度的加工及加工间的家族关系描述系统的功能。它是一张平间的家族关系描述系统的功能。它是一张平面图,多分支倒置树面图,多分支倒置树(树根在上树根在上)结构结构相应的,称立体构造的相应的,称立体构造的DFDDFD为多层数据流图为多层数据流图(Multi DFD(Multi DFD:MDFD)MDFD)。装配装配PDFDPDFD可以在系统的不同抽象层次上进行。可以在系统的不同抽象层次上进行。小型系统可以把全部加工装配起来;大型小型系统可以把全部加工装配起来;大型系统,装配全部加工会使得系统,装配全部加工会使得PDFDPDFD过于庞大,过于庞大,可读性差。可以考虑装配多个局部可读性差。可以考虑装配多个局部PDFDPDFD。局部局部PDFDPDFD从不同的抽象层次或不同的局部从不同的抽象层次或不同的局部来描述系统。局部来描述系统。局部PDFDPDFD的规模以清晰易读的规模以清晰易读为准,一般包括为准,一般包括4 4、5 5层层DFDDFD或能在一页纸上或能在一页纸上画出为准。画出为准。4.2.2 DFD4.2.2 DFD的设计六原则的设计六原则一、分解加工应当是自然的一、分解加工应当是自然的加工的分解应当是自然的,即不能硬行加工的分解应当是自然的,即不能硬行分割,也不能平均分开。因为系统是分分割,也不能平均分开。因为系统是分层的,总是可以分解的,关键是找到分层的,总是可以分解的,关键是找到分解界面。应当找到各子加工间的自然界解界面。应当找到各子加工间的自然界面将其分割开来。面将其分割开来。二、减少加工间联系二、减少加工间联系 尽量减少加工之间的联系尽量减少加工之间的联系(数据流数据流),提,提高加工的独立性。高加工的独立性。把加工间绝大部分的数把加工间绝大部分的数据流剥离下来通过文件转达据流剥离下来通过文件转达,这样做不但,这样做不但提高了加工的独立性,也使每一加工的数提高了加工的独立性,也使每一加工的数据处理都记录在案,便于查错。局部文件据处理都记录在案,便于查错。局部文件同时起到了隔离错误的作用,所以又称之同时起到了隔离错误的作用,所以又称之为为隔离文件隔离文件。隔离文件的例子隔离文件的例子文件的作用文件的作用1.减少加工间直接的数据传输量,提高减少加工间直接的数据传输量,提高加工的独立性;加工的独立性;2.隔离错误;隔离错误;3.减小加工间的耦合作用。减小加工间的耦合作用。三三、数据守恒、数据守恒随着加工的分解,数据流也被分解。但数据随着加工的分解,数据流也被分解。但数据流的分解必须是无损的,即数据守恒。数流的分解必须是无损的,即数据守恒。数据守恒加工的分解才是正确的。据守恒加工的分解才是正确的。判断数据守恒的方法:子图所有外部输入判断数据守恒的方法:子图所有外部输入(输输出出)数据流的合成是其父加工的所有输入数据流的合成是其父加工的所有输入(输出输出)数据流。如果在数据字典中有定义:数据流。如果在数据字典中有定义:考生信息考生信息考生姓名十准考证号十考试成考生姓名十准考证号十考试成绩绩+通讯地址,则两图肯定是平衡的通讯地址,则两图肯定是平衡的判断数据守恒判断数据守恒四四、关于文件、关于文件局部文件不影响数据守恒。在局部文件不影响数据守恒。在DFD中,中,下列情况应当设置文件。下列情况应当设置文件。1原始数据一定要设置文件保存原始数据一定要设置文件保存 2重要的、常用的数据。重要的、常用的数据。3剥离加工间的数据流时要设置文件。剥离加工间的数据流时要设置文件。一般地文件只与基本加工相联系。一般地文件只与基本加工相联系。4 在分析阶段只解决在分析阶段只解决“做什么做什么”的问的问题,所以题,所以DFD中的文件设计不能考虑中的文件设计不能考虑得过细。只要指出存储、读、写哪些得过细。只要指出存储、读、写哪些数据就可以了。系统内数据存储的统数据就可以了。系统内数据存储的统筹规划和各文件的数据结构的严格定筹规划和各文件的数据结构的严格定义,将在系统设计阶段统一安排。义,将在系统设计阶段统一安排。五五、分解的深度与宽度、分解的深度与宽度 逐层分解的终结点是基本加工。但深度和逐层分解的终结点是基本加工。但深度和宽度间互相影响,若每一层分解出的子加宽度间互相影响,若每一层分解出的子加工多工多,则可能在较少的层次内到达基本加工;则可能在较少的层次内到达基本加工;反之亦然。深度与宽度的关系可以考虑以反之亦然。深度与宽度的关系可以考虑以下因素:下因素:一个父加工分解产生的子加工,一般在一个父加工分解产生的子加工,一般在7土土2个左右。个左右。思考:既然子加工的个数是客观存在,为什思考:既然子加工的个数是客观存在,为什么又可以调整分解的宽度?么又可以调整分解的宽度?上层的分解可以适当快些,即分解出的子上层的分解可以适当快些,即分解出的子加工可以适当多些,因为上层是综合性描加工可以适当多些,因为上层是综合性描述,对可读性影响小,下层分解要慢些。述,对可读性影响小,下层分解要慢些。六六、均衡分解原则、均衡分解原则 尽量避免出现一些加工早巳分解成为基本尽量避免出现一些加工早巳分解成为基本加工,而另一些加工还需要好多层的分解加工,而另一些加工还需要好多层的分解才能到达基本加工。才能到达基本加工。4.2.3 分解加工的策略分解加工的策略DFD设计的关键是分解加工。但分解加工没设计的关键是分解加工。但分解加工没有规律可循,这给设计带来困难。初学者可有规律可循,这给设计带来困难。初学者可以参考以下分解策略:以参考以下分解策略:一是一是根据系统的功能项目分解。在详细调根据系统的功能项目分解。在详细调查后,经分析、总结,归纳出系统的若干功查后,经分析、总结,归纳出系统的若干功能项目,每个功能项目又有若干个子项目,能项目,每个功能项目又有若干个子项目,如此形成如此形成功能项目树功能项目树。分解加工时参照功能。分解加工时参照功能项目树逐级分解即可。项目树逐级分解即可。二是二是参考现行系统的组织机构图、功能体参考现行系统的组织机构图、功能体系图及业务流程图进行分解。在对现系统系图及业务流程图进行分解。在对现系统详细调查时,我们总结了五图二表。在设详细调查时,我们总结了五图二表。在设计新系统时要经常查阅这些资料计新系统时要经常查阅这些资料,仔细研究、仔细研究、启发思路。不但是在思路受阻时,即便设启发思路。不但是在思路受阻时,即便设计顺利也要经常用这些资料来校正自己的计顺利也要经常用这些资料来校正自己的设计,必要时再回用户中深入调查。设计,必要时再回用户中深入调查。功能需求:完成新生注册。包括检验入学功能需求:完成新生注册。包括检验入学手续,缴费,分班,分配宿舍等;对于手续,缴费,分班,分配宿舍等;对于在校生,要完成成绩登陆,奖惩记载,在校生,要完成成绩登陆,奖惩记载,调整班级等;对于毕业生要妥善保存所调整班级等;对于毕业生要妥善保存所有资料。系统应提供方便的资料查询功有资料。系统应提供方便的资料查询功能。能。例例4.1.做学籍管理的做学籍管理的DFD设计设计功能项目数功能项目数 DFD/0学籍管理学籍管理查询管理查询管理毕业处理毕业处理日常管理日常管理查询统计查询统计学籍变动学籍变动录入奖惩录入奖惩录入成绩录入成绩新生注册新生注册DFD/0第一步,画出顶层第一步,画出顶层DFD操作员操作员 0学籍管学籍管理理管理信息管理信息操作要求操作要求 *P1新生注册新生注册 P2在校生管在校生管理理 *P4查询统计查询统计 *P3毕业处理毕业处理F1 新生名单新生名单L1新生信息新生信息F2 宿舍库宿舍库F3 学籍库学籍库F4 档案库档案库F2 宿舍库宿舍库F4 档案库档案库F3 学籍库学籍库F2 宿舍库宿舍库F4 档案库档案库F3 学籍库学籍库L3毕业生名单毕业生名单L2在校生信息在校生信息L4查询要求查询要求L5查询结果查询结果F0 系统库系统库DFD/1MDFD的设计的设计1.MDFD有多少层,每层有几个加工与功能项目有多少层,每层有几个加工与功能项目树完全对应;树完全对应;2.每个加工应该如何设置数据流和文件?先列每个加工应该如何设置数据流和文件?先列出其各项操作,分析每一项操作需要的数据出其各项操作,分析每一项操作需要的数据流和文件。例如加工:新生注册要完成:流和文件。例如加工:新生注册要完成:v注册,要求输入新生信息与新生名单对照;注册,要求输入新生信息与新生名单对照;v分配班级:写学籍库、档案库;分配班级:写学籍库、档案库;v分配宿舍:写宿舍库分配宿舍:写宿舍库DFD/2处于系统责处于系统责任,增加对系任,增加对系统文件的维护统文件的维护功能。功能。设计五个数设计五个数据文件:录入据文件:录入名单、档案库、名单、档案库、课程库、成绩课程库、成绩库、毕业生库库、毕业生库 结束语当你尽了自己的最大努力时,失败也是伟大的,所以不要放弃,坚持就是正确的。When You Do Your Best,Failure Is Great,So DonT Give Up,Stick To The End谢谢大家荣幸这一路,与你同行ItS An Honor To Walk With You All The Way演讲人:XXXXXX 时 间:XX年XX月XX日
展开阅读全文