机票预订系统的设计
机票预订系统的设计
一、“机票预订系统”的立项背景
机票预订工作的记录、查询、核对等工作量十分庞大,同时,操作相对简单且重复率很高,因此,可以利用计算机的管理信息系统进行这些繁杂而又简单的工作,以提高机票预定的工作效率、准确性、管理水平和服务质量 。因此开发机票预订系统。
本机票预订系统是在现代社会生活节奏不断加快,对机票预订工作的自动化和准确化要求也日益强烈的背景下,为了实现机票预订工作的网络化,以及实现网络查询和统计一体化而开发的管理信息系统。该系统为机票预订管理员提供了一个个性化的界面,并且机票预订管理员只需一次登录就可以使用所有服务;将订票旅客需要的各种服务集中起来,订票旅客可以很方便地进行自身信息和航班、票价情况查询。总之,从基本订票信息的录入到订票信息的查询,再到最终的信息核准打印机票,都可以通过这个系统完成。
本系统采用最新的计算机技术,界面友好、操作方便,管理员可以针对不同需求分类、排序、查询、统计,方便订票旅客和其他部门根据自己的需求准确、快速地查询订票及航班信息。
二、“机票预订系统” 的可行性研究
在项目可性行研究阶段,分析人员应对机票预订部门工作环境进行实地调查。同主要领导、管理人员和工作人员进行了交流,对原有工作情况、工作流程、所完成的任务及目前系统存在的问题、新系统要解决的主要问题等进行初步调查。初步调查研究的结果成为可行性研究的前提。
本系统开发的目的,就是通过系统开发,实现机票预订有关部门的工作进行集成和重组,通过网络系统加强各机票预订下辖部门之间的业务联系,提高业务工作水平,进而全面提高工作效率和质量,更好地为订票旅客服务。该机票预订管理信息系统的应用可大幅度提高机票预订工作的效率和质量。
三、“机票预订系统”的需求分析
需求分析是开发软件系统的重要环节,是系统开发的第一步和基础环节。通过需求分析充分认识系统的目标、系统的各个组成部分、各部分的任务职责、业务范畴、工作流程、工作中使用的各种数据及数据结构、各部门的业务关系和数据流程等,为系统设计打下基础。
需求分析的好坏往往决定了系统开发的成败。
需求分析从系统的调查研究入手,需求分析要对系统的各个方面有全面的了解,既包括系统内部的各个方面,也包括与系统有联系的各种外部因素。通过调查研究和分析,对系统产生比较深刻的认识。
需求分析阶段的最终结果是“需求分析说明书”,它涵盖了对用户环境、事务处理和信息流程分析的一切成果,供项目开发小组和用户共同遵守。如果采用瀑布模型,就要对“需求分析说明书”进行冻结,使它成为凝固可靠的基线。万一要求变更基线,开发者和用户双方,都必须执行基线变更程序,此变更程序在合同中已做了明确规定。
现针对“机票预订系统”对机票预订部门的组织结构、业务流程、用户角色职能、系统数据流进行分析。利用结构化分析和UML中的用例从大到小、从粗到细进行系统建模。
组织结构调查
系统的组织结构,反映了单位内部各个部门的职责划分和它们之间的关系。为了对系统有一个全貌性的了解,首先要对系统内部部门结构、人员组织及用户情况有所了解。对系统组织结构的调查,是从总的方面对系统进行宏观了解和分析。信息的流动关系是以组织结构为背景的,而且总是伴随着组织部门之间的资金流和物流的传递而产生。机票预订系统的组织结构如图 1所示。
图1 系统组织结构图
机票预订由机票预定部门全面负责,下设信息管理部、票务部、客服部三个部门的业务职责如下:
信息管理部:管理基本信息、主要包括旅客基本信息的查询、更改、删除;航班信息的添加、查询、更改、删除。
票务部:管理各种票据,主要包括根据订票信息和航班信息打印账单和取票通知、核对账单和取票通知以及交款信息,无误则打印机票并发放。
客服部:为订票旅客提供实时服务,主要包括投诉咨询受理,和售前售后支持。
2、系统用户分析
“机票预订系统”主要是针对机票预订工作而开发的应用软件。通常有系统管理员、机票预订管理员和订票旅客三种用户,他们的使用权限如下:
系统管理员:对系统、数据库进行维护,主要对不同人员赋予不同的权限。
机票预订管理员:对机票预定工作进行具体的操作。
订票客户:一般操作水平,能够在本系统查询个人信息和订票信息。
(由于水平有限,做出来的系统不包含此功能)
3、UML用例图建模
图 2是根据用户的职能建立的用例图。
图2 用例图
图 2中<
4、数据流图
数据流图是全面描述系统逻辑模型的工具,它抽象概括地把系统中各种业务处理过程联系起来。 在画“机票预订系统”的数据流图时,首先要画出整个顶层图,以保证对整个系统的概况有个整体了解,然后把顶层图中的细节用下一层次的数据流程图来表示,按照由粗到细、逐层细化的原则对系统的各个模块进行深入的分析。
图 3是“机票预订系统”的顶层数据流图。
图 3 顶层数据流图
顶层数据流图只是粗略地给出了整个系统的数据流情况,为了更好地把“机票预订系统”中各个模块的具体数据流处理细节表示出来,可以在顶层图的基础上自顶向下地继续分解,得到1层和2层数据流程图,如图4和5所示。
图4 1层数据流图
图5 2层流程图
虽然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图所示。
图8 IPO图
7、用户其他需求
性能要求
查询服务部分:旅客通过本地计算机,从提交查询命令到返回结果不超过3秒钟。
数据管理部分:系统管理员从提交一次录入到结果返回不超过3秒钟。
灵活性要求
如果要为数据项设计编码,尽可能采用行业标准,自行编码也应合乎规范,并留有扩充余地,还要征得相关业务部门认可。数据库设计也应考虑可扩充性,以适应今后机票预订规模发展和系统升级的需要。
故障处理要求
正常使用时不应出错,一般性错误时应给出错误提示。应提供定期自动备份数据库的功能,当遇到不可恢复的系统错误,可以保证数据库完好无损。在系统出错后,应能恢复最近一次备份数据库的状态。
其他要求
①安全性:不同的用户具有不同的使用权限,只有具有最高权限的系统管理员才能修改、注销数据库中的信息,具有一般权限的人员只能读取与自己相关的内容。
②一致性:系统的数据要保证一致性、准确性,当某一数据库中记录改变时,与之相关联的数据库也会随之变化。
③易操作性:界面设计要符合大多数用户的操作习惯,系统还要提供操作指南,便于用户操作使用。
四、概要设计
软件开发的第二个阶段是概要设计,在需求分析阶段确定了系统“做什么”的基础上,设计系统“怎么做”。概要设计注重于宏观上和框架上的设计,它的设计内容包括软件系统的总体结构设计、数据库(包括数据结构)设计、外部接口设计、功能部件分配设计、部件之间的接口设计等。
1、系统结构设计
系统功能模块的划分
概要设计的核心问题是确定系统总体结构和模块划分。系统功能要层层划分,直到每一个模块可以作为一个可以执行的程序单元为止。功能模块划分的最终结果,是系统结构图。根据需求分析,该机票预订系统可由航班管理、旅客管理、订票管理、系统管理、系统帮助等子系统组成,如图 9所示。
图9 系统结构图
各子系统的主要功能如下:
航班管理子系统
即管理和维护航班的各项数据信息,包括航班的启程时间与到达时间、目的地、班次、价格以及票余量。允许业务员和系统管理员添加、更新和删除航班信息和查询航班信息。
该子系统功能由flight模块完成。
(2)旅客管理子系统:
即管理和维护旅客的各项数据信息,包括旅客身份证号码、姓名、性别、工作单位、旅行时间、旅行目的地等。允许业务管理员和系统管理员添加、更新、删除和查询旅客信息。
该子系统功能由guest模块完成。
(3)订票管理子系统
即管理和维护旅客的订票信息的各项数据,包括身份证号、姓名、性别和航班日期、航班目的地、班次、价格等信息。允许业务管理员和系统管理员添加、更新、删除以及查询订票信息,并进行航班的安排,打印取票通知和账单的打印,订票信息的核对,收费以及机票的打印。而旅客只能查询自己的订票信息。
该子系统功能由book模块完成。
(4)系统管理子系统
即管理和维护用户的各项数据信息,包括管理员ID、姓名和密码。主要有添加、删除和修改用户信息、修改用户密码、系统初始化和系统备份、系统恢复等5项功能。
用户类型决定了用户的权限管理,系统定义了2种用户权限:
第1种是机票预订管理员,能查询、添加、删除和修改订票信息、航班和客户的信息数据,还能根据航班和订票信息为客户安排航班,以及核对通知、账单和订票信息;
第2种是一般用户,能够自行注册和登陆,能够查询个人相关的信息。
该子系统功能由arrangement模块完成。
(5)系统帮助子系统
即为用户提供操作帮助,解决用户使用过程中遇到的一般性问题。
该子系统功能由help模块完成。
数据库设计
数据库是应用系统的核心,应当精心设计,以保证系统的正确、可靠、高效运行。数据库设计包括数据库需求分析、数据库概念设计、数据库逻辑结构设计和数据库物理设计。数据库设计的目的,是为信息系统在数据库服务器上建立一个理想的数据模型。
数据库需求分析
机票预订系统的数据库主要用于航班信息、旅客信息、订票信息的管理,因此数据库设计必须充分满足这些功能要求。根据系统结构设计中各子系统的功能要求,可确定数据库的具体需求如下:
(1)航班信息管理部分:
管理员可对航班信息进行维护,如添加、修改、删除和查询航班信息等。
班次为关键字段
(2)旅客信息管理部分
管理员可对旅客信息数据进行维护,如添加、修改、删除和查询旅客信息。
旅客身份证号为关键字段
(3)订票信息管理部分
系统根据旅客信息和航班信息安排航班,生成订票信息
管理员可对订票信息数据进行添加、修改、删除和查询订票信息。
航班号和旅客身份证号应该设为关键字段。
订票信息生成后打印通知和账单,息管理员将通知和账单交给客户。
管理员将订票信息和通知、账单核对,核对无误后收费并打印机票。
订票信息记录中的旅客身份证号是旅客信息表的外码。
订票信息记录中的航班号是航班信息表的外码。
(4)系统管理部分
系统用户可以注册添加账户,登陆后查询个人信息和订票信息。
系统管理员添加、删除和修改系统用户信息、修改用户密码。
系统管理员可以对系统进行初始化和系统备份、系统恢复。
2. 数据库概念设计
根据数据库的需求分析,接着开始数据库概念设计。数据库概念设计是指设计出数据库的概念数据模型,即实体-联系图(简称E-R图)。这里给出E-R模型,如图 10 所示。
图 10 实体—联系图
3. 数据库逻辑结构设计
数据的概念结构设计完毕后,要将设计出来的数据库概念模型转化为某种数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。
机票预订系统的数据库中各个数据表的设计结构如表1~表3 所示。数据库命名为flight reservation MIS,由 3个数据表组成,数据表的命名采用拼音综合,每个表由若干字段组成,字段用汉字命名。下面设计表的具体字段。
旅客信息表:存放旅客基本信息,表1列出了旅客信息表所有字段信息。
表1 旅客信息表guest
(2)航班信息表:存放航班基本信息,表2列出了航班信息表所有字段信息。
表2 航班信息表flight
(3)订票信息表:存放订票信息,表3列出了订票信息表所有字段信息。
机票预订系统的设计.doc