您的当前位置:首页正文

软件工程报告-机票预定系统

来源:个人技术集锦
 1 引言 1.1 编写目的 软件需求说明书 本机票预定系统在可行性研究的基础上,是为了进一步明确机票预定系统的软件需求,以便安排开发人员的规划与进度,撰写本文档。 1.2 背景 待开发的软件系统的名称:机票预定系统 项目的任务提出者:软件工程老师 项目开发者:xx 项目的用户:旅客、某民航航空公司和某旅游开发公司。 该软件系统同其他系统关系:机票预定系统由两部分组成:前台客户端程序和后台管理员端程序。 2 任务概述 2.1 目标 本系统分为管理员端和客户端两个部分,旅行社为客户端,航空公司为管理员端。客户和管理员端通过网络进行通信。旅行社通过网络把预定机票的客户信息(姓名,性别,工作单位,身份证号码,旅行时间,旅行目的地等)传输到管理员端,管理员端程序通过对数据库的查询来为旅客安排航班,并把安排结果传输到客户,客户印出取票通知和帐单。客户对本系统的服务可以进行投诉与建议。 本机票预定系统实现后,将会改进航空公司人员的利用率,提高机票预定服务的效率,节约了客户的购票时间,从而大大减少了人力与设备的费用。 2.2 用户特点 使用本软件操作人员要求有一定计算机基础的人员 ,维护人员要求由计算机的专业知识。本软件预期使用年限为4年。 2.3 假定和约束 2.3.1人力、资金、时间的约束 因为是软件工程的实验项目,所以经费限制较大,开发软件必须在规定的试验时间16学时内完成。 2.3.2.技术发展规律的约束 计算机技术和产品的发展日新月异,将会给信息处理带来更多的手段,同时也会带来更加丰富的信息表达形式。例如图象和语音技术的进步,多媒体技术的发展,这些都要求系统在设计时考虑技术变化的可能性,为可能的变化预留一定的系统处理能力。 3 需求规定 3.1 对功能的规定 3.1.1系统的逻辑模型 输入 处理 输出 3.1.2系统处理流程和数据流程 3.1.3数据库描述 数据库采用SQL Server2008 3.1.4数据词典 名字:投诉及建议 描述:客户对本系统的建议和相关投诉 定义:投诉及建议=旅客姓名+建议+邮箱+航班号+移动手机号码+联系号码 用户信息 订票信息 航班信息 1.查询用户表或更新用户表 2.更新用户订票表 3.更新航班信息表,修改库存机票 登录成功 订票成功 航班信息、库存机票更新成功 管理员端 管理员端 登录管理 产生报表 数据管理 数据库 管理员端终端显示 管理员端 订票管理 产生报表 客户终端显示 管理员端 客户 投诉及建议管理 航班信息的查询 客户 机票预定 位置:由客户填写,管理员端进行回复处理 名字:航班信息 描述:从出发地到目的地的航班的信息 定义:航班信息=公司类型+始发地+目的地+单程票价+往返票价+飞机类型 +起飞日期+到达日期+起飞时间+到达时间+座位数+机舱类型+始发机场+目的 机场 名字:机票信息 描述:旅客所定机票 定义:机票信息=旅客姓名+旅客性别+身份证号+航班号+起飞时间+飞行目 的地+座位号 3.2 对性能的规定 3.2.1 精度 数据精确度: 1)输入数据: 旅行社输入: 旅客姓名 String 旅客性别 String 身份证号码 String 联系方式 String 电子邮件 String 工作单位 String 航班号 String 航班日期 Date 飞机票号 String 座位等级 String 出发地 String 目的地 String 航空公司输入: 旅客姓名 String 旅客性别 String 身份证号码 String 联系方式 String 电子邮件 String 工作单位 String 航班号 String 航班日期 Date 飞机票号 String 座位等级 String 出发地 String 目的地 String 旅客输入: 身份证号码 String 飞机票号 String 航班号 String 航班日期 Date 出发地 String 目的地 String 2)输出数据: 机票信息: 机票号 String 旅客姓名 String 身份证号码 String 旅客性别 String 航班号 String 出发地 String 目的地 String 起飞时间 Date/Time 座位等级 String 帐单信息: 旅客姓名 String 身份证号码 String 航班号 String 机票号 String 座位等级 String 机票价格 int 3.2.2 时间特性要求 要求数据传输时间在2分钟以内,管理员端响应时间在1分钟以内,总响应时间为5分钟。 3.3 输入输出要求 1)输入数据格式 旅行社输入: 旅客姓名 String 旅客性别 String 身份证号码 String 联系方式 String 电子邮件 String 工作单位 String 航班号 String 航班日期 Date 飞机票号 String 座位等级 String 出发地 String 目的地 String 航空公司输入: 旅客姓名 String 旅客性别 String 身份证号码 String 联系方式 String 电子邮件 String 工作单位 String 航班号 String 航班日期 Date 飞机票号 String 座位等级 String 出发地 String 目的地 String 输入举例 旅行社输入: 旅客姓名 Jacques 联系方式 4868492 电子邮件 sdfa@126.com(可空) 工作单位 朝阳公司(可空) 航班号 CR8001 航班日期 2007-8-28 座位等级 商务舱或者经济舱 出发地 威海 目的地 北京 飞机票号 CR80012007-8-2800 航空公司输入: 旅客姓名 Jacques 旅客性别 选择 男 身份证号码 3425584678746 联系方式 4868492 电子邮件 sdfa@126.com(可空) 工作单位 朝阳公司(可空) 航班号 CR8001 航班日期 2007-8-28 座位等级 商务舱或者经济舱 出发地 威海 目的地 北京 飞机票号 CR80012007-8-2800 2)输出数据格式 机票信息: 机票号 String 旅客姓名 String 身份证号码 String 旅客性别 String 航班号 String 出发地 String 目的地 String 起飞时间 Date/Time 座位等级 String 帐单信息: 旅客姓名 String 身份证号码 String 航班号 String 机票号 String 座位等级 String 机票价格 int 输出举例 机票信息: 机票号 CR80012007-8-2800 旅客姓名 Jacques 身份证号码 3425584678746 旅客性别 male 航班号 CR800 出发地 威海 目的地 北京 起飞时间 2007-8-28/830 座位等级 商务舱 帐单信息: 旅客姓名 Jacques 身份证号码 3425584678746 航班号 CR8001 机票号 CR80012007-8-280 座位等级 商务仓 机票价格 1200 3.4 数据管理能力要求 需要管理的文件和记录有3个,要按可预见的增长对数据及其分量的存储的 估算是1024M。 3.5 故障处理要求 如果输入数据出错,可立即进行取消订票操作,重新输入。 如果突然断电或系统没有响应,则关机,等系统重新启动时,会根据日志文件自动ROLLBACK到正确的阶段。需要等待一段时间。 4 运行环境规定 4.1设备 a.服务器端:Pentium II 450以上,1024M RAM,36G HD 客户端:Pentium 133以上,32M RAM,2.1G HD b.硬盘:80G显卡 c.键盘联机输入。 d.数据通信设备的型号和数量; e.集成显卡 4.2支持软件 系统软件:服务器端:Windows XP ,Windows7 客户端:Windows XP,Windows7 数据库管理系统:SQL Server 4.2 支持软件 SQL Server 2008、VISUAL STUDIO 2010、Windows7 4.3接口 4.3.1 外部接口 (1)用户界面 在用户界面部分,根据需求分析的结果,用户需要一个用户友善界面。在界面设计上,应做到简单明了,易于操作,并且要注意到界面的布局,应突出的显示重要以及出错信息。外观上也要做到合理化,考虑到用户多对WINDOW 风格较熟悉,应尽量向这一方向靠拢。在设计语言上,已决定使用 MS VISUAL STUDIO 进行编程,在界面上可使用VISUAL STUDIO 所提供的可视化组件,向WINDOWS 风格靠近。 其中管理员端程序界面要做到操作简单,易于管理。在设计上采用下拉式菜单方式,在出错显示上可调用VISUAL STUDIO 库中的错误提示函数。 总的来说,系统的用户界面应作到可靠性、简单性、易学习和使用 (2) 软件接口 管理员端程序可使用VISUAL STUDIO 提供的对 SQL SERVER 的接口,进行对数据库的所有访问。 管理员端程序上可使用SQL SERVER 的对数据库的备分命令,以做到对数据 的保存。 在网络软件接口方面,使用一种无差错的传输协议,采用滑动窗口方式对数据进行网络传输及接收。 (3) 硬件接口 在输入方面,对于键盘、鼠标的输入,可用VISUAL STUDIO的标准输入/输出,对输入进行处理。 在输出方面,打印机的连接及使用,也可用VISUAL STUDIO的标准输入/输出对其进行处理。在网络传输部分,在网络硬件部分,为了实现高速传输,将使用高速ATM。 4.3.2 内部接口 内部接口方面,各模块之间采用函数调用、参数传递、返回值的方式进行信息传递。具体参数的结构将在下面数据结构设计的内容中说明。接口传递的信息将是以数据结构封装了的数据,以参数传递或返回值的形式在各模块间传输。 4.4控制 运行控制将严格按照各模块间函数调用关系来实现。在各事务中心模块中,需对运行控制进行正确的判断,选择正确的运行控制路径。在网络传方面,客户在发送数据后,将等待管理员端的确认收到信号,收到后,再次等待管理员端发送回答数据,然后对数据进行确认。管理员端在接到数据后发送确认信号,在对数据处理、访问数据库后,将返回信息送回客户,并等待确认。 概要设计说明书 1 引言 1.1 编写目的 在本机票预定系统项目的前一阶段,也就是需求分析阶段中,已经将系统用户对本系统的需求做了详细的阐述,这些用户需求已经在上一阶段中对航空公司、各旅行社及机场的实地调研中获得,并在需求规格说明书中得到详尽得叙述及阐明。 本阶段已在系统的需求分析的基础上,对机票预定系统做概要设计。主要解决了实现该系统需求的程序模块设计问题。包括如何把该系统划分成若干个模块、决定各个模块之间的接口、模块之间传递的信息,以及数据结构、模块结构的设计等。在以下的概要设计报告中将对在本阶段中对系统所做的所有概要设计进行详细的说明。 在下一阶段的详细设计中,程序设计员可参考此概要设计报告,在概要设计对机票预定系统所做的模块结构设计的基础上,对系统进行详细设计。在以后的软件测试以及软件维护阶段也可参考此说明书,以便于了解在概要设计过程中所完成的各模块设计结构,或在修改时找出在本阶段设计的不足或错误。 1.2 背景 项目任务提出者:软件工程老师 项目开发者:xx 机票预定系统将由两部分组成:置于个旅行社定票点的前台客户程序,以及置于航空公司的数据库管理员端。本系统与其他系统的关系如下: 客户程序 客户程序 客户程序 客户程序 网 飞机起飞管理 管理员端及程序 络 2 总体设计 2.1 需求规定 本系统的功能划分为如下几个部分: 1)用户合法性检查:有关证件的合法性验证。 2)订票:根据客户提供的所需机票信息,查询到相符机票,客户提交预订。 款后,由旅行社代理用户完成订票操作,返回取票通知及账单。 3)机票查询:客户订票前可以先进行航班信息的查询。 4)投诉与建议:客户提出对本系统投诉或提出建议。 5)时差:查看世界各地的时间。 6)付款方式:查看本系统支持的付款方式。 7)添加用户:管理员端可以添加客户信息。 8)修改密码:管理员端可以对自己的密码进行修改。 9)删除用户:管理员端可以删除已注册的用户。 10)添加航班信息:管理员端可以及时添加新增的航班。 11)修改库存机票:管理员端可以对库存的机票进行删除。 12)查看库存票数:管理员端可以查看库存的机票数目。 13)查看客户订单 :管理员端可以查看客户提交的订单的详细信息,并对订单进行出票和审核的处理。 14)查看客户意见:管理员端可以查看客户的投诉意见并进行处理。 2.2 运行环境 1)硬件环境 服务器端:Pentium II 450以上,1024M RAM,36G HD 客户端:Pentium 133以上,32M RAM,2.1G HD 2)软件环境 系统软件:服务器端:Windows XP ,Windows7 客户端:Windows XP,Windows7 数据库管理系统:SQL Server 2008 2.3处理流程 下面将使用(结构化设计)面向数据流的方法对机票预定系统的处理流程进行分析。系统可分为两大部分:一、客户端上的程序,二、管理员端上的程序。以下将分别对系统的这两大部分进行流程分析: 2.3.1 客户端程序流程 客户的输入信息为旅客资料,还包括一个定票/领票选项。输出为打印帐单或机票,和确认或出错信息。其内部处理流程如下: 旅客资料 2 3 4 7 8 订票/取票 1 1112 1 信息 9 10 输出错误111 原因 输出确定 1114 预定信息 下面对各模块(以数字表示)进行功能说明: 1.读入并确定(定票/领票) 它是一个事务处理中心,若输入是定票时转入2 ,否则转入5。 2.读入旅客资料 读取所输入的旅客资料,并将其格式化,将格式化数据送3。 3检验输入资料 检验格式化输入资料,初步检查输入是否有误,它是一个事务处理中心,有误则转2再次读入,检查无误则将数据送4。 4.准备管理员端数据 由格式化旅客资料准备需发送到管理员端的数据,将准备好的数据送7。 7准备网络数据包 将数据准备/加密成网络传输数据包。 8.网络数据发送 将数据包经网络发送到管理员端程序, 它是程序与网络的接口。 9.网络数据接受 接受由管理员端程序经网络传送到客户的数据包, 它是程序与网络的接口。 10.解开/判断 解开9 所接受的数据包,并判断数据是定票数据或是领票数据它是一事务处理中心,是定票则将数据送11,是领票则将数据送18。 11定票成功? 由数据判断定票是否成功,它是一事务处理中心,若定票成功则将数据送12,不成功则将数据送15。 12准备输出数据 由接收的管理员端数据准备输出数据,其他包括旅客资料等送入13。 13输出定位确定 在屏幕上显示确定定位及其他信息。 14判断错误 由数据判断出错误类型,将类型送到16。 15准备错误语句 由具体错误类型准备错误语句,送17。 16输出错误语句 在屏幕上显示错误语句。 17领票核对成功? 由数据判断领票核对是否成功,它是一事务处理中心,若成功则将数据送19,不成功则将数据送15。 18准备机票输出数据 由接收的管理员端数据准备将打印的机票数据数,其他包括旅客资料等送入14。 2.3.2 管理员端程序流程 输出确定 7 客户经网络送来的数据 来自客户 4 5 6 8 9 客户经网络送来的数据 16 17 1 2 3 SQL SERVER (班机,票务数据库) 13 送客户 10 11 12 14 15 下面对各模块(以数字表示)进行功能说明: 1.网络数据接收 接受由客户程序经网络传送到客户的数据包, 它是程序与网络的接口。 2.解开数据 解开/解密打包的数据,并将恢复的数据格式化送入3。 3.判断操作 由数据判断需要做什么数据库操作,它是一事务处理中心,若为定票操作则将.数据送4,若为领票操作则将数据送15。 4.准备数据库查询语句 由定票数据准备访问SQL SERVER数据库所需的SQL 语句,送入5。 5.数据库操作 运行SQL 语句,查询并存入数据库,获得相应的定票数据,将数据送入6。它需包括初步对查询的判断。它必须为乘客安排可抵达目的地的有座位的航班。 6.判断查询是否成功 利用查询所得的数据判断定票是否成功,它是一事务处理中心,若为定票操作成功则将数据送7,若不成功则将数据送8。 7.准备回送数据 准备定票成功后需回送客户程序的数据,送16。 8.确定原因 由查询数据判断定票不成功的原因,送9。 9准备回送数据 根据不成功的原因,准备需送回客户程序的数据,送入16。 10.准备数据库查询语句 由领票数据准备访问SQL SERVER数据库所需的SQL 语句,送入11。 11.数据库操作 运行SQL 语句,查询并存入数据库获得相应的领票数据,将数据送入6。它需包括初步对查询的判断。 12.判断查询是否成功 利用查询所得的数据判断领票是否成功,它是一事务处理中心,若为领票操作得到确认则将数据送11,若不成功则将数据送8。 13.准备回送数据 准备领票确认后需回送客户程序的数据,送16。 14.确定原因 由查询数据判断领票不能确认的原因,送15。 15.准备回送数据 根据不成功的原因,准备需送回客户程序的数据,送入16。 16.准备网络数据包 将数据准备/加密成网络传输数据包。 17.网络数据发送 将数据包经网络发送到管理员端程序, 它是程序与网络的接口。 以上显示的各模块数字相同的为同一模块;由于事务流处理上的便利,将有些功能模块,拆分到各事务流中。 2.4总体结构 下面以结构图来描述机票预定系统的软件总体结构。框内注明了模的名字;方框之间的直线表示模块的调用关系。 数据输入 登陆信息 数据信息 准备SQL 返回账单等 确定错误原因 返回机票信息 数据信息 数据信息 数据判断 判断信息 判断结果 判断查询 数据信息 数据信息 数据信息 数据输入 数据信息 数据输出 机票预定系统 数据处理、查询 页面信息录入 数据录入 数据库操作 打印账单等 显示错误原因 打印机票 旅行社登陆 2.5功能需求与程序的关系 具体说明: 模块名称 客户端模块 管理员端模块 机票查询模块 投诉与建议模块 时差模块 付款方式模块 登录管理模块 数据模块 订单模块 投诉意见处理模块 机票预定模块 模块标识副 G9 G10 G1 G2 G3 G4 G5 G6 G7 G8 G11 模块主要功能 查询、投诉与建议、查看、预订 添加、修改、删除、查看、处理 查询 投诉与建议 查看 查看 添加、删除、修改 添加、修改、查看 查看、处理 查看、处理 预订 控制关系 被G9控制 被G9控制 被G9控制 被G9控制 被G10控制 被G10控制 被G10控制 被G10控制 被G9控制 关系 功能 模块 查询 投诉与建议 查看 添加 删除 修改 处理 预订 2.5 人工处理过程 G1 √ G2 √ G3 √ G4 √ G5 √ √ √ G6 √ √ √ G7 √ √ G8 √ √ G9 √ √ √ √ G10 √ √ √ √ G11 √ 本软件的制作只涉及旅行社和航空公司两个实体,旅客的需求都由旅行社全权处理,所以较多模块涉及到人工处理过程,现列出部分如下: ⑴由旅行社管理人员收集旅客所需机票信息,并录入系统进行相符航班的查询工作。 ⑵旅客决定预定某一航班后,由旅行社管理人员收取预定金并启动系统中的订票功能,完成订票工作并把系统打印出的取票通知及账单返回给旅客。 ⑶旅客凭账单及取票通知到旅行社管理人员处办理购票手续,由旅行社管理人员对账单及取票通知的合法性进行检查,然后启动系统的购票功能完成购票,并将打印出的机票交给旅客。 ⑷旅客在飞机起飞前可凭借机票到旅行社处办理退订手续,旅行社管理人员需对机票合法性进行审查,审查通过则启动退订模块完成机票退订工作,并返还相应的退定金给旅客。 ⑸当航班取消时,旅行社端需将信息反馈给已预定或购买相应机票的客户。 3 接口设计 3.1外部接口 3.1.1 用户界面 在用户界面部分,根据需求分析的结果,用户需要一个用户友善界面。在界面设计上,应做到简单明了,易于操作,并且要注意到界面的布局,应突出的显示重要以及出错信息。外观上也要做到合理化,考虑到用户多对WINDOW 风格较熟悉,应尽量向这一方向靠拢。在设计语言上,已决定使用 C#进行编程,在界面上可使用VISUAL STUDIO 2010所提供的可视化组件,。 其中管理员端程序界面要做到操作简单,易于管理。在设计上采用下拉式菜单方式,在出错显示上可调用VISUAL STUDIO2010 库中的错误提示函数。 总的来说,系统的用户界面应作到可靠性、简单性、易学习和使用 3.1.2 软件接口 管理员端程序可使用VISUAL STUDIO 提供的对 SQL SERVER 的接口,进行对数据库的所有访问。 管理员端程序上可使用SQL SERVER 的对数据库的备分命令,以做到对数据的保存。 在网络软件接口方面,使用一种无差错的传输协议,采用滑动窗口方式对数据进行网络传输及接收。 3.1.3 硬件接口 在输入方面,对于键盘、鼠标的输入,可用VISUAL STUDIO的标准输入/输出,对输入进行处理。 在输出方面,打印机的连接及使用,也可用VISUAL STUDIO的标准输入/输出对其进行处理。在网络传输部分,在网络硬件部分,为了实现高速传输,将使用高速ATM。 3.2内部接口 内部接口方面,各模块之间采用函数调用、参数传递、返回值的方式进行信息传递。具体参数的结构将在下面数据结构设计的内容中说明。接口传递的信息将是以数据结构封装了的数据,以参数传递或返回值的形式在各模块间传输。 4 运行设计 4.1 运行模块的组合 (1)未登录用户——具有的权限包括:查询航班信息,相应的模块组合有G1。 (2)登录用户——具有的权限包括:查询航班信息,投诉与建议,查看时差和付款方式,预订机票,相应的模块组合有G1、G2、G3、G4、G11。 (3)管理员——具有的权限包括:添加航班信息和用户、修改密码和库存票数、删除用户、查看库存票数和客户订单和客户意见与投诉、处理客户订单和客户意见与投诉,相应的模块组合有G5、G6、G7、G8。 4.2 运行控制 客户程序在有输入时启动接收数据模块,通过各模块之间的调用,读入并对输入进行格式化。在接收数据模块得到充分的数据时,将调用网络传输模块,将数据通过网络送到管理员端,并等待接收管理员端返回的信息。接收到返回信息后随即调用数据输出模块,对信息进行处理,产生相应的输出。 管理员端程序的接收网络数据模块必须始终处于活动状态。接收到数据后, 调用数据处理/查询模块对数据库进行访问,完成后调用网络发送模块,将信息返回客户。 运行控制将严格按照各模块间函数调用关系来实现。在各事务中心模块中,需对运行控制进行正确的判断,选择正确的运行控制路径。 在网络传方面,客户端在发送数据后,将等待管理员端的确认收到信号,收到后,再次等待管理员端发送回答数据,然后对数据进行确认。管理员端在接到数据后发送确认信号,在对数据处理、访问数据库后,将返回信息送回客户,并等待确认。 4.3 运行时间 在软体的需求分析中,对运行时间的要求为必须对作出的操作有较快的反应。网络硬件对运行时间有最大的影响,当网络负载量大时,对操作反应将受到很大的影响。所以将采用高速ATM 网络,实现客户与管理员端之间的连接,以减少网络传输上的开销。其次是管理员端的性能,这将影响对数据库访问时间即操作时间的长短,影响加大客户操作的等待时间,所以必须使用高性能的管理员端,建议使用 Pentium III 处理器。硬件对本系统的速度影响将会大于软件的影响。 5 系统数据结构设计 5.1 数据库数据结构设计 DBMS 的使用上系统将采用 SQL SERVER, 系统主要需要维护4张数据表: 航班班次表 航班号 起飞日期/时间 到达日期/时间 座位空数 商务仓票价 经济仓票价 公司名称 飞机类型 始发地 目的地 始发机场 目的机场 航班班次表保存了所有从本地起飞的班机信息,它的主键为航班号。在定位前先查寻座位空数,在定位后将修改座位空数。 旅客资料表 旅客姓名 旅客性别 旅客身份证号 工作单位 帐单信息/旅客资料表保存已定位的旅客信息资料,它的主键为旅客身份证号,外部主键为帐单号。主要用于领票时将旅客信息一同返回。 旅客订单表 旅客编号 地址 号码 E-mail 手机号 状态(已/未处理) 旅客建议表 旅客编号 建议 固定号码 E-mail 手机号 5.2 物理数据结构设计 物理数据结构设计主要是设计数据在模块中的表示形式。数据在模块中都是以结构的方式表示。 旅客信息 1.旅客姓名 2.旅客性别 3.身份证号码 4.工作单位 String Char LONG INT String 用于定票时接收输入,以及领票时管理员端返回。 帐单号 可使用一LONG INT 实现。 用于领票时接收输入,以及定票时管理员端返回。 飞行目的 1. 2. 3. 4. 航班号 目的地 起飞时间 座位号 String String Date/Time String 用于定票时接收输入,以及领票时管理员端返回。 网络包 1. 网络包Head 2. 传输数据 INT String 用于数据在网络上的传输。 错误信息 1. 错误类型 2. 输出语句 INT String 用于关于错误操作。 机票信息 1.航班号 2.目的地 3.起飞日期/时间 4.始发地 5.座位数 6.到达日期/时间 7.经济仓票价 8.公司名称 9.飞机类型 10.商务仓票价 11.始发机场 12.目的机场 用于打印机票准备工作。数据类型可参照上面所述。 帐单信息 1. 帐单号 2. 旅客姓名 3. 身份证号码 4. 航班号 5. 起飞时间 6. 目的地 用于打印帐单准备工作。数据类型可参照上面所述。 5.3 数据结构与程序的关系 管理员端程序在对定票/领票进行操作时需对数据库数据库数据结构,也就是数据表进行查询和修改:在定票/领票过程中都需要对数据库中的所有表,进行联合查询、修改。 物理数据结构主要用于各模块之间函数的信息传递。接口传递的信息将是以数据结构封装了的数据,以参数传递或返回值的形式在各模块间传输。出错信息将送入显示模块中,机票结构,送入打印准备模块中准备打印格式。 6 系统出错处理设计 6.1 出错信息 输出信息 密码不能为空 用户不存在 可能原因 ***项忘记填写 **项数据库中无此记录 处理方法 按照要求填写***项 重新填写 用户名已存在 无权操作 查无此定位信息 验证码错误 6.2 补救措施 ***项数据库中已有记录 权限不够 重新填写 返回不操作,转入登录界面 航班信息更新了 刷新页面 填写错误 重新填写 所有的客户及管理员端都必须安装不间断电源以防止停电或电压不稳造成的数据丢失的损失。若真断电时,客户上将不会有太大的影响,主要是管理员端上:在断电后恢复过程可采用 SQL SERVER 的日志文件,对其进行ROLLBACK 处理,对数据进行恢复。 在网络传输方面,可考虑建立一条成本较低的后备网络,以保证当主网络断路时数据的通信。 在硬件方面要选择较可靠、稳定的管理员端机种,保证系统运行时的可靠性。 数据库设计说明书 1 引言 1.1 编写目的 本说明书说明“飞机票网上预订系统”的数据库设计、结构情况,用于开发人员进行项目设计,同时也为后续的数据库维护工作提供了良好的使用说明,也可以作为未来版本升级时的重要参考资料。 1.2 背景 a待开发的软件系统的名称:机票预定系统 b项目的任务提出者:软件工程老师 c项目开发者:xx d项目的用户:旅客、某民航航空公司和某旅游开发公司。 e该软件系统同其他系统关系:机票预定系统由两部分组成:前台客户程序和后台数据库服务器。 2 外部设计 2.1 标识符和状态 数据库标示符:TicketSaler 用户名:sa 密码:zhishi 权限:全部 有效时间:开发阶段 说明:系统正式发布后,可能更改数据库用户/密码,请在统一位置编写数据库连接字符串,在发行前请予以改正。 2.2 使用它的程序 可能使用的该系统的应用程序包括:机票预定系统 2.3 约定 字符集采用 UTF-8,请在编写JSP页面时注意字符集的转换相关问题。 除特别说明外,所有日期格式都采用 date 格式,无时间值。 除特别说明外,所有整形都采用 int 格式。 除特别说明外,所有字段默认都设置为 null 。 普通管理员端,能对库(航班库和客户库)中的信息进行查询,可以根据具体需要进行适当的数据管理(增、删、改、更)。 客户只能对航班信息库中的内容进行查询操作,客户进入到页面之后在不进行登录的情况下只能进行航班信息查询操作,要预订机票就必须要先注册登录提交自己的基本信息;系统会根据管理员端和客户的各种操作转入相应的页面。 2.4 专业指导 2.5 支持软件 管理员端工具:Navicat Windows/Linux 查询浏览工具:Navicat Windows/Linux 命令行工具:SQL Server 开发客户端:SQL Server connector SQL Server 2000提供了核心的引擎,为支持本系统的数据库Online ticket reservation Management System,需要使用到SQL Server 2000的几个组件,包括: A、企业管理器:提供了数据管理和数据库操作的集成平台; B、查询分析器:T-SQL调试、优化、性能检测的工具; C、事件探查器:提供了对SQL Server执行操作的检测,并以T-SQL的形式记录; D、服务管理器:提供SQL Server停止、启动的控制工具 此外,还包括可能会使用到的数据导入和导出工具,为数据库提供数据的输入。 3 结构设计 3.1 概念结构设计 (1)用户E-R图,如图所示。 (2) 航班信息E-R图,如图所示。 ID 密码 用户名 旅 客 处理日 目的机航班号 出发时间 飞机类型 往返价 机舱类 始发城到达时始发机航班信息 旅客数飞机编基础价目的城航空公 (3)投诉与建议E-R图,如图所示。 手机 家庭地Email 投诉与 ID 固定电邮箱 投诉与建议 用户名 (4)机票信息E-R图,如图所示。 到达日 目的机航班号 出发时间 出发日期 往返价格 始发机机票信息 座位 机舱类 始发城市 机票基础价目的城市 航空公司 飞机类型 到达时间 可得总的E-R图如下: 航班理 出发时 航班信 息飞机往返始发 手机 (3)旅客固定电家庭地始发到达 航空邮箱 Email 基 ID 础 目 的 m 用户名 投诉与建议 投诉投ID 密码 用户m 查询 n 旅 客 1 反馈 1 预定 到达日 目的机航班号 出发时间 m 出发日期 往返价格 始发机 机票信息 飞机类型 机舱 类座位 3.2 逻辑结构设计 3.2.1E-R图向关系模型的转换 用户表(ID,用户名,用户密码) 始发城市 到达时间 目的城市 航空公司 机票基础价 投诉与意见表(ID,用户名,投诉与意见,邮箱,固定电话,手机,家庭地址,Email) 航班信息表(航班号,出发时间,到达时间,始发城市,目的城市,航空公司,机票基础价格,往返价格,飞机类型,旅客数量,机舱类型,始发机场,目的机场,处理日期,飞机编号) 订单表(ID,地址,证件号码,联系人,邮箱,移动电话,固定电话,旅客编号,处理状态) 机票信息表(航班号,出发时间,到达时间,始发城市,目的城市,航空公司,机票基础价格,往返价格,飞机类型,出发日期,到达日期,座位,机舱类型,始发机场,目的机场) 3.2.2数据结构 投诉与意见表(ConsumerSuggestion) 字段名称 id consumer_name suggertion email telephone Mobile_pnone address email 类型 varchar(50) varchar(20) varchar(20) varchar(20) varchar(20) varchar(20) varchar(50) 记录内容 用户id 用户名 投诉与意见 邮箱 固定电话 手机 Email 是否为空 0 1 1 1 1 1 0 0 主键 备注 varchar(100) 家庭地址 用户表(SystemUser) 字段名称 id pass_word user_name id 类型 nvarchar(20) 密码 nvarchar(50) 用户名 记录内容 用户id 是否为空 0 1 1 备注 主键,自动增长 订单表(ConsumerOrder) 字段名称 id address code relationer email mobile_phone telephone personal_id try 类型 int 序号 nvachar(MAX) 地址 nvarchar(50) 编码 记录内容 是否为空 0 1 1 1 1 1 1 1 1 备注 主键,自增长 nvarchar(50) 联系人 nvarchar(50) 邮箱 nchar(20) nchar(20) int 移动电话 固定电话 顾客编号 nvarchar(50) 处理状态 机票信息表(FlightInformation) 字段名称 id start_time end_time range_type starting_ciry terminus_city company_type OneWay_price GoAndBack-price flight_type start_date arriving_date num bunk_type starting_ariport arrivint_airport int varchar(40) varchar(40) varchar(10) varchar(40) varchar(40) varchar(30) money money varchar(50) varchar(50) varchar(50) int varchar(50) varchar(50) varchar(50) 类型 记录内容 航班号 出发时间 到达时间 往返类型 始发城市 目的城市 航空公司 机票基础价格 往返价格 飞机类型 出发日期 到达日期 座位 机舱类型 始发机场 目的机场 是否为空 0 1 1 1 1 1 1 1 1 1 1 备注 由航空公司提供,主键 单程,往返 航班信息管理表(ManageFlightInfor) 字段名称 id startingtime endingtime staciry tarrcity company onewayprice backprice flighttype int varchar(40) varchar(40) varchar(40) varchar(40) varchar(30) money money varchar(50) 类型 记录内容 航班号 出发时间 到达时间 始发城市 目的城市 航空公司 机票基础价格 往返价格 飞机类型 是否为空 0 1 1 1 1 1 1 1 1 备注 由航空公司提供,主键 cusmnum bunk_type startariport arrivingairport tdate flight_id int varchar(50) varchar(50) varchar(50) varchar(50) int 旅客数量 机舱类型 始发机场 目的机场 处理日期 飞机编号 1 1 1 1 1 1 3.3物理结构设计 数据库TicketSaler的物理结构的部分符合SQL Server 2000关于数据文件、卷、页的分配和分配规则。 TicketSaler数据库初始大小为100M,按照超过最大容量后20%的增长速率进行增长。 TicketSaler数据库分配日志文件大小为20M,自动增长。应用程序中自动截断事务日志。 TicketSaler数据库的物理文件名称为TicketSaler,主要数据文件、次要数据文件、文件组等都按照系统的默认设置进行。物理文件的存储位置为SQL Server 2000默认的位置。 身份验证,进行不同 的操作 旅客查询航班信息 旅客预订机票 机票预订系统 旅客 旅客查询订票信息 可以进行世界时 差和付款方式的 查询 对航班信息,旅客订票信息进行管理 修票信息进行添加、改、删除、查询 管理员可以对系统投诉与建议,管理员端进行处理 4.运用设计 4.1数据字典设计 数据库名称:TicketSaler中文名称或意义:机票预定系统 创建日期:2013.05.31 创建人:xx 数据文件大小:100M 数据文件物理位置:G:\\Program Files\\Microsoft SQL Server\\MSSQL10.MSSQLSERVER\\MSSQL\\DATA\\ TicketSaler.Mdb 日志文件大小:20M 日志文件物理位置:G:\\Program Files\\Microsoft SQL Server\\MSSQL10.MSSQLSERVER\\MSSQL\\DATA\\ TicketSaler..Ldb 数据字典是关于数据库中数据的描述,它的作用是在软件分析和设计过程中为有关人员提供关于数据描述信息的查询,以保证数据的一致性。下面举例说明数据字典的定义。 数据项以“航班号”为例。描述如下: 数据项名:航班号 别名:航班号 含义:唯一标识航班的信息 类型:字符型 取值范围:00000000000000至9999999999999 取值含义:标示航班 数据结构以“航班信息表” 为例,描述如下: 数据结构名:航班信息表 含义说明:定义了一个航班的有关信息 组成:航班号,出发时间,到达时间,始发城市,目的城市,航空公司,机票基础价格,往返价格,飞机类型,旅客数量,机舱类型,始发机场,目的机场,处理日期,飞机编号 数据存储以“用户信息表” 为例,描述如下: 数据存储名:用户信息表 说明:用户信息表情况 流出数据流:用户信息查询表 流入数据流: 管理员端管理表 数据描述:ID,用户名,用户密码 “旅客订票”过程描述如下: 旅客通过登录用户进入系统,查询近期航班,可根据自己的行程选择 合适的航班进行订购机票;旅客需填写身份证号、姓名、联系方式 等完成订票。等待管理员的审核。 4.2安全保密设计 由于数据的传输上需要通过网络传输,为了客户资料进行保密,需要在网络的传输过程中对数据进行加密。 这个工作主要是在准备网络包,及解开网络包这两个模块完成,它们各对数据进行加密及解密还原工作。 在加密算法选择上将使用RSA 加密算法。 维护方面主要为对管理员端上的数据库数据进行维护。可使用 SQL SERVER 的数据库维护功能机制。 详细设计说明书 1 引言 1.1 编写目的 在前一阶段(概要设计说明书)中,已解决了实现该系统需求的程序模块设计问题。包括如何把该系统划分成若干个模块、决定各个模块之间的接口、模块之间传递的信息,以及数据结构、模块结构的设计等。在以下的详细设计报告中将对在本阶段中对系统所做的所有详细设计进行说明。 在本阶段中,确定应该如何具体地实现所要求的系统,从而在编码阶段可以把这个描述直接翻译成用具体的 程序语言书写的程序。主要的工作有:根据在《需求分析说明书》中所描述的数据、功能、运行、性能需求,并依照《概要设计说明书》所确定的处理流程、总体结构和模块外部设计,设计软件系统的结构设计、逐个模块的程序描述(包括各模块的功能、性能、输入、输出、算法、程序逻辑、接口等等),解决如何 接受:旅客信息及帐单; 输出:帐单及机票; 网络输出和加密,输入和解密; 分辨信息的种类并采取相应的处理步骤; 判断信息的正误并采取相应的处理步骤; 进行数据库的查询、修改工作; 接受并判断错误,输出相应的出错消息; 1.2 背景 a待开发的软件系统的名称:机票预定系统 b项目的任务提出者:软件工程老师 c项目开发者:xx d项目的用户:旅客、某民航航空公司和某旅游开发公司。 e该软件系统同其他系统关系:机票预定系统由两部分组成:前台客户端程序和后台管理员端程序。 2 程序系统的结构 各模块之间的关系已由概要设计给出:

3.程序描述 3.1 客户登录模块 机票预订 添加 用户 机票查询投诉与建客户端模时差模块 付款方式主模块 管理员端登录模块 数据模块 订单模块 投诉意见修改密码 删除用户 添加航班信息 修改库存票数 查看库存票数 查看客户订单 查看客户意见 该程序是用户登录时所必须要用到的,登陆之前需要验证用户身份的合法性,故而需要用户输入程序,输入用户名及密码来进行身份验证。 本程序为非常驻内存,是子程序、可重用、是顺序处理,在输入之后方能进行验证 3.2 功能 输入用户名 输入 输入密码 用户名、密处理 验证码判权限判断 输出 用户名或密验证码错正确登录 3.3 性能 精度要求精确到整型的个位、字符型完全正确,不支持部分匹配; 时间特性要求:要求等待时间<0.5s 3.4 输入项 输入项名称:用户名 类型:字符串型 输入方式:手工输入 数据来源:系统自带的数据库中的信息 输入项名称:密码 类型:字符串型 输入方式:手工输入 数据来源:系统的数据库中的信息 安全保密条件:在输入密码时用户界面上显示为****** 输入项名称:验证码 类型:字符串型 输入方式:手工输入 数据来源:系统的数据库中的信息 3.5 输出项 输出项:用户名错误输出 数据类型:字符串型 输出以信息对话框的形式输出 输出内容是用户名错误,请重新输入 输出项:密码错误输出 数据类型:字符串型 输出信息也是以信息对话框的形式输出 输出内容是密码错误,请重新输入 输出项:验证码错误输出 数据类型:字符串型 输出信息也是以信息对话框的形式输出 输出内容是验证码错误,请重新输入 输出项:正确登陆 数据类型:字符串型 输出内容是根据用户权限而得到的用户界面的输出 3.6 算法 本程序需要对数据库进行操作,即对数据库进行查询 Select 用户名 From SystemUser Where 用户名=输入内容 如果结果为空,则输出:用户名错误,请重新输入;三次输入错误则关闭系统 Select 密码 Form SystemUser Where 用户名=输入内容 and 密码=输入内容 如果结果为空,则输出:用户密码错误,请重新输入;三次输入错误则关闭系统 查询到一条记录后,进行权限判断,以决定让该用户使用相应的功能。 3.7 流程逻辑 用 户 系 统 用户名、密码、验证码 用户名、密码、验证码验证 3.8 接口 本程序隶属于主程序模块 主程序 本程序 航班查询模块 投诉与建议模块 时差查询模块 付款方式查询模块 3.9 存储分配 本程序的存储分配为:用户名及密码信息存入数据库中,程序使用队列将输入内容与数据库中的内容进行比较,或者直接使用数据库的存取,进而更进一步的增快程序的查询速度 3.10 限制条件 限制条件:本程序中输入的用户名只支持英文字符串型或数字,不支持汉字与汉语符号。 3.11测试计划 首先,熟悉程序的运行环境,熟悉系统的运用过程,为期两天; 其次,进行系统的培训,为期两天 再次,准备输入数据,为期三天, 此后一周时开始正式测试,为期大概一周 3.12尚未解决的问题 在登录页面中,身份验证时需要选取下拉列表框中的用户或管理员选项,选 取后将进行页面刷新,此时,上方已经填入的用户名不变,密码消失,需要重新填写。应该在刷新时,用户名及密码均保留。 3.2管理员端管理模块 3.2.1 程序描述 该程序是产生系统输出。 3.2.2 功能 数据管理、登录管理、订单管理、投诉意见处理 3.2.3 性能 时间特性要求:要求等待时间<0.5s 3.2.4 输入项 用户输入的信息 3.2.5 输出项 经管理员端管理后的信息 3.2.6本程序隶属于主程序模块 主程序 本程序 登录输出模块 数据输出模块 订单管理模块 投诉意见模块 3.2.7测试计划 AddFlight/ImageButton1_Click过程 : 接受输入航班信息。若信息格式正确,将其添加了航班信息表中。若错误,给出错误提示。 FlightInfo{ String FlightNum=航班号 String Origin=始发地 String Destination=目的地 String StartTime=起飞时间 String EndTime=降落时间 Int Int Int Buslaod=载客量 FirstClassLeft=头等舱剩余量 EconomyLeft=经济舱剩余量 Float FirstClassLeft=头等舱票价 Float EconomyPrice=经济舱票价} Domestic/GridView1_RowDeleting过程: 对国内机票详细信息进行查询,并订票 OverseaSelect/GridView1_RowDeleting过程: 对国际机票详细信息进行查询,并订票 安排航班模块: DetailedInfo/ImageButton2_Click过程: 对旅客的订单信息进行审核,若通过则点击“审核”并点击“出票” 建议与投诉模块: Suggest/submit_button_Click过程: 填写投诉或建议并提交内容,若填写格式正确,则提交成功 ConsumerSuggestion{ Int id=航班号 Nvarchar(50) consumer_name=旅客姓名 Varchar(MAX) suggestion=建议 Nvarchar(50) email=电子邮箱 Varchar(50) mobile_phone=移动电话 Varchar(50) telephone=固定电话 } LookSug/GridView1_RopwDeleting过程 对旅客的建议与投诉信息进行查看并处理 模块开发卷宗 1 标题 软件系统名称:机票预定系统 标识符:FOrder 程序编制员签名:xx 修改完成日期: 2013年5月26日 编排日期:2013年6月3日 2 模块开发情况表 系统总体结构 机票查 询模块 投诉与建议模客户端模块 时差模块 管理员端模块 付款方式模块 主模块 预 定 机 票添加 用户 修改密码 登录模块 数据模块 订单模块 投诉意见处理删除用户 添加航班信息 修改库存票数 查看库存票数 查看客户订单 查看客户意见 3 功能说明 3.1 客户登录模块 该程序是用户登录时所必须要用到的,登陆之前需要验证用户身份的合法性,故而需要用户输入程序,输入用户名及密码来进行身份验证。 本程序为非常驻内存,是子程序、可重用、是顺序处理,在输入之后方能进行验证。 3.2 功能 输入用户名 输入 输入密码 用户名、密处理 验证码判权限判断 输出 用户名或密验证码错正确登录 3.3 性能 精度要求精确到整型的个位、字符型完全正确,不支持部分匹配; 时间特性要求:要求等待时间<0.5s 3.4 输入项 输入项名称:用户名 类型:字符串型 输入方式:手工输入 数据来源:系统自带的数据库中的信息 输入项名称:密码 类型:字符串型 输入方式:手工输入 数据来源:系统的数据库中的信息 安全保密条件:在输入密码时用户界面上显示为****** 输入项名称:验证码 类型:字符串型 输入方式:手工输入 数据来源:系统的数据库中的信息 3.5 输出项 输出项:用户名错误输出 数据类型:字符串型 输出以信息对话框的形式输出 输出内容是用户名错误,请重新输入 输出项:密码错误输出 数据类型:字符串型 输出信息也是以信息对话框的形式输出 输出内容是密码错误,请重新输入 输出项:验证码错误输出 数据类型:字符串型 输出信息也是以信息对话框的形式输出 输出内容是验证码错误,请重新输入 输出项:正确登陆 数据类型:字符串型 输出内容是根据用户权限而得到的用户界面的输出 3.2管理员端管理模块 3.2.1 程序描述 该程序是产生系统输出。 3.2.2 功能 数据管理、登录管理、订单管理、投诉意见处理 3.2.3 性能 时间特性要求:要求等待时间<0.5s 3.2.4 输入项 用户输入的信息 3.2.5 输出项 经管理员端管理后的信息 4 设计说明 说明本模块(或本组模块)的设计考虑,包括: 4.1客户登录 用户在进入系统时,需要输入用户名和密码。输入处理就是根据用户输入 的用户名及密码进行判断该用户的合法性。如果口令有效则进行权限判断,以控制该用户的行为,如果口令无效,则提示出错。 无效 输入处理 显示错误 用户名、密码、验证码 有效 成功登录 说明:同一用户可以拥有顾客就餐管理,顾客住宿管理,数据库信息管理,帐号信息 管理中一个或多个权限,如果拥有全部权限,则个该用户就事系统管理员端。 4.2管理员端管理 信息处理 出错显示 正常显示 显示屏 5 源代码清单 客户端运行界面 1)机票查询与预定 国内机票查询 protected void Page_Load(object sender, EventArgs e) { date.Text = DateTime.Now.ToLongDateString(); dt = DateTime.Today.DayOfWeek.ToString(); switch (dt) { case \"Monday\": week = \"星期一\"; break; case \"Tuesday\": week = \"星期二\"; break; case \"Wednesday\": week = \"星期三\"; break; case \"Thursday\": week = \"星期四\"; break; case \"Friday\": week = \"星期五\"; break; case \"Saturday\": week = \"星期六\"; break; case \"Sunday\": week = \"星期日\"; break; } weekdate.Text = week; string stdate = Convert.ToString(Session[\"stdate\"]); Label1.Text = stdate; string sta = Convert.ToString(Session[\"sta\"]); string arr = Convert.ToString(Session[\"arr\"]); string tssql = \"select * from FlightInformation where starting_city='\" + sta + \"' and terminus_city='\" + arr + \"' and starting_date='\" + stdate + \"' order by id desc\"; SqlConnection ts = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings[\"ts\"]); ts.ConnectionString = \"Data Source=localhost;Initial Catalog=TicketSaler;Integrated Security=True\"; ts.Open(); SqlDataAdapter sda = new SqlDataAdapter(tssql, ts); DataSet ds = new DataSet(); sda.Fill(ds, \"select\"); GridView1.DataSource = ds.Tables[\"select\"]; GridView1.DataKeyNames = new string[] { \"id\" }; GridView1.DataBind(); } protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) { //获取当前行的键(id)值 string id = GridView1.DataKeys[e.NewEditIndex].Value.ToString(); //打开新窗口,显示订票的详细信息 Response.Write(\"\"); Response.Write(\"\"); } 2)投诉与建议 3)时差 4)付款方式 管理员端端运行界面 1)登录管理 添加用户 protected void ImageButton1_Click(object sender, ImageClickEventArgs e) { string un = this.newname.Text.ToString(); string Text.ToString(), \"MD5\"); SqlConnection ts\"]); ts.ConnectionString ts.Open(); SqlCommand sd = new SqlCommand(\"select count(*) as aa from SystemUser where user_name='\" + un + \"'\ int count = Convert.ToInt32(sd.ExecuteScalar()); if (count > 0) { Response.Write(\"\"); } else { SqlCommand intable = new SqlCommand(\"insert into SystemUser(user_name,pass_word)values('\" + un + \"','\" + cp + \"')\ intable.ExecuteNonQuery(); Response.Write(\"\"); } } 修改密码 用户已存在= \"Data Source=localhost;Initial Catalog=TicketSaler;Integrated Security=True\"; ts = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings[\"cp = FormsAuthentication.HashPasswordForStoringInConfigFile(this.TextBox1. 删除用户 protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) { SqlConnection ts = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings[\"ts\"]); ts.Open(); string id = GridView1.DataKeys[e.RowIndex].Value.ToString(); SqlCommand scd = new SqlCommand(\"delete from SystemUser where id=\" + id, ts); scd.ExecuteNonQuery(); this.bind();//显示删除后的所有用户信息 } 2)数据管理 添加航班信息 修改库存机票 查看库存票数 protected void GridView1_PageIndexChanging(object GridViewPageEventArgs e) { GridView1.PageIndex = e.NewPageIndex; this.bind(); } 3)订单管理 查看客户订单 sender, 4)投诉意见处理 测试计划 1 引言 1.1 编写目的 在开发大型软件的漫长过程中,面对极其错综复杂的问题,人的主观认识不可能完全符合客观现实,与工程密切相关的各类人员之间的通信和配合也不可能完美无缺。因此,在软件生命周期的每个阶段都不可避免地会产生差错。尤其对于机票预订系统这类会影响人们生活.财产的工程软件,必须尽量减少差错,以免造成严重的损失。测试是“为了发现程序中的错误而执行程序的过程”。测试的目的就是在软件投入生产性运行之前,尽可能多的发现软件中的错误。目前软件测试仍然是保证软件质量的关键步骤,它是对软件规格说明.设计和编码的最后复审,也是必不可少的关键步骤。 1.2 背景 a待开发的软件系统的名称:机票预定系统 b项目的任务提出者:软件工程老师 c项目开发者:xx d项目的用户:旅客、某民航航空公司和某旅游开发公司。 e该软件系统同其他系统关系:机票预定系统由两部分组成:前台用户程序和后台数据库服务器。 2 计划 2.1 软件说明 2.2 测试内容 系统客户模块测试 系统管理员端模块测试 2.3 测试1 系统管理员端模块 2.3.1 进度安排 由于其测试过程较长,需要对各子单元程序.各模块及它们之间的接口分 别进行测试进度.一般测试过程都伴随其概要设计.详细设计过程一起进行, 进度在5个月左右。 2.3.2 条件 必须在保证各硬件设备.软件系统齐备的情况下,资金充足,人员齐备, 各方面互相配合,齐心协力,共同完成。 2.3.3 测试资料 测试资料主要是开发过程中用到的各种档案。 2.4 测试2 客户端模块 2.4.1 进度安排 由于其测试过程较长,需要对各子单元程序.各模块及它们之间的接口分别进行测试进度.一般测试过程都伴随其概要设计.详细设计过程一起进行, 进度在5个月左右。 2.4.2 条件 必须在保证各硬件设备.软件系统齐备的情况下,资金充足,人员齐备, 各方面互相配合,齐心协力,共同完成。 2.4.3 测试资料 测试资料主要是开发过程中用到的各种档案。 3 测试设计说明 3.1 测试1 对管理员端模块的设计考虑 3.1.1 控制 人工、自动 3.1.2 输入 登录管理 过程: 在旅客信息录入过程中,首先对用户的输入信息进行测试。系统的输入信息为旅客身份证号、姓名、工作单位、旅行时间、出发点、终点、性别,还包括一个飞机票类型选项。输出为录入旅客信息,和确认或出错信息。 在输入的测试数据中可分为有效输入类.无效输入类。 其中的错误种类: 无效输入类 1.数据已经存在 2.始发地和目的地重复 有效输入类 当用户的输入有效旅客信息和旅行信息时,则成功录入信息 修改、删除航班 过程: 无效输入类: 始发地和目的地一样; 有效输入类: 1.删除航班信息,并短信通知已经定了该航班的旅客。 2.始发地和目的地不一样,成功修改信息。 增加航班 过程: 无效输入类: 1.航班信息填写不完整,始发地和目的地一样 有效输入类: 1.填写航班所有信息 按排航班 过程: 首先选择航班,并确定,输出为打印通知单或航班已满。选择打印通知单,如果交付定金,成功打印,否则提示交定金 在输入的测试数据中可分为有效输入类.无效输入类。 其中的错误种类有: 无效输入类: 1.航班已满。 有效输入类: 1.航班未满,安排成功,可以打印通知单。 3.1.3 输出 登录管理 过程: 对在旅客信息界面中输入的各项信息进行初步检验。若发现错误,令 PErrorAppear=T,判断错误类型,并将相应的错误类型PErrorType或PerrorRank 作为参数,转入IErrorHandle过程。若未发现错误,转入安排航班过程。 安排航班 过程: 在订单管理页面对客户的订单进行审核并出票。 ErrorHandle过程: 在PersInfoExam或CheckNoticeExam过程中若发现错误,就转入本过程,执行相应的处理,并输出相应的出错信息。 If (PErrorType==T) 输出“您的个人信息可能输错了位置。请重试。” If (PErrorRank==T) 输出“您的个人信息不适应规定范围。请重试。” 再转入旅客信息输入的界面中。 If (CErrorType==T) 输出“您的帐单信息可能输错了位置。请重试。” If (CErrorRank==T) 输出“您的帐单信息不适应规定范围。请重试。” 再转入帐单和取票通知信息的输入界面。 3.2 测试2 客户端模块 3.2.1 控制 人工 3.2.2 输入 查询国内、国际航班 过程: 无效输入类: 1.航班信息有误,数据库中午数据 有效输入类: 1.填写正确的各项航班信息。 3.2.3 输出 查询国内、国际航班 过程: 将所有信息航班信息显示在列表框中。 CString FlightNum=航班号 CString Origion = 始发地 CString Destination=目的地 Date stime= 旅行时间; CString Budload=额定仓员 int FirstClassLeft 头等舱剩余位置 int FirstClassLeft 经济舱剩余位置 int FirstClassPrice 头等舱票价 int EconomyPrice 经济舱票价 3.3过程 测试准备:在测试前,与各模块的主要负责人共同协商讨论,以概要设计说明书.详细设计说明书作为总的提纲,选择合适的输入输出数据,并加以意义列举说明。 步骤: 在测试过程中,首先需要对各子单元过程进行测试。各子单元过程的测试必须先在程序设计员调试并编译通过后才能进行。在各子单元过程测试完毕后,再对各模块(包括各子单元过程之间的接口)进行测试,处理好各模块之间的接口,最后对系统进行测试和维护。 其操作过程如下: 在系统接受信息模块过程中,先对各子单元过程分别进行测试,然后根据白盒法按照详细设计说明书中的流程图对其进行跟踪测试。 同样,在系统输出信息模块.先对各子单元过程分别进行测试,然后根据白盒法按照详细设计说明书中的流程图对其进行跟踪测试。, 然后,根据各模块之间的各种关系,对其接口进行测试。 在系统测试中,要注意对各种意外情况(列如断电.硬盘损坏等)加以处理,对数据库要注意其安全性.可靠性.健壮性.效率。网络传输更要注意其安全性。 4测试用例 4.1 测试需求 描 述 优 先 级 预置条件 编制时间 用例序号 01 A1.1.1 登录功能 高 无 2013/5/26 输入条件 用户名:admin001 密码:admin001 验证码 02 用户名:admin001 密码:(空) 验证码 03 用户名:admin001 密码:admin001 验证码:(空) 1、输入用户名、密码 2、点击登录 提水“验证码错误” 1、输入用户名、密码 2、点击登录 提示“用户名或密码错误” 操作步骤 1、 输入用户名、密码 2、 点击登录 预期输出 登录成功 备注 4.2 测试需求 描 述 优 先 级 预置条件 编制时间 用例序号 A1.1.2 机票预定功能 高 无 2013/5/26 输入条件 操作步骤 预期输出 备注 01 无 1、点击机票预定按钮 输出预定的航班信息 4.3 测试需求 描 述 优 先 级 预置条件 编制时间 用例序号 01 无 A1.1.3 修改库存票数 中 无 2013/5/26 输入条件 操作步骤 1、 点击修改按钮 2、 填写库存票数 3、 点击完成按钮 预期输出 库存票数修改成功 备注 4.4 测试需求 描 述 优 先 级 预置条件 编制时间 用例序号 01 A1.1.4 添加用户 高 无 2013/5/26 输入条件 姓名:yuyan 密码:1234 密码:1234 性别:NV 电话:8888888 电子邮件:操作步骤 1、 输入信息 2、点击提交 预期输出 个人信息添加成功 备注 amm@126.com 02 姓名:yuyan 密码:1234 密码:1234 性别:NV 电话:8888888 电子邮件:1、 输入信息 2、点击提交 请输入有效的电子邮箱 amm126.com 4.5 测试需求 描 述 优 先 级 预置条件 编制时间 用例序号 01 无 A1.1.5 客户订单管理 高 无 2013/5/26 输入条件 操作步骤 1、点击某个客户订单 2、点击处理按钮 预期输出 客户订单状态改变为“已处理” 备注 4.6 测试需求 描 述 优 先 级 预置条件 编制时间 用例序号 01 A1.1.6 添加航班信息 中 无 2013/5/26 输入条件 航班的各类信息 操作步骤 1、填写航班信息 2、点击提交按钮 预期输出 添加航班成功 备注 5 评价准则 5.1 范围 对所选择的用例的功能可以进行较为全面的测试,其局限性在于未测试的模块与已经测试的模块中间的兼容性问题,是否可以顺利运行。因为所选择的用例较为典型,所以测试范围较大。

因篇幅问题不能全部显示,请点此查看更多更全内容