软件工程导论实验报告 航空订票系统.docx
《软件工程导论实验报告 航空订票系统.docx》由会员分享,可在线阅读,更多相关《软件工程导论实验报告 航空订票系统.docx(28页珍藏版)》请在冰豆网上搜索。
软件工程导论实验报告航空订票系统
本科实验报告
课程名称:
软件工程导论
实验项目:
航空订票系统
实验地点:
******
专业班级:
*******学号:
*******
学生姓名:
*******
指导教师:
*******
2012年05月21日
可行性分析报告
1项目背景
机票预订工作的记录、查询、核对等工作量十分庞大,同时,操作相对简单且重复率很高,因此,可以利用计算机的管理信息系统进行这些繁杂而又简单的工作,以提高机票预定的工作效率、准确性、管理水平和服务质量。
因此开发机票预订系统。
本机票预订系统是在现代社会生活节奏不断加快,对机票预订工作的自动化和准确化要求也日益强烈的背景下,为了实现机票预订工作的网络化,以及实现网络查询和统计一体化而开发的管理信息系统。
该系统为机票预订管理员提供了一个个性化的界面,并且机票预订管理员只需一次登录就可以使用所有服务;将订票旅客需要的各种服务集中起来,订票旅客可以很方便地进行自身信息和航班、票价情况查询。
总之,从基本订票信息的录入到订票信息的查询,再到最终的信息核准打印机票,都可以通过这个系统完成。
本系统采用最新的计算机技术,界面友好、操作方便,管理员可以针对不同需求分类、排序、查询、统计,方便订票旅客和其他部门根据自己的需求准确、快速地查询订票及航班信息。
2可行性研究的前提
1)要求:
主要功能:
为游客提供机票预定服务,方便旅游局的售票工作,提高旅游局的服务质量和服务效率
性能要求:
机场提供的信息必须及时的反映在旅游局的工作平台上。
售票系统的定单必须无差错的存储在机场的主服务器上。
对服务器上的数据必须进行及时正确的刷新。
输出要求:
数据完整,详实。
输出要求:
简捷,快速,实时。
安全与保密要求:
服务器的管理员享有对机场航班信息库及机票信息库和定票信息库的管理与修改。
售票员只享有对订票信息库的部分修改(写入与读出)。
2)目标:
系统实现后,大大提高旅游局的机票预定服务效率。
降低售票服务中的错误发生率,减少信息交流的烦琐过程及其带来的开销。
3)条件,假定和限制:
建议软件寿命:
5年。
运行环境:
Linux
数据库:
SQLServer
4)决定可行性的主要因素:
成本/效益分析结果,效益>成本。
技术可行,现有技术可完全承担开发任务。
操作可行,软件能被原有工作人员快速接受。
3技术可行性分析
1)系统简要描述
在旅游局中的终端是安装了WindowsNT的PC机,主要目的是向机场的服务器传递数据。
当顾客在旅游局进行咨询时,终端向服务器发出查询请求,服务器根据航班信息库的实时数据,向终端发送数据,显示在终端的屏幕上。
当顾客向售票员定票时,终端向服务器发出详尽的一份定单,服务器核对后,存入定票信息库,并修改机票信息库。
当顾客再次来取票时,终端向服务器发出查询定票请求,服务器接收后,查询定票信息库,核对后,传送机票确认表单,终端打印出机票。
2)处理流程和数据流程
4社会因素可行性分析
1)法律因素
所有软件都选用正版。
所有技术资料都由提出方保管。
合同制定确定违约责任。
2)用户使用可行性
使用本软件人员要求有一定计算机基础的人员,系统管理员要求由计算机的专业知识,所有人员都要经过本公司培训。
管理人员也需经过一般培训。
经过培训人员将会熟练使用本软件。
两名系统管理员,一名审计员将进行专业培训,他们将熟练管理本系统。
5其他可供选择的方案
客户端与服务器端联系在一起
在旅游局中只设立终端,在机场设立服务器,数据输入由终端输入,所有数据都由服务器处理,只在终端上显示数据结果。
此设计简化了数据处理,但加重了服务器的数据处理。
而使用客户端/服务器机理,简化数据流量,加快数据处理。
6结论意见
由于投资效益比远大于100%,技术、经济、操作都有可行性,可以进行开发。
“机票预订系统”的需求分析
需求分析是开发软件系统的重要环节,是系统开发的第一步和基础环节。
通过需求分析充分认识系统的目标、系统的各个组成部分、各部分的任务职责、业务范畴、工作流程、工作中使用的各种数据及数据结构、各部门的业务关系和数据流程等,为系统设计打下基础。
需求分析的好坏往往决定了系统开发的成败。
需求分析从系统的调查研究入手,需求分析要对系统的各个方面有全面的了解,既包括系统内部的各个方面,也包括与系统有联系的各种外部因素。
通过调查研究和分析,对系统产生比较深刻的认识。
需求分析阶段的最终结果是“需求分析说明书”,它涵盖了对用户环境、事务处理和信息流程分析的一切成果,供项目开发小组和用户共同遵守。
如果采用瀑布模型,就要对“需求分析说明书”进行冻结,使它成为凝固可靠的基线。
万一要求变更基线,开发者和用户双方,都必须执行基线变更程序,此变更程序在合同中已做了明确规定。
现针对“机票预订系统”对机票预订部门的组织结构、业务流程、用户角色职能、系统数据流进行分析。
利用结构化分析和UML中的用例从大到小、从粗到细进行系统建模。
1、组织结构调查
系统的组织结构,反映了单位内部各个部门的职责划分和它们之间的关系。
为了对系统有一个全貌性的了解,首先要对系统内部部门结构、人员组织及用户情况有所了解。
对系统组织结构的调查,是从总的方面对系统进行宏观了解和分析。
信息的流动关系是以组织结构为背景的,而且总是伴随着组织部门之间的资金流和物流的传递而产生。
机票预订系统的组织结构如图1所示。
图1系统组织结构图
机票预订由机票预定部门全面负责,下设信息管理部、票务部、客服部三个部门的业务职责如下:
●信息管理部:
管理基本信息、主要包括旅客基本信息的查询、更改、删除;航班信息的添加、查询、更改、删除。
●票务部:
管理各种票据,主要包括根据订票信息和航班信息打印账单和取票通知、核对账单和取票通知以及交款信息,无误则打印机票并发放。
●客服部:
为订票旅客提供实时服务,主要包括投诉咨询受理,和售前售后支持。
2、系统用户分析
“机票预订系统”主要是针对机票预订工作而开发的应用软件。
通常有系统管理员、机票预订管理员和订票旅客三种用户,他们的使用权限如下:
●系统管理员:
对系统、数据库进行维护,主要对不同人员赋予不同的权限。
●机票预订管理员:
对机票预定工作进行具体的操作。
●订票客户:
一般操作水平,能够在本系统查询个人信息和订票信息。
(由于水平有限,做出来的系统不包含此功能)
3、UML用例图建模
图2是根据用户的职能建立的用例图。
图2用例图
图2中<>表示包含关系,表示被包含用例是被多个包含用例使用的一个可复用模块,而<>表示对用例的扩展。
4、数据流图
数据流图是全面描述系统逻辑模型的工具,它抽象概括地把系统中各种业务处理过程联系起来。
在画“机票预订系统”的数据流图时,首先要画出整个顶层图,以保证对整个系统的概况有个整体了解,然后把顶层图中的细节用下一层次的数据流程图来表示,按照由粗到细、逐层细化的原则对系统的各个模块进行深入的分析。
图3是“机票预订系统”的顶层数据流图。
图3顶层数据流图
顶层数据流图只是粗略地给出了整个系统的数据流情况,为了更好地把“机票预订系统”中各个模块的具体数据流处理细节表示出来,可以在顶层图的基础上自顶向下地继续分解,得到1层和2层数据流程图,如图4和5所示。
图41层数据流图
图52层流程图
虽然1层数据流图对“机票预订系统”的顶层数据流图进行了细化,但是1层数据流图仍然不够详细,因此对1层数据流图中个别复杂的加工进一步细化,单独画出一张数据流图,如图5至图6所示。
图6订票处理的细化流程图
图7取票处理的细化流程图
5、数据字典
为了对数据流图中各元素进行详细的说明,采用了数据字典的说明方法。
由于篇幅限制,仅对机票预订系统数据流图的部分数据字典举例说明如下:
●数据流条目
(1)数据流名称:
旅客信息
简述:
订票旅客基本信息及订票要求
数据流来源:
旅客确定订票后,由订票管理人员编码整理后,输入计算机
数据流去向:
加工1安排航班,该加工将录入的数据存入数据库(订票基本信息表)
数据项组成:
身份证号+姓名+性别+工作单位+旅行日期+旅行时间+旅行目的地+联系方式
数据流量:
0人/天
高峰流量:
1000人/天
(2)数据流名称:
订票信息
简述:
航班安排结果
数据流来源:
旅客信息和航班信息
数据流去向:
加工2,打印通知和账单
数据项组成:
身份证号+姓名+性别+班次+航班起飞时间+航班到达时间+航班目的地+票价
数据流量:
0次/天
高峰流量:
1000次/天
(3)数据流名称:
航班信息
简述:
航班基本信息
数据流来源:
加工1.4航班管理
数据流去向:
加工1.2安排
数据项组成:
航班日期+航班起飞时间+航班到达时间+航班目的地+班次+票价+票余量
数据流量:
0次/天
高峰流量:
1000次/天
(4)数据流名称:
取票通知和账单信息
简述:
返回给旅客的航班安排结果及旅
客取票时用来核对的凭证
数据流来源:
加工2打印取票通知和账单
数据流去向:
加工3核对订票信息
数据项组成:
身份证号+姓名+性别+班次+航班日期+航班时间+航班目的地+票价
数据流量:
0次/天
高峰流量:
1000次/天
(5)数据流名称:
订票信息核对正确
简述:
将旅客的取票通知和账单与系统中的订票信息核对,二者一致产生的信息
数据流来源:
加工3核对订票信息
数据流去向:
加工4收费
数据项组成:
身份证号+姓名+性别+班次+航班日期+航班起飞时间+航班目的地+票价
数据流量:
0人次/天
高峰流量:
1000人次/天
(6)数据流名称:
收费信息
简述:
对订票信息核对正确的旅客收费产生的信息
数据流来源:
加工4收费
数据流去向:
加工5打印机票
数据项组成:
身份证号+姓名+性别+班次+航班日期+航班起飞时间+航班目的地+票价
数据流量:
0人次/天
高峰流量:
1000人次/天
●加工条目
(1)加工名:
安排航班
处理逻辑编号:
1.1
处理逻辑:
接收旅客信息的录入,并检查有无错误,如果没有错误,将数据存入订票信息表,并在航班信息表里查找符合旅客订票信息的相应航班,生成订票信息
激发条件:
接收到旅客信息时
输入:
旅客信息
输出:
订票信息
(2)加工名:
打印通知和账单
编号:
1.2
处理逻辑:
由生成的订票信息,打印取票通知和账单
激发条件:
接收到已经安排了航班的订票信息时
输入:
订票信息
输出:
通知和账单信息
(4)加工名:
核对机票信息
编号:
2.1
处理逻辑:
对旅客订票信息进行核对
激发条件:
接收到旅客的取票通知和账单
输入:
无
输出:
“订票信息正确”的信息
(4)加工名:
收费
编号:
2.2
处理逻辑:
对订票信息核对正确的旅客进行收费,收费后生成收费信息
激发条件:
接收到订票信息核对正确的信息并收到旅客交费要求
输入:
交费信息
输出:
打印机票信息
(5)加工名:
打印机票
编号:
2.3
处理逻辑:
由打印机票信息打印机票
激发条件:
收到打印机票的信息
输入:
无
输出:
机票
●数据存储条目
(1)数据存储编号:
D1
数据存储名称:
订票信息表
简述:
存储旅客详细信息及订票要求
组成:
旅客身份证号+姓名+性别+工作单位+航班起飞时间+航班到达时间+旅行目的地
关键字:
旅客身份证号
组织方式:
索引文件,以旅客身份证号为关键字
相关联的处理:
加工1、加工3
●数据项条目
(1)数据项名称:
身份证号
简述:
表明每个人身份的证件号
组成:
籍贯代码+出生年月日+其他代码码
类型:
字符
长度:
20位
取值范围:
数字0-9,字母a-x
(2)数据项名称:
姓名
简述:
旅客姓名
组成:
姓名
类型:
字符
长度:
10位
取值范围:
汉字或字母
(3)数据项名称:
性别
简述:
旅客性别
组成:
男或女
类型:
字符
长度:
2位
取值范围:
男或女
(4)数据项名称:
联系方式
简述:
联系电话
组成:
数字
类型:
字符
长度:
15位
取值范围:
数字0-9
(5)数据项名称:
班次
简述:
航班班次
组成:
航班类型+航班号码
类型:
字符
长度:
10位
取值范围:
字母+数字
(6)数据项名称:
航班日期
简述:
航班起飞的日期
组成:
年月日
类型:
日期
长度:
10位
取值范围:
正确的年月日
(7)数据项名称:
航班起飞时间
简述:
航班起飞的时间
组成:
时分
类型:
时间
长度:
20位
取值范围:
正确的时分
(8)数据项名称:
航班到达时间
简述:
航班到达的时间
组成:
年月日+时分秒
类型:
字符
长度:
20位
取值范围:
正确的年月日和时分秒
(9)数据项名称:
航班目的地
简述:
航班飞往的目的地
组成:
国家或地区+机场
类型:
字符
长度:
10位
取值范围:
汉字或英文
(10)数据项名称:
票价
简述:
相应航班对应机票的价格
组成:
数字+货币单位
类型:
浮点型
长度:
8位
取值范围:
数字0-9
(11)数据项名称:
票余量
简述:
机票剩余数量
组成:
数字
类型:
整型
长度:
4位
取值范围:
数字0-9
6、IPO图
机票预订工作应完成的多个功能,如图8的IPO图所示。
图8IPO图
7、用户其他需求
1.性能要求
查询服务部分:
旅客通过本地计算机,从提交查询命令到返回结果不超过3秒钟。
数据管理部分:
系统管理员从提交一次录入到结果返回不超过3秒钟。
2.灵活性要求
如果要为数据项设计编码,尽可能采用行业标准,自行编码也应合乎规范,并留有扩充余地,还要征得相关业务部门认可。
数据库设计也应考虑可扩充性,以适应今后机票预订规模发展和系统升级的需要。
3.故障处理要求
正常使用时不应出错,一般性错误时应给出错误提示。
应提供定期自动备份数据库的功能,当遇到不可恢复的系统错误,可以保证数据库完好无损。
在系统出错后,应能恢复最近一次备份数据库的状态。
4.其他要求
①安全性:
不同的用户具有不同的使用权限,只有具有最高权限的系统管理员才能修改、注销数据库中的信息,具有一般权限的人员只能读取与自己相关的内容。
②一致性:
系统的数据要保证一致性、准确性,当某一数据库中记录改变时,与之相关联的数据库也会随之变化。
③易操作性:
界面设计要符合大多数用户的操作习惯,系统还要提供操作指南,便于用户操作使用。
1、系统结构设计
系统功能模块的划分
概要设计的核心问题是确定系统总体结构和模块划分。
系统功能要层层划分,直到每一个模块可以作为一个可以执行的程序单元为止。
功能模块划分的最终结果,是系统结构图。
根据需求分析,该机票预订系统可由航班管理、旅客管理、订票管理、系统管理、系统帮助等子系统组成,如图9所示。
图9系统结构图
各子系统的主要功能如下:
(1)航班管理子系统
即管理和维护航班的各项数据信息,包括航班的启程时间与到达时间、目的地、班次、价格以及票余量。
允许业务员和系统管理员添加、更新和删除航班信息和查询航班信息。
该子系统功能由flight模块完成。
(2)旅客管理子系统:
即管理和维护旅客的各项数据信息,包括旅客身份证号码、姓名、性别、工作单位、旅行时间、旅行目的地等。
允许业务管理员和系统管理员添加、更新、删除和查询旅客信息。
该子系统功能由guest模块完成。
(3)订票管理子系统
即管理和维护旅客的订票信息的各项数据,包括身份证号、姓名、性别和航班日期、航班目的地、班次、价格等信息。
允许业务管理员和系统管理员添加、更新、删除以及查询订票信息,并进行航班的安排,打印取票通知和账单的打印,订票信息的核对,收费以及机票的打印。
而旅客只能查询自己的订票信息。
该子系统功能由book模块完成。
(4)系统管理子系统
即管理和维护用户的各项数据信息,包括管理员ID、姓名和密码。
主要有添加、删除和修改用户信息、修改用户密码、系统初始化和系统备份、系统恢复等5项功能。
用户类型决定了用户的权限管理,系统定义了2种用户权限:
第1种是机票预订管理员,能查询、添加、删除和修改订票信息、航班和客户的信息数据,还能根据航班和订票信息为客户安排航班,以及核对通知、账单和订票信息;
第2种是一般用户,能够自行注册和登陆,能够查询个人相关的信息。
该子系统功能由arrangement模块完成。
(5)系统帮助子系统
即为用户提供操作帮助,解决用户使用过程中遇到的一般性问题。
该子系统功能由help模块完成。
2、数据库设计
数据库是应用系统的核心,应当精心设计,以保证系统的正确、可靠、高效运行。
数据库设计包括数据库需求分析、数据库概念设计、数据库逻辑结构设计和数据库物理设计。
数据库设计的目的,是为信息系统在数据库服务器上建立一个理想的数据模型。
1.数据库需求分析
机票预订系统的数据库主要用于航班信息、旅客信息、订票信息的管理,因此数据库设计必须充分满足这些功能要求。
根据系统结构设计中各子系统的功能要求,可确定数据库的具体需求如下:
(1)航班信息管理部分:
管理员可对航班信息进行维护,如添加、修改、删除和查询航班信息等。
班次为关键字段
(2)旅客信息管理部分
管理员可对旅客信息数据进行维护,如添加、修改、删除和查询旅客信息。
旅客身份证号为关键字段
(3)订票信息管理部分
系统根据旅客信息和航班信息安排航班,生成订票信息
管理员可对订票信息数据进行添加、修改、删除和查询订票信息。
航班号和旅客身份证号应该设为关键字段。
订票信息生成后打印通知和账单,息管理员将通知和账单交给客户。
管理员将订票信息和通知、账单核对,核对无误后收费并打印机票。
订票信息记录中的旅客身份证号是旅客信息表的外码。
订票信息记录中的航班号是航班信息表的外码。
(4)系统管理部分
系统用户可以注册添加账户,登陆后查询个人信息和订票信息。
系统管理员添加、删除和修改系统用户信息、修改用户密码。
系统管理员可以对系统进行初始化和系统备份、系统恢复。
2.数据库概念设计
根据数据库的需求分析,接着开始数据库概念设计。
数据库概念设计是指设计出数据库的概念数据模型,即实体-联系图(简称E-R图)。
这里给出E-R模型,如图10所示。
图10实体—联系图
3.数据库逻辑结构设计
数据的概念结构设计完毕后,要将设计出来的数据库概念模型转化为某种数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。
机票预订系统的数据库中各个数据表的设计结构如表1~表3所示。
数据库命名为flightreservationMIS,由3个数据表组成,数据表的命名采用拼音综合,每个表由若干字段组成,字段用汉字命名。
下面设计表的具体字段。
(1)旅客信息表:
存放旅客基本信息,表1列出了旅客信息表所有字段信息。
字段
类型
长度
允许空
主键
身份证号码
字符
20
否
√
姓名
字符
10
是
性别
字符
2
是
工作单位
字符
30
是
旅行时间
字符
20
是
旅行目的地
字符
10
是
联系方式
字符
15
是
表1旅客信息表guest
(2)航班信息表:
存放航班基本信息,表2列出了航班信息表所有字段信息。
字段
类型
长度
允许空
主键
班次
字符
10
否
√
航班时间
字符
10
否
航班起飞时间
字符
20
否
航班到达时间
字符
20
否
航班目的地
字符
10
否
票价
浮点型数字
8
否
票余量
整数
4
否
表2航班信息表flight
(3)订票信息表:
存放订票信息,表3列出了订票信息表所有字段信息。
字段
类型
长度
允许空
主键
身份证号码
字符
20
否
√
姓名
字符
10
是
性别
字符
2
是
班次
字符
10
否
√
航班起飞时间
字符
20
是
航班到达时间
字符
20
是
航班目的地
字符
10
是
票价
浮点型数字
8
是
表3订票信息表book
(4)旅客注册表:
存放旅客注册信息,表4列出了旅客注册表所有字段信息。
字段
类型
长度
允许空
主键
用户名
10
20
否
√
密码
字符
6
否
真实姓名
字符
10
是
年龄
字符
4
是
性别
字符
2
是
工作单位
字符
30
是
表4订票信息表guestzc
(5)管理员注册表:
存放旅客注册信息,表4列出了旅客注册表所有字段信息。
字段
类型
长度
允许空
主键
用户名
10
20
否
√
密码
字符
6
否
真实姓名
字符
10
是
年龄
字符
4
是
性别
字符
2
是
工作单位
字符
30
是
表5管理员注册表guestzc
3、数据库物理设计
数据库物理设计是指设计出数据库的物理数据模型,它是数据库在物理设备上的具体实现,即数据库服务器物理空间上的表空间、表、字段、索引、视图、存储过程、触发器以及相应的数据字典的设计。
经过数据库的需求分析和概念模型设计,得到数据库的逻辑结构。
现在可以设计好的逻辑结构在SQLserver2000中建立数据库及数据库中的数据表。
航班安排功能的介绍
输入具体的旅客信息后,单击“可选航班”按钮(如图23所示),即出现可供旅客选择的某一天的多条航班信息,根据旅客的选择,确定到底预订哪一班次,然后单击“安排航班”按钮,生成某一旅客确定的订票信息。
图23航班安排界面
订票功能代码
——航班安排部分代码
PrivateSubCommand1_Click()
Adodc1.RecordSource="select*fromflightwhere航班日期='"&Text3.Text&"'and航班目的地='"&Text4.Text&"'"
Adodc1.Refresh
DataGrid1.Visible=True
IfText1.Text<>""AndText2.Text<>""AndText3.Text<>""AndText4.Text<>""Then
Adodc2.Recordset.AddNew
Text1.SetFocus
Adodc2.Recordset.Fields("身份证号码")=Text1.Text
Adodc2.Recordset.