管理学院 学位论文
论文作者姓名: 申请学位专业: 申请学位类别: 指导教师姓名: 论文提交日期:
黄巾玲
信息管理与信息系统
管理学学士 杨彩霞 2011年5 月12日
民航签派系统的设计与开发
摘 要
民航签派系统的业务规划是航空公司的核心组成部分,其过程受到航班计划、飞机维修计划等多方面的影响,其业务内容最终决定了航班计划是否能够执行,以及飞机状况的反馈与调整。
民航签派系统作为航空公司运行的组织和指挥系统,对航空安全起着非常重要的作用,本课题主要针对民航签派业务中的次日航班计划、航班的取消合并、飞机排班以及乘务组安排内容进行设计,综合考虑签派工作中可能的调度与管理问题,在综合分析的基础上进行民航签派系统的设计与开发研究。
关键词:民航签派系统;计划排班;信息管理
I
Design and Development of Civil Aviation Dispatch System
Abstract
Business planning is the core component of airlines. A lot of factors ,such as flight plan, aircraft maintenance plan will affect the process of business planning. And its content ultimately decides the flight plan to perform, the feedback and adjust of aircraft status.
As the organization and command system of airlines operation, Civil aviation dispatch system plays a very important role for aviation safety. This subject mainly does design works about the flight plan, the cancellation and merger of flights, the aircraft and train crew scheduling for civil aviation dispatch. We took possible scheduling and management problems in the dispatch work into consideration, and did design and development researches on civil aviation dispatch system, on the basis of comprehensive analysis.
Keywords: Civil aviation dispatch system; Planning and scheduling;
Information management
II
目录
论文共25页
摘 要 ............................................................................................................... I Abstract ............................................................................................................II 第一章 绪论 .................................................................................................... 1 1.1民航签派系统中计划与管理相关问题的概述 ..................................... 1 1.2国内外研究现状 .................................................................................... 2 第二章 论文分析 ............................................................................................ 2 2.1 课题目的 ............................................................................................... 2 2.3 本文的主要研究内容 ........................................................................... 2 第三章 民航签派系统的需求分析 ................................................................ 3 3.1系统开发模式的选择 ............................................................................ 3 3.2航空公司的组织结构 ............................................................................ 3 3.2.1职责分工 .............................................................................................. 3 3.2.2业务关系 .............................................................................................. 4 3.2.3民航签派系统操作流程图说明........................................................... 5 3.1民航签派系统基本业务介绍................................................................. 5 3.1.1接受次日航班计划 .............................................................................. 5 3.1.2航班的取消合并 .................................................................................. 6 3.1.3调配航班时,乘务组的安排............................................................... 6 3.1.4确认飞机排班计划 .............................................................................. 6 第四章 数据库的设计 .................................................................................... 7 4.1表结构设计 ............................................................................................ 7 4.2触发器的设计 ...................................................................................... 10 4.3数据库的备份 ...................................................................................... 11 第五章 系统功能的设计与实现 .................................................................. 12 5.1次日航班计划的设计与实现............................................................... 12 5.1.1授受航班计划 .................................................................................... 12 5.1.2修改航班计划 .................................................................................... 13 5.1.3航班计划清单 .................................................................................... 14 5.2航班的取消合并的设计与实现........................................................... 14 5.2.1取消航班的设计与实现..................................................................... 14 5.2.2合并航班的设计与实现..................................................................... 15 5.2.3航班清单 ............................................................................................ 17 5.3调配航班时,乘务组安排的设计与实现 ........................................... 17
5.3.1飞行员的安排 .................................................................................... 17 5.3.2后勤人员的安排 ................................................................................ 18 5.3.3其他服务人员的安排 ........................................................................ 18 5.4确认飞机排班计划的设计与实现....................................................... 19 5.4.1航班信息的选择与确认..................................................................... 19 5.4.2飞机信息的选择与确认..................................................................... 19 5.4.3乘务组信息的选择与确认................................................................. 20 5.5小结 ...................................................................................................... 21 第六章 系统测试 ........................................................................................ 21 6.1 测试方法 ............................................................................................. 21 6.1.1 界面测试 ........................................................................................... 21 6.2.2 功能测试 ........................................................................................... 22 结论 ............................................................................................................ 23 参考文献 .................................................................................................... 24 致谢 ............................................................................................................ 25
第一章 绪论
1.1民航签派系统中计划与管理相关问题的概述
航空公司的经营状况和在市场上的竞争能力不仅取决于该公司的规模和硬件条件,而且在很大程度上取决于公司的生产运营效率。航空公司的运营效率则是由公司的航班计划,机队维修计划,销售计划等各种生产计划的制定和实施情况决定的。其中航班计划可分为以下5个步骤:
(1)市场分析和预测
通过市场分析,在给定航线的基础上,航空公司能够预测一段时期内每一条航线旅客需求分布,若有充分的数据支持,则还应该预测出一天不同时刻每个航班旅客人数的分布情况[1]。
(2)航班频率和时刻的确定
在获取各个航线旅客需求以后,航空公司可以根据旅客需求状况和公司状况,确定每条航线的航班频率,进一步地,结合机场时刻资源、民航总局政策等众多因素,编制出航班时刻表。
(3)机型指派
机型指派问题(Fleet Assignment Problem:FAP)是指根据不同机型具有不同的舱位数量、运行成本和潜在收益,指派不同的飞机类型给定其符合条件的航班。
机型指派也称为机队指派,是以航班时刻表为依据,在满足航班衔接的约束下,为每一个航班确定唯一的飞机机型(并未指定具体的某一架飞机) ,从而使得航班运营成本尽可能做到最小。
(4)飞机排班
飞机排班包括飞机路线问题和飞机排班问题,其实质就是在航空公司解决了机型指派问题以后,必须为每一个航班(路线)指定一架具体执行的飞机,确立一条飞行路线,为每个航班分配唯一的一个机尾号。飞机排班主要是为了使每架飞机能够满足规定的维护维修需要,同时能够使得运营和维护成本尽可能地减小,并且保持机队的使用率在较高的水平。
(5)机组排班
机组排班是指航空公司根据每个航班的机型属性,为每个航班指派相应的飞行人员,乘务员等机组人员。
1
1.2国内外研究现状
有关航班计划的研究工作,国外很早就开始了。早在 20 世纪中叶运筹学专家就对如何获得优化的航班时刻进行了研究。Etshmaier和Mathaisel总结了20世纪60年代至80年代中期国外学者对于航班计划研究工作,并指出航空公司所有部门都参与的结构化,航班计划过程是设计航班时刻的最好方法。这种结构化方法包含航班计划建立和航班计划评估两个相互依赖的循环阶段, 就是不断地建立和评估航班计划直至最终生成满足内部和外部因素的制约并且令人满意的航班计划,这种方法得到了国际上大多数学者的认可,也是众多航空公司所采用的方法[2]。
随着国内航空运输极速发展,航空公司机队规模日益庞大,导致航班数量大增,这就使得航班计划的工作量也越来越大。例如2006 年8月我国最大的地方航空公司海南航空股份有限公司总共执行了14779 个定期航班,平均每天执行477 个航班。对于一个有 50 架飞机 300 个日航班量的航空公司,航班计划的编制工作需要3个航班计划员花费3 个月的时间来完成。然而通过实地调研获悉,目前国内航空公司大多都没有使用航班计划决策支持系统,在拥有国外先进系统的两家大型航空公司中,他们均利用系统进行飞机排班以及航班变更和维护工作,然而航班的编排依然主要还是用手工,凭经验进行的,这需要航班计划员花费巨大的精力来完成。随着民航经济性管理政策的放开,航空公司规模进一步增大,如何对航班计划进行系统地优化,高效地编制定期航班计划将是国内各航空公司急切需要解决的问题。
第二章 论文分析
2.1 课题目的
飞行签派是民航运行控制的核心。运行控制是指合格证持有人使用用于飞行动态控制的系统和程序,对某次飞行的起始、持续和终止行使控制权的过程。
基本职责包括:1、与机长共同负责飞行前的准备,飞行计划的制定,航班的延误,航班的签派放行。2、单独负责对航班起飞进程的全部动态监控,掌握、发布涉及航班安全的信息,航班放行的取消和变更。当然,这些职责都是围绕飞行安全和提高效率这两个中心来进行。
2.3 本文的主要研究内容
本文的主要研究内容有以下两个方面:
2
(1) 航班计划与安排,在已知市场需求的情况下,运用旅客延误最小化的思想,兼顾公司利润和社会效益,优化定期航班的频率和时刻。
(2) 管理与调度
在得到航班计划表的基础上,建立机型指派,机组人员指派、服务人员指派等。
第三章 民航签派系统的需求分析
3.1系统开发模式的选择
B/S结构(Browser/Server结构)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层体系结构。大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量。以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,实现不同的人员,从不同的地点,以不同的接入方式,访问和操作共同的数据库,有效地保护数据平台和管理访问权限,服务器数据库也很安全[3]。
B/S结构的优点
(1)具有分布性特点,可以随时随地进行查询、浏览等业务处理。 (2)业务扩展简单方便,通过增加网页即可增加服务器功能。 (3)维护简单方便,只需要改变网页,即可实现所有用户的同步更新。 (4)开发简单,共享性强。
3.2航空公司的组织结构
3.2.1职责分工
我国航空公司一般采用由市场部、飞行部、机务工程部、客舱服务部、运输部、运行控制中心(AOC)等部门组成的结构。
各部门的一般职责简述如下:
市场部:负责本公司的市场销售,了解市场规范,参与市场竞争,制定适应市场的计划和公司目标,对成本利润进行预测。例如,制定公司的中长期航班计划;控制航班的座位投放;确定每个航班的舱位及票价等。
飞行部:负责公司飞行和运行的全面管理及各单位之间的协调。例如,负责对飞
3
行人员的日常训练、考核、管理;负责飞行机组的排班。
机务工程部:负责公司维修与工程系统,确保公司飞机处于适航状态,保证飞机的运行安全,处理公司维修与工程系统、机务维修的日常行政业务工作,解决维修与工程系统的重大技术问题。例如,负责航空器的维护、维修;负责航线维护支持;负责飞机排班等。
客舱服务部:负责空乘人员的日常管理、空乘人员的排班、飞机在基地的客舱清洁服务等。
运输部:负责旅客候机服务。
运行控制中心:是航空公司航班运输生产的控制中心、信息中心、协调中心,负责当日航班运输生产的组织管理、航班信息的发布、当日航班运输生产中的协调等工作,其核心工作是飞行签派[4]。
3.2.2业务关系
飞行签派工作与市场部的联系:接受次日航班计划,航班的取消合并。 飞行签派工作与飞行部的联系:机组排班的确认,调配航班时安排机组。 飞行签派工作与机务工程部的联系:确认飞机排班计划,有故障保留项目的航班放行,调配航班时的飞行计划。
飞行签派工作与客舱服务部的联系:确认空乘人员排班,调配航班时乘务组的安排,飞机过站时的客舱作业协调。
飞行签派工作与运输部的联系:航班不正常情况下的信息发布。
飞行签派工作与运行控制中心的联系:AOC是运行控制的核心,负责飞行前的准备,航班签派放行,飞行跟踪与动态监控,非正常情况下航班的调配等[5]。
4
3.2.3民航签派系统操作流程图说明
排班计划 是 是否执行 否 航班的取消 乘务组的安排 是 否 接受次日航班计划 取消此次航班 确认排班计划 合并航班 乘务组的安排 确认排班计划 图1 民航签派系统操作流程图
3.1民航签派系统基本业务介绍
3.1.1接受次日航班计划
航班详细信息的查找和更改。用于查找某个航班,能显示航班的各个属性,并提供对某些属性的更新操作。
主要实现次日的航班信息的显示和更新。在对航班计划进行了调整后,需要利用此模块对次日的各个航班的细节信息进行检查,对于某些特殊情况,也许利用此模块对航班的某项进行修改和更新,如临时更换机型,调整起飞和降落时间等。
5
3.1.2航班的取消合并
排班过程中,在通过用航班调整模块对航班计划进行了调整后,需要利用此模块对每天的各个航班的细节信息进行检查,对于某些特殊情况,进行航班的取消与合并。
3.1.3调配航班时,乘务组的安排
以报表形式按机型分页显示一周排班结果,对于设置了所在地的飞机,其某天的可选航班以列表的形式显示,能轻松选择某个航班安排给某架飞机,同时,利用此模块对航班的某项内容进行修改和更新,如临时更换机型,调整乘务组人员等。
3.1.4确认飞机排班计划
根据市场部下达的最新的调整表,通过对以上航班信息的编排,对航班计划进行审核与确认,所以,此模块通常是排班人员进行排班的最后一站。
6
第四章 数据库的设计
4.1表结构设计
航班时刻表 航班计划表 PK 航班号 航班信息 飞行时间 PK1,FK1 PK2,FK2 日期时间 航班号 起飞站 降落站 起飞时间 飞行时间 经停站 乘务号 机号 飞机基础表 飞机计划表 PK 机号 机型 乘坐人数 PK,FK1 PK2 机号 日期 机型 所在地 期限飞行时间 实际飞行时间 已选航班 可起飞时间 状态 图2 数据库表主要结构设计图
图2中列出了数据库各表的详细内容及其关联,下面将针对其细节进行说明。 “航班时刻表”存储了所有航班信息,包括“航班号”、“航班信息”和“飞行时间”,其中“航班号”为主键。
“航站信息表”存储了所有航站信息,包括“航站”和“(是/否)高原”等,其中“航站”为主键。
“航班计划表”存储了每天需要执行的航班的详细信息,包括基本航班信息以及
7
“状态(是否已被安排)”和执行该飞机的机号。其中“日期”和“航班号”为主键,字段“航班号”为外键,对应“航班时刻表”,字段“机号”和“日期”为组合外键,对应“飞机计划表”。此表还通过查询“航站信息表”因为通过“航班号”与“航班时刻表”相连。因此,每插入或者修改一个航班,都需要查询“航班时刻表”,更新航班“飞行时间”字段,设置update和insert触发器“Update”实现此功能。
图3 航班计划表E-R图
航班号 日期 机型 经停站 起飞站 航班计划表 状态 起飞时间 抵达时间 抵达站
“季度航班计划表”存储了一个较长时间的航班计划,旨在为以后每周提供一个初始的航班计划,减少人工的输入。包括航班号,航班信息,航班的起始时间,航班的结束时间等基础航班信息,其中标记了PK的航班号和航班信息为主键。此表与航班计划表相关联,每添加一条长期的航班计划,对应的在航班的起始时间与结束时间之间的多条日航班计划,因此对该表设置了insert触发器“UpdateFlightSheme”:每插入一条记录,往“航班计划表”插入若干条记录,日期起止分别为列“开始时间”与“结束时间”,其他各项相同。
“飞机基础表”记录了所有的飞机(“机号”)及其机型,其中“机号”为主键。如果在此表中添加或删除一条记录,则应在有效期内取消或添加该飞机执行航班的权利。因此设置了insert触发器UpdateCraitSheme,往“飞机计划表”添加多条记录(有效期内每天一条)。
“飞机计划表”存储了每天飞机的详细信息,除了飞机“所在地”,“状态”等基础信息以外,还包括了该日已选择的航班(号),已选航班的空中飞行小时数。其中,“日期”和“机号”为主键。因为飞机当天的最后一个航班的降落航站,决定了第二天飞机初始的起飞航站(所在地),因此设置了update触发器UpdateCraftLoeation,每次更改所在地后,查找第二天该飞机的记录,并更改其所在地。以下是主要表的结构设计内容:
航班计划表(flight_plan) 日期 flight_ontime 8 PK datatime
航班号 机型 起飞航站 降落航站 起飞时间 飞行时间 高原 经停航站 状态 飞机号 flight_ID plane_type onfly_station offfly_station onfly_time flying_time is_highland part_station state plane_id PK FK VarChar(50) VarChar(50) VarChar(50) VarChar(50) datatime VarChar(50) VarChar(2) VarChar(50) Char(2) VarChar(50) 季度航班计划表(flight_months_plan) 航班号 航班信息 星期几 机型 开始时间 结束时间 起飞时间 降落时间 起飞航站 降落航站 经停航站 飞机计划表(plane_plan) 机号 日期 机型 所在地 限飞地点 期望飞行时间 实际飞行时间 已选航班 可起飞时间 状态 次日航班表(nextday_flight) 航班号 日期 状态 合并至班次 flight_ID PK VarChar(50) flight_ontime PK datatime state 正点(1默认值)取消(0)合并(-1) merge_ f_ID 默认值(1) VarChar(50) plane_id flight_ontime plane_type plane_sotp_station limite_flying_station average_flying_time actually_flying_time flight_ID_selected onfly_time state PK PK 是否可用 VarChar(50) datatime VarChar(50) VarChar(50) VarChar(50) VarChar(50) VarChar(50) VarChar(50) datatime Char(2) flight_ID flight_infor weekday_num plane_type plan_start_time plan_stop_time onfly_time offfly_time onfly_station offfly_station part_station PK VarChar(50) VarChar(50) VarChar(50) VarChar(50) datatime datatime datatime datatime VarChar(50) VarChar(50) VarChar(50) 飞机排班表(plane_flight_arrange) 9
航班号 飞机号 执行日期 乘务ID 乘务表(server) 乘务ID 机组ID 后勤组ID 服务组ID flight_ID plane_id flight_ontime servicer_id PK FK VarChar(50) VarChar(50) datatime VarChar(50) servicer_id flyer_group_id backservices_group_id stewardess_group_id PK FK FK FK VarChar(50) VarChar(50) VarChar(50) VarChar(50) 4.2触发器的设计
触发器可用于强制引用完整性,以便在多个表中添加、更新或删除行时,保留在这些表之间所定义的关系。“季度航班计划表”存储了一个较长时间的航班计划,其中标记了PK的航班号和航班信息为主键。此表与航班计划表相关联,每添加一条长期的航班计划,对应的在航班的起始时间与结束时间之间的多条日航班计划,因此对该表设置了insert触发器“UpdateFlightSheme”:每插入一条记录,往“航班计划表”插入一条记录,日期起止分别为列“开始时间”与“结束时间”,其他各项相同,触发器定义语句如下:
CREATE TRIGGER UpdateFlightSheme ON flight_plan
FOR INSERT, UPDATE AS
DECLARE @flight_ID VarChar(50), @flying_ontime VarChar(50), @onfly_time VarChar(50), @offfly_time VarChar(50), @onfly_station VarChar(50),
@offfly_station VarChar(50), @part_station VarChar(50), @state VarChar(50), SELECT @ flight_ID = flight_ID,
@ flying_ontime = flying_ontime l, @ onfly_time = onfly_time, @ offfly_time = offfly_time,
@onfly_station=onfly_station, @offfly_station=offfly_station, @part_station=part_station, @state=state
FROM flight_months_plan where flight_ID not in (select distinct flight_ID from flight_plan)
10
BEGIN
Insert into flight_plan(flight_ID, flying_ontime, onfly_time,
offfly_time,onfly_station,offfly_station,part_station,state)values(@flight_ID, @flying_ontime, @onfly_time,
@offfly_time,@onfly_station,@offfly_station,@part_station,@state) END
4.3数据库的备份
随着民航业务数据业务量的发展壮大,公司对信息系统的依赖性越来越高,数据库作为信息系统的核心,起着非常重要的作用。一旦数据库服务器发生意外停机或数据丢失,其损失会十分惨重的。为此数据库管理员应针对具体的业务要求制定详细的数据库备份与灾难恢复策略,并通过模拟故障对每种可能的情况进行严格测试,只有这样才能保证数据的高可用性。下面主要介绍一下本系统数据库备份操作详情:
(1)完整备份执行代码:
EXECUTE master.dbo.xp_create_subdir N'C:\\Program Files\\Microsoft SQL Server\\MSSQL.1\\MSSQL\\Backup\\caac_order' GO
BACKUP DATABASE [caac_order] TO DISK = N'C:\\Program Files\\Microsoft SQL Server\\MSSQL.1\\MSSQL\\Backup\\caac_order\\caac_order_backup_201104141317.bak' WITH NOFORMAT, NOINIT, NAME = N'caac_order_backup_20110414131713', SKIP, REWIND, NOUNLOAD, STATS = 10 (2)日志文件备份执行代码:
EXECUTE master.dbo.xp_create_subdir N'C:\\Program Files\\Microsoft SQL Server\\MSSQL.1\\MSSQL\\Backup\\caac_order' GO
BACKUP LOG [caac_order] TO DISK = N'C:\\Program Files\\Microsoft SQL Server\\MSSQL.1\\MSSQL\\Backup\\caac_order\\caac_order_backup_201104141324.trn'
11
WITH NOFORMAT, NOINIT, NAME = N'caac_order_backup_20110414132429', SKIP, REWIND, NOUNLOAD, STATS = 10
第五章 系统功能的设计与实现
5.1次日航班计划的设计与实现
5.1.1授受航班计划
本功能是对次日的航班计划进行确认。以航空公司长期航班计划中次日的班期为依据,适时的进行一些调整,最后接受次日的航班计划。如下图所示:
首先,系统从数据库当中读出航空公司长期的班期计划,并且选出对应次日班期的所有航班,显示出来,对应的关键代码如下:
DB db = new DB(); string Nweek=\"\"; DataTable dt = null;
Nweek=getweek(System.DateTime.Now.AddDays(1).DayOfWeek.ToString()); string SQL= \"select* from flight_months_plan where weekday_num='\"+Nweek+\"'\"; dt = db.GetDatatable(SQL);
如果要增开航班的话,可以点击插入航班按钮。插入航班按钮的功能是针对出现
12
临时情况需要增开新的班机的情况所设计的。
点击插入航班出现以下界面:
输入对应的信息,点击确认,该新增的航班就增加到次日的航班计划表里面去了。关键代码如下:
string SQL = \"insert into nextday_flight values('\" + flight_ontime + \"','\" + flight_ID + \"','\" + plane_type + \"','\" + onfly_station + \"','\" + offfly_station + \"','\" + onfly_time + \"','\" + offfly_time + \"','no','\" + part_station + \"','待定','1')\";
if (db.ExcuteSql(SQL))
{Response.Write(\"\");} else
{ Response.Write(\"\");}
5.1.2修改航班计划
修改航班计划是根据上一节所说的接受航班计划的基础上进行一些修改,例如,航班计划管理员发现某一趟航班的信息有误,需要改正这趟航班的信息或者删除该航班,这时,就需要用到该功能对次日航班计划进行操作。
点击删除按钮,就可以将某趟航班删除,关键代码如下: runat=\"server\" CausesValidation=\"False\" CommandName=\"Delete\" Text=\"删除\" OnClientClick=\"return confirm('您确认删除该记录吗?');\">
13 DeleteCommand=\"DELETE FROM [nextday_flight] WHERE [flight_ID] = @flight_ID AND [flight_ontime] = @flight_ontime\" 5.1.3航班计划清单 航班计划清单是对前两个功能进行操作之后形成的航班计划报表,对次日航班的确认,若发现该清单中还有异常的航班信息,仍可以返回前面两个功能进行操作。航班计划清单如下图所示: 5.2航班的取消合并的设计与实现 航班的取消与合并是对当天客机运行发生的突发情况作出临时的调整,例如飞机起飞前遭遇大雾天气不能正常起飞,或者客机出了故障需要维修等等,有很多情况迫使航班不得不取消或者合并至别的班次,下面是功能的实现。 5.2.1取消航班的设计与实现 如果出现上面所说的突发情况,航班管理员需要对某些航班进行取消,以免不良后果的出现。航班取消的界面如下: 14 首先系统会列出当天所有航班班次的状态信息表,对每一趟航班都可以进行航班的取消或者恢复的操作,如果本班次已经处于已取消状态(该状态从数据库中的state字段读出),则取消的按钮将不可用,反之,若处于正点起飞状态则恢复按钮不可用,关键代码如下: try { Sql = \"update flight_plane set state=0 where flight_ID='\" + fID + \"'\"; if(db.ExcuteSql(Sql)) { Response.Write(\"\"); } else Response.Write(\"\"); } catch(Exception ex) { string exMessage = ex.Message; Response.Write(\"\"); } 5.2.2合并航班的设计与实现 航班的取消是迫不得已的,但是如果有不就措施的话,航空公司将尽量考虑到乘客的利益,航班的合并就是一个不错的选择,将一个不能起飞班次的乘客合并到另外一趟班机上去,给乘客带来方便,让损失降到最低。 航班合并的功能界面如下所示: 15 航班处于正点起飞的状态时(从数据库中state字段读出),可以进行合并操作,当处于已合并或者已取消状态时,不能进行合并操作。合并的关键代码如下: protected void Bmerge_Click(object sender, EventArgs e) { string SQL = \"update flight_plane set state=-1 ,mergef_ID='\" + mergeflight.Text + \"' where flight_ID='\" + flight_ID.Text + \"'\"; if (db.ExcuteSql(SQL)) Response.Write(\"\"); else Response.Write(\"\"); } 当点击合并链接时,将出现如下页面: 填写合并到那一趟班次,点击确认即将改航班合并到目的航班去。关键代码如下: string SQL = \"update flight_plane set state=-1 ,mergef_ID='\" + mergeflight.Text + \"' where flight_ID='\" + flight_ID.Text + \"'\"; if (db.ExcuteSql(SQL)) Response.Write(\"\"); else Response.Write(\"\"); 当点击还原链接时,即可将已合并的航班还原到合并前的状态: Sql = \"update flight_plane set state=1 where flight_ID='\" + fID + \"'\"; 5.2.3航班清单 列出当天所有航班的状态: 5.3调配航班时,乘务组安排的设计与实现 乘务组关系到一趟航班的旅客出行体验,在航班计划确定之后,在班机起飞之前,必须做好乘务组的安排。 5.3.1飞行员的安排 系统首先在数据库中检索出当前状态为空闲的飞行员组,供系统管理员选择。如下图所示: 关键代码如下: str_sql_flyer = \"select distinct flyer_group_id from flyer_memberandgroup where state='1'\"; dt1 = DB1.GetDatatable(str_sql_flyer); ddl_flyer.DataSource = dt1.DefaultView; ddl_flyer.DataTextField = \"flyer_group_id\"; ddl_flyer.DataValueField = \"flyer_group_id\"; ddl_flyer.DataBind(); 17 5.3.2后勤人员的安排 系统在数据库中检索出系统当前状态为空闲的后勤人员组,供系统选择,关键代码如下: str_sql_backserver = \"select distinct backservices_group_id from backservices_memberandgroup where state='1'\"; dt2 = DB1.GetDatatable(str_sql_backserver); ddl_back.DataSource = dt2.DefaultView; ddl_back.DataTextField = \"backservices_group_id\"; ddl_back.DataValueField = \"backservices_group_id\"; ddl_back.DataBind(); 5.3.3其他服务人员的安排 系统在数据库中检索出系统当前状态为空闲的服务人员组,供系统选择,关键代码如下: str_sql_stewardess = \"select distinct stewardess_group_id from stewardess_memberandgroup where state='1'\"; dt3 = DB1.GetDatatable(str_sql_stewardess); ddl_swed.DataSource = dt3.DefaultView; ddl_swed.DataTextField = \"stewardess_group_id\"; ddl_swed.DataValueField = \"stewardess_group_id\"; ddl_swed.DataBind(); 点击查询即出现空闲组的信息,将这些空闲的组编制成为一个乘务组,并且设定一个乘务ID号,(提交编号之前检查乘务ID是否可用),点击提交即完成了乘务组的安排。 18 string str_sql = \"insert into server values('\" + this.tb_id.Text.ToString() + \"','\" + str_fgroup + \"','\" + str_bgruop + \"','\" + str_sgroup + \"','1')\"; 5.4确认飞机排班计划的设计与实现 当航班计划已经确定,乘务组已经编排完毕之后,就需要对每趟航班配备客机和乘务组,确定飞机排班计划。 5.4.1航班信息的选择与确认 系统在数据库中检索出已经存在的航班信息,加载到页面当中,如图所示: 关键代码如下: str_sql_flight = \"select distinct flight_ID from nextday_flight where state='1' and flight_ID not in(select distinct flight_ID from plane_flight_arrange)\"; dt1 = DB1.GetDatatable(str_sql_flight); ddl_flight.DataSource = dt1.DefaultView; ddl_flight.DataTextField = \"flight_ID\"; ddl_flight.DataValueField = \"flight_ID\"; ddl_flight.DataBind(); 5.4.2飞机信息的选择与确认 系统在数据库中检索出当前空闲状态并且可用的飞机的ID号,加载到页面当中。关键代码如下: str_sql_plane = \"select distinct plane_id from plane where plane_id not in( select distinct plane_id from plane_flight_arrange)and state='1'\"; dt2 = DB1.GetDatatable(str_sql_plane); ddl_plane.DataSource = dt2.DefaultView; ddl_plane.DataTextField = \"plane_id\"; ddl_plane.DataValueField = \"plane_id\"; ddl_plane.DataBind(); 19 5.4.3乘务组信息的选择与确认 系统在数据库中检索出当前空闲状态的乘务组ID号,加载到页面当中。关键代码如下: str_sql_server = \"select distinct servicer_id from server where state='1' and servicer_id not in(select distinct servicer_id from plane_flight_arrange)\"; dt3 = DB1.GetDatatable(str_sql_server); ddl_server.DataSource = dt3.DefaultView; ddl_server.DataTextField = \"servicer_id\"; ddl_server.DataValueField = \"servicer_id\"; ddl_server.DataBind(); 检索完毕之后,点击查询,就会出现相应的信息,如下图所示: 出现这些信息之后,点击提交就确定这个排班计划,并且出现已经排好的飞机排版计划表: 关键代码如下: 显示当前编辑的飞机排版记录: string flyer_detail = \"飞行员详情:\"; for (int i = 0; i < dt11.Rows.Count; i++) { flyer_detail = flyer_detail + dt11.Rows[i][0].ToString() + \",\" + dt11.Rows[i][1].ToString() + \"; } lb_message.Items.Add(flyer_detail); lb_message.Items.Add(\"..............................\"); 20 dt21=DB1.GetDatatable(\"select backservices_name from backservices_memberandgroup where backservices_group_id='\" + backservice_group_id + \"'\"); 5.5小结 航班的管理操作在航空公司中起着至关重要的作用,它关乎着航班是否能够有条不紊的进行,也关系着旅客们的出行体验。以上的功能可以对航班计划进行较好的管理,包括提前计划和处理临时情况,很好的支持了航空公司的工作。 第六章 系统测试 随着web应用的增多,新的模式解决方案中以web为核心的应用也越来越多,很多公司各种应用的架构都以B/S及web应用为主,但是有关WEB测试方面的内容并没有相应的总结,因此,在开发成绩查询系统时,对web应用程序的测试方法和采用的测试技术进行总结。测试方法尽量涵盖web程序的各个方面,测试技术方面在继承传统测试技术的技术上结合web应用的特点[6]。 6.1 测试方法 6.1.1 界面测试 很多人认为这是测试中最不重要的部分,但是恰恰相反界面测试是相当重要的。主要包括以下几个方面的内容: (1)站点地图和导航条位置、是否合理、是否可以导航等内容布局布局是否合理,是否正确背景/色调是否正确、美观,是否符合用户需求; (2)页面在窗口中的显示是否正确、美观(在调整浏览器窗口大小时,屏幕刷新是否正确)表单样式大小,格式,是否对提交数据进行验证(如果在页面部分进行验证的话)等连接连接的形式,位置,是否易于理解等。 (3)页面元素的容错性列表、页面元素清单、页面元素的容错性是否存在、页面元素的容错性是否正确、页面元素基本功能是否实现、页面元素的外形、页面元素是否显示正确。注:页面元素清单(为实现功能,是否将所需要的元素全部都列出来了,如按钮、单选框、复选框、列表框、超连接、输入框等等) (4)测试技术方面,结合兼容性测试对不用分辨率下页面显示效果,如果有影响 21 则提出解决方案。可以结合数据定义文档查看表单项的内容,长度等信息。界面测试要素: 符合标准和规范,灵活性,正确性,直观性,舒适性,实用性,一致性[7]。 6.2.2 功能测试 对功能测试是测试中的重点,主要包括一下几个方面的内容: 白盒测试技术(White Box Testing) 深入到代码一级的测试,使用这种技术发现问题最早,效果也是最好的。该技术主要的特征是测试对象进入了代码内部,根据开发人员对代码和对程序的熟悉程度,对有需要的部分进行在软件编码阶段,开发人员根据自己对代码的理解和接触所进行的软件测试叫做白盒测试[8]。 黑盒测试技术(Black Box Testing)黑盒测试的内容主要有以下几个方面,但是主要还是功能部分。主要是覆盖全部的功能,可以结合兼容,性能测试等方面进行,根据软件需求,设计文档,模拟客户场景随系统进行实际的测试,这种测试技术是使用最多的测试技术,涵盖了测试的方方面面,主要包括以下几点:正确性 (Correctness)、可用性 (Usability)、边界条件 (Boundary Condition)、性能 (Performance) 压力测试 (Stress), 多用户情况下,可以考虑使用压力测试工具,建议将压力和性能测试结合起来进行,如果有负载平衡的话还要在服务器端打开监测工具,查看服务器CPU使用率,内存占用情况,如果有必要可以模拟大量数据输入,对硬盘的影响等等信息。压力测试针对的是某几项功能,如:错误恢复 (Error Recovery) 错误处理,页面数据验证,包括突然间断电,输入脏数据等;安全性测试(Security)这个领域正在研究中,不过防火墙,补丁包.杀毒软件等的就不必说了,不过可以考虑破坏性测试时任意;兼容性 (Compatibility) 不同浏览器,不同应用程序版本在实现功能时的表现,不同的上网方式,有可能不同[9]。 22 结论 本系统实现了航空公司在飞机签派过程中的四块常用功能,可以对飞机航班的计划进行一系列操作,例如为次日的航班制定计划,对当天的航班进行取消或合并操作;可以对飞机航班上的乘务组进行一些调配,例如调配飞行员组,后勤组等;可以对飞机的排版计划进行管理,例如为航班配备飞机,乘务组等;当然,系统可能会存在一定的问题,功能有待加强,在日后的工作研究中将进一步完善。 23 参考文献 [1]胡凯,张怡.计算机挑战“巨大挑战问题”.计算机世界,2000. [2]黄建军,甘仞初.管理信息系统数据资源配置的研究与应用,北京理工大学学报,1999年8月第4期. [3]廖赤球,廖启亮.MIS中的对象模型转换技术及其应用,华南理工大学学报(自然科学版),1999年3月第5期. [4]罗伟其,徐宝民,刘永清.关于管理信息系统的综合集成研究问题,控制理论与应用[J],2000年2月第l期. [5]徐恭学,刘英义.一种MIS开发的实用化方法[J].天津理工学院学报,1999年4月第4期. [6]汤子滚,哲风屏.计算机操作系统[J],西安电子大出版社,1996年. [7]李增智,陈妍.计算机网络原理(第二版),西安交大出版社,2002年. [8]姜丽.多 Agent 协商研究[J].长春:吉林大学博士学位论文,2007. [9]肖正,吴承荣,张世永.多 Agent 系统合作与协调机制研究综述[J]. 计算机科学,2007,34 (15):139-142. [10]Andrew shenbm,计算机网络,清华大学出版社,1999年2月第三版. [11]薛惠锋等著,系统工程前沿论丛,西北工业大学出版社,2004. [12]胡道元著,计算机局域网,清华大学出版社. [13]郭波等编著,系统可靠性分析,国防科技大学出版社,2002. [14]都业富.实用航班计划优化方法[J]系统工程理论与实践,1995,15(2):23. [15]黄小荣.航班收益分析与最佳航班安排中国民航学院学报,2001 (6):19-22. [16]张有恒,刘昭荣.航空公司飞航营运排班多目标规划模式之研究[J]. 运输计划季刊,1996,25(4):625-664. [17]艾志玮,金其杰,肖丽等.并行应用程序的远程实时跟踪可视化系统的设计及实现[J].计算机研究与发展,2004. [18]刘何军.多线程处理器资源分配策略[J].计算机工程,2008,34(15):283-285. [19]邵飞.贸易地图生成软件并行处理方案的研究与实现[J].计算机科学,2008. [20] 王汝传,徐小龙,黄海平.智能 Agent及其在信息网络中的应用[M].北京:北京邮电大学出版社,2006:45-60. [18]刑文训,谢金星.现代优化计算方法[M].北京:清华大学出版社,1999. [21]Dobson G Lederer P J.Airline Scheduling and Routing in aHub-and-spoke System[J].Transportation Science,1993,27(3):281. [22]Dennis F‘Mathaisel X.Decision Support for Airline SchedulePlanning[J].Journal Combinatorial Optimization 1,1997,l(3):25. [23]WANG Yue, TAO Ran, LI BingZhao.Using the Multi-living Agent Concept to Investigate Complex Information Systems[J].Science in China SeriesF: Information Science, 2008:1-16. [24]Rineke Verbrugge, Barbara Dunin-K¸eplicz.Formal approaches to multi-agent sysems[J].Auton Agent Multi-Agent Syst, 2008:13. [25]Rajeev Agrawal, S.K.Shukla, S.Kumar, M.K.Tiwari.Multi-agent system for distributed computer-aided process planning problem in e-manufacturing environment[J].Int J Adv Manuf Technol, 2008, 11(6):3-14. 24 致谢 本文是在老师和民航系统签派人员的热情关心和指导下完成的,他们渊博的知识和严谨的治学作风使我受益匪浅,对顺利完成本课题起到了极大的作用。在此向他表示我最衷心的感谢!在论文完成过程中,本人还得到了同学们的热心帮助,本人向他们表示深深的谢意!最后向在百忙之中评审本文的各位专家、老师表示衷心的感谢! 25 因篇幅问题不能全部显示,请点此查看更多更全内容