“先全局后局部,先整体后细节,先抽象后具体”通常可将这种分层的DFD图,分为顶层、中间层、底层。具体步骤:1。先确定系统范围,画出顶层的DFD图。2。逐层分解顶层DFD图,获得若干中间层DFD图。3。画出底层的DFD图。2.2.3画分层DFD图的方法顶层图说明了系统的边界,即系统的输入和输出数据流,顶层图只有一张。底层图由一些不能再分解的加工组成,这些加工都已足够简单,称为基本加工。在顶层和底层之间的是中间层。中间层的数据流图描述了某个加工的分解,而它的组成部分又要进一步分解。画各层DFD图时,“由外向内”。X1321.11.21.41.32.12.21.1.11.1.22.1.32.1.22.1.12.2.22.2.32.2.1顶层中间层底层先全局后局部,先整体后细节,先抽象后具体.0图1图2图1.1图2.1图2.2图分层DFD图经过初步的需求分析,得到系统功能要求:1、监视病员的病症(血压、体温、脉搏等)。2、定时更新病历。3、病员出现异常情况时报警。4、随机地产生某一病员的病情报告。2.2.4实例:医院病房监护系统产生病情报告监视病情更新病历2.2.4实例:医院病房监护系统系统功能要求:1、监视病员的病症(血压、体温、脉搏等)2、定时更新病历3、病员出现异常情况时报警。4、随机地产生某一病员的病情报告。顶层:病员护士护士病员监护系统病员日志病症信号要求报告病症报告报警例2医院病房监护系统第一层:病员护士护士中央监视病员日志病症信号要求报告病症报告报警局部监视生成报告病员极限更新日志病员数据格式化病员数据生理信号极限值1324日志数据日志数据医院病房监护系统顶层DFD图第二层:加工“中央监视”分解计算超过极限值否病员数据超过极限值报警开解信号产生报警信息病员极限格式化病员数据体温血压、体温脉搏生理信号极限值时间脉搏血压日期时钟格式化病员数据3.13.23.33.4医院病房监护系统二层DFD图计算超过极限值否病员数据超过极限值报警开解信号产生报警信息病员极限格式化病员数据体温生理信号极限值时间脉搏血压日期时钟格式化病员数据3.13.23.33.4第二层:加工“中央监视”分解医院病房监护系统分层DFD图图2..15第一层格式化病员数据生理信号极限值病员护士护士中央监视病员日志病症报告局部监视生成报告病员极限更新日志病员数据1324日志数据图2..16加工分解的原则自然性:概念上合理、清晰;均匀性:理想的分解是将一个问题分解成大小均匀的几个部分;分解度:一般每一个加工每次分解最多不要超过7个子加工,分解应分解到基本加工为止。2.2.5画分层DFD图的基本原则数据守恒与数据封闭原则所谓数据守恒是指加工的输入输出数据流是否匹配,即每一个加工既有输入数据流又有输出数据流。或者说一个加工至少有一个输入数据流,一个输出数据流。数据封闭是对整个系统而言。合理使用文件当文件作为某些加工之间的交界面时,文件必须画出来,一旦文件作为数据流图中的一个独立成份画出来了,那么他同其他成份之间的联系也应同时表达出来。DFD图不是流程图,不表示软件的控制流程。2.2.5画分层DFD图的基本原则子图与父图的“平衡”父图中某个加工的输入输出数据流应该同相应的子图的输入输出相同(相对应),分层数据流图的这种特点称为子图与父图“平衡”。2.2.6分层DFD图的改进DFD图必须经过反复修改,才能获得最终的目标系统的逻辑模型(目标系统的DFD图)。可从以下方面考虑DFD图的改进:1、检查数据流的正确性①数据守恒②子图、父图的平衡③文件使用是否合理。特别注意输入/出文件的数据流。2、改进DFD图的易理解性①简化加工之间的联系(加工间的数据流越少,独立性越强,易理解性越好)。②改进分解的均匀性。③适当命名(各成分名称无二义性,准确、具体)。分层数据流图只是表达了系统的“分解”,为了完整地描述这个系统,还需借助“数据词典”和“小说明”对图中的每个数据和加工给出解释。对数据流图中包含的所有元素的定义的集合构成了数据词典。词典中可有以下四种类型的条目:2.2.7数据词典(DD)数据流文件数据项加工A、数据流条目给出某个数据流的定义,通常是列出该数据流的各组成数据项。例如:报名单=姓名+单位名+年龄+性别+课程名常用符号:=、+、[|]、{}、()、C、数据项条目数据项条目给出某个数据单项的定义,通常是数据项的值类型,允许的取值范围。B、文件条目给出某个文件的定义,同数据流一样,文件的定义通常是列出文件记录的组成数据流例如某销售系统的订单文件:订单文件=订单编号+顾客名称+产品名称+订货数量+交货日期D.加工条目加工类条目就是“加工小说明”。一般应该单独列出。nm{...}2.2.8加工说明结构化语言判定表判定树对数据流图中每一个不能再分解的基本加工都必须有一个小说明给出这个加工的精确描述。小说明中应精确地描述加工的激发条件、加工逻辑、优先级、执行频率和出错处理等。加工逻辑是其中最基本的部分,是指用户对这个加工的逻辑要求。对基本加工说明有三种描述方式:结构化语言是介于自然语言和形式语言之间的一种半形式语言,它是自然语言的一个受限制的子集。一般分为两层结构:外层语法较具体,为控制结构(顺序、选择、循环),内层较灵活,表达“做什么”。一、结构化语言例如:外层可为以下结构:1、顺序结构2、选择结构IF–THEN-ELSE;CASE-OF-ENDCASE;3、循环结构WHILE-DO;REPEAT-UNTIL例:一图书销售系统,其中一加工为“优惠处理”,条件是:顾客的营业额大于1000元,同时必须信誉好,或者虽然信誉不好,但是20年以上的老主顾。应用举例用结构化语言来描述:如果营业额大于1000元同时如果信誉好则优惠处理。否则正常处理。否则信誉不好但是20年以上的老主顾,则优惠处理。否则营业额小于、等于1000元则正常处理。显然,用结构化语言来描述组合条件不清晰。判定表是一种二维的表格,常用于较复杂的组合条件(与结构化语言比较)。条件框条件条目操作框操作条目二、判定表特点:可处理较复杂的组合条件,但不易理解.不易输入计算机。通常由四部分组成。条件框—条件定义。操作框—操作的定义。条件条目—各条件的取值及组合。操作条目—在各条件取值组合下所执行的操作。例如:对商店每天的营业额所收税率营业额X(¥)1000≤X50005000≤X10000X≥10000税率5%8%10%例:一图书销售系统,其中一加工为“优惠处理”,条件是:顾客的营业额大于1000元,同时必须信誉好,或者虽然信誉不好,但是20年以上的老主顾。12341000元YYYN信誉好YNN-20年-YN-优惠XX正常XX化简后123456781000元YYYYNNNN信誉好YYNNYYNN20年YNYNYNYN优惠XXX正常XXXXXY-满足条件N-不满足条件X-选中判定的结论判定表应用举例特点:描述一般组合条件较清晰,易理解。不易输入计算机。营业额1000元≤1000元正常处理好的支付信誉优惠处理坏的支付信誉20年优惠处理20年正常处理如上例三、判定树