SAD—系统分析和设计 “机票预订系统”_软件工程导论大作业

求打赏求收藏求转发!

提供PDF资源

https://download.csdn.net/download/weixin_43781565/12428947

(待审核后可供下载)

Peace and love

摘要

随着社会水平的提高和国家经济的发展,人们对美好生活的定义正在日益提高,而旅游正成为人们享受美好的生活的第一大方式。随着航空业的不断进步,飞机票价日益“亲民化”,也使得越来越的人们选择乘坐飞机作为自己的出游方式,节约时间成了飞机的主要优势。

但面对越来越庞大的乘客数量,订飞机票的方式也早已不再像过去的人工窗口了。随着互联网的发展,智能手机,移动支付等技术的出现,使得在线订票成为可能。所以,作为任何一个有前瞻性的航空公司,开发自己公司的机票预定系统都是一件非常有必要的事。通过系统将旅行社,乘客与航空公司联结起来,实验机票订购一体化的流水线操作,不仅能降低售卖机票的人工成本,还能节约乘客与旅行社的订票时间,改善乘客的旅行体验,并提升航空公司的知名度。

为了使航空公司适应目前的需求,促进机票预订管理信息化,不断满足乘客预订机票的要求,争取更好的经济效益,开发一个适用于航空公司的机票预定系统,是一件事半功倍的策略。

因此,我们就“机票预定系统”进行系统分析和设计,分析出系统的需求,对系统的基本功能进行设计,得出系统使用等方面的问题,并在最后对本系统做出客观评价,指明了系统的现实意义、缺点以及系统的升级方向。

 

关键词:SAD 机票预订 系统分析 需求分析 功能设计

 

 

 一. 概述

1.1 引言

本次课程设计实验,主要是通过设计一个“机票预订系统”,训练我们在软件工程导论课程中学习的有关面向对象设计部分,以及软件系统设计部分的相关知识的应用能力。通过需求分析,系统设计,结论等部分,运用学习的知识以及相关的图表,实现“机票预订系统”的原型设计与系统分析文档的编写。

1.2 编写目的

完成“机票预订系统”的需求分析与系统设计,利用面向对象的思想拆分细化相关的功能,进行类(class)的设计,完成编码前的主要工作。

1.3 问题描述

为方便乘客,某航空公司拟开发一个机票预订系统。旅行社把预订机票的乘客信息(姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地等)输入进该系统,系统为乘客安排航班,印出取票通知和账单,乘客在飞机起飞的前一天凭取票通知和账单交款取票,系统校对无误即印出机票给乘客。

1.4 参考文献

《软件工程导论》(第六版),张海藩 牟永敏编著,清华大学出版社

  • 需求分析

2.1 项目概述

2.1.1 系统目标

设计机票预订系统,让旅行社通过该系统为乘客预定制定航空公司的机票,并打印相关凭证,以达到流水线操作。

2.1.2 用户及数据

系统中的用户分为三个,分别是:

  1. 航空公司
  2. 乘客
  3. 旅行社

其中主要的对象是航空公司,旅行社和用户为航空公司提供必要的信息,如姓名、性别、工作单位、身份证号码等,然后由航空公司对相关的信息进行处理,乘客为主要的信息提供者,而旅行社作为信息交换的中间桥梁,将乘客提供的相关字段提交给航空公司。

 

 
  

图2.1 基本数据流图

2.1.3 系统约束与假设

我们规定在使用系统的过程中,乘客所提供的数据真实有效切符合相关法律,旅行社在输入信息时能按照系统要求做到准确无误,且在数据传输的过程中不会出现相关的异常,与此同时,航空公司在处理信息时不会出现异常。

2.2 数据流程图 (DFD)

2.2.1 定义

数据流图或数据流程图(Data Flow Diagram)是结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。在结构化开发方法中,数据流图是需求分析阶段产生的结果,它从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程。

2.2.2 数据流图的细化

基于2.1.2中的图2.1基本数据流图,我们得到了系统中大致的数据流向,我们可以基于此继续细化其中的数据。

由于订票系统是设立在航空公司之中,那么我们首先可以将“航空公司”更改为我们的“订票系统”,用于表示处理我们传递的数据。

 

 
  

图2.2 DFD第一次优化

其次,我们可以将整个订票系统的功能划分为三个阶段,分别是由旅行社“记录乘客信息”并“传递乘客信息”给系统,由系统“安排机票”并“打印取票凭证”,交给乘客。

由此我们可以得到第二次优化过的DFD,如下:

 

 
  

图2.3(a) DFD第二次优化

与此同时,在乘客进行取票时,系统还需“核对乘客信息”并“打印机票”给乘客:

图2.3(b)

 
  

 DFD第二次优化

最终,我们得到了系统的数据流图如图2.3所示。

2.3 用例视图(User Case)

2.3.1 定义

用例图(User Case)是指由参与者(Actor)、用例(Use Case),边界以及它们之间的关系构成的用于描述系统功能的视图,是系统的蓝图。用例图呈现了一些参与者,一些用例,以及它们之间的关系,主要用于对系统、子系统或类的功能行为进行建模

我们可以根据在2.2中得到的数据流程图,分析得到系统的三个用户的用例图。

 

 

 

 
  

图2.4 机票预订系统用例图

 

2.3.2 用例分析与详述

2.3.2.1 参与者(Actor)

  1.  Passager 乘客
  2.  Agency 旅行社
  3.  System(Airline Company)预订系统(航空公司)

2.3.2.2 用例(Use Case):

  1.  Booking(预订机票)

用例参与者:系统,旅行社

用例说明:旅行社向系统输入信息并预订机票

  1.  ManageBill(管理账单)

用例参与者:系统,旅行社

用例说明:系统与旅行社进行账单的查询,添加等管理操作

  1.  ManagePassanger(管理乘客)

用例参与者:系统,旅行社

用例说明:系统与旅行社进行预定机票的乘客的查询,添加等管理操作

  1.  Searching(查询机票信息)

用例参与者:系统,旅行社,乘客

用例说明:系统,旅行社与乘客对相关的机票信息进行查询

  1.  SubmitRequest(提交订票申请)

用例参与者:旅行社,乘客

用例说明:乘客向旅行社提交订票申请

  1.  PickUpTickets(取票)

用例参与者:系统,乘客

用例说明:系统向乘客提供取票凭证

  1.  ManagePick-up(管理取票信息)

用例参与者:系统

用例说明:系统对所有的取票信息进行的查询,添加等管理操作

三. 系统分析

3.1 类图(Class diagram)设计

3.1.1 定义与分析

类图(Class diagram)是显示模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系类图不显示暂时性的信息。类图是面向对象建模的主要组成部分,是一种静态的结构图,描述了系统的类的集合,类的属性和类之间的关系,可以简化了人们对系统的理解。

我们可以根据之前2.3中的用例图,结合具体问题并稍作修改,通过面向对象的相关知识,我们可以得到程序中包含的类有:

  1. System (系统)
  2. Passanger (乘客)
  3. Agency (旅行社)
  4. Manage (管理)
  5. Searching (查找)

并通过分析类之前的关系,我们可以得到本系统的类图如下:

 

 

 
  

图3.1 类图设计及类的泛化

 

3.1.2 类分析与详述

  1. Searching(查找)

Searching类是Passanger类,Agency类与System类的基类。

其中包含的方法有:

+ Searching(String cityFrom,String cityTo):  bool

public修饰,返回值为bool,参数为String cityFrom,String cityTo,函数名为Searching,用于查询机票的相关信息,参数需输入出发地与目的地,将会显示具体的信息并返回true,如果无条目则返回false。

  1. Manage(管理)

Manage类是Agency类与System类的基类。

其中包含的属性有:

+ passangerList: String []

public修饰,String类型的字符串数组,用于存放对应乘客的个人信息。

+ billList:String[]

public修饰,String类型的字符串数组,用于存放对应乘客的账单信息。

其中包含的方法有:

+ ManageBill():bool

public修饰,返回值为bool,参数为void,函数名为ManageBill,用于管理乘客的账单,对账单信息进行增删改查等相关操作。操作成功将会返回true,否则返回false。

+ ManagePassanger():bool

public修饰,返回值为bool,参数为void,函数名为Manage- Passanger,用于管理乘客的个人信息,对个人信息进行增删改查等相关操作。操作成功将会返回true,否则返回false。

  1. System(系统)

继承自Manage类与Searching类。

其中包含的方法有:

+ ManagePick-up(String idNum):void

public修饰,返回值为void,参数为String idNum,函数名为ManagePick-up,用于利用乘客的身份证号码(idNum),查找并打印乘客的取票凭证。

  1. Passanger(乘客)

继承自Searching类。

其中包含的属性有:

+ name: String

public修饰,String类型,用于存放对应乘客的姓名。

+ sex: Char

public修饰,Char类型,用于存放对应乘客的性别,用M与F表示。

+ callNum: unsign long

public修饰,unsign long类型,用于存放对应乘客的电话号码。

+ idNum: String

public修饰,String类型,用于存放对应乘客的身份证号码。

+ workUnit:String

public修饰,String类型,用于存放对应乘客的工作单位。

其中包含的方法有:

+ SubmitRequest(String cityFrom,String cityTo): bool

public修饰,返回值为bool,参数为String cityFrom,String cityTo,函数名为SubmitRequest,用于乘客在输入自己的出发地与目的地后,向旅行社提交订票申请,成功提交返回true,否则返回false。

+ PickUpTickets(String idNum): bool

public修饰,返回值为bool,参数为String idNum,函数名为PickUpTickets,用于乘客输入自己的身份证号码后,获取取票凭证,成功提交返回true,否则返回false。

  1. Agency(旅行社)

继承自Manage类与Searching类。

其中包含的属性有:

+ name: String

public修饰,String类型,用于存放旅行社的名称。

其中包含的方法有:

+ Booking(String planeNum, int time): bool

public修饰,返回值为bool,参数为String planeNum, int time,函数名为Booking,用于旅行社输入对应的航班号与时间后,进行订票操作,成功返回true,否则返回false。

3.2 时序图(Sequence Diagram)分析

3.2.1 定义

时序图(Sequence Diagram),又名序列图、循序图,是一种UML交互图。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作,可以表示用例的行为顺序,当执行一个用例行为时,其中的每条消息对应一个类操作或状态机中引起转换的触发事件。

我们可以根据3.1中的类图获得相关用例参与者的程序动作,然后经过分析,可以获得具体的用例时序图。

  1.  Passanger(乘客)

乘客首先需要从系统中查询自己所需要的机票,记录下相关的信息,之后将相关的机票信息提交给旅行社,由旅行社安排机票,并获得印出取票通知和账单,在出发前用身份证号码利用取票通知在系统取出机票。

 

 

 
  

图3.2.1 Passanger时序图

 

  1.  Agency(旅行社)

旅行社首先接收到乘客方面传输的订票申请,其次进行对应机票的查询,并向系统提交订票申请,由系统返回对应乘客的取票信息与账单,并下发给乘客。

 

 

 

 

 

 

 

 

 

 

 

图3.2.2 Agency时序图

 

  1.  System(系统)

系统收到乘客的查询请求返回对应的机票信息,之后接收旅行舍发出的预定申请,安排机票,并返回相关的取票信息和账单,最后乘客提出取票请求,系统打印机票。

 

 
  

图3.2.3 System时序图

本次课程设计实验,通过设计“机票预订系统”,并利用软件工程导论中面向对象方法学的知识,从系统的需求分析开始,利用数据流图理清预订系统的整个数据流向和整体流程,然后利用用例图,进行系统相关功能的设计。系统分析中我们基于需求分析中的相关内容,进行类图的绘制与类之间关系的设计,最后利用时序图明晰系统中各个角色的操作流程,完成了对整个机票预订系统的前期系统分析。

  • 9
    点赞
  • 134
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
航空订票管理系统软件项目管理课程设计报告 1 / 2 软件项目管理 课程设计报告 专 业: 软件工程 年 级: 学 号: 学生姓名: 题目名称: 航空订票管理系统 指导老师: 完成时间: 航空订票管理系统软件项目管理课程设计报告全文共47页,当前为第1页。 航空订票管理系统软件项目管理课程设计报告全文共47页,当前为第1页。 1、项目概述 目前,国内航空公司数量和规模都在扩大,国外航空公司也纷纷着陆中国,这些航空公司之间竞争可谓日益激烈。配备一个安全、高效、灵活、可靠客户服务中心系统对于航空公司加强客户服务质量,提高客户服务水平,扩展业务途径,维护公众形象,提高工作效率必将发挥重要作用。 对航空公司来说,航空订票管理系统既能扩大服务范围,扩大公司影响,减少营业费用,又对稳固航空公司客源有着重要辅助作用;站在旅客角度,航空公司提供这种服务提供了更多方便,节省了很多时间。建设航空订票管理系统是体现和提高航空公司领导业绩一条捷径,此外还具有重要意义: 1、改善航空公司服务质量; 2、创造和提升航空公司品牌优势; 3、优化航空公司服务流程; 4、提升信息化水平; 2、工作任务(Statement Of Work,SOW)书 进入信息时代后,人们对航空订票运作实现信息化管理要求越来越高,随着社会生活节奏化,为了方便大众 ,提高工作效率,该系统建设实现对航空订票高效率信息化管理。该系统一方面实现对大众自助服务功能;如:网上订票、退票、查询等功能。另外还要实现系统管理员对整个系统资源信息化管理,如:用户管理。 航空订票管理系统软件项目管理课程设计报告全文共47页,当前为第2页。一、整体要求 航空订票管理系统软件项目管理课程设计报告全文共47页,当前为第2页。 1.系统用例图 2.用例描述 (1)航班查询 查看航班信息 基本查询,从下拉列表中选择航班或起点或终点信息 综合查询,手动输入航班基本信息 (2)订票 输入航班信息 显示航班信息,以及打折后票价信息,询问信息是否正确 正确 输入个人信息 完成订票 不正确 返回订票初始界面 航空订票管理系统软件项目管理课程设计报告全文共47页,当前为第3页。(3)退票 航空订票管理系统软件项目管理课程设计报告全文共47页,当前为第3页。 输入将退票序号 显示票具体信息,并询问是否退票 退票成功,更新顾客数据库 (4)管理 登陆 进入管理界面 选择添加、更新、删除航班,或查看航班具体信息等业务 添加 输入添加航班具体信息 更新航 数据库 更新 输入所要更改航班具体信息 更新航班数据库 删除 选择所要删除航班 更新航班数据库 查看航班具体信息 显示数据库中所有航班具体信息 二、 程序描述 (1)服务器端程序: 本套航空订票系统软件服务器端应用程序,使用java编写前台控制软件,管理员 通过使用该软件来进行对数据库中数据进行管理。 (2)后台数据库: 本套航空订票系统软件后台数据库使用Microsoft SQL Server 2000来搭建后台数据库服务器,用来存放所有数据。 (3)功能 1.服务器端主要功能 2.订票信息查询功能: a.查询航班信息包括航班号、时间、地点等信息。 b.查询及票价格包括起始地、抵达地、、机票价格等信息。 c.查询订票人详细信息: 精确查询:输入订票人身份证号码查询订票人详细信息。 航空订票管理系统软件项目管理课程设计报告全文共47页,当前为第4页。 模糊查询:输入订票人姓名(或订票人姓或是年龄或是性别)查询出一系列相关信息,然后可从小范围内找到订票人详细信息。 航空订票管理系统软件项目管理课程设计报告全文共47页,当前为第4页。 d.查询乘客详细信息: 精确查询:输入乘客身份证号码查询乘客详细信息。 模糊查询:输入乘客姓名(或乘客姓或是年龄或是性别)查询出一系列相关信息,然后可从小范围内找到乘客详细信息 3.订票功能: 1)填写订票人详细信息其中包括: 姓名、身份证号码、联系电话、地址等信息。 2)填写订票详细信息,其中包括: 航班编号、订票时间、订票数量等信息。 4.录入信息功能 1)取票功能:根据输入订票人身份证号验证订票人身份后,输入详细乘客信息并进行保存。 2)直接购票:直接输入乘客详细信息并保存(不通过订票人)。 3)录入航班信息:录入航班相关信息。 4)订票人取消订票:保存订票人取消订票信息。 5.修改功能 1)修改乘客信息:将查找到乘客信息,进行修改,然后进行保存。 2)修改订票人信息:将查找到订票人信息进行修改然后进行保存。 3)修改航班信息:将查找到航班信息进行修改后保存。 6.删除功能 1)删除乘客信息:将查找到乘客信息,进行删除。 2)删除订票人信息:将查找到订票人信息进行删除。 3)删除航班信息:将查找到航班信息进行删除。 (4)性能 a.灵活性 当需

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值