1、- 1 -1 引言 .21.1 编写目的 21.2 背景 21.3 定义 21.4 参考资料 22 总体设计 .32.1 需求规定 32.2 运行环境 32.3 基本设计概念和处理流程 32.4 结构 52.5 功能需求与程序的关系 62.6 人工处理过程 72.7 尚未问决的问题 73 接口设计 .73.1 用户接口 73.2 外部接口 73.3 内部接口 74 运行设计 .84.1 运行模块组合 84.2 运行控制 84.3 运行时间 85 系统数据结构设计 .95.1 逻辑结构设计要点 95.2 物理结构设计要点 95.3 数据结构与程序的关系 106 系统出错处理设计 .106.1 出
2、错信息 106.2 补救措施 116.3 系统维护设计 11- 2 -概要设计说明书1 引言1.1 编写目的本阶段已在系统的需求分析的基础上,对机票预定系统做概要设计。主要解决了实现该系统需求的程序模块设计问题。包括如何把该系统划分成若干个模块、决定各个模块之间的接口、模块之间传递的信息,以及数据结构、模块结构的设计等。在以下的概要设计报告中将对在本阶段中对系统所做的所有概要设计进行详细的说明。1.2 背景开发软件名称:机票预订系统。开发者:张锐钦用户:航空公司,旅行社,乘客运行环境:个人电脑开发平台:MyEclipse 7.0 Mysql 数据库。系统架构:该系统采用 java+jsp 完成
3、,用 AWT 开发系统界面设计。1.3 定义Mysql: 系统服务器所使用的数据库管理系统(DBMS) 。SQL: 一种用于访问查询数据库的语言事务流:数据进入模块后可能有多种路径进行处理。主键:数据库表中的关键域。值互不相同。外部主键:数据库表中与其他表主键关联的域。1.4 参考资料以下列出在概要设计过程中所使用到的有关资料:- 3 -软件工程及其应用 周苏、王文等 天津科学技术出版社 1992/1软件工程 张海藩 清华大学出版社 1990/11软件工程 郑人杰 马素霞 机械工业出版社 2008/062 总体设计2.1 需求规定航空公司为方便旅客,需开发一个机票预定系统。为便于旅客由旅行社代
4、替航空公司负责为旅客定票,旅行社把预定机票的旅客信息,包括姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地,输入机票预定系统的客户端程序,系统经过查询航空公司内的航班数据服务器后,为旅客安排航班,印出取票通知。旅客在飞机起飞前一天凭取票通知和帐单交款后取票,系统校对无误后即印出机票给旅客。要求系统能有效、快速、安全、可靠和无误的完成上述操作。并要求客户机的界面要简单明了,易于操作,服务器程序利于维护。2.2 运行环境数据库软件:Mysql 数据库运行平台:Windows XP/windows 7分辨率:最佳效果 1024768 像素2.3 基本设计概念和处理流程下面将使用(结构化设计)面
5、向数据流的方法对机票预定系统的处理流程进行分析。系统可分为两大部分:一、客户机上的程序,二、服务器上的程序。以下将分别对系统的这两大部分进行流程分析2.3.1 客户机程序流程客户机上的输入信息为旅客资料或帐单号,还包括一个定票/领票选项。输出为打印帐单或机票,和确认或出错信息。其内部处理流程如下:- 4 -航班查询选择航班填写订单提交订单支付票款印出机票下面对各模块进行功能说明:航班查询:进入该系统进行机票查询,选择起始城市、目的城市、起飞时间、起飞日期、航空公司等信息后点击“查询航班”进入“ 机票查询结果 ”页面。选择航班:1. 您现在已经进入机票查询结果的页面,如果现在您的起飞日期、目的城
6、市有所更改,您可直接在左边的查询中修改,以便系统重新搜索。2. 页面上会显示航空公司、起飞时间、到达时间、日期、以及舱位的价格、余位。3. 选择您需要的机票类型,点击 “ 预订该舱位 ” 就可直接进入预订页面 。填写订单:1. 按照系统要求仔细填写乘机人姓名、证件类型、证件号。2. 您可以选择适合您的付款方式付款。3. 填写联系人全名、联系人手机或固定电话和常用 email 地址,选择送票城市 。4. 填写完以上预订信息后,点击“预订”进入核对界面提交订单:1. 在提交订单前,您可以再次仔细的查看一下您的预订数据是否有误,如无误您可直接点击“预订”按钮以提交您的订单。 2. 订单提交后,如果成
7、功会显示您的订单号码及订单处理成功的提示,否则会显示错误信息请返回重新提交。3. 订单提交后,我们将尽快按您的要求处理订单,如果您的行程有任何变化,请拨打电话及时与我们联系。支付票款:您提交的定单在预订机票系统中订位成功后,为了不被取消请马上支付票款给我们。印出机票:1. 在您支付了所预订的机票款后,我们会及时为您出票,并把出票后我们会通知您。您可以通过信息中的五位数编号拨打航空公司客服电话进行验证。2. 出票后我- 5 -们会根据您填写的送票时间和送票地址为您送票上门。2.3.2 服务器程序流程下面对各模块进行功能说明:航班信息更新:系统的管理员通过对航班信息的修改,使数据库中的信息发生变化
8、。航班取消:当由于某种原因某航班被取消了,系统的管理人员要第一时间的更改数据库中的航班信息,使旅客能及时了解最新信息。2.4 结构2.4.1 客户机部分系统管理员航班信息的更新服务器终端显示数据产生报表Mysql 数据库系统管理员航班取消 产生报表 服务器终端显示数据机票预定系统(客户机程序)接收输入数据 联络服务器 输出数据准备定票发送数据 准备确认发送数检验输入准备网络数据包 解开网络数据包发送数据 接收数据 定票成功? 领票成功?确认操作类型- 6 -2.4.2 服务器程序部分2.5 功能需求与程序的关系本条用一张如下的矩阵图说明各项功能需求的实现同各块程序的分配关系:查询程序 录入程序
9、 验证程序 打印程序查询航班 填写个人信息 航班预定 航班信息更新 机票打印 读入旅客资料 读入帐单号确定(定票/领票)旅客资料定票/领票帐单号准备输出判断错误类型准备输出准备错误信息打印帐单 显示确认 显示错误打印机票 确认显示帐单机票机票预定系统(服务器部分)接收数据 数据处理、查询 发送数据判断类型解开数据包接收客户机数据准备数据包发送数据到客户机准备 SQL数据库操作判断查询准备返回数据判断原因准备返回数据- 7 -2.6 人工处理过程无2.7 尚未问决的问题无3 接口设计3.1 用户接口在用户界面部分,根据需求分析的结果,用户需要一个用户友善界面。在界面设计上,应做到简单明了,易于操
10、作,并且要注意到界面的布局,应突出的显示重要以及出错信息。外观上也要做到合理化,考虑到用户多对 WINDOW 风格较熟悉,应尽量向这一方向靠拢。总的来说,系统的用户界面应作到可靠性、简单性、易学习和使用3.2 外部接口3.1.2 软件接口服务器程序上可使用 Mysql 的对数据库的备分命令,以做到对数据的保存。在网络软件接口方面,使用一种无差错的传输协议,采用滑动窗口方式对数据进行网络传输及接收。3.1.3 硬件接口在输入方面,对于键盘、鼠标的输入,可用 Java、jsp 的标准输入/输出,对输入进行处理。在输出方面,打印机的连接及使用,也可用 Java 的标准输入 /输出对其进行处理。在网络
11、传输部分,在网络硬件部分,为了实现高速传输,将使用高速 ATM。3.3 内部接口内部接口方面,各模块之间采用函数调用、参数传递、返回值的方式进行信息传递。- 8 -具体参数的结构将在下面数据结构设计的内容中说明。接口传递的信息将是以数据结构封装了的数据,以参数传递或返回值的形式在各模块间传输。4 运行设计4.1 运行模块组合客户机程序在有输入时启动接收数据模块,通过各模块之间的调用,读入并对输入进行格式化。在接收数据模块得到充分的数据时,将调用网络传输模块,将数据通过网络送到服务器,并等待接收服务器返回的信息。接收到返回信息后随即调用数据输出模块,对信息进行处理,产生相应的输出。服务器程序的接
12、收网络数据模块必须始终处于活动状态。接收到数据后,调用数据处理/查询模块对数据库进行访问,完成后调用网络发送模块,将信息返回客户机。4.2 运行控制运行控制将严格按照各模块间函数调用关系来实现。在各事务中心模块中,需对运行控制进行正确的判断,选择正确的运行控制路径。在网络传方面,客户机在发送数据后,将等待服务器的确认收到信号,收到后,再次等待服务器发送回答数据,然后对数据进行确认。服务器在接到数据后发送确认信号,在对数据处理、访问数据库后,将返回信息送回客户机,并等待确认。4.3 运行时间在软体的需求分析中,对运行时间的要求为必须对作出的操作有较快的反应。网络硬件对运行时间有最大的影响,当网络
13、负载量大时,对操作反应将受到很大的影响。所以将采用高速 ATM 网络,实现客户机与服务器之间的连接,以减少网络传输上的开销。其次是服务器的性能,这将影响对数据库访问时间即操作时间的长短,影响加大客户机操作的等待时间,所以必须使用高性能的服务器,建议使用 Pentium III 处理器。硬件对本系统的速度影响将会大于软件的影响。- 9 -5 系统数据结构设计5.1 逻辑结构设计要点1、航班班次表班次(航班号,飞行出发地,目的地,起飞日期/时间,商务仓票价,经济仓票价,座位空数)2、领票信息表领票(航班号,账单号,是否领票)3、帐单信息/旅客资料表乘客资料(预订航班,航班日期,航班等级,姓名,性别
14、,身份证号码,联系电话,电子邮件,工作单位)5.2 物理结构设计要点1、班次(BC)序号 字段名 字段含义 类型 允许空 主键1 num 航班号 Varchar N Y2 from 飞行出发地 Varchar N2 to 目的地 Varchar N4 time 起飞时间 Varchar N5 bus 商务仓票价 Varchar N6 eco 经济仓票价 Varchar N7 count 座位空数 number N2、领票(LP)序号 字段名 字段含义 类型 允许空 主键1 num 航班号 Varchar N Y2 money 账单号 Varchar N2 yn 是否领票 Varchar N3、
15、乘客信息(XX)序号 字段名 字段含义 类型 允许空 主键1 num 预订航班 Varchar N Y- 10 -2 date 航班日期 Date N2 rank 航班等级 Varchar N4 name 姓名 Varchar N5 sex 性别 Varchar N6 no 身份证号码 Varchar N7 phone 联系电话 Varchar N8 email 电子邮件 Varchar9 com 工作单位 Varchar5.3 数据结构与程序的关系服务器程序在对定票/领票进行操作时需对数据库数据库数据结构,也就是数据表进行查询和修改:在定票/ 领票过程中都需要对数据库中的所有表,进行联合查询
16、、修改。物理数据结构主要用于各模块之间函数的信息传递。接口传递的信息将是以数据结构封装了的数据,以参数传递或返回值的形式在各模块间传输。出错信息将送入显示模块中,机票结构,帐单结构,送入打印准备模块中准备打印格式。6 系统出错处理设计6.1 出错信息程序在运行时主要会出现两种错误:1、由于输入信息,或无法满足要求时产生的错误,称为软错误。2、由于其他问题,如网络传输超时等,产生的问题,称为硬错误。对于软错误,须在定票/领票操作成功判断及输入数据验证模块由数据进行数据分析,判断错误类型,再生成相应的错误提示语句,送到输出模块中。对与硬错误,可在出错的相应模块中输出简单的出错语句,并将程序重置。返
17、回输入阶段。出错信息必须给出相应的出错原因,例:全部班机座位已满!查无此定位信息!等。- 11 -6.2 补救措施所有的客户机及服务器都必须安装不间断电源以防止停电或电压不稳造成的数据丢失的损失。若真断电时,客户机上将不会有太大的影响,主要是服务器上:在断电后恢复过程可采用 Mysql 的日志文件,对其进行 ROLLBACK 处理,对数据进行恢复。在网络传输方面,可考虑建立一条成本较低的后备网络,以保证当主网络断路时数据的通信。在硬件方面要选择较可靠、稳定的服务器机种,保证系统运行时的可靠性。6.3 系统维护设计维护方面主要为对服务器上的数据库数据进行维护。可使用 Mysql 的数据库维护功能机制。例如,定期为数据库进行 Backup,维护管理数据库死锁问题和维护数据库内数据的一致性等。