第四章 结构化分析与建模(二)4.1 需求建模概述与结构化建模4.2 数据模型与ER图本章结构本章结构4.3 功能模型-数据流图4.4 行为模型-状态转换图4.5 数据字典4.6 判定表和判定树4.4 状态迁移图状态迁移图n行行为建模建模给出需求分析方法的所有操作原出需求分析方法的所有操作原则n状状态——迁移迁移图(STD)(STD)或状或状态——迁移表来描迁移表来描述系述系统或或对象的状象的状态,以及,以及导致系致系统或或对象的状象的状态改改变的事件,从而描述系的事件,从而描述系统的行的行为 4.44.4 状态转换图状态转换图v所有软件系统都包括功能行为、数据操作和状态所有软件系统都包括功能行为、数据操作和状态改变实时系统和过程控制应用程序可以在任何改变实时系统和过程控制应用程序可以在任何给定的时间内以有限状态中的某一种状态存在给定的时间内以有限状态中的某一种状态存在v用状态转换图用状态转换图(State Transition Diagram(State Transition Diagram,,STD)STD)可以简洁、完整、无歧义地表示有限状态机可以简洁、完整、无歧义地表示有限状态机。
v一种相关的技术是统一建模语言一种相关的技术是统一建模语言(Unified (Unified Modeling LanguageModeling Language,,UML)UML)中的状态流程图中的状态流程图状态转换图包括如下状态转换图包括如下3 3种元素:种元素:–可能的系统状态,可能的系统状态,用矩形框用矩形框(圆形框)(圆形框)来来表示–允许的状态改变或迁移,用箭头连接一对允许的状态改变或迁移,用箭头连接一对矩形框表示矩形框表示–引起每个状态转换的事件或条件,在每个引起每个状态转换的事件或条件,在每个迁移箭头上用文本标签来表示迁移箭头上用文本标签来表示状态迁移图状态迁移图举例:状态(占线、闲置、接通中)图书状态(新书、可被借阅、被删除、被预定、被借出)选课状态图选课状态图图图4-4-1 “4-4-1 “化学制品跟踪系统化学制品跟踪系统””中化学制品请求的状态转换图中化学制品请求的状态转换图第四章 结构化分析与建模(二)4.1 需求建模概述与结构化建模4.2 数据模型与ER图本章结构本章结构4.3 功能模型-数据流图4.4 行为模型-状态转换图4.5 数据字典(词典)数据字典(词典)4.6 判定表和判定树数据词典数据词典n数据数据词典与数据流典与数据流图配合,能清楚地表达配合,能清楚地表达数据数据处理的要求。
理的要求n数据数据词典精确地、典精确地、严格地定格地定义了每一个与了每一个与系系统相关的数据元素,并以字典式相关的数据元素,并以字典式顺序将序将它它们组织起来,使得用起来,使得用户和分析和分析员对所有所有的的输入、入、输出、存出、存储成分和中成分和中间计算有共算有共同的理解同的理解 数据词典数据词典 词条描述条描述 ———— 对于在数据流于在数据流图中每一个被命名中每一个被命名的的图形元素,均加以定形元素,均加以定义,其内容有,其内容有: : 名字名字,,别名或名或编号号,,分分类,,描述描述,,定定义,,位置位置,,其它其它等等名字名字:定货报表定货报表别名别名:定货信息定货信息描述描述:每天一次送给采购员的需要定货的零每天一次送给采购员的需要定货的零件表件表定义定义:定货报表定货报表=零件编号零件编号+零件名称零件名称+定货数定货数量量+目前价格目前价格+主要供应者主要供应者+次要供应者次要供应者位置位置:输出到打印机输出到打印机数数据据结结构构的的描描述述 符符 号号 含含 义义 举举 例例 == 被定义为被定义为 ++ 与与 x = a++b[...,...] 或或 [...|...] 或或 x = [a , b],,x = [a | b](两或多个选一两或多个选一){ ... }或或 m{...}n 重复重复 x = {a},, x = 3{a}8(...) 可选或不选可选或不选 x = (a)“...” 基本数据元素基本数据元素 x = “a” 取值 取值a .. 连结符连结符 x = 1..9 取任一值 取任一值 x取到取到1至至9之中的任一值。
之中的任一值数据词典数据词典例例:存折格式的数据结构存折格式的数据结构数据词典数据词典存折存折==户名+所号+名+所号+帐号+开号+开户日+性日+性质++( (印密印密) )++1{1{存取存取行行}50}50户名名==2{2{字母字母}24}24所号所号==““001001””....““999999”” 帐号号==““0000000100000001””....““9999999999999999””开开户日日=年+月+日=年+月+日性性质==““1 1””....““6 6”” 注:注:““1 1””表示普通表示普通户,,““5 5””表示工表示工资户等等印密印密==““0 0”” 注:印密在存折上不注:印密在存折上不显示示存取行存取行=日期+(摘要)+支出+存入+余=日期+(摘要)+支出+存入+余额+操作+复+操作+复核核#0421#0421数据词典数据词典DFD与数据字典的配合与数据字典的配合为方便储户,某银行拟开发计算机储蓄系统,储户填写的存为方便储户,某银行拟开发计算机储蓄系统,储户填写的存款单或取款单由业务员键入系统,如果是存款,系统记录存款单或取款单由业务员键入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率的信息,并打款人姓名、住址、存款类型、存款日期、利率的信息,并打印出存款单给用户;如果是取款,系统计算利息并打印出利印出存款单给用户;如果是取款,系统计算利息并打印出利息清单给用户。
给出相应的数据流图和数据字典息清单给用户给出相应的数据流图和数据字典储储户户检验检验登录登录存款存款处理处理付款付款处理处理计时器计时器储储户户 帐卡帐卡 帐卡信息帐卡信息 存款凭证存款凭证付款付款信息信息结算单结算单月日时月日时存存/ /取款信息取款信息存款单存款单取款单取款单检验出的检验出的问题问题存折存折数据元素-取款数据元素-取款单n数据流名称:数据流名称:取款取款单n别名:无名:无n简述:述:顾客取款客取款时填写的填写的单据据n来源:来源:顾客客n去向:去向:检验n数据流量:数据流量:200份份/天天n组成:日期+取款金成:日期+取款金额+姓名+地址+取款+姓名+地址+取款类型型+密密码++账号号数据元素-核数据元素-核查n加工名:加工名:检验n编号:号:XXXXn激激发条件:接受取款条件:接受取款单n输入:取款入:取款单n输出:出:认定的合格的取款信息定的合格的取款信息n加工加工逻辑:根据:根据账卡及用卡及用户取款取款单据据 if 单据=存款据=存款单 then 存款 存款单据是否填写据是否填写规范范 else 审核是否核是否为有效取款有效取款单,取款金,取款金额不得超出存款金不得超出存款金额,密,密码是否是否正确。
正确第四章第四章 结构化分析与建模(二)构化分析与建模(二)4.1 需求建模概述与结构化建模4.2 数据模型与ER图本章结构本章结构4.3 功能模型-数据流图4.4 行为模型-状态转换图4.5 数据字典4.6 判定表和判定树 DFD中一些逻辑上比较复杂的处理,有必要中一些逻辑上比较复杂的处理,有必要运用一些描述处理逻辑的工具来加以说明,理想的运用一些描述处理逻辑的工具来加以说明,理想的描述既容易被人们理解,又比较严格和精确目前描述既容易被人们理解,又比较严格和精确目前常用常用结构化语言、判定表和判定树结构化语言、判定表和判定树三种工具来描述三种工具来描述4.6 处理功能的描述工具1.结构化语言结构化语言–简单的祈使语句简单的祈使语句l指指明明要要做做的的事事情情((如如DFD图图和和需需求求功功能能说说明明)),,它它至至少少要要包包括括一一个个动动词词,,明明确确地地指指出出执执行行的的功功能能,,至至少少要要包括一个名词作为宾语,表示动作的对象包括一个名词作为宾语,表示动作的对象l例例如如,,“检检验验取取款款单单”、、“登登录录存存折折”、、“计计算算平平均均成绩成绩”、、“获得获得职工姓名职工姓名”等。
等4.6 处理功能的描述工具1.结构语言结构语言–判判断断语语句句::在在处处理理功功能能中中常常常常需需要要对对根根据据某某一一条条件件的的不不同同结结论论执执行行不不同同的的处处理理动动作作进进行行描描述述,,为为此此,,可可以以用用判判断句来实现断句来实现如果质量合格率大于如果质量合格率大于99% 如果出勤好 如果出勤好 则获得一等奖金 则获得一等奖金 否则获得二等奖金 否则获得二等奖金如果质量合格率小于如果质量合格率小于99%且大于%且大于80% 如果出勤好 如果出勤好 则获得二等奖金 则获得二等奖金 否则获得三等奖金 否则获得三等奖金4.6 数据处理的描述工具1.结构语言结构语言–循循环环语语句句::循循环环语语句句是是指指在在某某种种条条件件下下,,连连续续执执行行相相同同的的动动作作,,直直到到这这个个条条件件不不成成立立为为止止它它也也可可以以用用来来明明确确地指出对每一件相同的事务都执行同一个动作地指出对每一件相同的事务都执行同一个动作 例如:对每一储户,循环计算 例如:对每一储户,循环计算 利息 利息4.6 数据处理的描述工具 4.64.6 判定表和判定树判定表和判定树v当逻辑和判定过程很复杂时,我们可以选用当逻辑和判定过程很复杂时,我们可以选用判判定表和判定树定表和判定树这两种技术来表示系统应该做什这两种技术来表示系统应该做什么。
么v判定表判定表(decision table)(decision table)可列出影响系统行为可列出影响系统行为的所有因素的各种取值,并表明对这些因素的的所有因素的各种取值,并表明对这些因素的每一种组合所期望的系统响应动作每一种组合所期望的系统响应动作v判定表和判定树是编写需求文档判定表和判定树是编写需求文档( (或业务规则或业务规则) )的两种很有用的方法,采用这两种方法可以避的两种很有用的方法,采用这两种方法可以避免遗漏任何条件组合免遗漏任何条件组合判定表判定表n如果数据流如果数据流图的加工需要依的加工需要依赖于于多个多个逻辑条件条件的取的取值,使用判定表来描述比,使用判定表来描述比较合适例:一图书销售系统,其中一操作为例:一图书销售系统,其中一操作为““优惠处理优惠处理””,条件是:,条件是:顾客的营业额大于顾客的营业额大于10001000元,同时必须信誉好,或者虽然信誉元,同时必须信誉好,或者虽然信誉不好,但是不好,但是2020年以上的老主顾年以上的老主顾1 2 3 41 2 3 4> >10001000元元 Y Y Y Y N Y Y N 信誉好信誉好 Y N N - Y N N - > >20 20 年年 - Y N - - Y N - 优优 惠惠 X X X X 正正 常常 X X X X 化化简简后后 1 2 3 4 5 6 7 81 2 3 4 5 6 7 8 > >10001000元元 Y Y Y Y Y N N N N Y Y Y N N N N 信誉好信誉好 Y Y N N Y Y N NY Y N N Y Y N N> >20 20 年年 Y N Y N Y N Y NY N Y N Y N Y N优优 惠惠 X X XX X X正正 常常 X X X X XX X X X XY-Y-满足条件满足条件 N N- -不满足条件不满足条件 X-X-选中判定的结论选中判定的结论判定表判定表应用举例应用举例以以“检查发货单检查发货单”为例为例营业额营业额> > 10001000元元≤ ≤ 10001000元元 正常处理正常处理好的支付信誉好的支付信誉 优惠处理优惠处理坏的支付信誉坏的支付信誉 > 20> 20年年 优惠处理优惠处理 < 20< 20年年 正常处理正常处理如上例图书销售系统如上例图书销售系统判 定 树判 定 树检检查查发发货货单单金额金额>$500>$500金额金额 $500$500 欠款欠款>60>60天天不发出批准书不发出批准书 欠款欠款 6060天天发货单发货单发出批准书、发出批准书、 欠款欠款>60>60天天发出批准书、发出批准书、发货单及赊欠报告发货单及赊欠报告 欠款欠款 6060天天发出批准书、发出批准书、发货单发货单判断判断树。