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