系统分析与设计文档.docx
- 文档编号:9559759
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:39
- 大小:672.92KB
系统分析与设计文档.docx
《系统分析与设计文档.docx》由会员分享,可在线阅读,更多相关《系统分析与设计文档.docx(39页珍藏版)》请在冰豆网上搜索。
系统分析与设计文档
基于UML的机票预订管理系统的分析与设计
课程名称:
系统分析与设计
项目名称:
机票预订系统
专业:
软件工程
年级:
2015级
小组成员:
XXX
XXX
XXX
机票预订系统项目需求文档
六、系统实现测试与配置29
一、引言
1.1问题的提出
当今世界,以信息技术为主要标志的科技进步日新月异,高科技成果向现实生产力的转化越来越快。
纵观全球经济发展,信息技术和信息产业已经成为经济增长的主要推动力之一,正在改变着传统的生产和经营方式以至生活方式,发达国家经过产业结构的升级和经济结构的转型已进入信息经济阶段。
信息资源已经成为国民经济和社会发展的战略资源,信息化水平也已成为现代水平和综合国力的重要标志。
党和国家已将国民经济和社会信息化放在优先发展位置,体现了先进生产力的客观要求,是一项重要的战略决策。
这是民航加快发展的机遇,更是民航信息化的难得机遇。
随着知识经济的到来,人类已经逐步进入信息化社会,信息增长的速度越来越快,人们希望利用先进的管理理论方法手段来得到并处理越来越多的信息,以提高工作效率和管理水平。
由于信息资源对人们生活的重要性,不断提高信息的收集,传输,加以利用等活动,日益成为人们社会生活的重要组成部分。
网上机票预订管理系统的产生和发展正好满足人们的这种需求。
1.2本文工作和系统开发
本文首先对系统的业务与用户的需求进行了分析,然后对系统的功能进行详细的设计,并在分析与设计的同时用UML建模语言对其建模,采用PowerDesigner工具绘制描述各种模型的图形,目的使开发者与用户更有效的实现功能与理解需求,并使程序人员能顺利的实现系统,在系统的实现阶段重点讲述设计到编码的过渡,以体现UML建模的模型对系统开发带来的好处。
本文的编写结合了面向对象的软件开发方法与UML建模语言的优势与特色,同时与记账管理系统紧密结合。
既体现了面向对象的软件开发思想,又包容了UML建模语言所特有的语言建模优势。
在编写中我们大量的使用UML语言所提供的各种建模图形来描述记账管理系统,例如描述用户需求的用例图,类图,描述系统功能的顺序图,状态图。
1.3系统功能的简介
系统的功能是系统能够做的事情,在本系统中,系统的功能有:
用户模块:
1.用户注册/登录功能:
2.订票功能:
该功能为用户提供简洁的页面呈现,方便用户根据自己的需要预定机票。
3.退票功能:
该功能为用户提供简洁的页面呈现,为用户提供退票功能。
4.查询票据信息功能:
该功能为用户提供简洁的页面呈现,为用户提供查询票据信息。
5.航班预定功能:
该功能为用户提供简洁的页面呈现,用户能够进行航班预定。
6.生成订票列表功能:
系统根据用户订票信息生成订票列表。
7.生成退票信息功能:
系统根据用户退票操作生成退票信息。
8.处理订票功能:
通过该功能,管理员可以处理用户预定的机票,根据航班信息,更改用户实际订票信息。
管理模块:
1.添加航班信息功能:
通过该功能,管理员可以将新的航班信息进行更改,以方便用户能够查询到新的航班信息。
2.修改航班信息功能:
过该功能,管理员可以依照时时的航班情况对航班信息进行修改,更新实际航班信息,以方便用户预定机票。
3.查询航班信息功能:
二、面向对象的UML建模
2.1面向对象的基本思想
面向对象方法是当今软件开发的主流方法,它的基本思想是从现实世界客观存在的事物或者说对象出发来构建系统,并且在构建系统时尽可能运用人类的自然思维方式。
从现实世界中客观存在的事物(即对象)出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式,强调直接以问题域(现实世界)中的事物为中心来思考问题,认识问题,并根据这些事物的本质特点,把它们抽象地表示为系统中的对象,作为系统的基本构成单位(而不是用一些与现实世界中的事物相关比较远,并且没有对应关系的其它概念来构造系统)。
这可以使系统直接地映射问题域,保持问题域中事物及其相互关系的本来面貌。
从世界观的角度可以认为:
面向对象的基本哲学是认为世界是由各种各样具有自己的运动规律和部状态的对象所组成的;不同对象之间的相互作用和通讯构成了完整的现实世界。
因此,人们应当按照现实世界这个本来面貌来理解世界,直接通过对象及其相互关系来反映世界。
这样建立起来的系统才能符合现实世界的本来面目。
从方法学的角度可以认为:
面向对象的方法是面向对象的世界观在开发方法中的直接运用。
它强调系统的结构应该直接与现实世界的结构相对应,应该围绕现实世界中的对象来构造系统,而不是围绕功能来构造系统。
面向对象的四个基本特征有:
(1)封装:
用抽象的数据类型将数据和基于数据的操作封装在一起,数据被保护在抽象数据类型部。
(2)继承:
子类拥有父类的所有数据和操作。
(3)多态:
一个程序中同名的不同方法共存的情况。
(4)重载与重写:
有两种形式的多态
2.2面向对象的软件建模
建模是人们在实际应用中常用而且具有重要作用的一种技术。
例如,人们在建造一座大楼前,先规划出大楼的蓝图;在制造飞机前,先要画出设计图,并可能要建造一个实际模型进行风洞实验;在画一幅油画之前,先要用铅笔勾勒出画的轮廓。
同样的,软件开发人员在实际开发一个复杂的项目之前,也应该先建立系统的模型。
对软件系统进行建模的目的在于:
1.理解应用领域中的知识,捕获用户的需求。
对系统进行分析的过程就是开发者不断学习用户领域知识的过程。
要想建立一个正确的模型,首要的问题就是理解用户领域的知识。
当开发者能建立出一个用户满意的模型时,说明他已经理解了用户领域中的知识,至少是抓住了与将要建立的系统本质有关的知识。
2.与用户沟通。
用户往往不是计算机专家,而开发者往往也不熟悉用户的领域。
二者的沟通就有一定的难度。
通过建立一个双方都能理解的模型有利于这种沟通,可以使项目投资者、分析人员、设计人员、程序员等达成一致,从而为建立正确的软件系统打下良好的基础。
3.进行系统设计。
在编写代码以前,软件系统的模型可以帮助软件开发人员方便的研究软件的多科构架和设计方案,从中找出最适合的解决方案,简化实现。
通过研究一个大型软件系统的模型可以提出多个实际方案并可以对它们进行相互比较。
利用模型可以研究多种设计案,所花费的成本只是实现其中一种方案所花费的成本。
4.使实现细节和需求分开。
软件系统的模型可以从多个角度来描述系统:
有些侧重于系统的外部行为和系统中与现实世界对应的有关信息;有一些则侧重于描述系统中的类以及类的部操作。
通过模型,可以将实现细节和需求分开。
5.设计出有用的实际产品.
通过建模,可以得到这样一些实际产品:
类的声明,数据库结构,配置草案,或者还有初始的用户界面等,这些产品可以直接应用在后边的阶段中。
6.通过模型可以建立系统的文档。
软件系统用视图来组织信息:
静态结构视图,状态机视图,交互视图,反映需求的用例视图等。
通过这些视图可以组织、查找、检查以及编辑大型系统的有关信息。
7.利于我们理解复杂系统。
对大型复杂的系统直接理解往往有困难,通过建立模型,对系统进行抽象,抓住系统的主要方面,这样有利于理解系统。
面向对象建模方法主要从面向对象程序设计领域发展而来,它通过对象对问题域进行完整的映射,对象包括了事物的数据特征和行为特征:
它用结构和连接如实反映问题域中事物间的关系,比如分类、组装等;它通过封装、继承、消息通信等原则使问题域的复杂性得到控制。
所以,面向对象建模方法是对问题域的完整和直接的映射,在模拟现实世界方面具有天然的优势。
面向对象方法支持软件开发中从分析到设计以至实现的各个阶段,且各个阶段均采用一套概念和表达手段,它们之间没有“鸿沟”的存在,几乎不需要什么转化。
面向对象方法还支持和鼓励复用,不仅包括实现的复用,还包括分析、设计等建模成果的复用。
2.3UML建模语言简介
UML又称统模语言或标准建模语言,是始于1997年一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。
UML规用来描述建模的概念有,类(对象的)、对象、关联、职责、行为、接口、用例、包、顺序、协作,以及状态。
UML语言具有以下特点:
1UML已经成为面向对象建模语言的标准
从理论角度讲,UML是三位很有影响的面向对象方法大师以及许多大公司井同努力的成果,Booch,Rumbaugh和Jacobson各自提出的方法及有关著作拥有不少用户和读者,而UML是他们以往研究的继续。
在定义模型元素语义的基础上定义建模语言,使UML在理论上比较健全,具有表达力强、清晰和一致的特点,UML定义的各种图和各种建模元素是来自多种00方法的研究成果汇集。
2UML缺乏过程指导
UML并不是十全十美的东西,最重要的一点是,它只是一种建模语言而非建模方法.
3UML过于复杂
UML在具有丰富的表达力的同时,其复杂性也是惊人的。
UML的开发者称:
只要UML中20%的容就可以表达实际应用中80%的系统。
但UML中并没有给出哪些容是必要的,哪些是可选的。
这给用户的使用带来了不小的麻烦。
三、机票预订系统用例建模
3.1机票预订管理系统业务流程分析
3.1.1查询机票信息流程
1.用户进入系统,输入相应合法的机票信息
2.点击查询,得到机票信息
3.1.2预订机票流程
1.用户登录
2.没有账号,注册。
3.登录成功
4.查询机票信息
5.点击预订,填写相应信息
6.提交订单
7.付款,预订成功。
3.1.3取消订单流程
1.进入系统
2.登录账号
3.查询订单
4.取消订单
3.1.4用户业务顺序图
3.1.5系统管理员业务顺序图
3.2业务需求用例建模阶段
3.2.1业务角色的查找与建立
根据该机票预订管理系统业务流程可知,系统涉及的业务角色有:
用户、系统管理员。
3.2.2角色用例图
3.3业务活动图
3.4系统基本功能描述
四、机票预订系统需求用例建模
4.1各模块用例分析
4.1.1用户管理模块
功能描述:
1.第一次登录的用户,进行注册,输入用户名,密码等信息。
2.修改密码等个人信息
3.用户权限管理,分普通用户,管理员。
4.完善用户信息。
5.用户退出登录。
用例图:
用例编号:
1.1用例名:
用户注册
执行者
普通用户
前置条件
用户进入注册界面
后置条件
用户注册成功
基本路径
1.用户填写基本信息
2.后台系统验证信息的有效性
3.系统把用户信息存入数据库
字段列表
用户名、密码、性别、号、联系方式等
用例编号:
1.2用例名:
用户登录
执行者
普通用户
前置条件
用户已经注册
后置条件
用户已经登录
基本路径
1.用户填写用户名和密码
2.系统验证用户名和密码是否匹配
3.用户登录成功
扩展
1.因为用户名或密码填写失误导致登录失败
字段列表
用户名、密码
用例编号:
1.3用例名:
用户修改信息
执行者
普通用户
前置条件
用户已经登录
后置条件
用户信息已更新
基本路径
1.用户进入个人信息页面
2.用户修改个人信息
3.系统保存信息
字段列表
密码、性别、号、联系方式等
用例编号:
1.4用例名:
用户退出登录
执行者
普通用户
前置条件
用户已经登录
后置条件
该用户名暂时不可用
基本路径
1.用户进入注销页面
2.确认退出
3.系统返回首页
扩展
退出以后可以再次登录。
字段列表
用户名
用例编号:
1.5用例名:
管理员登录
执行者
管理员
前置条件
无
后置条件
管理员已经登录
基本路径
1.管理员输入ID和密码
2.系统验证ID和密码
3.管理员登陆成功
字段列表
管理员ID、管理员密码
4.1.2机票查询模块
功能描述:
用户可以输入飞机始发地、目的地以及乘机日期查找相应航班信息。
用例图:
用例编号:
2..1用例名:
用户查询
执行者:
用户
前置条件:
用户登录系统
后置条件:
显示查询结果
基本路径
1.用户输入查询信息
2.用户浏览查询结果
字段列表
始发地、目的地、出行日期
4.1.3机票预订模块
功能描述:
1.用户选中某班次。
2.用户点击预定该航班。
3.用户输入乘机人信息。
4.用户点击支付订单跳转到相应支付页面。
用例图:
用例编号:
3.1用例名:
用户订票
执行者:
用户
前置条件:
用户已登录
后置条件:
成功生成订单
基本路径:
1.用户登录系统
2.用户选择需购买航班
3.用户输入并提交乘机人信息
4.跳转至支付页面
5.成功生成订单
字段列表
乘机人、号、联系
4.1.4取消订单模块
功能描述:
1.用户选中需退票订单。
2.用户点击退票
3.系统删除该订单
4.后台进行相应费用的计算和支付
5.用户支付相应费用
6.用户查看退订信息
用例图:
用例编号:
4.1用例名:
用户取消订单
执行者:
普通用户
前置条件:
用户已登录,且为普通用户身份
后置条件:
退还相应费用
基本路径:
1.用户进入订单列表页面,并选择需要取消的订单
2.用户点击退票
3.后台计算相应费用
字段列表:
订单流水号
4.1.5订单修改模块(改签)
功能描述:
1.用户选中需改签订单。
2.用户点击改签
3.系统更新该订单
4.后台进行相应费用的计算和支付
5.用户支付相应费用
6.用户查看改签信息
用例图:
用例编号:
5.1用例名:
用户改签
执行者:
用户
前置条件:
用户选择需改签订单
后置条件:
跳转至支付页面
基本路径:
1.用户进入订单列表页面,并选择需要改签的订单
2.用户点击改签
3.后台计算相应费用
字段列表:
订单流水号
用例编号:
5.2用例名:
用户支付
执行者:
普通用户
前置条件:
用户已选择改签,并生成相应支付信息
后置条件:
完成支付,成功改签
基本路径:
1用户在相应页面完成支付操作
2返回订单列表页面
字段列表:
无
4.1.6航班信息维护模块
功能描述:
1.管理员添加航班,并写入航班信息
2.管理员删除航班
3.管理员选择需要修改的航班,并写入新的航班信息
用例图:
用例编号:
7.1用例名:
管理员添加航班
执行者:
管理员
前置条件:
管理员登录
后置条件:
成功添加航班
基本路径:
1.管理员进入航班管理列表
2.管理员点击“添加航班”
3.管理员输入新增航班信息
4.管理员提交新增航班信息
字段列表:
航班号、起始地、目的地、舱位、机型等
用例编号:
7.2用例名:
管理员删除航班信息
执行者:
管理员
前置条件:
管理员登录
后置条件:
成功删除航班
基本路径:
1.管理员进入航班管理列表
2.管理员点击“删除航班”
3.页面提示是否删除
4.返回航班管理列表
字段列表:
无
用例编号:
7.3用例名:
管理员更新航班信息
执行者:
管理员
前置条件:
管理员登录
后置条件:
成功更新航班
基本路径:
1.管理员进入航班管理列表
2.管理员点击“更新航班”
3.管理员输入需更新的航班信息
4.管理员提交更新航班信息
5.返回航班管理列表
字段列表:
航班号、起始地、目的地、舱位、机型等
五、业务领域分析与设计
5.1类图
5.2顺序图(时序图)
5.2.1用户登录
5.2.2用户订票
5.2.3管理员更新信息
5.2.4用户取消订单(退票)
5.3协作图
5.3.1协作图概述:
“顺序图”与“协作图”表述的是相似的消息。
协作图(CollaborationDiagram/CommunicationDiagram,也叫合作图)是一种交互图,强调的是发送和接收消息的对象之间的组织结构。
一个协作图显示了一系列的对象和在这些对象之间的联系以及对象间发送和接收的消息。
对象通常是命名或匿名的类的实例,也可以代表其他事物的实例,例如协作、组件和节点。
使用协作图来说明系统的动态情况。
协作图(CollaborationDiagram/CommunicationDiagram)显示某组对象如何为了由一个用例描述的一个系统事件而与另一组对象进行协作的交互图。
使用协作图可以显示对象角色之间的关系,如为实现某个操作或达到某种结果而在对象间交换的一组消息。
如果需要强调时间和序列,最好选择序列图;如果需要强调上下文相关,最好选择协作图。
协作图用于显示对象之间如何进行交互以执行特定用例或用例中特定部分的行为。
设计员使用协作图和序列图确定并阐明对象的角色,这些对象执行用例的特定事件流。
它们是主要的信息来源,用于确定类的职责和接口。
与顺序图(SequenceDiagram)不同,协作图显示了对象之间的关系。
顺序图和协作图表述的是相似的信息,但表述的方式却不同。
协作图显示对象之间的关系,它更有利于理解对给定对象的所有影响,也更适合过程设计。
以下是系统协作图,以不同的视角表现了操作信息。
5.3.2用户订票协作图
5.3.3乘客账户管理协作图
5.3.4管理员航班信息修改协作图
5.4状态图
5.4.1状态图概述
状态图是描述一个实体基于事件反应的动态行为,显示了该实体如何根据当前所处的状态对不同的事件做出反应的。
通常我们创建一个UML状态图是为了以下的研究目的:
研究类、角色、子系统、或组件的复杂行为。
状态图用于显示状态机(它指定对象所在的状态序列)、使对象达到这些状态的事件和条件、以及达到这些状态时所发生的操作。
关于状态图选取了另外的系统相关模块进行分析。
5.4.2系统状态图
5.4.3登录状态图
5.4.4退票状态图
六、系统实现测试与配置
6.1系统实现的工具与技术
6.1.1工具
建模:
PowerDesigner
数据库:
MySQL
IDE:
myeclipse
浏览器:
火狐浏览器
服务器:
:
Tomcat
项目共享与管理:
SVN
单元测试:
Junit
6.1.2技术
Java、jsp、Servlet、SQL
6.2系统实现方式
本系统基于C/S结构,运用JAVA语言、MySQL数据库开发的管理系统。
系统配置图:
6.3系统实现
6.4系统单元测试
6.5系统共享与管理
七、系统开发的思考
7.1数据库设计问题
长期以来按照传统的系统设计方法,应用程序设计与数据库设计是分别进行的,设计完成后还需要对这两项设计进行协调,因此比较麻烦。
如果采用UML进行系统分析和设计,则可以把系统的应用程序设计和数据库设计统一起来,有效地提高数据库设计的效率和质量,降低开发风险,提高软件部件的可重用性,降低开发成本。
7.2数据库访问设计问题
上面的实体对象映射到数据库表,主要是考虑UML的静态模型到数据库的映射,我们继续讨论动态模型在数据库设计中的实现,主要是数据库存取部分设计。
一般来说,数据库存取部分设计主要有以下几种策略:
(1)每个对象或类自己负责数据库的访问工作.
这种方法不需要专门的服务类,但是业务逻辑和数据操作逻辑都集中在业务类中,任务划分不清晰,业务类既要处理业务逻辑,又要处理数据操作,其中每一个的改动,都会影响到这个业务类。
(2)利用开发环境提供的机制
许多开发环境提供了初级的访问关系数据库的机制,它们是很好的一个开始。
常用的方法包括Microsoft的ODBC机制(开放数据库连接—ODBC)和Java数据库连接(JDBC),绝大多数面向对象的开发环境提供了封装这些标准方法之一的类库。
在本系统地开发中,我们用到了JDBC。
7.3数据库设计
表一:
Adminstrator(管理员的表)
列名
数据类型
允许null值
AdName
Varchar(20)
Password
int
Note
Varchar(500)
√
表二:
LineInfor(飞机相关信息表)
列名
数据类型
允许null值
Airline
Varchar(50)
Origin
Varchar(50)
Destination
Varchar(50)
LeaveTime
Varchar(50)
ArriveTime
Varchar(50)
EconomyNumber
Varchar(50)
EconomyFares
Varchar(50)
BusinessNumber
Varchar(50)
BusinessFares
Varchar(50)
FirstNumber
Varchar(50)
FirstFares
Varchar(50)
Note
Varchar(500)
√
表三:
Reserve(用户订票信息表)
列名
数据结构
允许null值
UserName
Varchar(50)
Name
Varchar(50)
Sex
Varchar(50)
UserID
Varchar(50)
UserTel
Varchar(50)
AirLine
Varchar(50)
Origin
Varchar(50)
Destination
Varchar(50)
EconomyNumber
Varchar(50)
BusinessNumber
Varchar(50)
FirstNumber
Varchar(50)
BookingTime
Varchar(50)
Note
Varchar(500)
√
表四:
UserInfor(用户信息表)
列名
数据类型
允许null值
UserName
Varchar(50)
PassWord
Varchar(50)
Name
Varchar(50)
Sex
Varchar
(2)
UserID
Varchar(50)
UserTel
Varchar(50)
Origin
Varchar(50)
√
Destination
Varchar(50)
√
AirLine
Varchar(50)
√
Note
Varchar(500)
√
7.4性能需求的考虑
为了保证系统能够长期、安全、稳定、可靠、高效的运行,机票预订系统应该满足以下的性能需求:
1.系统处理的准确性和及时性
系统处理的准确性和及时性是系统的必要性能。
在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足企业对信息处理的需求。
在系统开发过程中,必须采用一定的方法保证系统的准确性。
2.系统的开放性和系统的可扩充性
机票预订系统在开发过程中,应该充分考虑以后的可扩充性。
例如企业中管理模块的加入(人事管理、工资管理、日常事务管理等)也会不断的更新和完善。
所有这些,都要求系统提供足够的手段进行功能的调整和扩充为ERP系统。
而要
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 系统分析 设计 文档