录像出租系统软件设计文档格式.docx
《录像出租系统软件设计文档格式.docx》由会员分享,可在线阅读,更多相关《录像出租系统软件设计文档格式.docx(20页珍藏版)》请在冰点文库上搜索。
指导教师签名:
2011年12月22日
系主任(或责任教师)签名:
年月日
目录
1.问题描述........................................................4
1.1前景描述......................................................4
1.2环境描述......................................................4
1.3功能描述......................................................4
2.用例模型及分析类图的描述.........................................4
2.1用例模型.......................................................4
2.1.1用例图.....................................................5
2.1.2用例描述...................................................5
2.2分析类图.......................................................8
3.设计类图、核心用例的顺序图与状态图、组件图........................9
3.1设计类图......................................................9
3.2设计顺序图....................................................9
3.3设计状态图...................................................10
4.信息代码设计、数据库设计、输入设计、输出设计的描述..............11
4.1信息代码设计.................................................11
4.2数据库设计..................................................12
4.3输入输出设计.................................................14
5.用户界面设计和处理过程的设计的描述.............................15
5.1用户界面设计................................................15
5.2处理过程设计.................................................16
6.软件的测试方法和测试结果........................................16
7.设计的特点、不足、收获与体会....................................17
8.参考资料........................................................18
9.成绩评定表......................................................19
1.问题描述
1.1前景描述
“录像出租管理系统”是让录像店老板或员工能够对录像出租等业务方便管理的操作系统,其录像的新加入,录像出租及结帐等业务流程都可以在本系统中得到全自动化的实现,且使用方便,管理安全,不会出现遗漏录像信息或核算租金错误等问题的存在。
由于录像店里出租大量的录像,在管理过程中难免会出现紕漏,而本系统的引入,则会使录像的管理有序、安全且高效地进行,故录像出租管理系统将会有很好的发展前景。
同时我们假设每张录像的出租价格是5元钱,所以最后结账时只需计算出顾客租借的录像张数,再乘以5,便是要支付的租金。
这在结账的界面也有所提示。
1.2环境描述
本系统运行于windows98及以上版本的windows系列。
本系统采用java语言编写,编译工具为myeclipse,用过几天的研究,我弄明白了应用程序与数据库的连接,数据库系统采用MicrosoftSQLServer2008。
。
1.3功能描述
管理员登入系统后,会出现操作界面,录入界面为新录像的加入,将新录像的相关信息输入到数据库中,包括录像编号、录像名称、录像数量等信息。
查询界面的作用是,当用户询问有无此名称的碟片时,管理员通过此查询功能查询是否有碟片,有几张碟片。
出租界面的操作流程是,先给用户一个唯一识别其身份的编号,然后再录入此用户要租的碟片,并记录存储下当前的系统时间,以供结帐。
结帐功能是实现用户的结算,用户来归还碟片时,在系统输入用户的编号,点击结帐按钮,罗列出所租录像,并列出应收顾客的金额。
收费标准为一张录像子的租金为5元,计算该顾客所借的录像张数,以此来计算最后租金。
(录像张数*5元=租金数)
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分析类图
本系统分为四个大类,分为录入、查询、出租和结帐,每个类的功能均在类图中有标明,在录入功能中,首先应该给即将录入到数据库中的录像一个编号,因编号在数据库中是主码,所以编号与编号两两之间是不相同的。
在出租功能中,一个顾客可以租多个录像,一种录像可以有多个,以供多人租借,在结帐功能中,每个录像收费5元,通过计算录像张数计算租金。
3.设计类图、核心用例的顺序图与状态图、组件图
3.1设计类图
类图如下图2
3.2设计顺序图
下图3为核心用例的顺序图,用以查看系统的运行流程
打开系统界面后,出现查询部分和一系列按钮部分,查询与进入其他界面都需要ForFilm类中实现,故点击查询、出租、结帐按钮后,进入其他的功能界面。
在其他功能界面实现其功能时,比如查询、出租等功能,都需要调用本类中的方法对数据库进行操作来实现其功能,故本类中会出现消息的自调用。
3.3设计状态图
下图4为此系统的状态图,进入主界面,然后选择相应的操作,在出租功能中,需要先在查询功能中进行查询,以确定要出租的录像仍有存货,接着再进行出租录像的操作,当然也可以直接进行出租的操作,但可能会因为录像无存货而导致出现异常情况。
4.信息代码设计、数据库设计、输入设计、输出设计的描述
4.1信息代码设计
本系统采用java语言编写,包括界面的设计,与数据库的连接等功能。
主界面为一个大类,然后每个功能均独立成一个类。
类后面跟着的是各自里面的方法。
(1)ForFilm主类,也是主界面
publicstaticvoidmain(String[]args)
publicForFilm()
publicvoidactionPerformed(ActionEvente)
publicvoidtianJia()throwsSQLException
publicvoidtuiChu()throwsSQLException
publicStringgettime()
publicvoidqingChu()
(2)ChaZhao查询类,实现查询功能;
查询界面
publicChaZhao()
publicvoidcZhao()throwsSQLException
(3)ChuZhu出租类,录像出租功能;
出租界面
publicChuZhu()
publicvoidactionPerformed(ActionEvente)
publicvoidcZu()throwsSQLException
publicvoidcZuOut()throwsSQLException
publicStringgetTime()
(4)JieZhang结帐类,结帐功能;
顾客结帐界面
publicJieZhang()
publicvoidjiezhang()throwsSQLException
在每个界面中,均在文本框输入相关信息,点击按钮触发事件用以进行数据库的操作。
每个类中都有相应的方法,通过这些方法实现各自的功能。
4.2数据库设计
数据库的设计,我用了两个个表,分别为Film、UserChuZu,如下图-5
图-5
[1]Film表存储录像的相关信息
Film(id,name,number,time)
id为此表的主键,是管理员为录像进行的编号,因为id是主码,故在数据库中两两编号是不能相同的。
id是int型的。
name是录像的名字。
nvarchar(50)型。
number是现有录像的数量。
int型。
time是录像加入时的时间。
Film表如图-6
图-6
[2]UserChuZu表用以存储顾客租碟的相关信息
UserChuZu(ID,usernumber,filmname,chuzutime)
usernumber,是此表的主键,用户编号,int型。
filmname,是此表的主键,电影名,nvrchar(50)型。
chuzutime,出租时的时刻,nvrchar(50)型。
UserChuZu表如图-7
图-7
4.3输入输出设计
在主界面中,可进行插入操作,而查询、出租、结帐均要点击相应按钮进入相关界面进行操作。
在插入功能中,录像编号文本框中输入编号,录像名称文本框中输入名称,数量文本框输入录像数量,点击录入。
查询页面中,在编号文本框中输入录像编号,点击“查找”按钮,在名称文本框里输出与此编号对应的录像名字,在查找情况文本况里输出此录像目前的存货数量为多少,若没有则进行相关提示。
出租页面中,先由管理员在顾客文本框中输入自己设定的顾客编号,在录像名称文本框内输出录像的名字,在出租时间文本框内输出此时系统也是录像租出的时间,因一个顾客可以借多张碟,所以可以在录像编号文本框内再输入其它录像编号,点击“出租录像”按钮,多次重复。
结帐页面中,前提是顾客来还碟了,在用户编号文本框内输入此顾客的编号,点击“结帐”按钮,刚在所租录像选择框内显示输出此顾客所租的所有录像名称,在应收租金文本框内输出应收此顾客的金额。
5.用户界面设计和处理过程的设计的描述
5.1用户界面设计
图-8为主界面的设计输入录像编号,录像名称和数量
图-8
图-9为录入操作输入编号:
图-9
图-10为查找页面的设计:
输入录像编号,点击“查找”
图-10
图-11为出租界面的设计:
输入顾客编号和录像编号,点击出租录像
图-11
图-12为结帐界面的设计:
中间显示的是租借的录像名,下面是两个顾客的结账界面
图-12
5.2处理过程的设计
GUI与数据库之间的信息交互,是通过JDBC来完成的,管理员在相应的文本框内输入要查询或插入的信息,点击相应按钮,触发程序中的处理事件,使信息得以在数据库中得到处理,并将处理后的结果或信息显示到界面中相应的文本框中。
6.软件的测试方法和测试结果
首先是对源代码的测试,在编完一个模块或一个功能的源代码时,要先进行走读,目的是为了发现程序中的语法错误。
当然在编译过程中,没有错误,但在运行时,会出现runtime异常,这就需要设置断点和插桩的方法进行检查,例如在可能出错的代码行中间插入标记语句:
System.out.println(“相关的出错提示语句”);
,若某处并没有在DOS界面下输出指定要输出的字符串,则某处就极有可能有错误,这种错误就不是语法错误了,而是逻辑上的功能错误。
其次是检查与数据库是否已经连接上,在用户界面,如插入界面,在界面的相应文本框内输入信息,点击录入按钮后,然后打开数据库,找到Film表,打开后,看是否插入到此表中。
若没有,首先应考虑在源代码行中,连接数据库的语句是否正确,接着再考虑,在编译程序之前,是否已经配置了数据源。
若代码及数据库的连接没有问题,且界面也已经设计好了,则就要测试通过界面获得的数据能否能够正确更新到数据库中,以及在数据库中经过处理后的数据能否能够正确地显示到图形用户界面上来。
测试的数据取一些边界值等,以及多次重复输入与主码相对应的数据,检查是否会有错误提示,以及系统是否按照自己的异常处理方法来处理异常。
7.设计的特点、不足、收获与体会
本课程设计的录像出租管理系统,界面简约易懂,操作简单,很容易上手,由于采用java语言编写,所以此管理系统在不同的操作系统上运行不会出现不兼容的问题。
程序虽小,但基本上实现了录像出租的全部功能,录像新加入、查询、出租、结帐。
不足点是,java是纯面向对象的程序语言,但我的程序并不是纯面向对象的,而是出现了面向结构化的现象。
如,连接数据库的地方,一个类中某个方法需要对数据库进行操作,于是,建立了Connection及Statement,在另一个方法中也需要对数据库进行操作,再建立Connection及Statement。
而对数据库的操作,可以单独分出来成为一个大类,其内的变量及方法实现对数据库的不同操作,在其它类中需要连接数据库的地方中,可以引入其数据库的这个类的对象来实现对数据库的操作,这也是需要自己改进的地方。
通过此次课程设计,我掌握了如何利用java的sql包进数据库连接,由于以前不知道怎么进行这方面的设计,自己也是专门通过一天的时间进行试验,利用一段短小的代码进行连接测试,这让我对数据库的连接有了更深的理解。
自己用的数据库是比较大型的SQLServer2008,虽然也可以利用像Access这样的小型数据库管理系统,但通过自己之前一段时间在公司的实习,觉得能够熟悉像SQLServer2008这样的DBMS,对自己以后的工作也是很有帮助的,所以就采用了它来进行课设设计。
刚开始自己也连不上数据库,就上网查原因,发现了自己的两点错误。
一个是没有加载数据库的驱动,一个是自己的电脑没有开放端口1433。
我去微软的官网把驱动sqljdbc4下下来加载好,再通过防火墙把端口1433打开(因为SQLServer2008的连接要用到端口1433)。
同时自己对端口的认识也加深了一步,程序的运行离不开端口的辅助。
不过自己还有一个问题没弄明白,就是:
如果把自己的电脑作为服务器,还要进行哪些设计才能让别人连上自己电脑上的数据库,我想自己还得继续研究下。
毕竟如果这是一个商业系统的数据库,它是必须要让客户端连接上来进行相关操作的。
我想这次课设最大的收获还是自己学会了数据库的配置以及其连接。
相关设计也加深了我对swing组件的应用,不过如果自己要想更加熟练地进行界面的设计,还得多加练习才行。
通过此次的课设实践,自己也加深了对java语言的回顾,以及数据库知识的学习,还有很重要的是我很享受这样一个思考问题,并通过网络查找解决问题的过程,学会找解决问题的方法,这是很重要的发面,它是一个让你永远不会停滞不前的法宝。
同学的帮助也是我前进的很大动力,很感谢他们在我遇到问题的时的帮助。
也非常感谢大学这几年老师对我的教导,他们的辛苦栽培照亮了我前进的道路。
8.参考资料
[1]王珊,萨师煊.《数据库系统概论(第四版)》高等教育出版社,2006-06.
[2]Y.DanielLiang.《Java语言程序设计基础篇》机械工业出版社,2008-06.
[3]Y.DanielLiang.《Java语言程序设计进阶篇》机械工业出版社,2008-06.
[4]祝红涛,李玺.《SQLServer2008数据库应用简明教程》清华大学出版社,2010-04.
[5]张海藩.《软件工程导论(第5版)》.清华大学出版社,2008-02.
本科生课程设计成绩评定表
班级:
姓名:
学号:
序号
评分项目
满分
实得分
1
学习态度认真、遵守纪律
10
2
设计分析合理性
3
设计方案正确性、可行性、创造性
20
4
设计结果正确性
40
5
设计报告的规范性
6
设计验收
总得分/等级
评语:
注:
最终成绩以五级分制记。
优(90-100分)、良(80-89分)、中(70-79分)、
及格(60-69分)、60分以下为不及格
指导教师签名:
2012年 月 日