软件工程机票预定系统.docx
《软件工程机票预定系统.docx》由会员分享,可在线阅读,更多相关《软件工程机票预定系统.docx(27页珍藏版)》请在冰豆网上搜索。
![软件工程机票预定系统.docx](https://file1.bdocx.com/fileroot1/2023-4/16/3ea45ba2-e4fd-4a38-930d-03d588baf3aa/3ea45ba2-e4fd-4a38-930d-03d588baf3aa1.gif)
软件工程机票预定系统
河南理工大学
计算机科学与技术学院
课程设计报告
2013—2014学年第2学期
课程名称软件工程
设计题目机票预定系统
学生姓名
学号
专业班级
指导教师
2014年6月25日
1.引言
1.3系统所要完成的任务1
2.4用户使用可行性
3项目开发计划
3.1项目概述
3.1.1工作内容
3.1.2条件与限制
3.1.3运行软件环境:
3.2实施计划
3.2.1任务分解
3.2.2关键问题
4需求分析
4.2数字字典
5.概要设计
5.1处理流程
5.2总体结构和模块外部设计
6.详细设计
6.1系统中的基本业务流程
6.2页面设计
6.3接口设计
6.4数据结构设计
6.5物理数据结构设计
6.6运行设计
6.7出错处理设计
6.8安全保密设计
6.9维护设计
7.1测试计划
7.2测试项目
1.引言
1.1编写目的
随着全球进入信息化时代,航空公司为了适应当前越来越激烈的竞争,增强公司的信息化程度,提高公司的售票管理的效率,就建立起了相应的航空预订票系统,成功实现提高了航空系统的售票效率和管理水。
.本文从各个方面讲解了机票预订系统在市场中的作用,以及说明机票预订系统能给旅客、航空公司和旅行带来的好处,为各个方面提供方便。
1.2系统开发的意义
在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的机票预定系统,实现航空公司的机票销售的自动化的计算机系统,为企业的决策层提供准确、精细、迅速的机票销售信息。
1.3系统所要完成的任务
该系统有以下几个功能主要用于机票预订,所以提供了以下几个子功能:
机票预订,取票通知,查询航班,查询机票,打印机票,各航班的营运统计,旅客延误了取票时间的处理,班机取消后的处理,以及更改机票的处理等。
机票预订功能:
旅行社和机场管理员有权力进行该项功能。
首先通过查询得到旅客所需的航班,确定该航班还有没有被预订的座位,然后选择座位的等级,填写旅客的详细信息之后就可进行网上预订机票。
取票通知:
该项功能只有旅行社和机场管理员有权力进行操作,在机票预订功能成功完成之后,系统会自动给浏览器端发送一条取票信息以及所需缴纳的费用。
旅行社可以利用特定设备将该取票信息打印出来,这就是取票通知。
退订机票:
该功能只有旅行社和机场管理员有权力操作,利用身份证号和对应的机票号就可以查询到机票信息,然后就可以退订机票。
延误取票时间的处理:
如果旅客延误了取票时间,但是离上飞机还有一段时间则在通知旅客来取,否则作废处理。
取消航班的处理:
通过航班号和航班日期查询到航班信息后,取消航班就将该航班从数据库中删除,并及时通知旅客。
旅客临时更改班次的处理:
首先查询更改的班次的票的剩余情况,根据旅客的需求选择班次。
2.可行性研究报告
2.1决定可行性的主要因素
成本/效益分析结果,效益>成本。
技术可行,现有技术可完全承担开发任务。
操作可行,软件能被原有工作人员快速接受。
2.2技术开发的可行性
a. 本系统尽管其在组织关系上存在着很大的复杂性、繁琐性,但是就整个系统的技术构成上来看,它还是属于一个数据库应用类的系统。
其基本操作还是对数据库进行添加、删除、浏览、编辑等。
所以就单纯的数据库应用来看,暂不存在太大的技术问题
b. 因为我们的小组学习过专业的计算机方面的知识,且所开发的系统公需实现基本功能,所以开发人员在数量的和质量都能满足系统的要求,并按时完成助用户所需要的基本功能。
处理流程和数据流程
2.3经济可行性分析
对于整个系统而言,在系统未运行之前,初期投资比较大,花费相对而言比较多。
各部门必须配置电脑、服务器、打印机及相关的网络设备。
但是,在整个系统投入运行之后,因为现在计算机已经普及了,相关的人员培训费可以减少很多。
而同时又减少了数据的流通环节,不必要花费那么多的时间,也就是说最重要的是提高了效率,而又保证了各项数据的准确性,也避免了工作人员的流动造成的数据丢失等问题,适应了当前的发展形式。
2.4用户使用可行性
随着时代的发展,人员素质己逐步提高,不论是对于电脑系统的基本操作还是对于系统的维护都有了一定的基础。
同时还可以配置专业的电脑维护人员来维护电脑,不必担心电脑故障问题。
经过培训的人员将会熟练使用本软件。
2.5结论意见 :
由于该系统能大幅度提高售票人员的工作效率,技术、操作都有可行性,可以进行开发。
3.1项目开发
3.1.1工作内容
各工作员工根据时间先后安排,分别对项目进行开发:
各项主要工作:
分析员工对中国长运旅游有限公司和中国联航进行调研(为期一星期)。
设计员工对调查结果进行分析,拟订实现方案(如 程序结构,流程,数据结构等)。
开发员工对软件进行集中开发。
测试员工对软件进行评定,审核。
3.1.2条件与限制
完成项目应具备的条件:
●筹备项目资金
●调研环境
●运行平台
● 组织开发人员
●开发基础设施
●维护人员
开发单位已具有的条件:
●开发基础设施
●运行平台
资方应提供足够的资金和开发条件,并详细的阐明要求。
工方应依据资方的要求开发出满足合同要求的工程。
产品
程序
程序名称:
航空售票预订系统
V1.0 使用语言:
java
存储形式:
磁盘
文档
许提交的文档:
●项目开发计划
●资金分配方案
●系统研究报告
●实验性参考文件
4.运行环境
运行硬件环境:
(最低要求)
CPU:
英特尔奔腾III 1.0Ghz
内存:
256M
显卡:
基本板载显卡
声卡:
基本板载声卡
硬盘:
需有10G以上闲置空间
3.1.3运行软件环境:
数据库:
MySQL 或 SQL server 2005
操作系统:
Windows NT + Linux
高级语言:
java + SQL
1.服务
开发单位向用户提供服务:
《航空售票预订系统操作指南》,系统安装,系统安全性测试文档,保
修(三年),维护(五年)。
2.验收标准
系统内无业务流程安全隐患
出错率为:
1次/年。
3.2.实施计划
3.2.1.任务分解
阶段
期限
人员
分析阶段
3天
调研人员
设计阶段
1天
设计人员、开发人员
编码
1天
开发人员、测试人员
测试
1天
测试人员
提交
1天
调研人员、开发人员
3.2.2.关键问题
关键的问题是如何做到大容量,多并发,快速的即时演算能力和部分故障不停机的能力。
此外开发本项目需要一定的风险,主要是计算机发展速度的风险,详细地分析参见可行性分析报告。
选择好的数据库软件,是保证开发完整的前提。
3.3.人员组织及分工
分析、设计人员:
江山
开发人员:
李昊天
测试人员:
曾溢烽
4.需求分析
机票预定系统的总目标是:
在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的机票预定系统,实现航空公司的机票销售的自动化的计算机系统,为企业的决策层提供准确、精细、迅速的机票销售信息。
根据可行性研究的结果和客户的要求,分析现有情况及问题,采用Client/Server结构,将机票预定系统划分为两个子系统:
客户端子系统,服务器端子系统。
4.1功能分析
本系统主要用于机票预订,所以提供了以下几个子功能:
机票预订,取票通知,查询航班,查询机票,退票,打印机票,各航班的营运统计,以及后台方面的航班的添加,取消航班,机票的生成,以及航班的查询等后台功能。
4.2数据字典
数据字典是用来规范描述数据具体内容的工具,也是对数据汇总分析的一个总结。
一般来说,可为每个数据建立一张二维表。
在本系统中,分别为旅客信息、旅客订票信息、候补旅客信息、航班机票信息、取票通知和售出机票信息建立了数据字典,具体如表2-1到表2-6所示。
表2-1旅客信息的数据字典
数据名称
旅客信息
作用
记录旅客的个人信息,用于对旅客的确认
来源
客户
去向
旅行社管理
排列方式
按照客户的姓名升序排序
包含信息
姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地
表2-2旅客订票信息的数据字典
数据名称
旅客订票信息
作用
记录旅客的旅行时间和目的地,用于确定旅客的航班
来源
客户
去向
航班机票管理
排列方式
按照客户的(姓名+起飞时间)升序排序
包含信息
客户姓名、身份证号、航班号、起飞时间、预订票数、舱位等级、机票是否打印
表2-3候补旅客信息的数据字典
数据名称
候补旅客信息
作用
记录旅客的旅行时间和目的地,便于及时调整航班
来源
航班机票管理
去向
信息存储/航班机票管理
排列方式
按照(姓名+起飞时间)升序排序
包含信息
客户姓名、身份证号、航班号、起飞时间、预订票数、舱位等级
表2-4航班机票信息的数据字典
数据名称
航班机票信息
作用
记录旅客的航班信息,根据旅客的旅行时间和目的地确定
来源
航空公司安排航班
去向
信息存储/航班机票管理
排列方式
按(飞行日期+航班号)升序排列
包含信息
航班号、终点站名、起飞地点、飞行日期、周几、成员定额、余票量、已订票的客户名单(包括姓名、订票量、舱位等级1,2或3)、等候替补的客户名单(包括姓名、所需票量)
表2-5取票通知的数据字典
数据名称
取票通知
作用
旅客领取机票的凭证
来源
航班机票管理系统
去向
客户
排列方式
按(姓名+飞行日期+航班号)升序排列
包含信息
旅客姓名、领票时间
表2-6售出机票信息的数据字典
数据名称
售出机票信息
作用
记录旅客的航班机票的信息
来源
航班机票管理系统
去向
信息存储/航班机票管理
排列方式
按(姓名+飞行日期+航班号)升序排列
包含信息
旅客的航班机票
5.概要设计
5.1处理流程
下面将使用(结构化设计)面向数据流的方法对机票预定系统的处理流程进行分析。
系统可分为两大部分:
一、客户机上的程序,二、服务器上的程序。
以下将分别对系统的这两大部分进行流程分析:
5.1.1客户机程序流程
客户机上的输入信息为旅客资料或帐单号,还包括一个定票/领票选项。
输出为打印帐单或机票,和确认或出错信息。
其内部处理流程如下:
下面对各模块(以数字表示)进行功能说明:
1.读入并确定(定票/领票)它是一个事务处理中心,若输入是定票时转入2,输出则转入5。
2.读入旅客资料读取所输入的旅客资料,并将其格式化,将格式化数据送3。
3.检验输入资料检验格式化输入资料,初步检查输入是否有误,它是一个事务处理中心,有误则转2再次读入,检查无误则将数据送4。
4.准备服务器数据由格式化旅客资料准备需发送到服务器的数据,将准备好的数据送7。
5.读入帐单号读取所输入的帐单号,并将其格式化,将格式化数据送6。
6.准备服务器数据由格式化帐单号准备需发送到服务器的数据,不同于4,它将准备的是帐单号,将准备好的数据送7。
7.准备网络数据包将数据准备/加密成网络传输数据包。
8.网络数据发送将数据包经网络发送到服务器程序,它是程序与网络的接口。
9.网络数据接受接受由服务器程序经网络传送到客户机的数据包,它是程序与网络的接口。
10.解开/判断解开9所接受的数据包,并判断数据是定票数据或是领票数据,它是一事务处理中心,是定票则将数据送11,是领票则将数据送18。
11.定票成功?
由数据判断定票是否成功,它是一事务处理中心,若定票成功则将数据送12,不成功则将数据送15。
12.准备输出数据由接收的服务器数据准备输出数据,其中关于帐单的数据将送入13,其他包括旅客资料等送入14。
13.打印帐单由帐单信息处理帐单格式并打印出帐单。
14.输出定位确定在屏幕上显示确定定位及其他信息。
15.判断错误由数据判断出错误类型,将类型送到16。
16.准备错误语句由具体错误类型准备错误语句,送17。
17.输出错误语句在屏幕上显示错误语句。
18.领票核对成功?
由数据判断领票核对是否成功,它是一事务处理中心,若成功则将数据送19,不成功则将数据送15。
19.准备机票输出数据由接收的服务器数据准备将打印的机票数据数,据其中关于帐单的机票的数据将送入20,其他包括旅客资料等送入14。
20.打印机票由机票信息处理机票格式并打印出机票。
5.1.2服务器程序流程
下面对各模块(以数字表示)进行功能说明:
1.网络数据接收接受由客户机程序经网络传送到客户机的数据包,它是程序与网络的接口。
2.解开数据解开/解密打包的数据,并将恢复的数据格式化送入3。
3.判断操作由数据判断需要做什么数据库操作,它是一事务处理中心,若为定票操作则将数据送4,若为领票操作则将数据送15。
4.准备数据库查询语句由定票数据准备访问SQLSERVER数据库所需的SQL语句,送入5。
5.数据库操作运行SQL语句,查询并存入数据库,获得相应的定票数据,将数据送入6。
它需包括初步对查询的判断。
它必须为乘客安排可抵达目的地的有座位的航班。
6.判断查询是否成功利用查询所得的数据判断定票是否成功,它是一事务处理中心,若为定票操作成功则将数据送7,若不成功则将数据送8。
7.准备回送数据准备定票成功后需回送客户机程序的数据,送16。
8.确定原因由查询数据判断定票不成功的原因,送9。
9.准备回送数据根据不成功的原因,准备需送回客户机程序的数据,送入16。
10.准备数据库查询语句由领票数据准备访问SQLSERVER数据库所需的SQL语句,送入11。
11.数据库操作运行SQL语句,查询并存入数据库获得相应的领票数据,将数据送入6。
它需包括初步对查询的判断。
12.判断查询是否成功利用查询所得的数据判断领票是否成功,它是一事务处理中心,若为领票操作得到确认则将数据送11,若不成功则将数据送8。
13.准备回送数据准备领票确认后需回送客户机程序的数据,送16。
14.确定原因由查询数据判断领票不能确认的原因,送15。
15.准备回送数据根据不成功的原因,准备需送回客户机程序的数据,送入16。
16.准备网络数据包将数据准备/加密成网络传输数据包。
17.网络数据发送将数据包经网络发送到服务器程序,它是程序与网络的接口。
以上显示的各模块数字相同的为同一模块;由于事务流处理上的便利,将有些功能模块,拆分到各事务流中。
5.2总体结构和模块外部设计
下面以结构图来描述机票预定系统的软件总体结构。
框内注明了模块的名字;方框之间的直线表示模块的调用关系。
5.2.1客户机部分
5.2.2服务器程序部分
其中在数据处理、查询下作了省略…只给出了一部分模块,实际上是有两部分,分别对应于定位及确认。
6。
详细设计
6.1系统中的基本业务流程
6.1.1订票业务
根据旅客提出的要求(航班号、订票数额)查询该航班票额情况。
若尚有余票,则为客户办理订票手续,输出座位号;若已满员或余票少于订票额,则登记排队候补。
图2-5订票业务流程图
6.1.2取票业务
根据取票通知书,打印机票,交给顾客。
图2-6取票业务流程图
6.1.3退票业务
根据客户提供的情况(日期、航班),为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其他候补的客户。
图2-7退票业务流程图
6.2页面设计
在用户界面部分,根据需求分析的结果,用户需要一个用户友善界面。
在界面设计上,应做到简单明了,易于操作,并且要注意到界面的布局,应突出的显示重要以及出错信息。
外观上也要做到合理化,考虑到用户多对WINDOW风格较熟悉,应尽量向这一方向靠拢。
在设计语言上,已决定使用MSVISUALC++进行编程,在界面上可使用VISUALC++所提供的可视化组件,向WINDOWS风格靠近。
其中服务器程序界面要做到操作简单,易于管理。
在设计上采用下拉式菜单方式,在出错显示上可调用VISUALC++库中的错误提示函数。
总的来说,系统的用户界面应作到可靠性、简单性、易学习和使用
主要的几个系统页面有登陆页面,主页面,已经其他子系统页面。
页面如下:
登陆界面
主界面
订票查询界面
订票
订票
订票成功
后台的管理
6.3接口设计
6.3.1外部接口
6.3.1.1软件接口
服务器程序可使用VISUALC++提供的对SQLSERVER的接口,进行对数据库的所有访问。
服务器程序上可使用SQLSERVER的对数据库的备分命令,以做到对数据的保存。
在网络软件接口方面,使用一种无差错的传输协议,采用滑动窗口方式对数据进行网络传输及接收。
6.3.1.2硬件接口
在输入方面,对于键盘、鼠标的输入,可用VISUALC++的标准输入/输出,对输入进行处理。
在输出方面,打印机的连接及使用,也可用VISUALC++的标准输入/输出对其进行处理。
在网络传输部分,在网络硬件部分,为了实现高速传输,将使用高速ATM。
6.3.2内部接口
内部接口方面,各模块之间采用函数调用、参数传递、返回值的方式进行信息传递。
具体参数的结构将在下面数据结构设计的内容中说明。
接口传递的信息将是以数据结构封装了的数据,以参数传递或返回值的形式在各模块间传输。
6.4数据结构设计
1数据库数据结构设计
DBMS的使用上系统将采用SQLSERVER,系统主要需要维护3张数据表:
1.航班班次表
航班号
起飞日期/时间
飞行目的地
座位空数
商务仓票价
经济仓票价
航班班次表保存了所有从本地起飞的班机信息,它的主键为航班号。
在定位前先查寻座位空数,在定位后将修改座位空数。
2.定位信息表
航班号
帐单号
是否领票
定位信息表保存了已定位信息,主键为帐单号,外部主键为航班号。
在旅客领票过程时将用到此表,领票后修改是否领票域
3.帐单信息/旅客资料表
帐单号
旅客姓名
旅客性别
旅客身份证号
工作单位
帐单信息/旅客资料表保存已定位的旅客信息资料,它的主键为旅客身份证号,外部主键为帐单号。
主要用于领票时将旅客信息一同返回。
4.机位信息表
班机号
机位信息
机位信息表保存各班机各机位定票状况。
它的外部主键为班机号。
主要用于定票时确定旅客机位,并返回。
6.5物理数据结构设计
物理数据结构设计主要是设计数据在模块中的表示形式。
数据在模块中都是以结构的方式表示。
1.旅客信息
用于定票时接收输入,以及领票时服务器返回。
2.帐单号
可使用一LONGINT实现。
用于领票时接收输入,以及定票时服务器返回。
3.飞行目的
用于定票时接收输入,以及领票时服务器返回。
4.网络包
用于数据在网络上的传输。
5.错误信息
用于关于错误操作。
6.机票信息
用于打印机票准备工作。
数据类型可参照上面所述。
7.帐单信息
用于打印帐单准备工作。
数据类型可参照上面所述。
。
6.6运行设计
1运行模块的组合
客户机程序在有输入时启动接收数据模块,通过各模块之间的调用,读入并对输入进行格式化。
在接收数据模块得到充分的数据时,将调用网络传输模块,将数据通过网络送到服务器,并等待接收服务器返回的信息。
接收到返回信息后随即调用数据输出模块,对信息进行处理,产生相应的输出。
服务器程序的接收网络数据模块必须始终处于活动状态。
接收到数据后,调用数据处理/查询模块对数据库进行访问,完成后调用网络发送模块,将信息返回客户机。
2运行控制
运行控制将严格按照各模块间函数调用关系来实现。
在各事务中心模块中,需对运行控制进行正确的判断,选择正确的运行控制路径。
在网络传方面,客户机在发送数据后,将等待服务器的确认收到信号,收到后,再次等待服务器发送回答数据,然后对数据进行确认。
服务器在接到数据后发送确认信号,在对数据处理、访问数据库后,将返回信息送回客户机,并等待确认。
3运行时间
在软体的需求分析中,对运行时间的要求为必须对作出的操作有较快的反应。
网络硬件对运行时间有最大的影响,当网络负载量大时,对操作反应将受到很大的影响。
所以将采用高速ATM网络,实现客户机与服务器之间的连接,以减少网络传输上的开销。
其次是服务器的性能,这将影响对数据库访问时间即操作时间的长短,影响加大客户机操作的等待时间,所以必须使用高性能的服务器,建议使用PentiumIII处理器。
硬件对本系统的速度影响将会大于软件的影响。
6.7出错处理设计
1出错输出信息
程序在运行时主要会出现两种错误:
1、由于输入信息,或无法满足要求时产生的错误,称为软错误。
2、由于其他问题,如网络传输超时等,产生的问题,称为硬错误。
对于软错误,须在定票/领票操作成功判断及输入数据验证模块由数据进行数据分析,判断错误类型,再生成相应的错误提示语句,送到输出模块中。
对与硬错误,可在出错的相应模块中输出简单的出错语句,并将程序重置。
返回输入阶段。
出错信息必须给出相应的出错原因,例:
《全部班机座位已满!
》
《查无此定位信息!
》等。
2出错处理对策
所有的客户机及服务器都必须安装不间断电源以防止停电或电压不稳造成的数据丢失的损失。
若真断电时,客户机上将不会有太大的影响,主要是服务器上:
在断电后恢复过程可采用SQLSERVER的日志文件,对其进行ROLLBACK处理,对数据进行恢复。
在网络传输方面,可考虑建立一条成本较低的后备网络,以保证当主网络断路时数据的通信。
在硬件方面要选择较可靠、稳定的服务器机种,保证系统运行时的可靠性。
6.8安全保密设计
由于数据的传输上需要通过网络传输,为了客户资料进行保密,需要在网络的传输过程中对数据进行加密。
这个工作主要是在准备网络包,及解开网络包这两个模块完成,它们各对数据进行加密及解密还原工作。
在加密算法选择上将使用RSA加密算法。
具体算法可参照参考资料中《ComputerNetwork》p.598。
6.9维护设计
维护方面主要为对服务器上的数据库数据进行维护。
可使用SQLSERVER的数据库维护功能机制。
例如,定期为数据库进行Backup,维护管理数据