已阅读5页,还剩48页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 I 摘 要 近些年来,我国民航事业取得了飞速的发展,与此同时计算机软件技术、数 据库技术、信息技术也取得到了长足的发展与广泛的应用。技术的进步一方面提 高了机场信息化的要求、另外一方面也使得企业信息化的环境日益复杂。 本次我的软件工程作业就是应对于机场信息化要求,探讨了在机场复杂的信 息化环境下的航班信息管理系统的方法与过程。一个机场的航班信息,就是这个 机场运营的所有航班的实时信息,包括值机信息、登机信息、到港信息、离港信 息、行李转盘信息等等,它们为旅客登机转机、亲友接机和各类人员工作提供了 必不可少的服务。而我设计的机场航班管理系统就是用于管理机场航班信息的。 一个好的航班管理系统必须能够合理的规划航班信息,为高效有序地管理组 织机场的生产与服务,有效提高机场的运营效率及服务质量,提高机场的赢利与竞 争水平,以保证为旅客、航空公司以及机场自身的业务管理提供一致、及时、准 确、系统、完整的信息服务功能。 关键词:航班 信息 管理 软件工程 II ABSTRACT ABSTRACT In recent years, Chinas civil aviation industry has achieved rapid development, at the same time the computer software technology, database technology, information technology has obtained great development and wide application of. Technology has improved the airport information requirements, on the other hand also makes enterprise informatization environment. This time my software engineering work is should to airport information, discusses the complex information environment in airport flight information management system the method and process of. An airport flight information, is the airport operator of the all flight real-time information, including check-in information, flight information, to Hong Kong, Hong Kong information, information from the baggage carousel information and so on, they are for passenger boarding machine, and machine and all kinds of personnel work provides essential services. I design the airport flight management system is used to manage the airport flight information. A good flight management system must be able to reasonable planning flight information, for the efficient and orderly management of Organization Airport production and service, effectively improve the airport operation efficiency and service quality, enhance the airports profitability and competitive level, to ensure that the passenger, airline and airport of its business management to provide a consistent, accurate, timely, system, complete information service function. Keywords: Flights information management software engineering 目录i 目目 录录 摘摘 要要.I ABSTRACT.II 前前 言言.1 第一章第一章可行性分析可行性分析.3 1.1构架分析.4 1.2动态模型分析.4 第二章第二章概要设计概要设计.7 2.1逻辑设计.7 2.2数据流程设计.7 第三章第三章详细设计详细设计.8 3.1数据库设计.9 3.2前台管理子系统.12 3.3后台管理子系统.15 第四章第四章编码设计编码设计.17 1.1C#程序语言设计 .17 4.1C/S 构架和 ACCESS 数据库.18 4.1.1C/S 构架.18 4.1.2Access 数据库.19 4.2编码风格和软件效率.22 第五章第五章测试测试.27 5.1软件测试方法.27 5.2测试用例.28 第六章第六章运行维护运行维护.31 6.1系统维护的定义.31 6.2维护工作中常见的问题.31 总结与展望总结与展望.33 致致 谢谢.35 参考文献参考文献.37 ii目录 附录附录 A 程序代码程序代码.39 前言1 前言 近年来随着人们生活水平的提高,出外旅行的人越来越多,而飞机以其舒适、 便捷的优点开始成为越来越多旅客的选择。随着乘机人员的越来越多,一个好的 机场信息管理系统变得越来越重要。 航班管理系统是一个数据库应用系统,航班中的所有信息都是保存在数据库 中。在数据库应用系统的开发过程中,数据库设计是一个非常重要的问题。数据 库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响,好的数据 库结构设计会减少数据库的存储量,数据的完整性和一致性比较高,系统具有较 快的响应速度,简化基于此数据库的应用程序的实现等等。 本文将介绍的是我设计的一种机场航班信息管理系统,可以为高效有序地管 理组织机场的生产与服务,有效提高机场的运营效率及服务质量,提高机场的赢利 与竞争水平,以保证为旅客、航空公司以及机场自身的业务管理提供一致、及时、 准确、系统、完整的信息服务功能。 2飞机订票管理系统 第一章 可行性分析3 第一章可行性分析 对于飞机航班管理,航空公司里可能有很多飞行班次。简单的书面管理无法 满足对客户的服务需求和自身的高效运作。该系统实现后可对航班进行科学的微 机管理,也使得用户可以直接在网上享受对航班的查询,订票,退票等服务,大 大提高管理效率和服务水平。综上,飞机航班数据库是值得去现实的,下面从技 术可行性、经济可行性和操作可行性 3 个方面进行分析: 技术可行性:与飞机航班管理数据库相类似的一些数据库,如学生学籍数据 库等都早已实现,为该数据库的设计和实现提供了一定的经验。同时市场上和数 据库相关的一些技术都发展的十分成熟了,如微软开发的 mssql、甲骨文开发的 oracle、开源免费的 mysql 等都可以支持不同种类数据库的开发。因此,该数据 库的设计和实现在技术上是可以行得通的; 经济可行性:该飞机航班数据库设计并且实现后,可供用户相关的航班服务, 一方面可以节省部分人力资源减少对大量客户直接接待的费用,提高工作效率; 另一方面也可以更为科学和合理的管理飞机航班系统,对其进行及时管理,以提 高公司的服务水平。因此,该数据库的的实现在经济上是可行的; 操作可行性:通过基于飞机航班管理数据库的相关的应用系统的实现,用户 即便不是数据库方面的专业人员,只要懂得计算机相应的输入输出,在系统的提 示下就可以完成对飞机航班数据库的相关的操作。因此,具有操作可行性。 总体上来看,可以在尽可能短的时间里,以最小的代价实现飞机航班数据库 及其相关的应用系统,供航空公司对其航班进行更科学的管理,使用户获得更方 便的服务。 而在这里,我选择了 Access 数据库,因为它有较强的移植性,不需要服务 器支持,只要电脑上装有 office 办公软件就可以使用。 4飞机订票管理系统 1.1 构架分析 本次的系统的设计我才用了了五个模块的形式,包括输入航班信息、查询航 班信息、乘客订票、乘客退票、修改航班信息。其中输入航班信息模块有航班号、 起飞时间、起飞地、目的地、票价、座位信息等;查询航班信息模块有录入的一 切乘客需要的信息的查询;乘客的订票有按航班或目的地两种查询方式,查到所 要顶航班后输入姓名、身份证号就可预订; 退票模块输入姓名身份证号后系统自动调出所定票的信息确定退票后即可退 票;修改航班信息模块输入航班号后会自动弹出该航班号的信息,确认修改后即 可修改。 图 1.1 结构流程图 1.2 动态模型分析 动态模型表示瞬时的、行为化的系统的“控制”性质,他规定了对象模型中 的对象的合法变化序列。航班信息管理系统的动态模型表示了对象模型中的各对 象的行为以及行为的周期。 系统管理员将机场航班的临时计划、长期计划、次日计划、营业员信息、用 户账号信息等重要信息输入到机场信息管理的数据库中,然后通过机场大屏幕、 第一章 可行性分析5 营业员主机和机场网页显示机场航班信息。 当有旅客前来购票时,营业员通过计算机查询数据库关于旅客所购买机票的 班机信息,如果有座位并满足旅客要求则向信息管理系统反馈;如果旅客退票, 则营业员通过计算机删除旅客的信息;如果没有满足旅客需要的班机,则跟旅客 交涉,或转交给营业网点经理处理。 营业网点经理管理各营业网点营业员信息,每天汇总营业员当天的营业情况, 并负责调节旅客与旅客,以及旅客与营业员的冲突。 功能模型主要表示变化的系统的“功能”性质,指明系统该“做什么” 。机场 航班信息管理系统必须能够合理的管理机场航班的信息,旅客的信息以及各网点 营业员和经理的信息。 6飞机订票管理系统 第二章 概要设计7 第二章概要设计 2.1 逻辑设计 该系统要求能进行航班管理,航班管理员能添加和删除航班计划,还能临时 修改航班计划,对航班计划的修改包括临时添加航班和临时取消航班以及临时改 变航班的执行机型。除此之外,航班管理员还能随时更新每天的航班季节折扣。 该系统应符合航班管理系统的规定,满足航空公司日常航班管理工作需要, 并达到操作过程中的直观、方便、实用、安全等要求。 图 2.1 系统模块图 2.2 数据流程设计 飞机航班数据库及其相关的应用程序的总体 DFD 图描述了信息流和数据流 的流动过程机器经过处理后的变化情况。用户选择相关的服务项目可以查看相关 航班的基本信息,并且可以根据自己需求选择相应服务,系统的信息更新时,相 关的信息经过相应处理后,会存入到飞机航班数据库中的航班信息记录表中;系 统管理员根据航空公司实际情况可以更新航班信息,并通过修改信息处理后被保 存到飞机航班表中。 飞机航班管理系统 前台管理子系统 数据库维护子系统 后台管理子系统 后台服务子系统 航班信息显示子系统 航班辅助调理子系统 常用报表生成子系统 8飞机订票管理系统 图 2.2 顶层 DFD 图 系统维护部分是的系统管理员对基本信息进行相应修改,同时将删除、增加 或修改的结果保存在飞机航班信息表中,一时的系统中的信息及时得到更新,便 于应用。 删除原有信息 操作成功操作成功 修改现存信息 操作成功 增加信息入库 发出请求 发出 请求 发出请求 系统管理员 增加航班信息 修改航班信息删除航班信息 航 班 信 息 图 2.3 系统信息维护的 DFD 提出请求系统响应 系统反馈信息处理 管理 信息 系统管理员 信息处理 航班信息 业务处理 顾 客 第三章 详细设计9 第三章详细设计 详细设计: 主界面 用户操作管理员操作 查询航班 信息 订 票 退 票 航 班 信 息 座 位 信 息 航 班 信 息 客 户 信 息 航 班 信 息 客 户 信 息 录入航 班信息 修改航 班信息 航 班 信 息 折 扣 信 息 座 位 信 息 航 班 信 息 折 扣 信 息 座 位 信 息 图 3.1 逻辑设计 3.1 数据库设计 1.1.数据库设计 由图 4.1 得出 E-R 图如下: 10飞机订票管理系统 图 3.2 E-R 图 根据 E-R 图可以知道,需要设计如下数据表: 图 3.3 数据库数据表快照 航班号 旅客 姓名身份证号 购买 票价 航班 订票 订票旅客 起飞地 目的地 起飞时间 票价 起飞地点 剩余票数 姓名 身份证号 目的地 起飞时间 航班 座位信息 1 n 1 第三章 详细设计11 在 Access 数据库中,文本类型等同于 SQL 数据库中的 char 类型,而在时间 等属性的存储是,我选择了文本类型,方便存储。 在表 Dlb 中,设计如下: 表 3.1 Dlb(登陆表)数据表 字段名数据类型备注 ID自动编号ID(主键) Yhm文本用户名 Mm文本密码 Qx文本权限 在表 Fjlxb 中,设计如下: 表 3.2 Fjlxb(飞机类型表)数据表 字段名数据类型备注 ID自动编号ID(主键) Fjlx文本飞机类型 Zws数字座位数 Tdc数字头等舱座位数 Jjc数字经济舱座位数 Tdcje数字(double 类型)头等舱票价 Jjcje数字(double 类型)经济舱票价 在表 Hbxb 中,设计如下: 表 3.3 Hbxb(航班信息表)数据表 字段名数据类型备注 ID自动编号ID(主键) HbId文本航班号(有约束格式) QfId文本起飞地点 MdId文本目的地 QfTime文本起飞时间 Fjlx文本飞机类型(分大型机、中型机、 小型机) 12飞机订票管理系统 在表 Khb 中,设计如下: 表 3.4 Khb(客户信息表)数据表 字段名数据类型备注 ID自动编号ID(主键) Xm文本姓名 Sfz文本身份证 Xb文本性别 HbId文本航班号 ZwId文本座位号 Je数字(double 类型)票价 Time文本售票时间 在表 Zk 中,设计如下: 表 3.5 Zk(折扣表)数据表 字段名数据类型备注 ID自动编号ID(主键) Zk数字(double 类型)折扣率 Cw文本舱位 在表 Zwztb 中,设计如下: 表 3.6 Zwztb(座位状态表)数据表 字段名数据类型备注 ID自动编号ID(主键) HbId文本航班号 ZwId文本座位号 Zwlx文本座位类型 Zt文本是否售出 数据库的关系图如下: 第三章 详细设计13 图 3.4 数据库关系图 3.2 前台管理子系统 1.用户登录/登出 1.1 登录 1.2 退出登录状态 图 3.5 登陆 14飞机订票管理系统 图 3.6 主界面 2.购票 2.1 查询航班 图 3.7 查询航班 2.2 购票 第三章 详细设计15 图 3.8 机票订购 3. 退票和改签 3.1 退票 图 3.9 机票退订 16飞机订票管理系统 3.3 后台管理子系统 1.航班计划管理 1.1 查询航班计划 1.2 添加航班计划 1.3 删除航班计划 1.4 更改航班计划(起飞时间,到达时间,执行机型,基准票价) 1.5 添加航班 1.6 删除航班 图 3.10 航班管理 2.航班管理 2.1 查询航班 2.2 更改航班季节折扣 2.3 批量更新航班季节折扣 第四章 编码设计17 第四章编码设计 软件编码是指把软件设计转换成计算机可以接受的程序,即写成以某一程序 设计语言表示的源程序清单。充分了解软件开发语言、工具的特性和编程风格, 有助于开发工具的选择以及保证软件产品的开发质量。 程序设计语言是软件开发人员在编码阶段使用的基本工具,程序设计语言所 具有的特性不可避免的会影响编程者处理问题的方式和方法。为了编写出高效率、 高质量的程序,根据具体问题和实际情况选择适合的程序设计语言是编码阶段中 一项非常重要的工作。 随着计算机技术的发展,目前已经出现数百种程序设计语言。但被广泛应用 的只有几十种由于不同种类的语言适应不同的问题和系统环境,因此要选择出合 适的程序设计语言进行软件的编码。 本系统飞机航班管理系统采用 C#程序设计语言进行设计。运用 Visual Studio2010 和 ACCESS2003 完成设计。 1.1 C#程序语言设计 C#是微软公司在 2000 年 7 月发布的一种全新且简单、安全、面向对象的程 序设计语言,是专门为.NET 的应用而开发的语言。它吸收了 C+、Visual Basic、Delphi、Java 等语言的优点,体现了当今最新的程序设计技术的功能和精 华。C#继承了 C 语言的语法风格,同时又继承了 C+的面向对象特性。不同的是, C#的对象模型已经面向 Internet 进行了重新设计,使用的是.NET 框架的类库;C# 不再提供对指针类型的支持,使得程序不能随便访问内存地址空间,从而更加健 壮;C#不再支持多重继承,避免了以往类层次结构中由于多重继承带来的可怕后 果。.NET 框架为 C#提供了一个强大的、易用的、逻辑结构一致的程序设计环境。 同时,公共语言运行时(Common Language Runtime)为 C#程序语言提供了一个 托管的运行时环境,使程序比以往更加稳定、安全。其特点有: 语言简洁。 保留了 C+的强大功能。 18飞机订票管理系统 快速应用开发功能。 语言的自由性。 强大的 Web 服务器控件。 支持跨平台。 与 XML 相融合。 4.1 C/S 构架和 ACCESS 数据库 4.1.1C/S 构架 C/S 是软件系统体系结构 ,通过它可以充分利用两端硬件环境的优势,将 任务合理分配到 Client 端和 Server 端来实现,降低了系统的通讯开销。 C/S 结构的优点是能充分发挥客户端 PC 的处理能力,很多工作可以在客 户端处理后再提交给服务器。对应的优点就是客户端响应速度快。缺点主要有以 下几个: 而随着互联网的飞速发展,移动办公和分布式办公越来越普及,这需要 我们的系统具有扩展性。这种方式远程访问需要专门的技术,同时要对系统进行 专门的设计来处理分布式的数据。 客户端需要安装专用的客户端软件。首先涉及到安装的工作量,其次任 何一台电脑出问题,如病毒、硬件损坏,都需要进行安装或维护。还有,系统软 件升级时,每一台客户机需要重新安装,其维护和升级成本非常高。(大多数没法 自动升级而需要人工升级) 对客户端的操作系统一般也会有限制。可能适应于 Windows 98,但不 能用于 Windows 2000 或 Windows XP。或者不适用于微软新的操作系统等等,更 不用说 Linux、Unix 等。(中国绝大多数用户都使用 Windows 操作系统) C/S 架构软件的优势与劣势 (1) 、应用服务器运行数据负荷较轻。最简单的 C/S 体系结构的数据库应用 由两部分组成,即客户应用程序和数据库服务器 程序。二者可分别称为前台程序 与后台程序。运行数据库服务器程序的机器,也称为应用服务器。一旦服务器程 序被启动,就随时等待响应客户程序发来的请求;客户应用程序运行在用户自己 的电脑上,对应于数据库服务器,可称为客户电脑,当需要对数据库中的数据进 第四章 编码设计19 行任何操作时,客户程序就自动地寻找服务器程序,并向其发出请求,服务器程 序根据预定的规则作出应答,送回结果,应用服务器运行数据负荷较轻。 (2) 、数据的储存管理功能较为透明。在数据库应用中,数据的储存管理功 能,是由服务器程序和客户应用程序分别独立进行的,前台应用可以违反的规则, 并且通常把那些不同的(不管是已知还是未知的)运行数据,在服务器程序中不 集中实现,例如访问者的权限,编号可以重复、必须有客户才能建立定单这样的 规则。所有这些,对于工作在前台程序上的最终用户,是“透明”的,他们无须 过问(通常也无法干涉)背后的过程,就可以完成自己的一切工作。在客户服务 器架构的应用中,前台程序不是非常“瘦小” ,麻烦的事情都交给了服务器和网 络。在 C/S 体系的下,数据库不能真正成为公共、专业化的仓库,它受到独立的 专门管理。 (3) 、C/S 架构的劣势是高昂的维护成本且投资大。首先,采用 C/S 架构, 要选择适当的数据库平台来实现数据库数据的真正“统一” ,使分布于两地的数 据同步完全交由数据库系统去管理,但逻辑上两地的操作者要直接访问同一个 数据库才能有效实现,有这样一些问题,如果需要建立“实时”的数据同步,就 必须在两地间建立实时的通讯连接,保持两地的数据库服务器在线运行,网络管 理工作人员既要对服务器维护管理,又要对客户端维护和管理,这需要高昂的投 资和复杂的技术支持,维护成本很高,维护任务量大。 其次,传统的 C/S 结构的软件需要针对不同的操作系统系统开发不同版本的 软件,由于产品的更新换代十分快,代价高和低效率已经不适应工作需要。在 JAVA 这样的跨平台语言出现之后,B/S 架构更是猛烈冲击 C/S,并对其形成威胁 和挑战。 4.1.2Access 数据库 Access 是微软公司推出的基于 Windows 的桌面关系数据库管理系统 (RDBMS,即 Relational Database Management System) ,是 Office 系列应用软件 之一。它提供了表、查询、窗体、报表、页、宏、模块 7 种用来建立数据库系统 的对象;提供了多种向导、生成器、模板,把数据存储、数据查询、界面设计、 报表生成等操作规范化;为建立功能完善的数据库管理系统提供了方便,也使得 普通用户不必编写代码,就可以完成大部分数据管理的任务。 20飞机订票管理系统 Access 能够存取 Access/Jet、Microsoft SQL Server、Oracle(甲骨文 软件公司),或者任何 ODBC 兼容数据库内的资料。熟练的软件设计师 和资料 分析师利用它来开发应用软件,而一些不熟练的程序员和非程序员的进阶用户 则能使用它来开发简单的应用软件。虽然它支援部分面向对象(OOP)技术,但 是未能成为一种完整的面向对象开发工具。 主要用途 Microsoft Access 在很多地方得到广泛使用,例如小型企业,大公司的部门, 和喜爱编程的开发人员专门利用它来制作处理数据的桌面系统。它也常被用来开 发简单的 WEB 应用程序这些应用程序都利用 ASP 技术在 Internet Information Services 运行比较复杂的 WEB 应用程序则使用 PHP/MySQL 或者 ASP/Microsoft SQL Server 它的使用方便程度和强大的设计工具为初级程序员提供许多功能。不过,这 种便于使用可能使人误解。这类开发者都是没有在应用或者数据设计方面训练的 办公室从业人员。因此许多人以为这样的开发者能够创造可用的系统,但也有很 多人认为工具本身的局限性产生了这样的误导。 一些专业的应用程序开发 人员使用 Access 用作 快速应用开发 ,特别是给 街道上的推销员制作一个初型或独立应用程序的工具。可是如果是透过网络存取 数据的话,Access 的可扩放性并不高因此当程序被较多使用者使用时,他们的 选择多会是倾向于一些客户端-服务器为本的方案,例如 Oracle、DB2、Microsoft SQL Server、Windows SharePoint Services、PostgreSQL、MySQL、Alpha Five、MaxDB,或者 Filemaker。无论如何,不少 Access 的功能(表单,报告, 序列和 VB 代码)可以用作其他数据库的后期应用,包括 JET(档案为主的数据 库引擎,Access 缺省使用) 、Microsoft SQL Server、Oracle 和任何其他跟 ODBC 兼容的产品。这种方法允许开发者把一个成熟的应用的数据移动到一台更大功率 的服务器而没有已经在适当的位置牺牲发展。 Access 的优点 (1)存储方式简单,易于维护管理 Access 管理的对象有表、查询、窗体、报表、页、宏和模块,以上对象都存 放在后缀为(.mdb 或.accdb)的数据库文件 中,便于用户的操作和管理。 (2)面向对象 Access 是一个面向对象的开发工具,利用面向对象的方式将数 第四章 编码设计21 据库系统中的各种功能对象化,将数据库管理 的各种功能封装在各类对象中。它 将一个应用系统当作是由一系列对象组成的,对每个对象它都定义一组方法和属 性,以定义该对象的行为和外国,用户还可以按需要给对象扩展方法和属性。通 过对象的方法、属性完成数据库的操作和管理,极大地简化了用户的开发工作。 同时,这种基于面向对象的开发方式,使得开发应用程序更为简便。 (3)界面友好、易操作 Access 是一个可视化工具,是风格与 Windows 完全一样,用户想要生成对 象并应用,只要使用鼠标进行拖放即可,非常直观方便。系统还提供了表生成器、 查询生成器、报表设计器以及数据库向导、表向导、查询向导、窗体向导、报表 向导等工具,使得操作简便,容易使用和掌握。 (4)集成环境、处理多种数据信息 Access 基于 Windows 操作系统下的集成开发环境,该环境集成了各种向导和 生成器工具,极大地提高了开发人员的工作效率,使得建立数据库、创建表、设 计用户界面、设计数据查询、报表打印等可以方便有序地进行。 (5)Access 支持 ODBC(开发数据库互连,Open Data Base Connectivity) , 利用 Access 强大的 DDE(动态数据交换 )和 OLE(对象的联接和嵌入)特性,可 以在一个数据表中嵌入位图、声音、Excel 表格、Word 文档,还可以建立动态的 数据库报表和窗体等。Access 还可以将程序应用于网络,并与网络上的动态数据 相联接。利用数据库访问页对象生成 HTML 文件,轻松构建 Internet/Intranet 的应用。 (6)支持广泛,易于扩展,弹性较大 能够将通过链接表的方式来打开 EXCEL 文件、格式化文本文件等,这样就可 以利用数据库的高效率对其中的数据进行查询、处理。还可以通过以 Access 作 为前台客户端,以 SQL Server 作为后台数据库 的方式(如 ADP)开发大型数据 库应用系统。 总之,Access 是一个既可以只用来存放数据的数据库,也可以作为一个客户 端开发工具来进行数据库应用系统开发 ;即可以开发方便易用的小型软件,也 可以用来开发大型的应用系统。 ACCESS 的缺点 ACCESS 是小型数据库,既然是小型就有它的局限性(下面关于性能方面的缺 22飞机订票管理系统 点仅指用 Access 作为数据库的情况下,不包括用 Access 作为客户端前台,用 SQL Server 作为后台数据库的情况): 1.数据库过大,一般百 M 以上(纯数据,不包括窗体、报表等客户端对象) 性能会变差。 2.虽然理论上支持 255 个并发用户,但实际上根本支持不了那么多,如果以 只读方式访问大概在 100 个用户左右,而如果是并发编辑,则大概在 10-20 个用 户。 3.记录数过多,单表记录数过百万性能就会变得较差,如果加上设计不良, 这个限度还要降低。 4.不能编译成可执行文件(.exe) ,必须要安装 Access 运行环境才能使用。 4.2 编码风格和软件效率 随着软件产品的功能增加和版本的提高,代码越来越复杂,源文件也越来越 多,对于软件开发人员来说,除了保证程序运行的正确性和提高代码的运行效率 之外,规范风格的编码会对软件的升级、修改、维护带来极大的方便性,也保证 程序员不会陷入“代码泥潭”中无法自拔。开发一个成熟的软件产品,除了有详 细丰富的开发文档之外,必须在编写代码的时候就有条不紊,细致严谨。 以下的编码规范包含了程序排版、注释、命名、可读性、变量、程序效率、 质量保证、代码编译、代码测试和版本控制等注意事项。 一、排版: 1.关键词和操作符之间加适当的空格。 2.相对独立的程序块与块之间加空行 3.较长的语句、表达式等要分成多行书写。 4.划分出的新行要进行适应的缩进,使排版整齐,语句可读。 5.长表达式要在低优先级操作符处划分新行,操作符放在新行之首。 6.循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分。 7.若函数或过程中的参数较长,则要进行适当的划分。 8.不允许把多个短语句写在一行中,即一行只写一条语句。 9.函数或过程的开始、结构的定义及循环、判断等语句中的代码都要采用缩 第四章 编码设计23 进风格。 10.C/C+语言是用大括号和界定一段程序块的,编写程序块时和 应各独占一行并且位于同一列,同时与引用它们的语句左对齐。在函数体的开始、 类的定义、结构的定义、枚举的定义以及 if、for、do、while、switch、case 语句 中的程序都要采用如上的缩进方式。 二、注释 1.注释要简单明了。 2.边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一 致性。 3.在必要的地方注释,注释量要适中。注释的内容要清楚、明了,含义准确, 防止注释二义性。保持注释与其描述的代码相邻,即注释的就近原则。 4.对代码的注释应放在其上方相邻位置,不可放在下面。 5.对数据结构的注释应放在其上方相邻位置,不可放在下面;对结构中的每 个域的注释应放在此域的右方;同一结构中不同域的注释要对齐。 6.变量、常量的注释应放在其上方相邻位置或右方。 7.全局变量要有较详细的注释,包括对其功能、取值范围、哪些函数或过程 存取它以及存取时注意事项等的说明。 8.在每个源文件的头部要有必要的注释信息,包括:文件名;版本号;作者; 生成日期;模块功能描述(如功能、主要算法、内部各部分之间的关系、该文件 与其它文件关系等) ;主要函数或过程清单及本文件历史修改记录等。 9.在每个函数或过程的前面要有必要的注释信息,包括:函数或过程名称; 功能描述;输入、输出及返回值说明;调用关系及被调用关系说明等。 三、命名 1.较短的单词可通过去掉“元音”形成缩写; 2.较长的单词可取单词的头几发符的优先级,并用括号明确表达式的操作顺 序,避免使用默认优先级。 3.使用匈牙利表示法 四、可读性 1.避免使用不易理解的数字,用有意义的标识来替代。 2.不要使用难懂的技巧性很高的语句。 24飞机订票管理系统 3.源程序中关系较为紧密的代码应尽可能相邻。 五、变量 1.去掉没必要的公共变量。 2.构造仅有一个模块或函数可以修改、创建,而其余有关模块或函数只访问 的公共变量,防止多个不同模块或函数都可以修改、创建同一公共变量的现象。 3.仔细定义并明确公共变量的含义、作用、取值范围及公共变量间的关系。 4.明确公共变量与操作此公共变量的函数或过程的关系,如访问、修改及创 建等。 5.当向公共变量传递数据时,要十分小心,防止赋与不合理的值或越界等现 象发生。 6.防止局部变量与公共变量同名。 7.仔细设计结构中元素的布局与排列顺序,使结构容易理解、节省占用空间, 并减少引起误用现象。 8.结构的设计要尽量考虑向前兼容和以后的版本升级,并为某些未来可能的 应用保留余地(如预留一些空间等) 。 9.留心具体语言及编译器处理不同数据类型的原则及有关细节。 10.严禁使用未经初始化的变量。声明变量的同时对变量进行初始化。 11.编程时,要注意数据类型的强制转换。 六、函数、过程 1.函数的规模尽量限制在 200 行以内。 2.一个函数最好仅完成一件功能。 3.为简单功能编写函数。 4.函数的功能应该是可以预测的,也就是只要输入数据相同就应产生同样的 输出。 5.尽量不要编写依赖于其他函数内部实现的函数。 6.避免设计多参数函数,不使用的参数从接口中去掉。 7.用注释详细说明每个参数的作用、取值范围及参数间的关系。 8.检查函数所有参数输入的有效性。 9.检查函数所有非参数输入的有效性,如数据文件、公共变量等。 第四章 编码设计25 10.函数名应准确描述函数的功能。 11.避免使用无意义或含义不清的动词为函数命名 12.函数的返回值要清楚、明了,让使用者不容易忽视错误情况。 13/明确函数功能,精确(而不是近似)地实现函数设计。 14.减少函数本身或函数间的递归调用。 15.编写可重入函数时,若使用全局变量,则应通过关中断、信号量(即 P、V 操作)等手段对其加以保护。 七、可测性 1.在编写代码之前,应预先设计好程序调试与测试的方法和手段,并设计好 各种调测开关及相应测试代码如打印函数等。 2.在进行集成测试/系统联调之前,要构造好测试环境、测试项目及测试用例, 同时仔细分析并优化测试用例,以提高测试效率。 八、程序效率 1.编程时要经常注意代码的效率。 2.在保证软件系统的正确性、稳定性、可读性及可测性的前提下,提高代码 效率。 3.不能一味地追求代码效率,而对软件的正确性、稳定性、可读性及可测性 造成影响。 4.编程时,要随时留心代码效率;优化代码时,要考虑周全。 5.要仔细地构造或直接用汇编编写调用频繁或性能要求极高的函数。 6.通过对系统数据结构划分与组织的改进,以及对程序算法的优化来提高空 间效率。 7.在多重循环中,应将最忙的循环放在最内层。 8.尽量减少循环嵌套层次。 9.避免循环体内含判断语句,应将循环语句置于判断语句的代码块之中。 10.尽量用乘法或其它方法代替除法,特别是浮点运算中的除法。 九、质量保证 1.在软件设计过程中构筑软件质量。 代码质量保证优先原则 (1)正确性,指程序要实现设计要求的功能。 26飞机订票管理系统 (2)稳定性、安全性,指程序稳定、可靠、安全。 (3)可测试性,指程序要具有良好的可测试性。 (4)规范/可读性,指程序书写风格、命名规则等要符合规范。 (5)全局效率,指软件系统的整体效率。 (6)局部效率,指某个模块/子模块/函数的本身效率。 (7)个人表达方式/个人方便性,指个人编程习惯。 2.只引用属于自己的存贮空间。 3.防止引用已经释放的内存空间。 4.过程/函数中分配的内存,在过程/函数退出之前要释放。 5.过程/函数中申请的(为打开文件而使用的)文件句柄,在过程/函数退出前 要关闭。 6.防止内存操作越界。 7.时刻注意表达式是否会上溢、下溢。 8.认真处理程序所能遇到的各种出错情况。 9.系统运行之初,要初始化有关变量及运行环境,防止未经初始化的变量被 引用。 10.系统运行之初,要对加载到系统中的数据进行一致性检查。 11.严禁随意更改其它模块或系统的有关设置和配置。 12.不能随意改变与其它模块的接口。 13.充分了解系统的接口之后,再使用系统提供的功能。 14.要时刻注意易混淆的操作符。当编完程序后,应从头至尾检查一遍这些操 作符。 15.不使用与硬件或操作系统关系很大的语句,而使用建议的标准语句。 16.建议:使用第三方提供的软件开发工具包或控件时,要注意以下几点: (1)充分了解应用接口、使用环境及使用时注意事项。 (2)不能过分相信其正确性。 (3)除非必要,不要使用不熟悉的第三方工具包与控件。 第五章 测试27 第五章测试 在软件开发的过程中,虽然人们采用了多种分析、设计和实现软件的方法以 提高软件的质量,但是面对复杂的实际问题,认得主观认识于客观的现实之间往 往有着一定的差距,并且在开发过程中,各类人员的通信并非完美无缺,各阶段 的技术复审也不可能查出所有的设计错误,加上编码阶段还会引入新的错误,这 就使得开发个阶段可能出现许多问题和缺陷。软件测试是一项要的工作,色使得 母的是在软件投入生产运行之前,尽可能多的发现软件的错误,以便及时纠正, 避免在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025安徽蚌埠高新投资集团有限公司职业经理人招聘1人备考题库及1套完整答案详解
- 2025贵州水投花滩子工程有限公司面向集团内部选聘技术人员1人备考题库及一套参考答案详解
- 2025天津中煤进出口有限公司面向中国中煤内部及社会招聘第五批电力人才52人备考题库附答案详解(巩固)
- 撤销法人转让协议书
- 物资出售回收协议书
- 挂靠出租公司协议书
- 砍伐枯树的合同范本
- 招聘代驾的合同范本
- 政府购车补贴协议书
- 损坏设备赔偿协议书
- 2025四川成都广播影视集团有限责任公司第二批次招聘18人考试笔试备考试题及答案解析
- 架梁施工安全培训课件
- 吸收合并协议书范本
- (新版)M9执照英语易考易错高频考试题库500道(含答案)
- 华为集团薪酬管理制度
- 2026届浙江温州高三一模高考英语模拟试卷试题(含答案详解)
- 机井工程技术资料
- 十五五蓝图照进青春现实+课件-2025-2026学年高二上学期二十届四中全会精神主题团课
- 转让成熟民宿合同范本
- 2025年11月23日辽宁省税务局遴选笔试真题及答案解析(业务卷)
- 中泰证券2025届秋季校园招聘笔试历年常考点试题专练附带答案详解试卷3套
评论
0/150
提交评论