机票预定系统的设计与实现文档格式.docx
- 文档编号:21341959
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:69
- 大小:1.59MB
机票预定系统的设计与实现文档格式.docx
《机票预定系统的设计与实现文档格式.docx》由会员分享,可在线阅读,更多相关《机票预定系统的设计与实现文档格式.docx(69页珍藏版)》请在冰豆网上搜索。
Thissystemisdividedintofourmajormodules:
systemsmanagement,managementoftravelagency,airline'
smanagement,integratedserviceofvisitormanagement.Eachmodulehasdifferentfunctions,thismakethemanagementofthewholesystemorderly,thusitismoreconvenientlytoofferformanagement.
Keywordssoftwaredevelopment,developmenttools,airticketsreservationsystems,packaging
1引言
随着生活水平的日益提高,人们生活中可选择的交通工具也变得丰富多彩,外出度假、旅游除了要求方便、舒适的环境以外,在生活节奏如此之快的当今社会,是否节省时间将成为人们最为关心的话题,故人们会毫不犹豫地选择乘坐飞机出行,本系统也就应运而生了。
国外对于机票预定系统的研究已经达到了相当高的水平,在系统处理的准确性和及时性、系统的开放性和可扩充性、系统的易用性和易维护性、系统的标准性、系统的先进性、系统的响应速度以及系统的适时性和容错性方面都有很深的研究,相对而言系统也就比较成熟。
当然,尽管我国在这方面的研究起步稍微有些晚,但就发展前景而言,我们还是有很大发展空间的。
当然,除了系统本身的意义之外,本课题对我们自己也是非常有意义的:
通过毕业设计的实践及其前后的准备与总结,复习、领会、巩固和运用课堂上所学的软件开发方法和知识,比如,软件项目的完整设计与开发过程、结构化技术、快速原型法和面向对象方法等。
特别是结构化分析、结构化设计、快速原型开发、面向对象分析与面向对象设计。
为自己适应毕业后团队合作开发规模稍大项目和综合应用本专业所学习的多门课程知识(例如,软件工程、程序设计语言、操作系统、数据库等)创造实践机会。
为自己提供主动学习(比如,对Java开发环境、客户机/服务器技术、Visio、JBuilder、PowerDesigner软件工具以及SQLServer2000数据库等内容的学习)、积极探索与大胆创新的机会。
使自己通过参加小组团队的开发实践,了解项目管理、团队合作、文档编写、口头与书面表达的重要性。
使自己了解软件工具与环境对于项目开发的重要性,并且重点深入掌握好一、两种较新或较流行的软件工具或计算机应用技术、技能。
通过“稍大的”富有挑战性的软件实验项目开发实践,提高自己的自学能力、书面与口头表达能力、创造能力和与团队其他成员交往和协作开发软件的能力,提高自己今后参与开发稍大规模实际软件项目和探索未知领域的能力和自信心。
总之,本课题的研究对我今后在软件方面的发展将是非常有意义的!
2软件开发基础知识
2.1软件开发过程
软件开发过程以及各阶段的任务:
计划:
对所要解决的问题进行总体定义,包括了解用户的要求及现实环境,从技术、经济和社会因素等3个方面研究并论证本软件项目的可行性,编写可行性研究报告,探讨解决问题的方案,并对可供使用的资源(如计算机硬件、系统软件、人力等)成本,可取得的效益和开发进度作出估计。
制订完成开发任务的实施计划。
分析:
软件需求分析就是回答做什么的问题。
它是一个对用户的需求进行去粗取精、去伪存真、正确理解,然后把它用软件工程开发语言(形式功能规约,即需求规格说明书)表达出来的过程。
本阶段的基本任务是和用户一起确定要解决的问题,建立软件的逻辑模型,编写需求规格说明书文档并最终得到用户的认可。
需求分析的主要方法有结构化分析方法、数据流程图和数据字典等方法。
设计:
本阶段的工作是根据需求说明书的要求,设计建立相应的软件系统的体系结构,并将整个系统分解成若干个子系统或模块,定义子系统或模块间的接口关系,对各子系统进行具体设计定义,编写软件概要设计和详细设计说明书,数据库或数据结构设计说明书,组装测试计划。
软件设计可以分为概要设计和详细设计两个阶段。
实际上软件设计的主要任务就是将软件分解成模块。
概要设计就是结构设计,其主要目标就是给出软件的模块结构,用软件结构图表示。
详细设计的首要任务就是设计模块的程序流程、算法和数据结构,次要任务就是设计数据库,常用方法还是结构化程序设计方法。
编码:
软件编码是指把软件设计转换成计算机可以接受的程序,即写成以某一程序设计语言表示的"
源程序清单"
。
充分了解软件开发语言、工具的特性和编程风格,有助于开发工具的选择以及保证软件产品的开发质量。
当前软件开发中除在专用场合,已经很少使用二十世纪80年代的高级语言了,取而代之的是面向对象的开发语言。
而且面向对象的开发语言和开发环境大都合为一体,大大提高了开发的速度。
测试:
软件测试的目的是以较小的代价发现尽可能多的错误。
要实现这个目标的关键在于设计一套出色的测试用例(测试数据和预期的输出结果组成了测试用例)。
如何才能设计出一套出色的测试用例,关键在于理解测试方法。
不同的测试方法有不同的测试用例设计方法。
两种常用的测试方法是白盒法(白盒法测试对象是源程序,依据的是程序内部的的逻辑结构来发现软件的编程错误、结构错误和数据错误。
结构错误包括逻辑、数据流、初始化等错误。
用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果)和黑盒法(黑盒法依据的是软件的功能或软件行为描述,发现软件的接口、功能和结构错误。
其中接口错误包括内部/外部接口、资源管理、集成化以及系统错误。
黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口)。
维护:
维护是旨在已完成对软件的研制(分析、设计、编码和测试)工作并交付使用以后,对软件产品所进行的一些软件工程的活动。
即根据软件运行的情况,对软件进行适当修改,以适应新的要求,以及纠正运行中发现的错误。
编写软件问题报告、软件修改报告。
一个中等规模的软件,如果研制阶段需要一年至二年的时间,在它投入使用以后,其运行或工作时间可能持续五年至十年。
那么它的维护阶段也是运行的这五年至十年期间。
在这段时间,人们几乎需要着手解决研制阶段所遇到的各种问题,同时还要解决某些维护工作本身特有的问题。
做好软件维护工作,不仅能排除障碍,使软件能正常工作,而且还可以使它扩展功能,提高性能,为用户带来明显的经济效益。
然而遗憾的是,对软件维护工作的重视往往远不如对软件研制工作的重视。
而事实上,和软件研制工作相比,软件维护的工作量和成本都要大得多。
在实际开发过程中,软件开发并不是从第一步进行到最后一步,而是在任何阶段,在进入下一阶段前一般都有一步或几步的回溯。
在测试过程中的问题可能要求修改设计,用户可能会提出一些需要来修改需求说明书等。
2.2软件开发模型
软件开发模型(SoftwareDevelopmentModel)是指软件开发全部过程、活动和任务的结构框架。
软件开发包括需求、设计、编码和测试等阶段,有时也包括维护阶段。
软件开发模型能清晰、直观地表达软件开发全过程,明确规定了要完成的主要活动和任务,用来作为软件项目工作的基础。
典型的开发模型有:
1瀑布模型(waterfallmodel);
2渐增模型/演化/迭代(incrementalmodel);
3原型模型(prototypemodel);
4螺旋模型(spiralmodel);
5喷泉模型(fountainmodel);
6智能模型(intelligentmodel);
7混合模型(hybridmodel)
每个软件开发组织应该选择适合于该组织的软件开发模型,并且应该随着当前正在开发的特定产品特性而变化,以减小所选模型的缺点,充分利用其优点,下表列出了几种常见模型的优缺点。
表2.1主要开发模型比较
模型
优点
缺点
瀑布模型
文档驱动
系统可能不满足客户的需求
快速原型模型
关注满足客户需求
可能导致系统设计差、效率低,难于维护
增量模型
开发早期反馈及时,易于维护
需要开放式体系结构,可能会设计差、效率低
螺旋模型
风险驱动
风险分析人员需要有经验且经过充分训练
2.3C/S二层体系开发
2.3.1C/S体系结构简介
C/S结构的数据库应用
最简单的C/S体系结构的数据库应用,由两部分组成,即客户应用程序和数据库服务器程序。
二者可分别称为前台程序与后台程序。
运行数据库服务器程序的机器,称为应用服务器,一旦服务器程序被启动,就随时等待响应客户程序发来的请求;
客户程序运行在用户自己的电脑上,对应于服务器电脑,可称为客户电脑。
当需要对数据库中的数据进行任何操作时,客户程序就自动地寻找服务器程序,并向其发出请求,服务器程序根据预定的规则作出应答,送回结果。
在典型的C/S数据库应用中,数据的储存管理功能,是由服务器程序独立进行的,并且通常把那些不同的(不管是已知还是未知的)前台应用所不能违反的规则,在服务器程序中集中实现,例如访问者的权限,编号不准重复、必须有客户才能建立定单这样的规则。
所有这些,对于工作在前台程序上的最终用户,是“透明”的,他们无须过问(通常也无法干涉)这背后的过程,就可以完成自己的一切工作。
在客户服务器架构的应用中,前台程序可以变的非常“瘦小”,麻烦的事情,都交给了服务器和网络。
在C/S体系的下,数据库真正变成了公共、专业化的仓库,受到独立的专门管理。
非C/S结构的应用
与C/S体系形成对比,传统的数据库应用体系结构,例如基于主机-多终端的系统,或基于LAN上文件服务器运做的多用户系统,数据库是属于应用程序“私有的”,即使它也可以将数据文件放置在某台机器上供不同的用户共同访问(这种情形,称为“文件服务器”),但所有的操作、规则,都是在一个包罗万象的应用程序内部实现的。
应用程序因此具有最大的复杂性,即使是原班开发人马,要想对已有功能加以扩充也是很困难的,当数据库稍具复杂性(比如有稍多相互关联的表与规则),其他的人员开发另外的程序共同操作这个数据库的数据,几乎不具可行性。
2.3.2有关C/S体系结构的讨论
C/S结构是目前技术条件下,能较好适应不确定和变化的需求环境的比较现实的方案。
它可以令我们以较低的投入,实现将易变与稳定的要素分离,快速地增添和替换“瘦小”而互相独立的前台应用,保持数据的连续性和继承性。
以目前的技术看,先建立C/S结构的局域网络应用,再向企业网/互联网模式下数据库应用过渡,是比较现实,相对易于把握、成本较低的。
即使是一次到位的开发,对于类似的环境和小型的应用而言,要想实现不同的人员,从不同的地点,以不同的接入方式(比如LAN,WAN,Internet/Intranet等)访问和操作共同的数据库,并有效地保证和管理数据的安全性、访问权限、完整性,采用C/S架构和支持C/S架构的数据平台,是必然选择。
C/S架构的数据库系统,由于数据库是建立在通用的平台之上,并且支持SQL这样的通用技术,对数据库的维护工作更加专业,但更为开放,这意味着维护和进一步开发对原设计开发者的依赖性可以降低。
用户可以更好地适应人员的流动或服务/供应商的变更。
对体系规划的合理性,和一些特殊技术的采用,例如后台服务器上的存储过程、触发器等,会影响到这个特点。
出于这个理由,在C/S应用设计时,应尽可能采用规范的模式,标准化的技术。
同样的努力,在其他架构中就相对难以实现或较少实际意义。
总之,支持采用C/S的理由主要有:
①应用的不确定性,逐步开发和增加新应用的需要
②适应将来开放的异种网络环境中应用的需要
③用户数、数据量增长的可能性
④适应电脑开发、维护、供应商与相关技术人员变更的需要
⑤有利于动态规划与动态开发过程,对系统可靠性的保证
此外,从用户的现有资源的延续利用与新增投入,及开发的成本和难度看,采用C/S结构,也是比较适中、现实的选择。
3开发工具简介
3.1PowerDesigner11简介
3.1.1认识PowerDesigner
过去的软件开发往往缺乏规范,开发的软件也没有详细的文档。
为了提高软件质量,降低维护难度,加强重复使用率,开发人间、分析人员、测试人员、数据库管理人员、管理人员以及用户相互沟通,使系统发挥最大综合效率,世界各大数据库厂商和第三方合作开发了智能化的计算机辅助软件工程(CASE)工具,在此领域中,Rational公司的RationalRose擅长以UML构造模型,具备严谨的方法论,但技术偏高。
PLATUIM公司的Erwin擅长以E-R建立实体联系模型,并具有版本控制能力。
Sybase公司的PowerDesigner则集UML与E-R精华于一体,更能迎合市场潮流。
经过不断的更新,目前最新版本是PowerDesigner11。
3.1.2PowerDesigner分析过程
分析设计人员利用PowerDesigner可建立三类模型,即面向对象模型(OrientedObjectModel,简称OOM)、概念数据模型(ConceptualDataModel,简称CDM)、物理数据模型(PhysicalDataModel,简称PDM),其中OOM包括用例图、时序图、类图,最终产生五中结果,即模型仓库(Repository)、模型报告(Report)、数据库SQL脚本、用户数据脚本、以及应用程序代码。
程序开发人员利用模型报告(Report)、数据库SQL脚本、用户数据脚本、以及应用程序代码结合应用程序开发工具(如PB、VB、C++、C#、JAVA等)和数据库管理系统(DatabaseManagementSystem,简称DBMS)开发出符合要求的软件。
完成软件分析设计通常采用三种途径:
一条是从面向对象分析设计开始,依次建立用例图、时序图、类图,由类图转化为CDM以及PDM;
第二条路经是从结构化分析设计开始依次产生流程分析设计模型(ProcessAnalysisModel,简称PAM)、CDM、PDM、以及类图;
第三条路经是前两种途径的结合。
3.1.3PowerDesigner的三级建模功能
面向对象建模
UML是一种标准的图形化建模语言,是面向对象分析设计的一种标准表示,并为不同领域的人们提供统一的交流标准,UML共有九种图,PD11支持其中重要的三种图形,这三种图形描述了系统的静态数据模型(CDM)或物理数据模型(PDM),为信息的存储建立了数据结构,同时,类图还可以转换为C#、C++、IDL-CORBA、JAVA、PB以及VB代码框架,为应用程序的编制奠定了良好的基础。
概念数据模型
概念数据模型是建模的重要阶段,它把现实世界中的信息抽象成实体和联系来产生实体联系图(E-R模型),这一阶段为高质量的应用提供坚实的数据结构基础。
概念数据模型通过实体和属性以及这些实体间的关系(E-R模型)表明系统内部抽象的数据结构、概念数据模型与模型的实现方法无关。
物理数据模型
物理数据模型把CDM与特定DBMS的特性结合在一起,产生PDM。
同一个CDM结合不同的DBMS产生不同的PDM。
PDM中包含了DBMS的特征,反映了主键(PrimaryKey)、外键(ForeignKey)、候选键(Alternative)、视图(View)、索引(Index)、触发器(Trigger)、存储过程(StoredProcedure)等特征。
物理数据模型是后台数据库应用蓝本,直接针对具体的DBMS(如MicrosoftSQLServer2000).PDM可由CDM转换得到,其中实体(Entity)变为表(Table),属性(Attribute)变为列(Column),同时创建主键和索引,CDM中的数据类型映射为具体DBMS中的数据类型。
3.2JBuilder简介
3.2.1JDBC简介
什么是JDBC
JavaDatabaseConnectivity(JDBC)是一项在Java中以面向对象的方法来连接数据库的技术。
它是对ODBCAPI进行的一种面向对象的封装和重新设计,它易于学习和使用,并且能够使您编写不依赖供应商的代码,用于查询和操纵数据库。
JDBC提供了一些相当低层的方法来存取数据库。
同时也在高层提供了功能强大的对象来处理数据库。
支持JDBC的所有数据库必须至少支持SQL-92标准,这在很大程度上实现的跨数据库和平台的可移植性。
JDBC驱动程序类型
1)通过JDBC调用映射到其他关系数据库的CLI(CallLevelInterface)调用来实现JDBC,使用由其他语言所写的二进制库,要求客户提供软件,如JDBC-ODBC桥驱动程序。
2)驱动程序一部分由Java代码组成,另一部分由使用其他CLI的本地代码组成,要求客户端使用二进制代码。
3)纯Java驱动程序,使用中间件(middleware)将JDBC调用转换成访问数据库所需的厂商相关的调度和协议。
4)纯Java驱动程序,实现了本地协议,无需中间件或任何客户端二进制代码,需要时可下载到客户端。
这些驱动程序的不同主要在于驱动程序的组成部分、各个部分所处的位置以及用来开发这些组成部分的语言。
每个数据库厂商都使用不同的调用和不同的网络协议来访问数据库。
JDBCAPI接口
编写数据库应用程序,需要完成以下几件事:
1)加载一个数据库驱动程序
2)创建到数据库的连接,执行查询,如果查询有返回值,还要接受结果并对其进行处理。
JDBCAPI的目标是提供对关系数据库厂商无关的支持,通过它的使用,可以将使用的各种数据库实现上的不同都抽象出来,并且它分为两个层次,一是面向程序开发人员的JDBCAPI,另一是底层的JDBCDriveAPI.以下的类是常用的API:
1)DriverManager类:
负责管理对JDBC应用加载的驱动程序的访问。
2)Connection类:
主要用于创建Statement对象。
3)Statement类:
用来在数据库上执行SQL语句,这里的语句可以使任何合法的SQL语句。
4)PrepareStatemen类:
与Statement类相似,都是用开执行SQL语句的,但它能指定不同的参数。
5)ResultSet类:
用于遍历SQL的Select语句执行后返回的结果。
3.2.2通过JDBC连接SQLServer2000数据库参数
装载驱动程序:
Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”)
建立连接:
Stringconn
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 机票 预定 系统 设计 实现