软件工程银行卡管理系统课程设计Word文档下载推荐.docx
《软件工程银行卡管理系统课程设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《软件工程银行卡管理系统课程设计Word文档下载推荐.docx(57页珍藏版)》请在冰豆网上搜索。
银行卡管理系统可以分为管理员管理系统与用户操作系统,管理员管理系统负责用户数据的创建、修改与管理;
用户操作系统接受用户操作命令以后,执行并上报给管理员管理系统,。
由管理员管理系统修改用户数据库,用户操作系统只能执行用户命令,不能修改用户数据。
银行卡管理测试系统结构如图:
2.2系统面向的用户群体
金融业中应用银行储蓄卡的广大用户,简单的操作,比如:
取款(2000以内)、存款(少量金额)、转账、修改密码等简易的银行卡操作。
2.3系统的功能需求
通过银行卡管理系统一方面加快了客户的服务,提高的服务质量,另一方面减轻了员工的工作复杂度,提高了工作效益,实现了银行卡账户管理的的系统化、规范化、自动化、和智能化。
系统具体实现如下:
(1)键盘操作,快速响应
(2)对用户输入的数据,系统会进行严格的检验,尽量避免人为错误
(3)实现银行开户、取款、存款、查询、转账、修改密码等功能
(4)系统运行稳定,可靠
(5)系统人性化,符合用户操作习惯
(6)使用控制台进行操作
2.4系统非功能性需求
2.4.1软硬件环境需求
(1)软件环境:
Win7、WindowXP等32位操作系统
(2)硬件环境:
1)Pentium(R)Dual-CoreCPUT4300@2.10GHz2.10GHz
安装内存(RAM):
3.00GB
2)AMDA6-3400MAPUwithRadeon(tm)HDGraphics
1.4GHz
安装内存(RAM):
2.00GB
3)Celeron(R)Dual-CoreCPUT3100@1.90GHz1.90GHz
2.4.2软件质量需求
软件开发所用的系统要能够应用Oracle和运行java的软件Eclipse
2.4.3用户界面需求
用户界面需求就是陈述所需要的用户界面的软件组件。
描述每个用户界面的逻辑特征。
以下是可能要包括的一些特征。
(1)将要采用的图形用户界面(GUI)标准或产品系列的风格
(2)屏幕布局或解决方案的限制
(3)将出现在每个屏幕的按钮、功能或导航链结(例如一个帮助按钮)。
(4)快捷键
(5)错误信息显示标准(按照ATM自动取款机的应用界面为标准)
以Windows窗口形式显示,标题栏为银行卡管理测试系统名称,右上角有最小按钮、最大化按钮、关闭按钮,不同窗口中有不同的按钮盒选择菜单。
三、可行性分析报告
可行性研究的目的就是用最小的代价在最短的时间内确定该软件项目是否能够开发,是否值得去开发。
实质上就是进行一次简化、压缩了的需求分析、设计过程。
可从三个方面分析研究每种解决问题的可行性
3.1经济可行性分析
经济可行性:
进行开发成本的估算以及了解得到效益的评估,确定要开发项目是否值得投资开发。
对银行业来说,是依靠存款、贷款之间的差额来生存的,所以要尽可能的拉拢更多的客户使用本行,银行卡管理系统是为了能让为客户更便捷的服务,从而更具有吸引力。
从银行角度出发还是非常愿意把一部分资金投入到这方面研究当中的。
3.2操作可行性分析
开发的银行卡管理测试系统需要根据银行卡管理规定操作,不得有侵害他人隐私盗取金额为目的。
银行卡管理测试系统方便运行操作,组内人员有着良好的道德修养。
会根据用户的实际需要来开发此程序,操作快捷,易于掌握。
3.3技术可行性分析
技术可行性:
对项目的功能、性能、限制条件进行分析,确定在现有的资源和技术件下系统是否能实现。
(开发的风险、资源的有效性、技术)通过对开发风险、资源有效性和技术分析后,认为开发银行卡管理系统风险小,资源充足,技术可以应付,但是一定要以生活中的银行卡管理过程中的信息为基础。
3.4时间、设备可能性
开发人员可以根据自己时间充分发挥编译操作,也可以在上机时进行研究,时间充足,每个开发人员都有可以操作的电脑,可以查阅资料在图书馆。
四、开发环境与项目规划
4.1开发环境
利用Java语言强大功能,并具有面向对象开发等的特点,联系实际银行卡管理系统的应用界面,采用Eclipse开发工具,以Win7、WindowXP等32位操作系统、Oracle为后台开发出了一套银行卡管理测试系统,基本上实现了账户查询、修改密码、转账、充值和取款等业务。
4.2项目规划与管理
4.2.1开发人员安排
开发人员主要是经过大家兴趣一致、自愿组合的一个小组,由于本系统设计面广,操作复杂,信息要求强,所以我们选择三个人为一个小组,采取分工合作、共同探讨的原则,努力编辑并且完善系统应用。
组内成员有***、***和***。
4.2.2开发进度安排
10月13日开始讨论(给予两周时间进行调查分析探讨,确保进行项目研究据充足)
讨论内容:
1)系统名的确定
2)运行环境
3)系统应用价值
4)用户群体
5)需求分析说明
6)可行性分析
7)项目规划
8)编译语言
11月3日经过小组成员查阅资料并做出讨论,最终做出决定,我们组将要开发银行卡管理测试系统,其具有强大的市场,应用价值广泛,应用知识广泛能够充分利用教材所学知识,由于Java语言具有面向对象开发等特点,所以选择Java语言进行编译。
分工如下,***负责整体编译模块连接分出编译模块和用户注册模块,***负责转账、充值、取款模块和数据库设计,***负责账户查询、修改密码和文档编辑。
(每周四上课时间进行进度汇报,组长并根据进度进行调整和规划)
五、结构化分析与设计
结构化分析与设计方法是一种面向数据流的传统软件开发方法,它以数据流为中心构建软件的分析模型和设计模型。
结构化分析、结构化设计和结构化程序设计构成了完整的结构化方法。
早期的结构化分析方法的分析结果包括:
一套分层的数据流图、一本数据字典(包括E-R图)、一组加工规约以及其他补充资料(如非功能性需求等)。
5.1结构化分析
数据流图是描述输入数据流到输出数据流的变换(即加工),用于对系统的功能建模。
银行卡管理测试系统的流程图如下:
流程图:
银行卡测试系统0层图:
银行卡管理测试系统顶层图:
银行卡管理测试系统加工1子图:
银行卡管理系统加工2:
从前面的描述中可以看出数据流和数据字典是密不可分的,两者结合起来构成软件的逻辑模型(分析模型)。
通过仔细调查得出E-R图
数据字典为下图:
卡号的数据字典
名称:
卡号别名:
user简述:
唯一标识用户清单里的一个特定的唯一的一个编号数据类型:
int取值范围:
000000……999999
处理的数据字典
处理别名:
dealway简述:
对卡内信息进行处理的方法数据流组成:
取款+存款+转账+修改密码+余额查询+退出数据流来源:
卡号处理命令库数据流去向:
打印凭条数据量:
但系统内余额为0时
卡号信息的数据字典
卡号信息别名:
card-message简述:
对用户的信息进行管理文件组成:
卡号+身份证号+卡内余额+电话号码
5.2结构化设计
结构化设计是将结构化分析数据流图映射成软件体系结构的一种设计方法,SD强调模块化、自顶向下逐步求精、信息隐藏、高内聚低耦合等设计准则。
在结构化设计中用结构图来描述软件系统的体系结构,指出一个软件系统由那些模块组成以及模块之间的调用关系,如下图所示:
结构图第一分解图:
卡号注册第一级分解图:
卡号注册第二级分解图:
卡号处理第一分解图:
卡号处理第二级分解图:
该系统主要实现银行卡用户的存款、取款,以及进行一些简单的查询和转账业务,同时能够在系统里面进行客户密码的修改,实现简单的机器与客户交互。
六、面向对象分析与设计
面向对象方法是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,是建立在对象概念(对象、类和继承)基础上的方法,简称OO方法。
面向对象分析的目标是完成对所解问题的分析,确定待建的系统要做什么,并建立系统模型。
用况视图是列出系统中的用况和执行者,并显示了哪个执行者参与了哪个用况的执行,此系统的用况图如下:
下面给出部分用况的详细描述。
(1)开户用况描述
用况名称:
开户
参与的执行者:
银行职员(客户代理),客户
前置条件:
一个合法的银行职员(客户代理)已登录到该系统
事件流:
1.当选择开户功能时用况开始
2.输入客户信息(姓名、地址、身份证号等)
3.从账户管理系统获取新的账号
4.请客户输入密码
5.请客户再次输入密码
6.如果两次密码不一致则回到第4步,否则继续
7.在账户库中增加新客户
8.打印存折,用况结束
后置条件:
在账户库中增加了一个新账户,得到一张新银行卡
(2)取款用况描述
取款
银行职员(客户代理)
基本路劲:
1、当选择取款功能时,用况开始
2、当输入客户信息时(姓名、账号等)后
(a)如果客户信息与账户不一致,显示错误信息,可以重新输入或结束用况
(b)如果该账户被冻结(如因挂失而冻结),显示冻结信息并结束用况
3、输入并校验密码
4、输入取款金额,如果该账户的余额小于取款金额,显示错误信息,要求重新输入
5、打印取款单
6、建立取款事件记录,更新账户信息
7、用况结束
可选路劲:
第3步校验密码时,如果发现密码不一致,则重新输入密码,或用况结束
如果取款成功,客户账户的余额被更新(减少、增加),否则余额不变
活动图描述用况
可以用活动图描写用况的活动顺序。
系统活动图如下:
取款用况的活动图:
存款用况的活动图:
注册用况的活动图:
七、数据库分析与设计
数据库设计指对系统所采用的数据模式、子模式、应用程序、数据库等根据用户的具体要求进行分析和设计。
它也是管理信息系统设计的重要组成部分。
数据库设计的基本原则是尽可能提高数据组织的相对独立性,简化其结构,即用规范化方法设施数据存储的结构,提高数据的可维护性、完整性、一致性。
通过收集和分析用户需求,确定了数据库要保存的信息,我将此次数据库设计为二个如下所示表的设计如下:
用户信息设计表
1、客户表(user)
CardID
字段信息
字段名称
类型
宽度
小数位数
空特性
用户名
uname
varchar
18
身份证号
uid
int
N
卡号
ucno
账户信息设计表
2、账户表(card)
cno
账户余额
cjine
密码
cnima
7.1数据库环境说明
Oracle数据库,运行环境是Windowsxp.。
7.2数据库命名标准与规范
数据库命名为system,密码为beyond。
规范与标准:
1.其中表明尽量避免中文拼音和特殊字符。
尽多使用英文。
2.不能使用毫无意义的单词。
缩写要基本能表达单词的意思。
3.当出现对象命名重名时,是不同类型是,应该加前缀加以表示。
4.名称一律大写,放表数据转移。
其中有两张表。
注册表存储本卡之内的相关信息。
如取款,余下金额,修改密码等!
其他表存储本卡之外所有卡的相关信息。
数据库登陆界面:
7.3数据库逻辑设计
7.3.1逻辑设计步骤
1.需求分析:
了解用户的数据需求、处理需求、安全性及完整性要求;
2.概念设计:
通过数据抽象,设计系统概念模型,一般为E-R模型;
3.逻辑结构设计:
设计系统的模式和外模式,对于关系模型主要是基本表和视图;
7.4数据库物理设计
7.4.1数据库物理设计步骤
1.物理结构设计:
设计数据的存储结构和存取方法,如索引的设计;
2.系统实施:
组织数据入库、编制应用程序、试运行;
3.运行维护:
系统投入运行,长期的维护工作。
7.4.2表、视图汇总
创建表的语句,和图。
表和视图的视图:
注册表视图:
其他表视图:
7.4.3各表、视图设计详解
创建注册表的语句为:
Createtableqita1(
Yhmvarchar2(20),
Sfzvarchar2(20),
MImavarchar2(20),
Qrmmvarchar2(20),
Yevarchar2(20));
表中用户名,密码等考虑到有复杂字符,所以都是设计成varchar2型的。
而余下金额整形不够大所以也是设计成字符型。
后来根据需要改成了number型,这更实用。
八、人机界面设计
8.1界面设计原则
(1)遵循一致原则,确立标准并遵循
(2)(Color)颜色使用恰当,遵循对比原则
(3)(Resource)资源
(4)(Font)字体
(5)(Text)文字表达
(6)(Style)控件风格,不要使用错误控件,控件功能要专一
(7)(Align)控件布局,窗口不拥挤,按功能组合控件
(8)Tab顺序
(9)快捷键、加速键和弹出菜单
(10)用户交互
(11)联机帮助
(12)发行时阐明规则
8.2系统窗口汇总
用户界面设计目前已成为评价软件质量的一条重要指标,所谓用户界面是指软件系统与用户交互的接口,通常包括输入、输出设计、人机对话的界面设计。
一般登陆模块只输入账号、密码,当然在实际应用中没有要求用户输入账号,这是因为在磁卡上有个感应区,所以在编程序时加上了请输入账号。
登陆模块输入界面
登录模块依然采用的是密码输入的方式,需要用户输入卡号、密码然后点击确认,程序将根据输入卡号查找密码,程序系统将根据卡号调用后台数据库查找与卡号对应的密码并与用户输入的密码相对比。
密码正确继续,否则当输入的次数达到三次时,系统将提示你与前台服务员取得联系。
登陆错误界面
登陆成功界面
余额查询界面
在此模块中,将通过用户所使用的账户编号来进行余额的查询,将显示账户的实际余额,点击“查询”按钮,通过按钮的Action方法进行方法调用,就可以实现查询的功能并把查询到的账户余额显示到界面上。
当用户点击“返回”时,程序返回到初始程序主界面。
取款界面
取款模块是一个相对比较重要的模块,因为ATM机就要的功能就是取款业务,用户选择账户名点击取款金额然后点击取款进行取款操作,所以几个数字按钮的设计比较大,方便用户操作,其中一些提示信息也相应地给出,以防用户误操作。
由于此模块不需要用户输入,所以没有对输入的异常处理。
根据所查资料我所采用的Oracle语句调用方法是预处理指令方法,这种方法对于处理此程序具有很大的益处,而且可以防止非法Oracle注入。
当用户点击数组按钮后系统将根据输入的卡号查找卡号余额并与按钮的数字相对比,如果选择的金额大于本卡余额将提示(不允许透支)。
充值界面
用户输入将要存入的金额,经后台分析,要求放入存款数目,识别后把金额存入账户,账户余额被更新(增加)。
转账界面
在此模块,用户根据需要自己输入卡号及欲转金额,这里的设计其实最终归结于具体的Oracle语句而言,系统将根据输入的卡号查找与只对应的用户数据表,从而修改金额。
第一,系统首先根据本卡号,查找本卡金额与输入的金额对比,如果找到,且金额允许就提示转账成功。
第二,如果,没有找到输入的卡号,提示没有该用户,重新输入欲转账号。
更改密码界面
此模块需要用户输入旧密码后,两次输入新密码进行确认,然后,点击确定,修改密码,成功后给出提示信息,其中考虑到一些用户的输入错误问题,我做出了一些异常的判断和处理,空输入,输入两次新密码不匹配和原密码不正确等问题。
修改更新密码的完成仍然依靠按钮控件的Action事件完成。
退卡模块相对简单多了,没有什么具体的界面设计,只是一个消息的提示,也是一种友好的处理方式,以防止用户误操作的方法
数据库查询
8.3主界面设计
界面设计是帮助程序员提前了解要开发的系统的界面操作怎么样的,可以更好的帮助程序员在编写程序时理清思路,所以在每次项目之前做好界面设计的工作是必需的。
首页设计界面
首页的设计主要是设计了查询余额、取款、转账、密码更改及退出按钮等银行卡管理的一些标准操作界面。
8.4子界面设计
九、项目系统实现
9.1实现环境与技术
本系统采用Java作为编程语言,采用Eclipse软件开发环境,Eclipse对数据库应用的强大支持,使数据库应用开发功能更强大,控制更灵活,编译后的程序运行速度更快。
9.2核心模块实现技术代码
此系统的功能实现主要取决于是否链接数据库。
充值中
inta=stmt.executeUpdate("
updatezcsetye=ye+'
"
+str1+"
'
whereyhm='
+登陆界面.username+"
"
);
为核心代码;
登陆:
ResultSetrs=stmt.executeQuery("
select*fromzcwhereyhm='
andmm='
+str2+"
更改密码:
select*fromzcwheremm='
if(rs.next())
{
if(str2!
=str3)
{
intb=stmt.executeUpdate("
updatezcsetmm='
取款:
updatezcsetye=ye-'
查询:
selectyefromzcwhereyhm='
注册:
inta=stmt.executeUpdate("
insertintozcvalues('
'
+str3+"
+str4+"
+0+"
)"
转账:
inta=stmt.executeUpdate("
intb=stmt.executeUpdate("
十、软件测试信息报告
测试软件前,需要测试若干个测试用例,每个测试用例由测试输入数据和预期结果组成,测试时通过输入数据,运行被测程序,如果运行的实际输出与预期结果不一致,则表明发现了程序中的错误。
10.1测试范围与主要内容
程序设计语言的选择通常考虑到项目的应用领域、软件开发方法、软件执行环境、算法和数据结构的复杂性、和软件开发人员的知识。
程序设计是指使用选定的程序设计语言,把经过概要设计各详细设计所得到的信息处理过程,转换成能在计算机上运行的程序源代码。
本系统中用Eclipse编程工具,采用结构化的编程方法对模块进行程序编写。
具体源程序见附页。
10.2测试方法
软件测试的目的是尽可能多的发现程序中的错误,而调试则是在进行了成功的测试之后才开始的工作。
程序调试是指在系统测试的基础上,将发现的问题进行改正,使之符合设计标准。
本系统采用的主要方法如下:
(1)单元测试:
是指原程序中每个程序单元进行测试,检查各个模块是否正确实现规定的功能,从而发现模块在编码中或算法中的错误。
采用白盒法对各模块进行逻辑错误排查,用黑盒法录入一些有特征的数据从不同角度验证结果。
(2)集成测试:
在单元测试的基础上,将所有模块按照设计要求组装成一个完整的系统进行测试。
(3)确认测试(有效性测试):
它的任务是检查软件的功能与性能是否与需求规格说明书中确定的指标相符合。
一般分为用黑盒进行确认测试,再检查软件所有文档的完整性、正确性——软件配置审查。
10.3系统测试步骤
测试过程一般分为4个步骤,即单元测试、集成测试、确认测试和系统测试及发版测试。
开始是单元测试,集中对用源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确实现规定的功能。
集成测试把已测试过的模块组装起来,主要对与