SAD—系统分析和设计 “机票预订系统”_软件工程导论大作业
求打赏求收藏求转发!
提供PDF资源
https://download.csdn.net/download/weixin_43781565/12428947
(待审核后可供下载)
Peace and love
摘要
随着社会水平的提高和国家经济的发展,人们对美好生活的定义正在日益提高,而旅游正成为人们享受美好的生活的第一大方式。随着航空业的不断进步,飞机票价日益“亲民化”,也使得越来越的人们选择乘坐飞机作为自己的出游方式,节约时间成了飞机的主要优势。
但面对越来越庞大的乘客数量,订飞机票的方式也早已不再像过去的人工窗口了。随着互联网的发展,智能手机,移动支付等技术的出现,使得在线订票成为可能。所以,作为任何一个有前瞻性的航空公司,开发自己公司的机票预定系统都是一件非常有必要的事。通过系统将旅行社,乘客与航空公司联结起来,实验机票订购一体化的流水线操作,不仅能降低售卖机票的人工成本,还能节约乘客与旅行社的订票时间,改善乘客的旅行体验,并提升航空公司的知名度。
为了使航空公司适应目前的需求,促进机票预订管理信息化,不断满足乘客预订机票的要求,争取更好的经济效益,开发一个适用于航空公司的机票预定系统,是一件事半功倍的策略。
因此,我们就“机票预定系统”进行系统分析和设计,分析出系统的需求,对系统的基本功能进行设计,得出系统使用等方面的问题,并在最后对本系统做出客观评价,指明了系统的现实意义、缺点以及系统的升级方向。
关键词:SAD 机票预订 系统分析 需求分析 功能设计
目录
摘要 1
一. 概述 1
1.1 引言 1
1.2 编写目的 1
1.3 问题描述 1
1.4 参考文献 1
二.需求分析 1
2.1 项目概述 1
2.1.1 系统目标 1
2.1.2 用户及数据 1
2.1.3 系统约束与假设 2
2.2 数据流程图 (DFD) 2
2.2.1 定义 2
2.2.2 数据流图的细化 2
2.3 用例视图(User Case) 3
2.3.1 定义 3
2.3.2 用例分析与详述 4
三. 系统分析 5
3.1 类图(Class diagram)设计 5
3.1.1 定义与分析 5
3.1.2 类分析与详述 6
3.2 时序图(Sequence Diagram)分析 8
3.2.1 定义 8
四. 总结 10
一. 概述
1.1 引言
本次课程设计实验,主要是通过设计一个“机票预订系统”,训练我们在软件工程导论课程中学习的有关面向对象设计部分,以及软件系统设计部分的相关知识的应用能力。通过需求分析,系统设计,结论等部分,运用学习的知识以及相关的图表,实现“机票预订系统”的原型设计与系统分析文档的编写。
1.2 编写目的
完成“机票预订系统”的需求分析与系统设计,利用面向对象的思想拆分细化相关的功能,进行类(class)的设计,完成编码前的主要工作。
1.3 问题描述
为方便乘客,某航空公司拟开发一个机票预订系统。旅行社把预订机票的乘客信息(姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地等)输入进该系统,系统为乘客安排航班,印出取票通知和账单,乘客在飞机起飞的前一天凭取票通知和账单交款取票,系统校对无误即印出机票给乘客。
1.4 参考文献
《软件工程导论》(第六版),张海藩 牟永敏编著,清华大学出版社
- 需求分析
2.1 项目概述
2.1.1 系统目标
设计机票预订系统,让旅行社通过该系统为乘客预定制定航空公司的机票,并打印相关凭证,以达到流水线操作。
2.1.2 用户及数据
系统中的用户分为三个,分别是:
- 航空公司
- 乘客
- 旅行社
其中主要的对象是航空公司,旅行社和用户为航空公司提供必要的信息,如姓名、性别、工作单位、身份证号码等,然后由航空公司对相关的信息进行处理,乘客为主要的信息提供者,而旅行社作为信息交换的中间桥梁,将乘客提供的相关字段提交给航空公司。
图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)
- Passager 乘客
- Agency 旅行社
- System(Airline Company)预订系统(航空公司)
2.3.2.2 用例(Use Case):
- Booking(预订机票)
用例参与者:系统,旅行社
用例说明:旅行社向系统输入信息并预订机票
- ManageBill(管理账单)
用例参与者:系统,旅行社
用例说明:系统与旅行社进行账单的查询,添加等管理操作
- ManagePassanger(管理乘客)
用例参与者:系统,旅行社
用例说明:系统与旅行社进行预定机票的乘客的查询,添加等管理操作
- Searching(查询机票信息)
用例参与者:系统,旅行社,乘客
用例说明:系统,旅行社与乘客对相关的机票信息进行查询
- SubmitRequest(提交订票申请)
用例参与者:旅行社,乘客
用例说明:乘客向旅行社提交订票申请
- PickUpTickets(取票)
用例参与者:系统,乘客
用例说明:系统向乘客提供取票凭证
- ManagePick-up(管理取票信息)
用例参与者:系统
用例说明:系统对所有的取票信息进行的查询,添加等管理操作
三. 系统分析
3.1 类图(Class diagram)设计
3.1.1 定义与分析
类图(Class diagram)是显示模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系类图不显示暂时性的信息。类图是面向对象建模的主要组成部分,是一种静态的结构图,描述了系统的类的集合,类的属性和类之间的关系,可以简化了人们对系统的理解。
我们可以根据之前2.3中的用例图,结合具体问题并稍作修改,通过面向对象的相关知识,我们可以得到程序中包含的类有:
- System (系统)
- Passanger (乘客)
- Agency (旅行社)
- Manage (管理)
- Searching (查找)
并通过分析类之前的关系,我们可以得到本系统的类图如下:
图3.1 类图设计及类的泛化
3.1.2 类分析与详述
- Searching(查找)
Searching类是Passanger类,Agency类与System类的基类。
其中包含的方法有:
+ Searching(String cityFrom,String cityTo): bool
public修饰,返回值为bool,参数为String cityFrom,String cityTo,函数名为Searching,用于查询机票的相关信息,参数需输入出发地与目的地,将会显示具体的信息并返回true,如果无条目则返回false。
- 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。
- System(系统)
继承自Manage类与Searching类。
其中包含的方法有:
+ ManagePick-up(String idNum):void
public修饰,返回值为void,参数为String idNum,函数名为ManagePick-up,用于利用乘客的身份证号码(idNum),查找并打印乘客的取票凭证。
- 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。
- 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中的类图获得相关用例参与者的程序动作,然后经过分析,可以获得具体的用例时序图。
- Passanger(乘客)
乘客首先需要从系统中查询自己所需要的机票,记录下相关的信息,之后将相关的机票信息提交给旅行社,由旅行社安排机票,并获得印出取票通知和账单,在出发前用身份证号码利用取票通知在系统取出机票。
图3.2.1 Passanger时序图
- Agency(旅行社)
旅行社首先接收到乘客方面传输的订票申请,其次进行对应机票的查询,并向系统提交订票申请,由系统返回对应乘客的取票信息与账单,并下发给乘客。
图3.2.2 Agency时序图
- System(系统)
系统收到乘客的查询请求返回对应的机票信息,之后接收旅行舍发出的预定申请,安排机票,并返回相关的取票信息和账单,最后乘客提出取票请求,系统打印机票。
图3.2.3 System时序图
- 总结
本次课程设计实验,通过设计“机票预订系统”,并利用软件工程导论中面向对象方法学的知识,从系统的需求分析开始,利用数据流图理清预订系统的整个数据流向和整体流程,然后利用用例图,进行系统相关功能的设计。系统分析中我们基于需求分析中的相关内容,进行类图的绘制与类之间关系的设计,最后利用时序图明晰系统中各个角色的操作流程,完成了对整个机票预订系统的前期系统分析。
SAD—系统分析和设计 “机票预订系统”_软件工程导论大作业相关推荐
- python飞机票预定系统_数据库课程设计 - 机票预订系统
一.机票预定系统 1.1 题目要求 要求具备如下基本功能 班机基本信息的管理: 航班信息的管理: 旅客预定机票.取消预约.付款取票.退票的管理: 查询航班信息.航班预定情况.旅客信息,计算航班满座率. ...
- 基于python机票预定系统_机票预订系统课程设计.doc
软件工程课程设计 PAGE 1 软件工程课程设计说明书 题目:机 票 预 订 系 统 院 系: 专业班级: 学生姓名: 指导教师: 学 号 学生姓名 专业(班级) 设计题目 机票预订系统 设 计 技 ...
- c c mySQL机票设计_期末课程设计之 c++操作mysql完成机票预订系统(vc 6.0配置mysql环境)...
本次大二期末的课程设计题是 完成一个机票预订系统,主要方法是通过c++函数操作mysql数据库来实现系统的功能,程序中还是有些许不足,在此传上请多多指教(毕竟小菜鸟). 程序复制到vc 6.0(原因是 ...
- 机票预订系统活动图_机票预订系统详细设计
机票预订系统详细设计 1 引言 编写目的 在前一阶段(概要设计说明书)中,已解决了实现该系统需求的程序类设计问题.包括如何 把该系统划分成若干个类.决定各类之间的接口.类之间传递的信息,以及数据结构. ...
- 信息系统分析与设计 机票预定管理系统
系统规划 1.1系统开发背景 随着人均收入水平的提高,人们出行的方式也变得多种多样,更多的人会选择节约时间的飞机出行,因此航班数和飞机数量也就随之增加.为了增强用户的购票体验,需要一种如本实验所做的机 ...
- 软件需求分析报告 -机票预订系统
课 题: 机票预订系统 学生姓名: 学 号: 专业班级: 指导教师: 同组成员: 2022-2023年第1学期 目录 软件需求分析报告 题目:"机票预定系统" 一.系统的问题描述 ...
- KS001 基于Springboot机票预订系统
基于Springboot机票预订系统 本项目基于Springboot框架构建,使用SpringMvc和Mybatis框架进行相应的开发,数据库采用mysql,前端页面采用html实现,基于Jquery ...
- “日不落”的大学数据库原理课程设计——机票预订信息系统
论文目录展示 文章目录 目录 一.数据库系统的功能描述 二.概念设计模型 三.逻辑模型设计 四.物理模型设计 五.编码实现 六.运行与维护 七.参考文献 八.心得体会 九.下载地址 总结 需求分析 随 ...
- 【项目精选】基于Web的机票预订系统
文章目录 1 摘 要 2 系统相关技术概述 2.1 Java web 2.2 三大框架SSM 2.3 前端框架AngularJS 2.4 数据库MySQL 2.5 数据库Redis 2.6 开发工具E ...
- [软工导论③]实验报告三(机票预订系统的需求分析建模、总体结构设计、详细设计、测试))
[软工导论③]实验报告二(教务管理系统之子系统的需求分析建模.总体结构设计.详细设计.测试)) 实验一 机票预订系统的需求分析 一.目的与任务 目的:确定项目要做什么及其可实施性,在此基础上完成系统的 ...
最新文章
- DymSLAM: 基于几何和运动分割的4D动态场景重建( RAL)
- java jmf 视屏监控的核心代码_Java中利用JMF编写摄像头拍照程序_java
- python电脑上怎么下载-python下载文件的三种方法
- 从龙门镖局看自动化测试
- 菜鸟教程终极篇之Microsoft Windows Pre-installation Environment (Windows PE) 2.0
- 论文浅尝 | KGAT: 用于推荐的知识图注意力网络
- oninput,onpropertychange,onchange的使用方法和差别
- androidstudio打包apk 文件_Android 打包生成APK文件时报lintOptions配置错误
- 算法与数据中台:网约车业务实践
- OpenCV图像处理--opencv摄像头播放视频
- 超干货!彻底搞懂Golang内存管理和垃圾回收
- Eclipse使用大全
- 华为宣布人事调整:余承东调离华为云
- unity制作滚动的天空简易版(在b站学的,此处总结,供学习)
- nexus3仓库搭建
- 枕上诗书-初入红尘,不知人间疾苦,
- JAVA SE知识整合(暂时完结 五万七字)后续分点详解
- GSM模块的调试(一)
- SpringCloud之Springfox和Swagger
- chrome 保存密码_如何在Chrome中管理保存的密码