软件工程课程设计
——银行储蓄系统
专 业:软件工程 年 级:软0642级 姓 名:王成成 学 号:069184581 指导教师:李伟
2009年 6月4日)
(
银 行 储 蓄 系 统
可行性分析报告
1 引言
1.1 编写目的
经过对该银行储蓄系统项目进行详细调查研究,初拟系统实现报告,对软件开发中将要面临的问题及其解决方案进行可行性分析。明确开发风险及其所带来的经济效益。本报告经审核后,交由软件经理审查。 1.2 背景
项目名称:银行计算机储蓄系统 用户:安徽省马鞍山市建设银行
说明:现在的银行储蓄系统工作效率低,不能满足广大人民群众的要,人们希望能更方便更省时地办理储蓄业务。在这样的背景下,切需要建立一个新的、高效的、方便的计算机储蓄系统。 1. 3 参考资料
《软件工程导论(第四版)》 张海藩 编着 清华大学出版社出版 《软件工程》 任胜兵 邢琳 编着 北京邮电大学出版社 2 可行性研究的前提 2.1 基本要求 2.1.1 功能要求
此系统所要完成的主要功能有两方面:
储户填写存款单或取款单交给业务员键入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,完成后由系统打印存款单给储户。
如果是取款,业务员把取款金额输入系统并要求储户输入密码以确认身份,核对密码正确无误后系统计算利息并印出利息清单给储户。 2.1.2 性能要求
为了满足储户的要求,系统必须要有高的运作速度,储户填写的表单输入到系统,系统必须能快速及时作出响应,迅速处理各项数据、信息,显示出所有必需信息并打印出各项清单,所以要求很高的信息量速度和大的主存容量;由于要存贮大量的数据和信息,也要有足够大的磁盘容量;另外,银行计算机储蓄系统必须有可靠的安全措施,以保证储户的存储安全。 2.1.3 接口要求
业务员键入储户的资料要全部一直显示在屏幕上;储户键入密码到系统以核对;计算机与打印机有高速传输的连接接口,最后以纸张的形式打印出清单给储户。 2.1.4 输入要求
业务员从存取款表单输入数据,要迅速精确,适当调整输入时间,不能让客户等太久,但也不能让业务员太过忙碌以免影响正确率,造成用户损失。 2.1.5 输出要求
要求快速准确地打印出存款或取款清单给客户。 2.2 开发目标 近期目标:
第一年内在一个银行建立一个银行内部计算机储蓄系统,初步实现银行储蓄系统计算机化,并保证该银行能够按期望顺利完成工作。 长期目标:
希望在三至四年内,在国内银行中建立该计算机储蓄系统,促进银行间的互联合作,实现银行储蓄系统的计算机管理体制,提高银行储蓄系统的整体水平;并实现银行储蓄系统的高效性、方便性、实用性、互联性,给储蓄用户带来方便和益处,从而提高银行的信用度,提高银行公司的经济效益和社会效益。
2.3 限制条件
2.3.1 开发时间(只限于近期目标) 预定为半年
2.3.2 运行环境 Windows xp 及以上操作系统、数据库:Microsoft SQL Server 2000 2.3.3 使用寿命 该系统至少使用四年以上。 2.3.4进行可行性研究的方法
采用调查方法:通过对银行业务员和客户的调查以获得第一手资料,确定客户和实际应用中的需求;然后经过座谈或开会的形式和专家以及银行经理交谈,落实最后的问题定义。 3 对现有系统的分析
当前大多数银行所使用的银行储蓄系统办理业务时手续繁多,人工业务操作过多,严重影响了工作效率,且出错率高,以至客户等待办理手续过长感到不耐烦,降低了银行效率。 3.1 当前系统的处理流程和数据流程(系统流程图)
储户取款时不能直接取款,要先填取款表,交给业务员输入资料,再由储户输入密码以确认身份,还要在取款表单上签名以再次确认,最后才业务员才把现金交给储户: 系统流程图
3.2 工作负荷
由于办理手续的繁多和不合理,工作效率非常低,需要大量业务员,通常有储户等待排成长龙的现象,这给工作人员增加了非常大的负担和额外的工作负荷;同时也给银行公司的发展带来了严重的制约和压力。 3.3 人员
需要大量业务员和额外的工作人员。 3.4 局限性
当前系统办理业务的流程导致了一个很大的问题:工作效率极其低。因此急需开发一个高效的银行计算机储蓄系统。 4建议的新系统 4.1 对新系统的说明
根据系统目标以及现行系统存在的问题,建议新系统分两步实现:
第一阶段(1年内)先在一个银行建立一个内部的网络,以实现银行储蓄系统的计算机化。能够处理以下工作:本行内的银行卡在各分行可提款;及时办理业务;提高工作效率。
第二阶段(2~4年)在全国多家银行间建立一个互联的网络系统,实现银行储蓄管理系统的信息集成,完成后的系统可以实现在各行间互存取款,且操作方便简单迅速。 4.2 新系统的数据流程和处理流程
4. 2. 1. 2 取款流程图
4. 2. 2 数据字典
4.3 改进
用银行卡可以直接在柜台或提款机取款; 在柜台取款时第一次输入密码核对正确后即可办理取款; 免去了再次签名确认身份的手续; 如果增加自动存款机后, 储户可直接在存款机存款, 免去填表手续, 提高了工作效率。
4.4 新系统的影响 4.4.1 对现行系统的影响
第一阶段最主要的影响是大大提高了银行的工作效率,以适应银行储蓄系统管理的计算机化,方便了用户存取款。
第二阶段将要实现全国范围里多家银行间的互联,实现多家银行信息的集成,向储户提供一个方便、简单、及时、随时随地可以存取款的互联的现代计算机化的网络系统。 4.4.2 对银行业务员的影响
可以大大减少工作人员,节约人力资源的开销,但增加了失业率;另一方面由于手续程序减少也可以减轻业务员的工作负担,有效地提高了整体的工作效率和精确度。 4.4.3 对客户的影响
减少了储户办理业务的等待时间;用户可以随时随地存取款,并且操作简单易懂;用户还可以选择在柜台办理业务或自己在自动提款机和自动取款机办理业务。 4.5 局限性
由于时间和经济方面的限制,在开发的一两年内只能实现某一银行储蓄系统的计算机化,有望在第二阶段实现更广阔的互联网。
4.6 技术条件方面的可行性
开发系统的计算机硬件已经非常普及,能够适应银行系统的快速和大容量存储,硬件方面完全没有问题;现在的计算机各方面的技术都非常成熟,相对来说开发此系统的技术也要求比较简单,因此在技术方面是可行的;同时银行还必须有一定量的系统管理和维护的专业人员,在这方面可以通过培训原来的技术人员成为新的需要的技术人员,也可以雇用所需这方面的专业技术员;若按计划,在规定的期限内,本系统的开发是可以完成的。
5 可供选择的其他系统方案
可以采用一步到位的方法。但由于一步到位对现行系统的影响比较大,实施的条件不够成熟,因而不建议。 6
投资及收益分析
6.1 投资估计(限于一个分行) 6.1.1 基础投资 正版软件 1000元
Microsoft SQL Server 2000 20万元 网络设备 10万元
机器设备(假设有五个窗口) 15万元 辅助设备 15万元 共计约 61万元
其它投资 业务员工资 300万元/五年 培训技术员 6万元
维护费用 10万元 不可知费用 15万元 共计 331万元 投资共计约 391万元 6.2 收益分析
6.2.1 精减人员收益
减少人员10人(5000元/月)五年收益: (按利息率1%) 5000*12*(1.1-1+(1.1)-2++„+(1.1)-55)*10*5=1137 万元 6.2.2 整体收入增加
由于工作效率的提高,业务员出错率降底及服务质量的提高和储户的不断增加,每年可以增加10%的收益(假设当前收益是3000万/年):
3000万*(0.1*1.1-1+(1.12 –1)*(1.1)-2++„+(1.15 -1)*(1.1)-55)*5=19500万 共计收益 20637万元6.3
收益/投资比 20637元/391元=53 投资回收周期为一年
7社会方面的可行性 7.1 法律方面的可行性 全部软件购买正版
机器设置通过正当途径购得 7.2用户可行性
开发的系统操作要非常简单,以便适合各类人群都可以很方便操作使用。还有,要有经过培训的专业人员指导,以便当储户有什么疑难问题时能及时得到正确的答复。需求分析
1. 引言 1.1编写目的
本报告的目的是规范化本软件的编写,旨在于提高软件开发过程中的能见度,便于对软件开发过程中的控制与管理,同时提出了本银行储蓄系统的软件开发过程,便于程序员与客户之间的交流、协作,并作为工作成果的原始依据,同时也表明了本软件的共性,以期能够获得更大范围的应用 此文档进一步定制软件开发的细节问题,明确软件需求、安排项目规划与进度、组织软件开发与测试,便于用户与开发商协调工作。本文档面向的读者主要是项目委托单位的管理人员、设计人员和开发人员,希望能使本软件开发工作更具体 1.2项目背景
软件名称:银行储蓄系统 委托单位:银行
开发单位:安工大工商学院 主管:王成成 1.3定义
银行储蓄应用系统软件:基本元素为构成银行储蓄及相关行为所必须的各种部分。
需求:用户解决问题或达到目标所需的条件或功能;系统或系统部件要满足合同、标准,规范或其它正式规定文档所需具有的条件或权能。
需求分析:包括提炼,分析和仔细审查已收集到的需求,以确保所有的风险承担者都明其含义并找出其中的错误,遗憾或其它不足的地方。
模块的独立性:是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其他的模块的接口是简单的. 1.4参考资料
《软件工程——原理,方法与应用》 吴钦藩 编着 人民交通出版社出版 《软件工程导论(第四版)》 张海藩 编着 清华大学出版社出版 《软件工程》 任胜兵 邢琳 编着 北京邮电大学出版社 2.任务概述 2.1目标
完善目前银行储蓄系统,使之能跟上时代的发展。同时通过实践来提高自己动手能力
2.2运行环境操作系统: Windows XP, 支持环境:IIS 5.0,数据库:Microsoft SQL Server 2000 2.3条件与限制硬件配置要求: 硬件外部设备需奔腾133以上的pc 机,内存需16兆以上 软件要求操作人员具有初步的相关知识
由于本系统为即时软件,对数据的同步要求较高,建议配置网络时使用可靠性较高的相关网络硬件设施。 银行以记时器记时完毕触发利息结算;对用户取款额未做上限约束;各间银行采用集中控制。
有效证件仅为身份证,牵涉到开户、撤户、挂失、取款时客户必须提供身份证号;存款及余额查询时不需提供身份证号。
不考虑系统的运行平台可能会出现的硬件故障。 3.数据描述 3.1静态数据
包括系统登录密码, 各数据库所在位置, 系统分析原始数据。 3.2动态数据 输入数据:
姓名,年龄,性别,身份证号,地址,帐号,密码 输出数据:
姓名,年龄,性别,身份证号,地址,帐号,密码,交易金额,余额,交易时间,交易号码
3.3数据库介绍
采用JDBC 技术连接使用SQL SERVER 2000 来设计数据库。 数据库名称:Banksystem ,其中有三张表,它们是:
customer (customername,customerid,bankname,yewuyuanid,cunkuancount,qukuancount, shengyucount,ratevalue,shouxucount) bank (bankname,yewuyuanid) time (cunkuandate,qukuandate) E-R 图:
系统的层次方框图:
存取款IPO 表:
系统的顶层数据流图:
3.5数据采集
包括储户信息和帐户信息。
储户信息:姓名,性别,身份证号码,地址,联系电话等。
帐户信息:帐户号码,帐户密码,开户时间,储蓄金额,储蓄类型等
4.功能需求4.1功能划分软件分别有新建,修改,查询,更新等功能。各个模块各有不同的功能,但都能完成查询和存储功能,各模块的数据都存放在数据库中。数据的调用和连接都有程序来完成。
此系统所要完成的主要功能有两方面:如果是存款,储户填写存款单,然后交给业务员键入系统,同时系统还要记录存款人姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、利率及密码(可选)等信息,完成后由系统打印存款单给储户。如果是取款,储户填写取款单交给业务员,业务员把取款金额输入系统并要求储户输入密码以确认身份,核对密码正确无误后系统计算利息并印出利息清单给储户。 4.2功能描述
外部功能:实现可视化窗口,查找及存储 内部功能:同步,过滤,定位,识别 存款功能
以储户的存款为主要活动,相关记录根据存款结果进行调整,以使信息保持一致。
1.系统需要在原账户信息中增加一条记录,包括存款人姓名、住址、存款类型、存款日期、利率等信息。 2.若为新储户须建立一个账户,并记录此次的记录。
3.打印存款单给储户。
存款状态转换图: 取款状态转换图:
取款功能
以储户的取款为主要活动,相关记录根据取款结果进行调整,以使信息保持一致。 1.系统计算利息,在原账户信息中将取款额减去。
2. 若为清户,记录注销该账户,将账户余额(包括存款额及利息)一并交与储户。 3.打印利息清单给储户。 余额查询功能
为储户提供查询余额服务,将储户的相关记录输出。 1.需要储户的账户信息及密码。 2.打印储户的帐户余额。 5.性能需求 5.1数据精确度
在进行向数据库文件提取数据时,要求数据记录定位准确,在往数据库文件数组中添加数时,要求输入数准确金额,身份证,卡号等按需求设定字符数。 5.2时间特性
程序响应时间:在人的感觉和视觉事件范围内;
信息交换时间:要求在程序调用前调用后都与数据库保持同步更新,网络信息交换施加应该小于程序调用的时间 5.3适应性
要求数据库具有很好的更新能力,由于本产品是实验性软件,故对磁盘和内存容量没有很高的要求,但是数据库应该能够对并发事件,脏数据具有较强的识别处理能力。 6.运行需求
6.1用户界面屏幕格式:采用全屏格式,通过分窗口操作进行各个操作之间的转换 报表格式:以银行原报表格式设计电子打印表格式。
菜单格式:下拉式菜单,应显示储户资料及帐户资料的各个详细条目。
6.2硬件接口无特别要求。
网络硬件接口要求:现实中要求具有高速以太网组网以实现联网操作,但是在理论实验验证软件本身的目的来看,无需网络通讯接口。业务员键入储户的资料要全部一直显示在屏幕;储户从按键口键入密码到系统以核对;计算机与打印机有高速传输的连接接口,最后以纸张的形式打印出清单给储户。 6.3软件接口
Windows 标准接口,要求与其他软件无冲突错误发生。 6.4故障处理
软件应具备自动拼写错误检查等功能,在出现故障后应从整个系统数据库重新载入数据进行操作。 7.其它需求 (1)可用性
本软件也可以通过单步跟踪的操作进行检查处理。 (2)安全性
由于软件运行数据放在数据库中,所以参数不容易被错改、破坏,万一参数受到破坏也不会影响源程序。 (3)可维护性
本软件利用数据库进行编程,系统结构由程序基本确定,大量的参数及文本内容全部放于数据库中。修改、更新数据只要在数据库进行修改添加,而不需要对系统结构进行修改,这样系统维护性、升级都十分方便。 (4)兼容性
总 体 设 计
1. 引言
1.1编写目的实现系统的大概功能,及其界面、模块。 1.2背景软件名称:银行储蓄系统 委托单位:银行
开发单位:安工大工商学院 主管:王成成 1.3定义
银行储蓄应用系统软件:基本元素为构成银行储蓄及相关行为所必须的各种部分。
总体设计:又称概要设计或初步设计,划分出组成系统的物理元素(程序、文件、数据库、人工过程和文档),但每个物理元素仍处于黑盒子级,具体内容将在以后仔细设计。 1.4参考资料
《软件工程导论(第四版)》 张海藩 编着 清华大学出版社出版 《软件工程》 任胜兵 邢琳 编着 北京邮电大学出版社 2. 总体设计
2.1需求规定 2.1.1系统功能
2.1.2系统性能 2.1.2.1精度
2.1.2.2时间特性要求 2.1.2.4可靠性 2.1.2.5灵活性
2.1.2.6安全性 2.1.3输入输出要求 2.1.4数据管理能力要求 2.1.5故障处理要求 2.1.6其他专门要求
2.2运行环境操作系统: WindowsXP支持环境:IIS 5.0,数据库:Microsoft SQL Server 2000 2.2.1设备
硬件配置要求: 硬件外部设备需奔腾133以上的pc 机,内存需16兆以上 2.2.2接口 用户登录接口:
2.2.3控制
本系统的运行控制流程为:申请进入本系统,输入用户名、密码,通过验证后,进行存取款或者存款单、取款单的打印,以及用户信息的查询。
2.3基本设计概念和处理流程系统启动时,激活身份验证模块。
通过身份验证后,对系统进行初始化,根据从数据库的来的数据,判断用户身份是否正确。 通过事件驱动机制激活各功能模块,并执行指定模块。 由退出系统事件激活关闭系统模块,退出系统。 2.4结构 层次方框图
2.5功能需求与系统模块的关系
用一张矩阵图说明各项功能需求的实现同各模块的分配关系。
2.6人工处理过程
在本系统的工作过程中需要包含的人工处理过程为:银行业务员(具有更改储户信息权限的人)核对储户信息后将其存取款信息录入银行储蓄系统中,并按照储户实际情况更改信息,或者进行信息的查询操作,最后打印出存取款单并交由储户核对,完成用户储蓄操作。 2.7尚未解决的问题 无。
3.接口设计3.1用户身份验证接口
3.2外部接口硬件接口:支持IIS5.0、SQL Server 2000的微机。
软件接口:运行于windows 2000/XP或更高版本的操作系统之上,服务器还需安装SQL Server2000. 3.3内部接口
身份验证模块:完成对用户身份的验证功能。 存取款模块:完成储户存取款的录入信息。 存取款单打印模块:完成储户信息的打印。
储户信息检索模块:按要求检索储户各方面的信息。
4. 运行设计
4.1运行模块组合银行业务员-----具有的权限包括:登录系统、填写存取款信息、打印存取款单、按储户要求查询其储蓄信息。
4.2运行控制本系统的运行控制流程为:银行业务员申请进入本系统,输入储户用户名、密码,通过验证后,进行存取款或者存款单、取款单的打印,以及用户信息的查询。 4.3运行时间
本系统各模块的运行时间均控制在1—2秒内。由于系统采用消息驱动方式,将有效地提高计算机的利用率。
6. 系统数据结构设计 5.1逻辑结构设计要点
本系统中创建的数据库Banksystem 包含的表:
customer (customername,customerid,bankname,yewuyuanid,cunkuancount,qukuancount, shengyucount,ratevalue,shouxucount) bank (bankname,yewuyuanid) time
(cunkuandate,qukuandate)
5.2物理结构设计
数据库Banksystem 的物理结构采用顺序结构。
5.3数据结构与程序的关系
[说明各个数据结构与访问这些数据结构的各个程序之间的对应关系。]
6.系统出错处理设计 6.1出错信息
6.2补救措施
本系统定期备份数据库,以便在系统出现故障时能够及时恢复。 a. 后备技术
采用后备技术,当原始系统数据万一丢失时启用副本,周期性地把磁盘信息记录到磁带上去。 b. 恢复及再启动技术
使用的恢复再启动技术,使软件从故障点恢复执行或使软件从头开始重新运行的方法。 6.3系统维护设计
为了系统维护的方便而在程序内部设计中作出的安排,包括在程序中专门安排用于系统的检查与维护的检测点和专用模块。
本系统严格按照软件产品设计规范的步骤进行开发,并重复考虑软件的可维护性,详细编写各阶段的文档资料,并在程序设计过程中做出大量详细的注释。
详 细 设 计
1. 引言
1.1编写目的
确定具体实现银行储蓄系统的方法. 1.2背景 1.3定义 1.4参考资料 2. 系统的结构
[给出系统的结构框图,包括软件结构、硬件结构框图。用一系列图表列出系统内的每个模块的名称、标识符和它们之间的层次结构关系。] (1)层次方框图 (总体设计中已给出)
(2)顶层数据流图(需求分析中已给出)
3身份验证模块(G1)设计说明 3.1模块描述
设置身份验证模块的目的保证储户信息的安全。 3.2功能
身份验证模块功能在于对申请登录的用户进行身份验证,通过者才能进入系统。IPO 图如下:
3.3性能 本操作的响应时间应控制在1—2秒内。 3.4输入项 输入项包括:
3.5输出项
该模块的输出项为合法用户。 3.6设计方法(算法)
银行业务员输入储户用户ID ,储户输入密码并确定,系统保存用户输入的用户ID 和密码,并在customer 表中查找customerid 和customername 字段值,看是否等于业务员输入的用户ID 和密码,如相同则通过验证,否则不通过,并给出“密码错误”的提示,如数据库中不存在这样的记录,则给出“该用户不存在”的提示。 3.7流程逻辑
3.8接口
存款模块涉及的数据结构为customer 表。 3.9存储分配 程序运行需要占用内存1MB. 3.10注释设计
在模块首部加上“本模块是用户验证模块”,在各函数的开头处加上函数执行功能的注释。 3.11限制条件
程序运行所受的限制条件有: * 网络保持通畅。 * 数据库服务器运行正常。 3.12测试计划
[说明对本模块进行单体测试的计划,包括对测试的技术要求、输入数据、预期结果、进度安排、人员职责、设备条件、驱动程序及桩模块等的规定。] 3.13尚未解决的问题 无。
4.存款模块(G2)设计说明 4.1模块描述
设置存款模块的目的在于将储户的金额存到系统中并记录信息。 4.2功能
存款模块将储户存款金额录入存储到系统中,并附带显示其他储户信息。IPO 图如下:
4.3性能 本操作的响应时间应控制在1—2秒内。 4.4输入项 输入项包括:
4.5输出项
该模块的输出项为存款金额,并且附带显示其他信息:用户名、账号、账户余额、利息金额。 4.6设计方法(算法)
当银行业务员输入存款金额后,系统进行处理,显示出账户余额,并且显示其他固定信息。 4.7流程逻辑
4.8接口
存款模块涉及的数据结构为customer 表。 4.9存储分配 程序运行需要占用内存1MB. 4.10注释设计
在模块首部加上“本模块是存款模块”,在各函数的开头处加上函数执行功能的注释。 4.11限制条件
程序运行所受的限制条件 (同上) 4.12测试计划
[说明对本模块进行单体测试的计划,包括对测试的技术要求、输入数据、预期结果、进度安排、人员职责、设备条件、驱动程序及桩模块等的规定。] 4.13尚未解决的问题 无。
5.取款模块(G3)设计说明 5.1模块描述
设置取款模块的目的在于将储户的取款金额录入并存储到系统中。 5.2功能
取款模块将储户取款金额录入存储到系统中,并附带显示储户其他信息。 IPO 图如下:
5.3性能
本操作的响应时间应控制在1—2秒内。 5.4输入项 输入项包括:
5.5输出项
该模块的输出项为取款金额,并且附带显示其他信息:用户名、账号、账户余额、利息金额。 5.6设计方法(算法)
当银行业务员输入取款金额后,点击确定按钮,系统进行处理,显示出账户余额,并且显示其他固定信息。 5.7流程逻辑
用图表辅以必要的说明来表示本模块的逻辑流程:
5.8接口
取款模块涉及的数据结构为customer 表。 5.9存储分配 程序运行需要占用内存1MB. 5.10注释设计
在模块首部加上“本模块是取款模块”,在各函数的开头处加上函数执行功能的注释。 5.11限制条件 (同上) 5.12测试计划
[说明对本模块进行单体测试的计划,包括对测试的技术要求、输入数据、预期结果、进度安排、人员职责、设备条件、驱动程序及桩模块等的规定。] 5.13尚未解决的问题 无。 6.存款单打印模块(G4)设计说明 6.1模块描述
设置存款单打印模块的目的在于将储户的存款信息以单据的形式及时反馈给储户。 6.2功能
存款单打印模块将储户存款金额以及储户帐户信息以单据形式反馈给储户。IPO 图如下:
6.3性能
本操作为打印操作,操作时间应以信息长度而定;响应时间应为1-2秒。 6.4输入项
此模块为存款单打印模块(G4),无输入项, 只需点击打印按钮即可。 除非要修改, 则输入项包括
6.5输出项
该模块的输出项为存款人、存款银行、业务员编号、存款金额、存款日期、手续费、帐户余额。 6.6设计方法(算法)
当银行业务员输入存款金额后,系统进行处理,显示出账户余额,并且显示其他固定信息。 6.7流程逻辑[用图表辅以必要的说明来表示本模块的逻辑流程。]
6.8接口
存款单模块涉及的数据结构为customer,bank,timer 表。 6.9存储分配程序运行需要占用内存1MB. 6.10注释设计
在模块首部加上“本模块是存款单打印模块”,在各函数开头处加上函数执行功能的注释。 6.11限制条件 (同上)
6.12测试计划 [说明对本模块进行单体测试的计划,包括对测试的技术要求、输入数据、预期结果、进度安排、人员职责、设备条件、驱动程序及桩模块等的规定。] 6.13尚未解决的问题 无。 7. 取款单打印模块(G5)设计说明 7.1模块描述
设置取款单打印模块的目的在于将储户的取款信息以单据的形式及时反馈给储户。 7.2功能
取款单打印模块将储户取款金额以及储户帐户信息以单据形式反馈给储户。IPO 图如下:
7.3性能
本操作为打印操作,操作时间应以信息长度而定;响应时间应为1-2秒。 7.4输入项
此模块为取款单打印模块(G5),无输入项, 只需点击打印按钮即可。 除非要修改, 则输入项包括
7.5输出项
该模块的输出项为取款人、取款银行、业务员编号、取款金额、取款日期、手续费、帐户余额。 7.6设计方法(算法)
当银行业务员输入取款金额后,系统进行处理,显示出账户余额,并且显示其他固定信息。 7.7流程逻辑[用图表辅以必要的说明来表示本模块的逻辑流程。]
7.8接口
取款单模块涉及的数据结构为customer,bank,timer 表。
7.9存储分配程序运行需要占用内存1MB. 7.10注释设计
在模块首部加上“本模块是取款单打印模块”, 在各函数开头处加上函数执行功能的注释。
7.11限制条件 (同上)
7.12测试计划 [说明对本模块进行单体测试的计划,包括对测试的技术要求、输入数据、预期结果、进度安排、人员职责、设备条件、驱动程序及桩模块等的规定。] 7.13尚未解决的问题 无。8“按用户名和ID 查询”模块(G6)设计说明 8.1模块描述
设置“按用户名和ID 查询”模块的目的在于方便用户获知自己的存取款信息。 8.2功能
“按用户名和ID 查询”模块功能在于通过储户输入用户名和ID 来查询自己的信息。
8.3性能 本操作的响应时间应控制在1—2秒内。 8.4输入项 输入项包括:
8.5输出项
该模块的输出项为储户各项信息。 8.6设计方法(算法)
输入用户名和ID ,单击检索按钮,系统判断用户名和ID 是否与数据库中的customername , customerid相同,若相同则输出储户各项信息,若不同则输出“输入有误!请重新输入!”的提示信息。 8.7流程逻辑
8.8接口
按用户名和ID 查询模块涉及的数据结构为customer,bank,time 表。 8.9存储分配 程序运行需要占用内存1MB. 8.10注释设计
在模块首部加上“本模块是按用户名和ID 查询模块”,在各函数的开头处加上函数执行功能的注释。 8.11限制条件
程序运行所受的限制条件 (同上)
8.12测试计划
[说明对本模块进行单体测试的计划,包括对测试的技术要求、输入数据、预期结果、进度安排、人员职责、设备条件、驱动程序及桩模块等的规定。]
8.13尚未解决的问题 无。
银行储蓄系统测试计划
(“按用户名和ID 查询”模块测试计划)
1. 引言
1.1编写目的
在开发软件的过程中,要处理非常复杂的问题,软件的开发各个阶段都会不可避免地存在误差,审查也不可能发现所有的误差,因此软件测试是保证软件质量的关键步骤,其目的就是在软件投入生产或交付用户之前,尽可能多地发现软件的错误并解决。
1.2背景
项目名称:银行计算机储蓄系统
用户:安徽省马鞍山市建设银行
说明:通过测试,开发尽可能满足用户需要,而不出现错误的软件
1.3定义
1.4参考资料
《软件工程导论(第四版)》 张海藩 编着 清华大学出版社出版
《软件工程》 任胜兵 邢琳 编着 北京邮电大学出版社
2. 计划
2.1软件说明
对软件进行测试必须充分暴露出软件系统可能出现的问题,并加以改进。
2.2测试内容
对银行储蓄系统中的“按用户名和ID 查询”模块(G6)进行黑盒测试和白盒测试。
2.3“按用户名和ID 查询”模块(G6)黑盒测试
2.3.1进度安排:测试进行2周,此间进行观察记录
2.3.2条件:操作系统:windows XP,数 据 库:Microsoft SQL Server 2000
2.3.3测试资料:测试用例
2.4“按用户名和ID 查询”模块(G6)白盒测试
2.3.1进度安排:测试进行2周,此间进行观察记录
2.3.2条件:操作系统:windows XP,数 据 库:Microsoft SQL Server 2000
2.3.3测试资料:测试用例
3. 测试设计说明
3.1“按用户名和ID 查询”模块(G6)黑盒测试
3.1.1控制
3.1.2输入
按照黑盒测试用例输入用户名和ID
3.1.3输出
输出结果为用户储蓄的各项信息
3.1.4过程
使用测试用例不断进行测试,观察和记录测试结果
3.2“按用户名和ID 查询”模块(G6)白盒测试
3.2.1控制
3.2.2输入
按照白盒测试用例输入用户名和ID
3.2.3输出
输出结果为用户储蓄的各项信息
3.2.4过程
使用白盒测试用例不断进行测试,观察和记录测试结果
4. 评价准则
4.1范围
测试用例能够覆盖满足用户的大多数需求
4.2数据整理
4.3尺度
测试如果能够满足储户的多数需求,并且在运行期间的出错率小于2%,则认为测试通过。
银行储蓄系统测试分析报告
(“按用户名和ID 查询”模块测试分析)
1. 引言
1.1编写目的
完成系统具体的测试要求,对系统进行全面的分析,并通过测试结果,总结测试是否通过,若不通过则查明原因,并进行修改以及再测试。
1.2背景
1.3定义
测试用例:把测试数据和预期的输出结果称为测试用例。
黑盒测试:也称功能测试或数据驱动测试,指已知产品所应有的功能,通过测试来检测每个功能是否都能正常使用。测试时,把程序看作一个不能打开的黑盒子,测试者对程序接口进行测试。
白盒测试:也称结构测试或逻辑驱动测试,指已知产品内部工作过程,检测产品内部工作过程是否符合需求规格说明书的规定,按照程序内部的结构测试程序,检验程序每条通路是否都能按要求正确工作。测试时,测试者必须检查程序的内部结构,从检查程序的逻辑入手得出测试数据。
1.4参考资料
《软件工程导论(第四版)》 张海藩 编着 清华大学出版社出版
《软件工程》 任胜兵 邢琳 编着 北京邮电大学出版社
2. 测试概要
对“按用户名和ID 查询”模块(G6)进行黑盒测试和白盒测试,并记录下测试结果。
3. 测试结果及发现
3.1“按用户名和ID 查询”模块(G6)黑盒测试:
有效输入的等价类有:
用户ID 由字母, 数字组成, 最多12个字符
无效输入的等价类有:
空字符串(全是空格); 最左边的字符为空格; 字符之间有空格
合法输出的等价类有:
能够显示储户的用户名, 账号, 账户余额, 利息金额, 存款银行, 业务员编号, 存款日期, 取款日期, 手续费。 非法输出的等价类有:
不能够显示储户的用户名, 账号, 账户余额, 利息金额, 存款银行, 业务员编号, 存款日期, 取款日期, 手续费其中的某一项或多项,或者显示有误。
根据上面划分的等价类, 可设计出下述测试方案:
(1) 空字符
输入: „ ‟
预期的输出: “错误----没有字符”
(2) 最左边的字符为空格
输入:‘ Hab23’
预期的输出:“错误----首字符为空格”
(3) 字符之间有空格
输入:‘wh K26m ’
预期的输出:“错误----字符间有空格”
3.2 “按用户名和ID 查询”模块(G6)白盒测试
设定数据库中用户:tom 的用户ID 为“hw1235”,对G6模块进行白盒测试:
条件覆盖(判定表达式中的每个条件都取到各种可能得结果):
测试数据:
(1)用户ID= “hw1235”,用户名=“cat ”(两个条件都正确)
(2)用户ID=“aw1235”,用户名=“cat ” (用户名正确)
(3)用户ID=“hw1235”,用户名=“bill ” (用户ID 正确)
(4)用户ID=“zg1235”,用户名=“tom ” (两个条件都不正确)
“按用户名和ID 查询”模块(G6)的程序代码:
String id=request.getParameter("id");
String sname=request.getParameter("name");
String name=new String(sname.getBytes("iso-8859-1"));
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:ruanjiangongcheng");
Statement sql=con.createStatement();
ResultSet rs=sql.executeQuery("select * from customer where customerid='"+id+"' customername='"+name+"'");
if(rs.next())
{
out.print("
");
out.print("
");
out.print("
");
String a,b,c,d,e,f,g,h,i;
a=rs.getString(1);
out.print("
");
b=rs.getString(2);
out.print("
");
c=rs.getString(3);
out.print("
");
d=rs.getString(4);
out.print("
"); and
%> e=rs.getString(5); out.print("
"); f=rs.getString(6); out.print(""); g=rs.getString(7); out.print(""); h=rs.getString(8); out.print(""); i=rs.getString(9); out.print(""); out.print(""); else out.print("输入有误,请重新输入!"); con.close(); }
通过白盒测试用例对G6模块进行测试,截图如下:
(1)用户ID= “hw1235”,用户名=“cat ”(两个条件都正确
)
(2)用户ID=“aw1235”,用户名=“cat ” (用户名正确)
(3)用户ID=“hw1235”,用户名=“bill ” (用户ID 正确
)
(4)用户ID=“zg1235”,用户名=“tom ” (两个条件都不正确)
4. 对软件功能的结论
4.1“按用户名和ID 查询”功能(G6)
4.1.1能力
能够实现按用户名和ID 查询储户的存取款信息以及其他附带信息。
4.1.2限制
无
5. 分析摘要
5.1能力
本软件的“按用户名和ID 查询”模块能够通过输入正确的用户名和ID 查询储户的各项信息。
5.2缺陷和限制:无
5.3建议
必须进行改进,提供更多的功能以及查询选项,如按存款日期查询, 按取款日期查询等等。
5.4评价
本软件的查询模块能够进行按用户名和ID 查询储户信息,测试基本成功,在今后的软件升级过程中要尽可能多的添加选项让用户的使用更加方便。
6测试资源消耗
对系统及数据库的要求较高,希望系统有更快速的反应时间,要有更大容量的存储空间。
账号"); out.print(" |
用户名"); out.print(" |
存款银行"); out.print(" |
业务员编号"); out.print(" |
存款日期"); out.print(" |
取款日期"); out.print(" |
账户余额"); out.print(" |
利息金额"); out.print(" |
手续费"); out.print(" |
---|---|---|---|---|---|---|---|---|
"+a+" | "+b+" | "+c+" | "+d+" | "+e+" | "+f+" | "+g+" | "+h+" | "+i+" |
软件工程课程设计
——银行储蓄系统
专 业:软件工程 年 级:软0642级 姓 名:王成成 学 号:069184581 指导教师:李伟
2009年 6月4日)
(
银 行 储 蓄 系 统
可行性分析报告
1 引言
1.1 编写目的
经过对该银行储蓄系统项目进行详细调查研究,初拟系统实现报告,对软件开发中将要面临的问题及其解决方案进行可行性分析。明确开发风险及其所带来的经济效益。本报告经审核后,交由软件经理审查。 1.2 背景
项目名称:银行计算机储蓄系统 用户:安徽省马鞍山市建设银行
说明:现在的银行储蓄系统工作效率低,不能满足广大人民群众的要,人们希望能更方便更省时地办理储蓄业务。在这样的背景下,切需要建立一个新的、高效的、方便的计算机储蓄系统。 1. 3 参考资料
《软件工程导论(第四版)》 张海藩 编着 清华大学出版社出版 《软件工程》 任胜兵 邢琳 编着 北京邮电大学出版社 2 可行性研究的前提 2.1 基本要求 2.1.1 功能要求
此系统所要完成的主要功能有两方面:
储户填写存款单或取款单交给业务员键入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,完成后由系统打印存款单给储户。
如果是取款,业务员把取款金额输入系统并要求储户输入密码以确认身份,核对密码正确无误后系统计算利息并印出利息清单给储户。 2.1.2 性能要求
为了满足储户的要求,系统必须要有高的运作速度,储户填写的表单输入到系统,系统必须能快速及时作出响应,迅速处理各项数据、信息,显示出所有必需信息并打印出各项清单,所以要求很高的信息量速度和大的主存容量;由于要存贮大量的数据和信息,也要有足够大的磁盘容量;另外,银行计算机储蓄系统必须有可靠的安全措施,以保证储户的存储安全。 2.1.3 接口要求
业务员键入储户的资料要全部一直显示在屏幕上;储户键入密码到系统以核对;计算机与打印机有高速传输的连接接口,最后以纸张的形式打印出清单给储户。 2.1.4 输入要求
业务员从存取款表单输入数据,要迅速精确,适当调整输入时间,不能让客户等太久,但也不能让业务员太过忙碌以免影响正确率,造成用户损失。 2.1.5 输出要求
要求快速准确地打印出存款或取款清单给客户。 2.2 开发目标 近期目标:
第一年内在一个银行建立一个银行内部计算机储蓄系统,初步实现银行储蓄系统计算机化,并保证该银行能够按期望顺利完成工作。 长期目标:
希望在三至四年内,在国内银行中建立该计算机储蓄系统,促进银行间的互联合作,实现银行储蓄系统的计算机管理体制,提高银行储蓄系统的整体水平;并实现银行储蓄系统的高效性、方便性、实用性、互联性,给储蓄用户带来方便和益处,从而提高银行的信用度,提高银行公司的经济效益和社会效益。
2.3 限制条件
2.3.1 开发时间(只限于近期目标) 预定为半年
2.3.2 运行环境 Windows xp 及以上操作系统、数据库:Microsoft SQL Server 2000 2.3.3 使用寿命 该系统至少使用四年以上。 2.3.4进行可行性研究的方法
采用调查方法:通过对银行业务员和客户的调查以获得第一手资料,确定客户和实际应用中的需求;然后经过座谈或开会的形式和专家以及银行经理交谈,落实最后的问题定义。 3 对现有系统的分析
当前大多数银行所使用的银行储蓄系统办理业务时手续繁多,人工业务操作过多,严重影响了工作效率,且出错率高,以至客户等待办理手续过长感到不耐烦,降低了银行效率。 3.1 当前系统的处理流程和数据流程(系统流程图)
储户取款时不能直接取款,要先填取款表,交给业务员输入资料,再由储户输入密码以确认身份,还要在取款表单上签名以再次确认,最后才业务员才把现金交给储户: 系统流程图
3.2 工作负荷
由于办理手续的繁多和不合理,工作效率非常低,需要大量业务员,通常有储户等待排成长龙的现象,这给工作人员增加了非常大的负担和额外的工作负荷;同时也给银行公司的发展带来了严重的制约和压力。 3.3 人员
需要大量业务员和额外的工作人员。 3.4 局限性
当前系统办理业务的流程导致了一个很大的问题:工作效率极其低。因此急需开发一个高效的银行计算机储蓄系统。 4建议的新系统 4.1 对新系统的说明
根据系统目标以及现行系统存在的问题,建议新系统分两步实现:
第一阶段(1年内)先在一个银行建立一个内部的网络,以实现银行储蓄系统的计算机化。能够处理以下工作:本行内的银行卡在各分行可提款;及时办理业务;提高工作效率。
第二阶段(2~4年)在全国多家银行间建立一个互联的网络系统,实现银行储蓄管理系统的信息集成,完成后的系统可以实现在各行间互存取款,且操作方便简单迅速。 4.2 新系统的数据流程和处理流程
4. 2. 1. 2 取款流程图
4. 2. 2 数据字典
4.3 改进
用银行卡可以直接在柜台或提款机取款; 在柜台取款时第一次输入密码核对正确后即可办理取款; 免去了再次签名确认身份的手续; 如果增加自动存款机后, 储户可直接在存款机存款, 免去填表手续, 提高了工作效率。
4.4 新系统的影响 4.4.1 对现行系统的影响
第一阶段最主要的影响是大大提高了银行的工作效率,以适应银行储蓄系统管理的计算机化,方便了用户存取款。
第二阶段将要实现全国范围里多家银行间的互联,实现多家银行信息的集成,向储户提供一个方便、简单、及时、随时随地可以存取款的互联的现代计算机化的网络系统。 4.4.2 对银行业务员的影响
可以大大减少工作人员,节约人力资源的开销,但增加了失业率;另一方面由于手续程序减少也可以减轻业务员的工作负担,有效地提高了整体的工作效率和精确度。 4.4.3 对客户的影响
减少了储户办理业务的等待时间;用户可以随时随地存取款,并且操作简单易懂;用户还可以选择在柜台办理业务或自己在自动提款机和自动取款机办理业务。 4.5 局限性
由于时间和经济方面的限制,在开发的一两年内只能实现某一银行储蓄系统的计算机化,有望在第二阶段实现更广阔的互联网。
4.6 技术条件方面的可行性
开发系统的计算机硬件已经非常普及,能够适应银行系统的快速和大容量存储,硬件方面完全没有问题;现在的计算机各方面的技术都非常成熟,相对来说开发此系统的技术也要求比较简单,因此在技术方面是可行的;同时银行还必须有一定量的系统管理和维护的专业人员,在这方面可以通过培训原来的技术人员成为新的需要的技术人员,也可以雇用所需这方面的专业技术员;若按计划,在规定的期限内,本系统的开发是可以完成的。
5 可供选择的其他系统方案
可以采用一步到位的方法。但由于一步到位对现行系统的影响比较大,实施的条件不够成熟,因而不建议。 6
投资及收益分析
6.1 投资估计(限于一个分行) 6.1.1 基础投资 正版软件 1000元
Microsoft SQL Server 2000 20万元 网络设备 10万元
机器设备(假设有五个窗口) 15万元 辅助设备 15万元 共计约 61万元
其它投资 业务员工资 300万元/五年 培训技术员 6万元
维护费用 10万元 不可知费用 15万元 共计 331万元 投资共计约 391万元 6.2 收益分析
6.2.1 精减人员收益
减少人员10人(5000元/月)五年收益: (按利息率1%) 5000*12*(1.1-1+(1.1)-2++„+(1.1)-55)*10*5=1137 万元 6.2.2 整体收入增加
由于工作效率的提高,业务员出错率降底及服务质量的提高和储户的不断增加,每年可以增加10%的收益(假设当前收益是3000万/年):
3000万*(0.1*1.1-1+(1.12 –1)*(1.1)-2++„+(1.15 -1)*(1.1)-55)*5=19500万 共计收益 20637万元6.3
收益/投资比 20637元/391元=53 投资回收周期为一年
7社会方面的可行性 7.1 法律方面的可行性 全部软件购买正版
机器设置通过正当途径购得 7.2用户可行性
开发的系统操作要非常简单,以便适合各类人群都可以很方便操作使用。还有,要有经过培训的专业人员指导,以便当储户有什么疑难问题时能及时得到正确的答复。需求分析
1. 引言 1.1编写目的
本报告的目的是规范化本软件的编写,旨在于提高软件开发过程中的能见度,便于对软件开发过程中的控制与管理,同时提出了本银行储蓄系统的软件开发过程,便于程序员与客户之间的交流、协作,并作为工作成果的原始依据,同时也表明了本软件的共性,以期能够获得更大范围的应用 此文档进一步定制软件开发的细节问题,明确软件需求、安排项目规划与进度、组织软件开发与测试,便于用户与开发商协调工作。本文档面向的读者主要是项目委托单位的管理人员、设计人员和开发人员,希望能使本软件开发工作更具体 1.2项目背景
软件名称:银行储蓄系统 委托单位:银行
开发单位:安工大工商学院 主管:王成成 1.3定义
银行储蓄应用系统软件:基本元素为构成银行储蓄及相关行为所必须的各种部分。
需求:用户解决问题或达到目标所需的条件或功能;系统或系统部件要满足合同、标准,规范或其它正式规定文档所需具有的条件或权能。
需求分析:包括提炼,分析和仔细审查已收集到的需求,以确保所有的风险承担者都明其含义并找出其中的错误,遗憾或其它不足的地方。
模块的独立性:是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其他的模块的接口是简单的. 1.4参考资料
《软件工程——原理,方法与应用》 吴钦藩 编着 人民交通出版社出版 《软件工程导论(第四版)》 张海藩 编着 清华大学出版社出版 《软件工程》 任胜兵 邢琳 编着 北京邮电大学出版社 2.任务概述 2.1目标
完善目前银行储蓄系统,使之能跟上时代的发展。同时通过实践来提高自己动手能力
2.2运行环境操作系统: Windows XP, 支持环境:IIS 5.0,数据库:Microsoft SQL Server 2000 2.3条件与限制硬件配置要求: 硬件外部设备需奔腾133以上的pc 机,内存需16兆以上 软件要求操作人员具有初步的相关知识
由于本系统为即时软件,对数据的同步要求较高,建议配置网络时使用可靠性较高的相关网络硬件设施。 银行以记时器记时完毕触发利息结算;对用户取款额未做上限约束;各间银行采用集中控制。
有效证件仅为身份证,牵涉到开户、撤户、挂失、取款时客户必须提供身份证号;存款及余额查询时不需提供身份证号。
不考虑系统的运行平台可能会出现的硬件故障。 3.数据描述 3.1静态数据
包括系统登录密码, 各数据库所在位置, 系统分析原始数据。 3.2动态数据 输入数据:
姓名,年龄,性别,身份证号,地址,帐号,密码 输出数据:
姓名,年龄,性别,身份证号,地址,帐号,密码,交易金额,余额,交易时间,交易号码
3.3数据库介绍
采用JDBC 技术连接使用SQL SERVER 2000 来设计数据库。 数据库名称:Banksystem ,其中有三张表,它们是:
customer (customername,customerid,bankname,yewuyuanid,cunkuancount,qukuancount, shengyucount,ratevalue,shouxucount) bank (bankname,yewuyuanid) time (cunkuandate,qukuandate) E-R 图:
系统的层次方框图:
存取款IPO 表:
系统的顶层数据流图:
3.5数据采集
包括储户信息和帐户信息。
储户信息:姓名,性别,身份证号码,地址,联系电话等。
帐户信息:帐户号码,帐户密码,开户时间,储蓄金额,储蓄类型等
4.功能需求4.1功能划分软件分别有新建,修改,查询,更新等功能。各个模块各有不同的功能,但都能完成查询和存储功能,各模块的数据都存放在数据库中。数据的调用和连接都有程序来完成。
此系统所要完成的主要功能有两方面:如果是存款,储户填写存款单,然后交给业务员键入系统,同时系统还要记录存款人姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、利率及密码(可选)等信息,完成后由系统打印存款单给储户。如果是取款,储户填写取款单交给业务员,业务员把取款金额输入系统并要求储户输入密码以确认身份,核对密码正确无误后系统计算利息并印出利息清单给储户。 4.2功能描述
外部功能:实现可视化窗口,查找及存储 内部功能:同步,过滤,定位,识别 存款功能
以储户的存款为主要活动,相关记录根据存款结果进行调整,以使信息保持一致。
1.系统需要在原账户信息中增加一条记录,包括存款人姓名、住址、存款类型、存款日期、利率等信息。 2.若为新储户须建立一个账户,并记录此次的记录。
3.打印存款单给储户。
存款状态转换图: 取款状态转换图:
取款功能
以储户的取款为主要活动,相关记录根据取款结果进行调整,以使信息保持一致。 1.系统计算利息,在原账户信息中将取款额减去。
2. 若为清户,记录注销该账户,将账户余额(包括存款额及利息)一并交与储户。 3.打印利息清单给储户。 余额查询功能
为储户提供查询余额服务,将储户的相关记录输出。 1.需要储户的账户信息及密码。 2.打印储户的帐户余额。 5.性能需求 5.1数据精确度
在进行向数据库文件提取数据时,要求数据记录定位准确,在往数据库文件数组中添加数时,要求输入数准确金额,身份证,卡号等按需求设定字符数。 5.2时间特性
程序响应时间:在人的感觉和视觉事件范围内;
信息交换时间:要求在程序调用前调用后都与数据库保持同步更新,网络信息交换施加应该小于程序调用的时间 5.3适应性
要求数据库具有很好的更新能力,由于本产品是实验性软件,故对磁盘和内存容量没有很高的要求,但是数据库应该能够对并发事件,脏数据具有较强的识别处理能力。 6.运行需求
6.1用户界面屏幕格式:采用全屏格式,通过分窗口操作进行各个操作之间的转换 报表格式:以银行原报表格式设计电子打印表格式。
菜单格式:下拉式菜单,应显示储户资料及帐户资料的各个详细条目。
6.2硬件接口无特别要求。
网络硬件接口要求:现实中要求具有高速以太网组网以实现联网操作,但是在理论实验验证软件本身的目的来看,无需网络通讯接口。业务员键入储户的资料要全部一直显示在屏幕;储户从按键口键入密码到系统以核对;计算机与打印机有高速传输的连接接口,最后以纸张的形式打印出清单给储户。 6.3软件接口
Windows 标准接口,要求与其他软件无冲突错误发生。 6.4故障处理
软件应具备自动拼写错误检查等功能,在出现故障后应从整个系统数据库重新载入数据进行操作。 7.其它需求 (1)可用性
本软件也可以通过单步跟踪的操作进行检查处理。 (2)安全性
由于软件运行数据放在数据库中,所以参数不容易被错改、破坏,万一参数受到破坏也不会影响源程序。 (3)可维护性
本软件利用数据库进行编程,系统结构由程序基本确定,大量的参数及文本内容全部放于数据库中。修改、更新数据只要在数据库进行修改添加,而不需要对系统结构进行修改,这样系统维护性、升级都十分方便。 (4)兼容性
总 体 设 计
1. 引言
1.1编写目的实现系统的大概功能,及其界面、模块。 1.2背景软件名称:银行储蓄系统 委托单位:银行
开发单位:安工大工商学院 主管:王成成 1.3定义
银行储蓄应用系统软件:基本元素为构成银行储蓄及相关行为所必须的各种部分。
总体设计:又称概要设计或初步设计,划分出组成系统的物理元素(程序、文件、数据库、人工过程和文档),但每个物理元素仍处于黑盒子级,具体内容将在以后仔细设计。 1.4参考资料
《软件工程导论(第四版)》 张海藩 编着 清华大学出版社出版 《软件工程》 任胜兵 邢琳 编着 北京邮电大学出版社 2. 总体设计
2.1需求规定 2.1.1系统功能
2.1.2系统性能 2.1.2.1精度
2.1.2.2时间特性要求 2.1.2.4可靠性 2.1.2.5灵活性
2.1.2.6安全性 2.1.3输入输出要求 2.1.4数据管理能力要求 2.1.5故障处理要求 2.1.6其他专门要求
2.2运行环境操作系统: WindowsXP支持环境:IIS 5.0,数据库:Microsoft SQL Server 2000 2.2.1设备
硬件配置要求: 硬件外部设备需奔腾133以上的pc 机,内存需16兆以上 2.2.2接口 用户登录接口:
2.2.3控制
本系统的运行控制流程为:申请进入本系统,输入用户名、密码,通过验证后,进行存取款或者存款单、取款单的打印,以及用户信息的查询。
2.3基本设计概念和处理流程系统启动时,激活身份验证模块。
通过身份验证后,对系统进行初始化,根据从数据库的来的数据,判断用户身份是否正确。 通过事件驱动机制激活各功能模块,并执行指定模块。 由退出系统事件激活关闭系统模块,退出系统。 2.4结构 层次方框图
2.5功能需求与系统模块的关系
用一张矩阵图说明各项功能需求的实现同各模块的分配关系。
2.6人工处理过程
在本系统的工作过程中需要包含的人工处理过程为:银行业务员(具有更改储户信息权限的人)核对储户信息后将其存取款信息录入银行储蓄系统中,并按照储户实际情况更改信息,或者进行信息的查询操作,最后打印出存取款单并交由储户核对,完成用户储蓄操作。 2.7尚未解决的问题 无。
3.接口设计3.1用户身份验证接口
3.2外部接口硬件接口:支持IIS5.0、SQL Server 2000的微机。
软件接口:运行于windows 2000/XP或更高版本的操作系统之上,服务器还需安装SQL Server2000. 3.3内部接口
身份验证模块:完成对用户身份的验证功能。 存取款模块:完成储户存取款的录入信息。 存取款单打印模块:完成储户信息的打印。
储户信息检索模块:按要求检索储户各方面的信息。
4. 运行设计
4.1运行模块组合银行业务员-----具有的权限包括:登录系统、填写存取款信息、打印存取款单、按储户要求查询其储蓄信息。
4.2运行控制本系统的运行控制流程为:银行业务员申请进入本系统,输入储户用户名、密码,通过验证后,进行存取款或者存款单、取款单的打印,以及用户信息的查询。 4.3运行时间
本系统各模块的运行时间均控制在1—2秒内。由于系统采用消息驱动方式,将有效地提高计算机的利用率。
6. 系统数据结构设计 5.1逻辑结构设计要点
本系统中创建的数据库Banksystem 包含的表:
customer (customername,customerid,bankname,yewuyuanid,cunkuancount,qukuancount, shengyucount,ratevalue,shouxucount) bank (bankname,yewuyuanid) time
(cunkuandate,qukuandate)
5.2物理结构设计
数据库Banksystem 的物理结构采用顺序结构。
5.3数据结构与程序的关系
[说明各个数据结构与访问这些数据结构的各个程序之间的对应关系。]
6.系统出错处理设计 6.1出错信息
6.2补救措施
本系统定期备份数据库,以便在系统出现故障时能够及时恢复。 a. 后备技术
采用后备技术,当原始系统数据万一丢失时启用副本,周期性地把磁盘信息记录到磁带上去。 b. 恢复及再启动技术
使用的恢复再启动技术,使软件从故障点恢复执行或使软件从头开始重新运行的方法。 6.3系统维护设计
为了系统维护的方便而在程序内部设计中作出的安排,包括在程序中专门安排用于系统的检查与维护的检测点和专用模块。
本系统严格按照软件产品设计规范的步骤进行开发,并重复考虑软件的可维护性,详细编写各阶段的文档资料,并在程序设计过程中做出大量详细的注释。
详 细 设 计
1. 引言
1.1编写目的
确定具体实现银行储蓄系统的方法. 1.2背景 1.3定义 1.4参考资料 2. 系统的结构
[给出系统的结构框图,包括软件结构、硬件结构框图。用一系列图表列出系统内的每个模块的名称、标识符和它们之间的层次结构关系。] (1)层次方框图 (总体设计中已给出)
(2)顶层数据流图(需求分析中已给出)
3身份验证模块(G1)设计说明 3.1模块描述
设置身份验证模块的目的保证储户信息的安全。 3.2功能
身份验证模块功能在于对申请登录的用户进行身份验证,通过者才能进入系统。IPO 图如下:
3.3性能 本操作的响应时间应控制在1—2秒内。 3.4输入项 输入项包括:
3.5输出项
该模块的输出项为合法用户。 3.6设计方法(算法)
银行业务员输入储户用户ID ,储户输入密码并确定,系统保存用户输入的用户ID 和密码,并在customer 表中查找customerid 和customername 字段值,看是否等于业务员输入的用户ID 和密码,如相同则通过验证,否则不通过,并给出“密码错误”的提示,如数据库中不存在这样的记录,则给出“该用户不存在”的提示。 3.7流程逻辑
3.8接口
存款模块涉及的数据结构为customer 表。 3.9存储分配 程序运行需要占用内存1MB. 3.10注释设计
在模块首部加上“本模块是用户验证模块”,在各函数的开头处加上函数执行功能的注释。 3.11限制条件
程序运行所受的限制条件有: * 网络保持通畅。 * 数据库服务器运行正常。 3.12测试计划
[说明对本模块进行单体测试的计划,包括对测试的技术要求、输入数据、预期结果、进度安排、人员职责、设备条件、驱动程序及桩模块等的规定。] 3.13尚未解决的问题 无。
4.存款模块(G2)设计说明 4.1模块描述
设置存款模块的目的在于将储户的金额存到系统中并记录信息。 4.2功能
存款模块将储户存款金额录入存储到系统中,并附带显示其他储户信息。IPO 图如下:
4.3性能 本操作的响应时间应控制在1—2秒内。 4.4输入项 输入项包括:
4.5输出项
该模块的输出项为存款金额,并且附带显示其他信息:用户名、账号、账户余额、利息金额。 4.6设计方法(算法)
当银行业务员输入存款金额后,系统进行处理,显示出账户余额,并且显示其他固定信息。 4.7流程逻辑
4.8接口
存款模块涉及的数据结构为customer 表。 4.9存储分配 程序运行需要占用内存1MB. 4.10注释设计
在模块首部加上“本模块是存款模块”,在各函数的开头处加上函数执行功能的注释。 4.11限制条件
程序运行所受的限制条件 (同上) 4.12测试计划
[说明对本模块进行单体测试的计划,包括对测试的技术要求、输入数据、预期结果、进度安排、人员职责、设备条件、驱动程序及桩模块等的规定。] 4.13尚未解决的问题 无。
5.取款模块(G3)设计说明 5.1模块描述
设置取款模块的目的在于将储户的取款金额录入并存储到系统中。 5.2功能
取款模块将储户取款金额录入存储到系统中,并附带显示储户其他信息。 IPO 图如下:
5.3性能
本操作的响应时间应控制在1—2秒内。 5.4输入项 输入项包括:
5.5输出项
该模块的输出项为取款金额,并且附带显示其他信息:用户名、账号、账户余额、利息金额。 5.6设计方法(算法)
当银行业务员输入取款金额后,点击确定按钮,系统进行处理,显示出账户余额,并且显示其他固定信息。 5.7流程逻辑
用图表辅以必要的说明来表示本模块的逻辑流程:
5.8接口
取款模块涉及的数据结构为customer 表。 5.9存储分配 程序运行需要占用内存1MB. 5.10注释设计
在模块首部加上“本模块是取款模块”,在各函数的开头处加上函数执行功能的注释。 5.11限制条件 (同上) 5.12测试计划
[说明对本模块进行单体测试的计划,包括对测试的技术要求、输入数据、预期结果、进度安排、人员职责、设备条件、驱动程序及桩模块等的规定。] 5.13尚未解决的问题 无。 6.存款单打印模块(G4)设计说明 6.1模块描述
设置存款单打印模块的目的在于将储户的存款信息以单据的形式及时反馈给储户。 6.2功能
存款单打印模块将储户存款金额以及储户帐户信息以单据形式反馈给储户。IPO 图如下:
6.3性能
本操作为打印操作,操作时间应以信息长度而定;响应时间应为1-2秒。 6.4输入项
此模块为存款单打印模块(G4),无输入项, 只需点击打印按钮即可。 除非要修改, 则输入项包括
6.5输出项
该模块的输出项为存款人、存款银行、业务员编号、存款金额、存款日期、手续费、帐户余额。 6.6设计方法(算法)
当银行业务员输入存款金额后,系统进行处理,显示出账户余额,并且显示其他固定信息。 6.7流程逻辑[用图表辅以必要的说明来表示本模块的逻辑流程。]
6.8接口
存款单模块涉及的数据结构为customer,bank,timer 表。 6.9存储分配程序运行需要占用内存1MB. 6.10注释设计
在模块首部加上“本模块是存款单打印模块”,在各函数开头处加上函数执行功能的注释。 6.11限制条件 (同上)
6.12测试计划 [说明对本模块进行单体测试的计划,包括对测试的技术要求、输入数据、预期结果、进度安排、人员职责、设备条件、驱动程序及桩模块等的规定。] 6.13尚未解决的问题 无。 7. 取款单打印模块(G5)设计说明 7.1模块描述
设置取款单打印模块的目的在于将储户的取款信息以单据的形式及时反馈给储户。 7.2功能
取款单打印模块将储户取款金额以及储户帐户信息以单据形式反馈给储户。IPO 图如下:
7.3性能
本操作为打印操作,操作时间应以信息长度而定;响应时间应为1-2秒。 7.4输入项
此模块为取款单打印模块(G5),无输入项, 只需点击打印按钮即可。 除非要修改, 则输入项包括
7.5输出项
该模块的输出项为取款人、取款银行、业务员编号、取款金额、取款日期、手续费、帐户余额。 7.6设计方法(算法)
当银行业务员输入取款金额后,系统进行处理,显示出账户余额,并且显示其他固定信息。 7.7流程逻辑[用图表辅以必要的说明来表示本模块的逻辑流程。]
7.8接口
取款单模块涉及的数据结构为customer,bank,timer 表。
7.9存储分配程序运行需要占用内存1MB. 7.10注释设计
在模块首部加上“本模块是取款单打印模块”, 在各函数开头处加上函数执行功能的注释。
7.11限制条件 (同上)
7.12测试计划 [说明对本模块进行单体测试的计划,包括对测试的技术要求、输入数据、预期结果、进度安排、人员职责、设备条件、驱动程序及桩模块等的规定。] 7.13尚未解决的问题 无。8“按用户名和ID 查询”模块(G6)设计说明 8.1模块描述
设置“按用户名和ID 查询”模块的目的在于方便用户获知自己的存取款信息。 8.2功能
“按用户名和ID 查询”模块功能在于通过储户输入用户名和ID 来查询自己的信息。
8.3性能 本操作的响应时间应控制在1—2秒内。 8.4输入项 输入项包括:
8.5输出项
该模块的输出项为储户各项信息。 8.6设计方法(算法)
输入用户名和ID ,单击检索按钮,系统判断用户名和ID 是否与数据库中的customername , customerid相同,若相同则输出储户各项信息,若不同则输出“输入有误!请重新输入!”的提示信息。 8.7流程逻辑
8.8接口
按用户名和ID 查询模块涉及的数据结构为customer,bank,time 表。 8.9存储分配 程序运行需要占用内存1MB. 8.10注释设计
在模块首部加上“本模块是按用户名和ID 查询模块”,在各函数的开头处加上函数执行功能的注释。 8.11限制条件
程序运行所受的限制条件 (同上)
8.12测试计划
[说明对本模块进行单体测试的计划,包括对测试的技术要求、输入数据、预期结果、进度安排、人员职责、设备条件、驱动程序及桩模块等的规定。]
8.13尚未解决的问题 无。
银行储蓄系统测试计划
(“按用户名和ID 查询”模块测试计划)
1. 引言
1.1编写目的
在开发软件的过程中,要处理非常复杂的问题,软件的开发各个阶段都会不可避免地存在误差,审查也不可能发现所有的误差,因此软件测试是保证软件质量的关键步骤,其目的就是在软件投入生产或交付用户之前,尽可能多地发现软件的错误并解决。
1.2背景
项目名称:银行计算机储蓄系统
用户:安徽省马鞍山市建设银行
说明:通过测试,开发尽可能满足用户需要,而不出现错误的软件
1.3定义
1.4参考资料
《软件工程导论(第四版)》 张海藩 编着 清华大学出版社出版
《软件工程》 任胜兵 邢琳 编着 北京邮电大学出版社
2. 计划
2.1软件说明
对软件进行测试必须充分暴露出软件系统可能出现的问题,并加以改进。
2.2测试内容
对银行储蓄系统中的“按用户名和ID 查询”模块(G6)进行黑盒测试和白盒测试。
2.3“按用户名和ID 查询”模块(G6)黑盒测试
2.3.1进度安排:测试进行2周,此间进行观察记录
2.3.2条件:操作系统:windows XP,数 据 库:Microsoft SQL Server 2000
2.3.3测试资料:测试用例
2.4“按用户名和ID 查询”模块(G6)白盒测试
2.3.1进度安排:测试进行2周,此间进行观察记录
2.3.2条件:操作系统:windows XP,数 据 库:Microsoft SQL Server 2000
2.3.3测试资料:测试用例
3. 测试设计说明
3.1“按用户名和ID 查询”模块(G6)黑盒测试
3.1.1控制
3.1.2输入
按照黑盒测试用例输入用户名和ID
3.1.3输出
输出结果为用户储蓄的各项信息
3.1.4过程
使用测试用例不断进行测试,观察和记录测试结果
3.2“按用户名和ID 查询”模块(G6)白盒测试
3.2.1控制
3.2.2输入
按照白盒测试用例输入用户名和ID
3.2.3输出
输出结果为用户储蓄的各项信息
3.2.4过程
使用白盒测试用例不断进行测试,观察和记录测试结果
4. 评价准则
4.1范围
测试用例能够覆盖满足用户的大多数需求
4.2数据整理
4.3尺度
测试如果能够满足储户的多数需求,并且在运行期间的出错率小于2%,则认为测试通过。
银行储蓄系统测试分析报告
(“按用户名和ID 查询”模块测试分析)
1. 引言
1.1编写目的
完成系统具体的测试要求,对系统进行全面的分析,并通过测试结果,总结测试是否通过,若不通过则查明原因,并进行修改以及再测试。
1.2背景
1.3定义
测试用例:把测试数据和预期的输出结果称为测试用例。
黑盒测试:也称功能测试或数据驱动测试,指已知产品所应有的功能,通过测试来检测每个功能是否都能正常使用。测试时,把程序看作一个不能打开的黑盒子,测试者对程序接口进行测试。
白盒测试:也称结构测试或逻辑驱动测试,指已知产品内部工作过程,检测产品内部工作过程是否符合需求规格说明书的规定,按照程序内部的结构测试程序,检验程序每条通路是否都能按要求正确工作。测试时,测试者必须检查程序的内部结构,从检查程序的逻辑入手得出测试数据。
1.4参考资料
《软件工程导论(第四版)》 张海藩 编着 清华大学出版社出版
《软件工程》 任胜兵 邢琳 编着 北京邮电大学出版社
2. 测试概要
对“按用户名和ID 查询”模块(G6)进行黑盒测试和白盒测试,并记录下测试结果。
3. 测试结果及发现
3.1“按用户名和ID 查询”模块(G6)黑盒测试:
有效输入的等价类有:
用户ID 由字母, 数字组成, 最多12个字符
无效输入的等价类有:
空字符串(全是空格); 最左边的字符为空格; 字符之间有空格
合法输出的等价类有:
能够显示储户的用户名, 账号, 账户余额, 利息金额, 存款银行, 业务员编号, 存款日期, 取款日期, 手续费。 非法输出的等价类有:
不能够显示储户的用户名, 账号, 账户余额, 利息金额, 存款银行, 业务员编号, 存款日期, 取款日期, 手续费其中的某一项或多项,或者显示有误。
根据上面划分的等价类, 可设计出下述测试方案:
(1) 空字符
输入: „ ‟
预期的输出: “错误----没有字符”
(2) 最左边的字符为空格
输入:‘ Hab23’
预期的输出:“错误----首字符为空格”
(3) 字符之间有空格
输入:‘wh K26m ’
预期的输出:“错误----字符间有空格”
3.2 “按用户名和ID 查询”模块(G6)白盒测试
设定数据库中用户:tom 的用户ID 为“hw1235”,对G6模块进行白盒测试:
条件覆盖(判定表达式中的每个条件都取到各种可能得结果):
测试数据:
(1)用户ID= “hw1235”,用户名=“cat ”(两个条件都正确)
(2)用户ID=“aw1235”,用户名=“cat ” (用户名正确)
(3)用户ID=“hw1235”,用户名=“bill ” (用户ID 正确)
(4)用户ID=“zg1235”,用户名=“tom ” (两个条件都不正确)
“按用户名和ID 查询”模块(G6)的程序代码:
String id=request.getParameter("id");
String sname=request.getParameter("name");
String name=new String(sname.getBytes("iso-8859-1"));
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:ruanjiangongcheng");
Statement sql=con.createStatement();
ResultSet rs=sql.executeQuery("select * from customer where customerid='"+id+"' customername='"+name+"'");
if(rs.next())
{
out.print("
");
out.print("
");
out.print("
");
String a,b,c,d,e,f,g,h,i;
a=rs.getString(1);
out.print("
");
b=rs.getString(2);
out.print("
");
c=rs.getString(3);
out.print("
");
d=rs.getString(4);
out.print("
"); and
%> e=rs.getString(5); out.print("
"); f=rs.getString(6); out.print(""); g=rs.getString(7); out.print(""); h=rs.getString(8); out.print(""); i=rs.getString(9); out.print(""); out.print(""); else out.print("输入有误,请重新输入!"); con.close(); }
通过白盒测试用例对G6模块进行测试,截图如下:
(1)用户ID= “hw1235”,用户名=“cat ”(两个条件都正确
)
(2)用户ID=“aw1235”,用户名=“cat ” (用户名正确)
(3)用户ID=“hw1235”,用户名=“bill ” (用户ID 正确
)
(4)用户ID=“zg1235”,用户名=“tom ” (两个条件都不正确)
4. 对软件功能的结论
4.1“按用户名和ID 查询”功能(G6)
4.1.1能力
能够实现按用户名和ID 查询储户的存取款信息以及其他附带信息。
4.1.2限制
无
5. 分析摘要
5.1能力
本软件的“按用户名和ID 查询”模块能够通过输入正确的用户名和ID 查询储户的各项信息。
5.2缺陷和限制:无
5.3建议
必须进行改进,提供更多的功能以及查询选项,如按存款日期查询, 按取款日期查询等等。
5.4评价
本软件的查询模块能够进行按用户名和ID 查询储户信息,测试基本成功,在今后的软件升级过程中要尽可能多的添加选项让用户的使用更加方便。
6测试资源消耗
对系统及数据库的要求较高,希望系统有更快速的反应时间,要有更大容量的存储空间。
账号"); out.print(" |
用户名"); out.print(" |
存款银行"); out.print(" |
业务员编号"); out.print(" |
存款日期"); out.print(" |
取款日期"); out.print(" |
账户余额"); out.print(" |
利息金额"); out.print(" |
手续费"); out.print(" |
---|---|---|---|---|---|---|---|---|
"+a+" | "+b+" | "+c+" | "+d+" | "+e+" | "+f+" | "+g+" | "+h+" | "+i+" |