UML课程设计ATM系统.docx
《UML课程设计ATM系统.docx》由会员分享,可在线阅读,更多相关《UML课程设计ATM系统.docx(25页珍藏版)》请在冰点文库上搜索。
UML课程设计ATM系统
课程设计(论文)
课程名称:
信息系统开发工具
题目:
ATM存款系统
院(系):
管理学院
专业班级:
管理科学0901
姓名:
谢华兴
学号:
090450106
指导教师:
陈宇玺
2012年6月13日
安建筑科技大学课程设计(论文)任务书
专业班级:
管理科学学生姓名:
谢华兴指导教师(签名):
一、课程设计(论文)题目
ATM存款系统
二、本次课程设计(论文)应达到的目的
1.针对一个实际系统的开发,使学生深刻理解和掌握管理信息系统系统分析、系统设计和系统实施的理论和方法;
2.巩固和加深理解所学编程语言、开发工具,提高综合应用能力;掌握系统UML建模、界面设计、数据库设计、程序代码设计,提高实践能力;
3.初步了解学术研究的基本方法与步骤,并通过设计报告(论文)的撰写,了解学术报告(论文)的写作方法。
三、本次课程设计(论文)任务的主要内容和要求(包括原始数据、技术参数、设计要求等)
1、设计内容:
开发出一个软件系统,模拟ATM存款的业务过程。
2、设计过程:
按照系统设计目的、系统需求、系统功能分析与设计、用户界面设计、源程序设计、使用说明等环节整理课程设计的成果,形成设计报告,设计报告应包括的内容:
●系统需求分析:
需求描述、系统UML主要用例、主要类图、主要活动图、状态及部署图(如果必要)、业务流程图、数据流图、数据字典附必要的文字说明
●系统设计:
功能结构设计、I/O设计、代码设计、界面设计、数据库设计、网络环境。
撰写设计总结报告。
3.设计成果提交:
A.设计报告;B.源程序。
报告要符合学校格式规范要求。
四、应收集的资料及主要参考文献:
1.ErikssonHE,PenkerM.UML2工具箱[M].俞俊平,余安萍,徐敏,译.北京:
电子工业出版社,2004.
2.周飞,杨根兴,蔡立志.基于UML的测试用例生成方法研究[J].计算机应用与软件,2009,26
(2):
107-110.
3.张庆,雷航.一种基于UML状态图的面向对象类级测试模型[J].计算机工程,2005,31(21):
75-77.
五、审核批准意见
教研室主任(签字)
设计总说明
随着信息时代科技的飞速发展,使用ATM存款机、计算机等技术的发展,不仅提高了工作效率,而且大大的提高了其安全性。
对于一些复杂的信息,就能够充分的发挥它们的优越性。
ATM取款机就是技术发展的产物,相对的一台ATM取款机与ATM存款机的系统是密不可分的。
本系统就是为了更方便人们的生活而设计的。
ATM存款系统作为一款数据传输的技术,用户信息和资金信息的繁杂,包含很多的数据的管理,以前的都是由一些柜员进行操作,而且手续很多。
对于ATM取款系统数据的统计和核实等都是采用卡号进行核对的,对于用户的信息资料、以及资金统计等用人工办理。
数据信息处理工作量大,繁琐。
数据处理手工操作,工作量大,工作时需实时认真办理,一但出现错误将带来很大的损失,ATM取款系统采取数据库进行管理且由人工进行处理、维护等工作。
由于信息一定要准确真实,认真的进行各项核对工作,工作人员和管理员也只是当时对它比较清楚,时间一长,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。
关键字:
UML,管理信息系统,,数据库,ATM系统,JAVA
安建筑科技大学课程设计(论文)任务书2
1绪论1
1.1系统简介1
1.2设计目的1
1.3设计内容2
2需求分析3
2.1.需求分析的任务3
2.2系统UML主要用例和设计4
3系统设计10
3.1设计思想10
3.2系统功能模块划分:
10
3.3ATM存款系统模块图:
11
4数据库的逻辑设计11
4.1数据字典11
4.2具体表12
5详细设计13
6源代码19
总结22
参考文献23
1绪论
1.1系统简介
ATM存款系统的目的就是建立一个客户平台,用户使用此平台进行取款、查询余额、修改密码等业务办理。
相对于柜员操作一样的,不过ATM存款系统有的功能有权限设置,一些功能只有银行柜员才能进行的业务办理,由于技术局限,一些业务还需人工进行办理。
ATM存款系统的针对的用户群是使用此软件系统并在系统里开户,用户做为系统的服务群体,按照要求首先要在此软件系统里开户办理一个卡号,用户可以使用开户办理得到的卡号登陆ATM存款系统。
当用户成功登陆后就可以根据用户的需求进行各项业务的办理,办理完所有的手续后,用户的输入的新资料以及办理的业务处理后的信息都会反馈到数据库并且都会存入到数据库中。
这样用户就完成了办理业务。
1.2设计目的
ATM存款系统是面向特定对象群是在此软件系统开户办理的用户,所以用户进入开户办理时的资料都需要严格核查,用户登陆系统后,应该能根据自己的需要进行各项业务的办理。
鉴于软件系统使用环境一般在网络上或银行门口装置机械,为了考虑到软件的安全性,对于每个用户来说,系统的安全性直接影响着自身的利益,同时也有可能也使用此软件的银行带来很的损失。
特别是网络环境,到处伴随着危险,ATM取款系统针对这一用户群,采取一些有效的措施,登陆后用户办理完的业务信息反馈到客户端数据库里,做好防止信息被拦截工作。
1.3设计内容
开发出一个软件系统,模拟ATM存款的业务过程。
设计过程:
按照系统设计目的、系统需求、系统功能分析与设计、用户界面设计、源程序设计、使用说明等环节整理课程设计的成果,形成设计报告,设计报告应包括的内容:
●系统需求分析:
需求描述、系统UML主要用例、主要类图、主要活动图、状态及部署图(如果必要)、业务流程图、数据流图、数据字典附必要的文字说明
●系统设计:
功能结构设计、I/O设计、代码设计、界面设计、数据库设计、网络环境。
撰写设计总结报告。
2需求分析
2.1.需求分析的任务
1)项目背景及基本描述
ATM自动存款机系统作为银行信息化管理的一部分,已经相当普及了。
相比传统的手工操作,大大提高了银行的工作效率,同时降低人力、财力、物力的浪费,使得存款,转账等一些银行的日常业务形成一种规范有序的流程,减少信息交流的烦琐过程及其带来的开销,实现银行管理的规范化、自动化。
2)用户分析
使用该系统的用户包括两类:
管理员和客户。
管理员:
系统的超级用户,其对系统的操作包括开户、销户、修改密码。
此类用户对计算机有一定的深入了解,对数据库的操作也有一定的基础,其亦可能是此类软件较熟悉的用户,这类用户有能力进行一些复杂的操作,比较数据备份,备份路径等。
由于数据库保存着所有客户信息情况,在设计时对这类操作应尽量增加确认操作,以对话框的形式询问是否进行操作。
客户:
系统的普通用户,其对系统的操作包括存款、查询余额、转账、修改密码等。
此类用户的计算机水平一般较低,系统对其操作的要求不应过高,比如菜单项就放在较为突出的地方,方便其操作,尽可能减少输入的数据与次数,避免因操作过多而出现的失误,同时相应菜单应设置带提示性的图标,提交后应弹出提示信息。
3)系统功能需求
ATM自动存款机系统相关的主要对象有:
用户:
使用ATM自动存款机进行现金交易。
进行存款、查询余额、设置密码、转账等操作。
ATM系统:
对用户的需求进行接收,通过与数据库的交互,根据对用户应用服务的响应,更新数据库中用户的信息。
银行数据库:
对用户的所有信息进行存储更新。
因此,可以把系统具体功能描述如下:
管理员:
开户,销户,修改密码。
客户:
存款,查询余额,转账,修改密码。
主要功能:
存款:
用户按照系统输入要求输入存款金额,然后放入验钞。
查询余额:
用户可以查看账户所剩现金余额。
修改密码:
如果用户想要修改当前密码,通过系统可以设置新密码。
转账:
用户可以通过该功能将自己账户上的金额转到其他账户
2.2系统UML主要用例和设计
用例分析
“存款”用例
用例编号:
01用例名:
存款执行者:
.人执行者:
客户系统执行者:
存款子系统
目的:
执行存款任务
类型:
端点主要的基本的
级别:
一级
过程描述:
1.插卡2.输入密码3.输入存款金额确定4.放入存款5.退出系统
“查询”用例
用例编号:
02用例名:
查询账户执行者:
.
人执行者:
客户.系统执行者:
查询子系统
目的:
执行查询任务
类型:
端点主要的基本的
级别:
一级
过程描述:
1.插卡2.输入密码3.查询账号4.人名币查询5.查询打印凭条6.退出系统
“修改密码”
用例用例编号:
0669用例名:
修改密码执行者:
.人执行者:
客户
.系统执行者:
修改密码子系统
目的:
执行修改密码任务
类型:
端点主要的基本的
级别:
一级
过程描述:
1.插卡2.输入密码3.修改密码4.输入新密码5.再次输入新密码6.修改成功退出系统
“转账”用例
用例编号:
0668用例名:
转账执行者:
.人执行者:
客户
系统执行者:
转账子系统
目的:
执行转账任务类型:
端点主要的基本的
级别:
一级
过程描述:
1.插卡。
2.输入密码3.进入转账界面4.输入转入卡号或账号(只能同行转账)5.再次输入卡号或账号。
6.输入转入金额确定。
7.退出系统
1)用例图如图2-2-1所示
图2-2-1
2)类图如图2-2-2所示
图2-2-2
3)包图如图2-2-3所示
图2-2-3
4)对象图如图2-2-4所示
图2-2-4
5)时序图如图2-2-5所示
图2-2-5
6)通信图如图2-2-6所示
图2-2-6
7)活动图如图2-2-7所示
图2-2-7
3系统设计
3.1设计思想
ATM存款系统需要满足来两方面的需求,这两个方面分别是用户、柜员管理。
用户的需求是进行各项业务的办理;柜员管理人员对用户办理的信息进行操作处理,同时保存在数据库中以便用户查询;柜员的功能最为复杂,他包括对数据库的维护、用户信息维护及分数发布情况进行维护。
用户可以根据开户申请到的卡号和密码登录到系统,登录成功后可进行四种操作,一是取款,二是查询余额,三是修改密码。
银行柜员有修改卡信息、卡密码和柜员密码、开户办理、取款、存款、卡登陆等使用权限,所以需对银行柜员登陆到柜员模块进行更多细节上的考虑。
3.2系统功能模块划分:
银行用户模块:
包括用户登录模块、存款模块、取款模块、查询模块、修改密码模块、退出模块。
银行柜员模块:
包括柜员登录模块、用户信息开户办理、修改密码、查询、取款、存款等模块。
3.3ATM存款系统模块图:
4数据库的逻辑设计
4.1数据字典
glylnfo表
userlnfo表
cardlnfo表
Translnfo表
4.2具体表
数据库(bank.mdb)
5详细设计
用户系统模块
.功能
取款
查询余额
修改密码
.算法
判断角色选择,并激活相应的登陆界面,在这里我使用了if语句,来判断角色的选择。
修改界面必须要获取要修改的对象,如果对象为空的话,就不存在修改数据的可能。
查询功能则需按方便找的信息入手。
这里采用简单查找。
取款则必须判断余额是否大于取款金额,是则进行取款,并弹出取款成功。
窗体界面及相应代码
1窗体界面说明
(1)登录界面
此模块所要完成的就是用户或银行柜员的登录,因此对于界面而言,只要用户可以很方便
地输入用户名和密码,并且可以很方便地登录就可以了。
界面如图
设计的用户登陆由用户卡号和密码构成,首先要选择好登陆的模式,然后在用户输入卡号和密码后,就会调用数据库查看此用户名是否存在或密码是否正确。
代码如下:
代码如下:
publicbooleanisValid(Connectionconn,StringcardID,Stringpass){
Stringsql="select*fromcardlnfowherecardID=?
andpass=?
";
booleantemp=false;
try{
……
}
returntemp;
}
Stringpass=String.valueOf(jPasswordField.getPassword());
cardID=String.valueOf(jComboBox.getSelectedItem());
con=db.getConn();
booleanflag=db.isValid(con,cardID,pass);
if(flag){
……
}
JOptionPane.showMessageDialog(null,"密码错误!
请重新输入!
");
}
(2).用户登陆成功后的界面
代码如下:
这个是查询代码:
con=db.getConn();
try{
……
}catch(SQLExceptionex1){
javax.swing.JOptionPane.showMessageDialog(this,
ex1.getMessage().toString());
}
选择取款金额
代码:
publicvoiddraw(inti){
con=db.getConn();
ResultSetrs=db.executeQuery("selectbalancefromcardlnfowherecardID='"+LoginFrm.cardID+"'");
try{
……
}catch(SQLExceptionex1){
javax.swing.JOptionPane.showMessageDialog(this,ex1.getMessage().toString());
}
}
交易中进度条代码:
jProgressBar.setMaximum(100);
sim=newSimulate(100);
newThread(sim).start();//线程启动
time=newTimer(100,newActionListener(){
publicvoidactionPerformed(ActionEventevent){
intcurrent=sim.getCurrent();
jProgressBar.setValue(current);
if(current==sim.getTarget()){
time.stop();
javax.swing.JOptionPane.showMessageDialog(null,"交易成功!
");
cancel();
MainFrmm=newMainFrm();
m.setVisible(true);
}
}
});
time.start();
修改密码代码:
if(jPasswordField.getPassword().equals("")||
jPasswordField1.getPassword().equals("")){
javax.swing.JOptionPane.showMessageDialog(this,"任何一栏不能为空!
");
}else{
……
try{
……
}catch(SQLExceptionex){
javax.swing.JOptionPane.showMessageDialog(this,
ex.getMessage().toString());
return;
}
……
}
退出代码:
inta;
a=JOptionPane.showConfirmDialog(null,"确实要退出吗?
","退出程序",JOptionPane.YES_NO_OPTION);
System.out.println(a);
if(a==JOptionPane.YES_OPTION){
System.exit(-1);
6源代码
附上部分代码。
importjavax.swing.*;
importjava.awt.*;
importjavax.swing.border.*;
importjava.awt.event.*;
importjava.io.*;
/*登陆页面首窗口*/
classWindowBoxextendsFrameimplementsActionListener{
BoxbaseBox,box1,box2;
TextFieldtf1,tf2;
Buttonbutton1;
Buttonbutton2;
WindowBox(Strings){//构造方法
super(s);
tf1=newTextField(6);
tf2=newTextField(6);
box1=Box.createVerticalBox;
box1.add(newLabel("请输入你的卡号"));//输入卡号
box1.add(Box.createVerticalStrut(8));
box1.add(newLabel("请输入你的密码"));//输入密码
box2=Box.createVerticalBox();
box2.add(tf1);
//box2.add(newTextField(16));
box2.add(Box.createVerticalStrut(8));
box2.add(tf2);
//box2.add(newTextField(16));
baseBox=Box.createHorizontalBox();
baseBox.add(box1);
baseBox.add(Box.createHorizontalStrut(10));
baseBox.add(box2);
add(baseBox);
button1=newButton("确定");//加入按钮
button1.addActionListener(this);
add(button1);
button2=newButton("退卡");//退卡按钮
button2.addActionListener(this);
add(button2);
setLayout(newFlowLayout());
/*监听器*/
this.addWindowListener(newWindowAdapter(){
publicvoidwindowClosing(WindowEvente){
System.exit(0);
}
});
setBounds(120,125,200,175);
setVisible(true);
}
publicvoidactionPerformed(ActionEvente){
Accountact;
Stringcard;
Stringpwd;
act=newAccount("000000","Devil","123456",50000);//初始化
/*选择各种服务*/
if(e.getSource()==button1){
Stringnumber1,number2;//输入的两个卡号和密码的变量
number1=tf1.getText();
number2=tf2.getText();
/*判断两次输入的卡号和密码是否正确*/if((act.get_Code().equals(number1))&&(act.get_Password().equals(number2))){
dispose();
Selections=newSelection("选择服务",act);
}else{
dispose();
ErrorWarnew=newErrorWarn("消息!
",act);//报输入密码或卡号不正确
}
}if(e.getSource()==button2){
System.exit(0);
dispose();//退出
}
}
}
总结
制作一款软件还真不是一朝一夕的事情,每件事情你都要认真的去做,去跟同学探讨、交流,在制作ATM取款系统的时候,自己在其中也能学到很多知识,运用老师所交的知识,去制作软件,没有交的可以翻阅书籍,网上找资料,同时自己也能学到一些自己不知道的,不管以后走出社会有没有用到,有没有从事这项工作,这都是一项很值得借鉴的经验。
参考文献
1.ErikssonHE,PenkerM.UML2工具箱[M].俞俊平,余安萍,徐敏,译.北京:
电子工业出版社,2004.
2.周飞,杨根兴,蔡立志.基于UML的测试用例生成方法研究[J].计算机应用与软件,2009,26
(2):
107-110.
3.张庆,雷航.一种基于UML状态图的面向对象类级测试模型[J].计算机工程,2005,31(21):
75-77.