资源描述
武汉理工大学《软件综合课程设计》报告书
录像出租软件系统目录
1. 问题描述..................................2
1.1 前景描述......................................2
1.2 环境描述......................................2
1.3 功能描述......................................2
2. 用例模型及分析类图的描述..................3
2.1 用例模型......................................3
2.2 分析类图......................................6
3. 设计类图、核心用例的顺序图与状态图、组件图.7
4. 信息代码设计、数据库设计、输入设计、输出设计的描述......................................9
5. 用户界面设计和处理过程的设计的描述.......12
6. 软件的测试方法和测试结果.................13
7. 设计的特点、不足、收获与体会.............14
1.问题描述
1.1 前景描述
“录像出租管理系统”是让影碟店老板或员工能够对影碟出租等业务方便管理的操作系统,其影碟的新加入,影碟出租及结帐等业务流程都可以在本系统中得到全自动化的实现,且使用方便,管理安全,不会出现遗漏影碟信息或核算租金错误等问题的存在,此版本的影碟出租管理系统采用C/S模式实现,只限于单机使用,后续版本的系统将采用B/S模式,会实现网络的功能,以供录像连锁店使用。
由于录像店里出租大量的影碟,在管理过程中难免会出现紕漏,而本系统的引入,则会使影碟的管理有序、安全且高效地进行,故录像出租管理系统将会有很好的发展前景。
1.2 环境描述
本系统运行于windows98及以上版本的windows系列。
本系统采用java语言编写,编译工具为Jcreator Pro,由于影碟管理其数据处理量并不是很大,故数据库采用Microsoft Access2000,通过JDBC实现java与数据库的连接。在后续的版本中,将会采用SQL Server2003作为数据库,系统将会采用Spring架构其程序的框架,使网络版影碟出租管理系统更加高效安全。
1.3 功能描述
管理员登入系统后,会出现操作界面,录入界面为新影碟的加入,将新影碟的相关信息输入到数据库中,包括影碟编号、影碟名称、影碟数量等信息。查询界面的作用是,当用户询问有无此名称的碟片时,管理员通过此查询功能查询是否有碟片,有几张碟片。出租界面的操作流程是,先给用户一个唯一识别其身份的编号,存入到数据库的User表中,然后再录入此用户要租的碟片,并记录存储下当前的系统时间,以供结帐。结帐功能是实现用户的结算,用户来归还碟片时,在系统输入用户的编号,点击结帐按钮,罗列出所租影碟,并列出应收顾客的金额。收费标准为3角/天。当天借当天还算一天,第二天还算一天。
2.用例模型及分析类图的描述
2.1 用例模型
根据系统的需求可以明确该系统的功能为新影碟录入,影碟查询,用户录入,影碟出租及结帐等功能。
2.1.1 用例图,如图1
2.1.2 用例描述
以下为对该系统的几个关键用例进行详细描述,下列用例的所有actor,均为管理员(老板或服务员工)。
影碟新录入的用例描述 如表 1
用例编号:
UC-1
用例名称:
影碟新录入
角色:
管理员
描述:
当需要对新进的影碟进行管理时,先对影碟进入编号,然后在录入界面对影碟信息进行录入,录入的信息就通过系统存入到数据库中。
前置条件:
已进入影碟录入界面。
编号在数据库中均两两不相同。
已连接到数据库。
后置条件:
已存入到数据库中。
主干过程:
在编号文本框里输入影碟编号。
在名称文本框里输入影碟名称。
在数量文本框里输入影碟数量。
点击录入按钮。
录入后可返回主干过程继续新影碟的录入。
异常:
给新影碟的编号在数据库中是存在的。
未输入影碟的名称。
未输入影碟的数量。
无法连接到数据库。
优先级:
高。
表 1
影碟查询的用例描述 如表 2
用例编号:
UC-2
用例名称:
影碟查询
角色:
管理员
描述:
当顾客来租影碟或来询问某影碟目前还有存货时,可通过此功能来进行查询,输入影碟编号查看影碟的相关信息。
前置条件:
进入查询页面。
在编号文本框里输入影碟的编号。
点击查询按钮。
后置条件:
系统已连接到数据库中。
主干过程:
管理员已打开查询页面。
在编号文本框里输入影碟的编号。
点击查询按钮。
查询可再返回主干过程继续查询其它影碟。
异常:
未输入影碟编号就直接查询。
无法连接到数据库。
优先级:
高。
表 2
影碟出租的用例描述 如表 3
用例编号:
UC-3
用例名称:
影碟出租
角色:
管理员
描述:
当顾客租影碟时,管理员给定顾客一个编号,然后再租给顾客影碟,可租多盘影碟。
前置条件:
管理员查询到要租的影碟数量大于零。
进入到影碟出租界面。
给定顾客编号。
后置条件:
系统已连接到数据库中。
主干过程:
管理员打开影碟出租界面。
在顾客编号文本框中输入顾客编号,点击顾客编号,存入到数据库。
在影碟编号文本框中输入影碟编号,点击出租按钮,可多次输入影碟编号。
异常:
影碟没有存货。
顾客编号在数据库中有重复。
无法连接到数据库。
优先级:
很高。
表 3
结帐的用例描述 如表 4
用例编号:
UC-4
用例名称:
结帐
角色:
管理员
描述:
进入到结帐界面后,管理员输入顾客编号,点击结帐,显示顾客所租的影碟及应收取的费用。
前置条件:
顾客来还碟。
编号文本框中输入顾客的编号。
后置条件:
系统已连接到数据库。
顾客号在数据库的user表中存在。
主干过程:
进入到结帐页面。
管理员在顾客编号文本框中输入顾客的编号。
点击结帐按钮,就可以显示应收的金额。
异常:
顾客编号在数据库中不存在。
系统没有连接到数据库。
优先级:
最高。
表 4
2.2 分析类图
本系统分为四个大类,分为录入、查询、出租和结帐,每个类的功能均在类图中有标明,在录入功能中,首先应该给即将录入到数据库中的影碟一个编号,因编号在数据库中是主码,所以编号与编号两两之间是不相同的。在出租功能中,一个顾客可以租多个影碟,一种影碟可以有多个,以供多人租借,在结帐功能中,每个影碟每天收费三角钱,多个影碟就多个的收费累加到一起。
3.设计类图、核心用例的顺序图与状态图、组件图
3.1 设计类图
类图如下图 2
3.2 设计顺序图
下图 3为核心用例的顺序图,用以查看系统的运行流程
打开系统界面后,出现查询部分和一系列按钮部分,查询与进入其他界面都需要ForFilm类中实现,故点击查询、出租、结帐按钮后,进入其他的功能界面。在其他功能界面实现其功能时,比如查询、出租等功能,都需要调用本类中的方法对数据库进行操作来实现其功能,故本类中会出现消息的自调用。
3.3 设计状态图
下图 4为此系统的状态图,进入主界面,然后选择相应的操作,在出租功能中,需要先在查询功能中进行查询,以确定要出租的影碟仍有存货,接着再进行出租影碟的操作,当然也可以直接进行出租的操作,但可能会因为影碟无存货而导致出现异常情况。
4.信息代码设计、数据库设计、输入设计、输出设计的描述
4.1 信息代码设计
本系统采用java语言编写,包括界面的设计,与数据库的连接等功能。主界面为一个大类,然后每个功能均独立成一个类。
ForFilm 主类,也是主界面
ChaZhao 查询类,实现查询功能;查询界面
ChuZhu 出租类,影碟出租功能;出租界面
JieZhang 结帐类,结帐功能;顾客结帐界面
在每个界面中,均在文本框输入相关信息,点击按钮触发事件用以进行数据库的操作。具体代码见附件forfilms.rar,解压后即有程序源代码及数据库。
4.2 数据库设计
数据库的设计,我用了三个表,分别为Film、User、UerChuZhu。
Film表 存储影碟的相关信息
Film(id,name,number,time)
id为此表的主码,是管理员为影碟进行的编号,因为id是主码,故在数据库中两两编号是不能相同的。id是int型的。
name是影碟的名字。String型。
number是现有影碟的数量。int型。
time是影碟加入时的时间。String型。
Film表如图 5
User表 存储管理员给用户的编号。
User(usernumber)
usrnumber是管理员给用户的编号,用以唯一识别来借碟的顾客,同样usernumber是主码 ,故在数据库中两两编号是不能相同的。 usernumber是int型的。
User表如图 6
UserChuZhu表 用以存储顾客租碟的相关信息
UserChuZhu(ID,usernumber,filmname,chuzhutime,moneys)
ID是此表的主码,实现自动编号功能。int型。
usernumber,用户编号。int型。
filmname,电影名。String型。
chuzhutime,出租时的时刻。String型。
moneys,顾客应付的金额 。int型。
UserChuZhu表如图 7
4.3 输入输出设计
用户界面在将在随后的用户界面设计中给出。在主界面中,可进行插入操作,而查询、出租、结帐均要点击相应按钮进入相关界面进行操作。在插入功能中,影碟编号文本框中输入编号,影碟名称文本框中输入名称,数量文本框输入影碟数量,点击录入。
查询页面中,在编号文本框中输入影碟编号,点击“查找”按钮,在名称文本框里输出与此编号对应的影碟名字,在查找情况文本况里输出此影碟目前的存货数量为多少。
出租页面中,先由管理员在顾客文本框中输入自己设定的顾客编号,点击“顾客编号”按钮,接着在影碟编号文本框内输入影碟的编号,点击“出租影碟”按钮,则在影碟名称文本框内输出影碟的名字,在出租时间文本框内输出此时系统也是影碟租出的时间,因一个顾客可以借多张碟,所以可以在影碟编号文本框内再输入其它影碟编号,点击“出租影碟”按钮,多次重复。
结帐页面中,前提是顾客来还碟了,在用户编号文本框内输入此顾客的编号,点击“结帐”按钮,刚在所租影碟选择框内输出此顾客所租的影碟名称,在应收租金文本框内输出应收此顾客的金额。
5.用户界面设计和处理过程的设计的描述
5.1 用户界面设计
图 8为主界面的设计
图 9为查询页面的设计
图 10为出租界面的设计
图 11为结帐界面的设计
5.2 处理过程的设计
GUI与数据库之间的信息交互,是通过JDBC来完成的,管理员在相应的文本框内输入要查询或插入的信息,点击相应按钮,触发程序中的处理事件,使信息得以在数据库中得到处理,并将处理后的结果或信息显示到界面中相应的文本框中。
6.软件的测试方法和测试结果。
首先是对源代码的测试,在编完一个模块或一个功能的源代码时,要先进行走读,目的是为了发现程序中的语法错误。当然在编译过程中,没有错误,但在运行时,会出现runtime异常,这就需要设置断点和插桩的方法进行检查,例如在可能出错的代码行中间插入
System.out.println(“dfdsfdfd”); ,若某处并没有在DOS界面下输出指定要输出的字符串,则某处就极有可能有错误,这种错误就不是语法错误了,而是逻辑上的功能错误 。
其次是检查与数据库是否已经连接上,在用户界面,如插入界面,在界面的相应文本框内输入信息,点击录入按钮后,然后打开数据库,找到Film表,打开后,看是否插入到此表中。若没有,首先应考虑在源代码行中,连接数据库的语句是否正确,接着再考虑,在编译程序之前,是否已经配置了数据源。
若代码及数据库的连接没有问题,且界面也已经设计好了,则就要测试通过界面获得的数据能否能够正确更新到数据库中,以及在数据库中经过处理后的数据能否能够正确地显示到图形用户界面上来。测试的数据取一些边界值等,以及多次重复输入与主码相对应的数据,检查是否会有错误提示,以及系统是否按照自己的异常处理方法来处理异常。
7.设计的特点、不足、收获与体会。
我设计的录像出租管理系统,界面简约易懂,操作简单,很容易上手,由于采用java语言编写,所以此管理系统在不同的操作系统上运行不会出现不兼容的问题。程序虽小,但基本上实现了影碟出租的全部功能,影碟新加入、查询、出租、结帐。不足点是,java是纯面向对象的程序语言,但我的程序并不是纯面向对象的,而是出现了面向结构化的现象。如,连接数据库的地方,一个类中某个方法需要对数据库进行操作,于是,建立了Connection及Statement,在另一个方法中也需要对数据库进行操作,再建立Connection及Statement。而对数据库的操作,可以单独分出来成为一个大类,其内的变量及方法实现对数据库的不同操作,在其它类中需要连接数据库的地方中,可以引入其数据库的这个类的对象来实现对数据库的操作,但由于我在之前并没有真正的接触过java与数据库的连接,所以按照课本上的方法来,只能算是模仿,并没有自己的主观想法及创新。在程序过程中,并没有对runtime异常进行详细的处理,若出现异常时,则系统会显示出错的信息,但无法对其进行处理,以致于程序因此而中断,故此系统的前提是在输入正确的数据格式及类型的情况下能够正常运行。
通过此次课程设计,让我对数据库的连接有了一定的掌握,自己已经能够掌握数据库连接的原理以及对数据库不同的操作。界面也是自己手写,并没有借助其它工具进行拖动来组装界面,因为对于我来说,这种基本的东西应该在掌握了其基本的设计原理及设计方法的前提下再借助设计工具及框架来设计系统。而且自己设计,更加深了我对swing组件的应用。
这个系统,本身还是存在着很多的漏洞及缺陷,让我明白了,系统的设计,并不是一个人就能完成了,需要一个团体的紧密的合作与有序的分工,才能做出一个优秀的软件,而通过这个系统的设计,也让我体会到了程序设计的艰辛,同时也有助于提高我的毅力耐心以及对知识的掌握程度。
这次课程设计,远远达不到专业水平,综合课程设计,绝对是十分严谨的事情,必须要考虑到方方面面,要注意到种种因素。但不管怎么说,该考虑的我也考虑了,该注意的我也注意了。自己一个人独立完成,当然,查资料书不算,心里还是挺有成就感的。对于我来说,只要我真心付出了,努力了,就意味着成功。
8. 参考资料
1. 王珊.数据库系统简明教程.高等教育出版社,2006
2. 王智学等.ROSE对象建模方法与技术.机械工业出版社,2003
3. Karl E.Wiegers.Software Requirements2.清华大学出版社,2006
4. 王少锋.面向对象技术-UML教程.清华大学出版社,2004
5.王国辉,吕海涛等.Java数据库系统开发.人民邮电出版社,2007
6. Y.Daniel Liang.Java语言程序设计.机械工业出版社,2005
15
展开阅读全文