单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,软件工程,主讲教师,:,周宏生,第,17,课 习题讲解,总体设计,问题的定义,可行性分析,需求分析,问题的定义,计算机储蓄系统应具备两方面的功能:自动记录存款和取款,存款时,由业务员键入存款人的姓名、住址、存款类型、存款日期、存款金额、利率、并自动生成流水号,保存在“存款数据表”中。流水号和存款日期可作为将来查询、统计、取款时的主关键字,类型等可作为辅关键字。打印存单给用户。,问题的定义,取时,将上述信息输入到计算机中,计算机根据主关键字进行查找,如找到,计算利息并打印利息清单给用户;如没找到,则给出相应的出错信息。为简化问题,可以认为储户一次性将本金和利息全部取完,进行销户处理,应将其取款情况记录在“底帐”中。,可行性研究,1,、提取信息,源点,/,终点,业务员(源点),储户(终点),处理,处理事务(存款、取款),打印利息单,打印存款单,数据流,存款单:,姓名、住址、存款类型、存款金额、存款日期、利率、流水号,底账:,姓名、住址、存款类型、存款金额、存款日期、利率、流水号、存款日期、利息,数据存储,存款信息表,底账,可行性研究,2,、,数据流图,0,层数据流图,业务员,储蓄系统,储户,事务,存款单,利息清单,程序流程图实例,区分事务,处理存款,储户,处理取款,业务员,一层图,事务,存款单,取款单,存款单,利息清单,可行性研究,二层数据流图,(,自己写上数据流名,),打印,取款单,打印,存单,记录存款信息,计算,利息,业务员,区分,事务,接收取款事务,接收存款事务,更新存款记录,更新底账,储户,D1,存款信息,D2,底帐,可行性研究,3,、数据字典,名字:存款单,别名:存款信息,描述:客户在银行中存款的唯一凭证,定义:存款单,=,姓名,+,住址,+,存款类型,+,存款日期,+,存款金额,+,利率,+,流水号,位置:存款数据表,打印机,名字:姓名,别名:,描述:唯一识别存单持有人的合法性,定义:姓名,=4,字符,8,位置:存款单、取款单,可行性研究,名字:住址,别名:,描述:存单持有人的家庭住址,定义:住址,=1,字符,30,位置:存款单、取款单,名字:存款类型,别名:,描述:以何种方式存入银行,定义:存款类型,=2,数字,2,位置:存款单、取款单,可行性研究,名字:存款日期,别名:,描述:款项存入银行日期,定义:存款日期,=8,数字,8,位置:存款单、取款单,名字:存款金额,别名:,描述:开户时存款的多少,定义:存款金额,=1,数字,10,位置:存款单、取款单,可行性研究,名字:利率,别名:,描述:单位时间内应得的利息,定义:利率,=1,数字,6,位置:存款单、取款单,名字:流水号,别名:,描述:某日内存款的序号,定义:流水号,=1,数字,4,位置:存款单、取款单,可行性研究,名字:,取款单,别名:,底账,描述:客户在银行存款期间内应得到的利息,定义:取款单,=,存款单,+,取款日期,+,利息,位置:底账,打印机,可行性研究,名字:取款日期,别名:,描述:何时将款取出银行,定义:取款日期,=8,数字,8,位置:取款单,名字:利息,别名:,描述:存取款期间内应得利息总计,定义:利息,=1,数字,8,位置:取款单,可行性研究,4,、,E-R,图,(,自己加上属性,),储户,储蓄所,存取款,m,n,需求分析,1,、确定系统的综合要求,A,、功能要求:,打印存款单和取款单,计算不同情况利息,自动保存存款和取款信息以备将来统计、查询之用。,B,、性能要求:,接受处理一个事务不能超过,10,秒。,一条存款记录为,68,个字节。,一条取款记录为,84,个字节。,可根据全年业务总量估算外存储器的容量。,需求分析,C,、运行环境要求:,根据目前流行机型本系统应在奔腾以上计算机上运行。,WindowsXP,操作系统,数据库任选。,D,、将来可能提出的要求,统计、查询、分类汇总、数据库的整理等。,需求分析,2,、系统的数据要求:,为计算利息并判断输入事务的合法性,在外存中存放一张存款类型、利率对照表,结构如下:,需求分析,存款类型,类型编码,利率,活期存款,01,定期三个月,11,定期半年,12,定期一年,13,定期二年,14,定期三年,15,定期五年,16,定期八年,17,定活两便,21,需求分析,3,、系统逻辑模型(数据流图),打印,取款单,打印,存单,记录存款信息,计算,利息,业务员,区分,事务,接收取款事务,接收存款事务,更新存款记录,更新底账,储户,D1,存款信息,D2,底帐,D3,利息对照表,需求分析,4,、系统的顶层,IPO,图,存款处理的,IPO,图:,当天存款记录,存款事务,1,、,生成流水号,2,、,校验事务记录,3,、,更新存款记录,有效事务记录,更新后的存款记录,需求分析,取款处理的,IPO,图:,有效取款事务,更新后的底帐,更新后的存款记录,1,、,校验事务记录,2,、,计算利息,3,、,更新底帐,4,、,更新存款记录,取款事务,存款信息,底帐,总体设计,1,、影射方案,校验、显示错误,处理存款,接收存款,生成流水号,存款控制,打印存款单,打印存款单,校验、显示错误,计算利息,生成取款记录,销户,取款控制,主控模块,总体设计,2,、优化,为减少耦合,也为了使和作用域小于控制域,“校验”和“接收存款”、“校验”和“接收取款”应合为一个模块。,“销户”太小,应和“生成取款记录”合为一个模块。,“生成流水号”、“处理存款”都是对,D1,操作,可合为一个模块。,总体设计,接收取款,校验,提示出错,3.1,计算利息,3.2,打印存款单,3.4,生成取款记录,销户,3.3,取款控制,2.1,接收存款,校验,提示出错,2.1,生成流水号,处理存款,2.2,打印存款单,2.3,主控模块,1.0,存款控制,2.0,总体设计,3,、模块描述,总控模块,1.0 main,:本模块是一个运行菜单,含有存款处理、取款处理、退出三项。,单击“存款处理,”,,运行“存款控制”模块,2.0,单击“取款处理,”,,运行“取款控制”模块,2.1,单击“退出,”,,返回到操作系统。,总体设计,存款控制模块,2.0,在此界面上有输入存款单各项的控件和“确定”,“打印”,“返回”三个命令按钮。,其中:单击“确定”完成流水号的生成、将输入的数据存盘(处理存款)的工作。即模块,2.2,。单击“打印”完成打印存款单。,输入数据的校验可以使用相应事件动态完成。,总体设计,取款控制模块,2.1,在此界面上有输入存款单各项、取款时间的控件和“确定”,“打印”,“返回”三个命令按钮。,其中:单击“确定”后、以存款日期和流水号为主关键字在存款数据库中查找,如找到则比较其他各项确定输入的合法性,合法后则依次执行模块,3.2,,,3.3,;如查不到或不合法则给出错误提示,并将焦点回到姓名处重新输入。,单击“打印”完成取款单的打印工作。即模块,3.4,单击“返回”释放返回主菜单。,Try Your Best!,