软件项目详细设计文档1127Word文档格式.docx
《软件项目详细设计文档1127Word文档格式.docx》由会员分享,可在线阅读,更多相关《软件项目详细设计文档1127Word文档格式.docx(37页珍藏版)》请在冰豆网上搜索。
2012-11-25
3
修改数据库设计
邓志赟
0.3
1.引言
1.1编写目的和范围
本详细设计说明书编写的目的是说明程序模块的设计考虑,包括程序描述、输入/输出、算法和流程逻辑等,为软件编程和系统维护提供基础。
本说明书的预期读者为系统设计人员、软件开发人员、软件测试人员和项目评审人员。
1.2术语表
术语或缩略语
说明性定义
TBA
TicketBookingAgent,机票预订代理
CP
CommonPassenger,普通乘客
VIP
VeryimportantPerson,VIP乘客
4
ET
e-ticket,电子机票
5
PT
PaperTicket,纸质机票
1.3参考资料
资料名称
文件编号、版本
资料存放地点
《BSARS可行性分析说明书》
v1.2
DD-FR-01
《BSARS项目计划》
《BSARS需求分析说明书》
《BSARS词汇表说明书》
《BSARS角色表说明书》
《BSARS架构设计说明书》
《BSARS概要设计说明书》
《BSARS数据库设计说明书》
1.4使用的文字处理和绘图工具
文字处理软件:
MicrosoftOffice2010
UML绘图工具:
RationalRose7
数据库绘图工具:
PowerDesigner15
2.全局数据结构说明
2.1常量
2.1.1城市
定义
说明
丹佛,int,1位
华盛顿特区,int,1位
洛杉矶,int,1位
纽约,int,1位
亚特兰大,int,1位
6
克利夫兰,int,1位
2.1.2座位等级
头等舱,int,1位
公务舱,int,1位
经济舱,int,1位
2.1.3座位状态
有人,int,1位
空座,int,1位
2.1.4乘客类型
普通乘客,int,1位
VIP乘客,int,1位
2.1.5预订方式
普通预订,int,1位
VIP预订,int,1位
2.1.6支付方式
普通支付,int,1位
VIP支付,int,1位
2.1.7机票类型
普通机票,int,1位
电子机票,int,1位
2.2变量
无
2.3数据结构
根据系统需求,定义以下数据结构。
2.3.1航班
id
id,Long
number
航班号,String
leaveCityId
出发城市id,Long
leaveTime
出发时间,Date
arriveCityId
到达城市id,Long
arriveTime
到达时间,Date
2.3.2机票
id,Long
机票号,String
flightId
航班id,Long
seatId
座位id,Long
price
机票价格,float
2.3.3乘客
id,Long,32位
name
姓名,String,32位
personaNumber
身份证号,String,32位
cellphone
手机号码,String,16位
email
电子邮箱,String,64位
address
联系地址,String,128位
account
银行账号,String,32位
isVIP
VIP检验位,int,1位,0为普通乘客,1为VIP
consumeCount
消费总额,float
mileageCount
飞行里数,float
2.3.4座位
planId
飞机id,Long,32位
座位号,String,8位
level
座位等级,int,1为头等舱,2为公务舱,3经济舱
2.3.5飞机
名称,String
飞机号,String
2.3.6城市
名字,String
3.模块设计
3.1用例图
3.1.1系统用例
3.1.2查询航班用例
3.1.3票务管理用例
3.1.4乘客管理用例
3.2功能设计说明
3.2.1查询航班
航班查询模块主要分为以下几个子模块:
查询航班号、查询往返价格、查询出发/到达日期时间和查询座位等级。
3.2.1.1查询航班号
3.2.1.1.1功能描述
预订代理通过输入航班号查询航班,系统返回查询结果,显示对应航班信息。
3.2.1.1.2输入数据
根据键盘输入航班号,查询DBMS的Flight表,检验航班号正确性。
3.2.1.1.3输出数据
系统返回查询结果,显示一个航班信息。
3.2.1.1.4业务算法和流程
3.2.1.1.5限制条件
无。
3.2.1.1.6其他说明
3.2.1.2查询往返价格
3.2.1.2.1功能描述
预订代理通过选择航班价格范围,系统返回查询结果,显示对应价格的航班信息。
3.2.1.2.2输入数据
根据键盘选择的机票价格范围,校验机票范围参数的正确性。
3.2.1.2.3输出数据
系统返回查询结果,显示该价格范围的航班列表信息
3.2.1.2.4业务算法和流程
3.2.1.2.5限制条件
3.2.1.2.6其他说明
3.2.1.3查询出发/到达日期时间
3.2.1.3.1功能描述
预订代理通过输入出发日期时间、到达日期时间,系统返回查询结果,显示对应时间的航班信息。
3.2.1.3.2输入数据
根据键盘输入出发日期时间、出发日期时间,校验日期时间的正确性。
3.2.1.3.3输出数据
系统返回查询结果,显示航班列表信息。
3.2.1.3.4业务算法和流程
3.2.1.3.5限制条件
3.2.1.3.6其他说明
3.2.1.4查询座位等级
3.2.1.4.1功能描述
预订代理通过选择座位等级,分别是头等舱座位、公务舱座位、经济舱座位,系统返回查询结果,显示该航班该等级的作为。
3.2.1.4.2输入数据
根据键盘选择的座位等级,查询DBMS中的Seat表,校验座位等级参数的正确性。
3.2.1.4.3输出数据
系统返回查询结果,显示该航班该等级座位列表信息。
3.2.1.4.4业务算法和流程
3.2.1.4.5限制条件
查询并选定航班。
3.2.1.4.6其他说明
3.2.2票务管理模块
票务管理模块主要分为以下几个子模块:
预订机票、支付机票、打印机票和取消机票。
3.2.2.1预订机票模块
3.2.2.1.1功能描述
预订代理根据乘客选定的航班,询问预订方式。
如果是VIP预订,则输入VIP号,录入VIP乘客信息。
如果是普通预订,则直接录入乘客信息。
接着系统分配座位,并预留24小时,等待乘客支付机票。
3.2.2.1.2输入数据
(1)如果是VIP预订,键盘输入VIP号,校验VIP号正确性。
(2)如果是普通预订,键盘输入乘客信息。
3.2.2.1.3输出数据
系统返回操作结果,显示被预订的机票信息。
3.2.2.1.4业务算法和流程
3.2.2.1.5限制条件
3.2.2.1.6其他说明
3.2.2.2支付机票
3.2.2.2.1功能描述
预订代理根据乘客选定的航班,询问支付方式。
如果是VIP支付,则输入VIP号,扣除飞行里数,接着输入VIP支付账户,并扣除费用。
如果普通支付,则输入乘客支付账户,并扣除费用。
确认支付后,系统封锁该座位。
3.2.2.2.2输入数据
(1)如果是VIP支付,键盘输入VIP号,校验VIP号正确性。
(2)如果是普通支付,键盘输入乘客支付账号。
3.2.2.2.3输出数据
系统返回操作结果,显示已支付的机票信息。
3.2.2.2.4业务算法和流程
3.2.2.2.5限制条件
机票被预订,并未超过24小时的保留时间。
3.2.2.2.6其他说明
3.2.2.3打印机票
3.2.2.3.1功能描述
预订代理根据乘客选定并已支付的航班,询问打印机票方式。
如果是电子机票,则根据乘客提供的电子邮箱或手机号码,发送机票号。
如果是普通机票,则根据乘客提供的联系地址,发送邮件。
3.2.2.3.2输入数据
键盘输入机票号,校验机票号正确性。
3.2.2.3.3输出数据
系统返回操作结果,显示已打印的机票信息。
3.2.2.3.4业务算法和流程
3.2.2.3.5限制条件
机票已支付。
3.2.2.3.6其他说明
3.2.2.4取消机票
3.2.2.4.1功能描述
预订代理根据乘客提供的机票号,查询出该机票,解封该座位,并返回支付金额和飞行恢复飞信里数,最后删除该机票。
3.2.2.4.2输入数据
3.2.2.4.3输出数据
系统返回操作结果,显示已取消的机票信息。
3.2.2.4.4业务算法和流程
3.2.2.4.5限制条件
机票已预订,或机票已支付。
3.2.2.4.6其他说明
3.2.3乘客管理
乘客管理模块主要分为以下几个子模块:
记录乘客信息和VIP管理。
3.2.3.1录入乘客信息
3.2.3.2VIP管理
4.类设计
4.1总体架构设计
系统的总体架构设计采用分层模型,分为控制层、业务逻辑层、数据操作层和实体层。
对应的包分别是manager包、service包、dao包和entity包。
4.1.1控制层
控制层是系统提供给外界的功能接口,对于外部的请求,首先过滤并校验请求参数,然后才调用业务逻辑层接口,执行相应操作,对外部请求做出响应。
根据本系统的模块划分,在manager包下,查询航班模块的功能由FlightManager提供、票务管理模块的功能由TicketManager提供、乘客管理模块的功能由PassengerManager提供。
4.1.2业务逻辑层
业务逻辑层是为控制层提供完成系统功能的接口,主要处理一个业务的逻辑。
在service包下,FlightService向FlightManger提供接口,TicketService向TicketManager提供接口,PassengerService向PassengerManager提供接口。
4.1.3数据操作层
数据操作层向业务逻辑层提供接口,为处理一个业务提供数据,调用DBMS提供的接口,完成对数据的处理。
为了系统的扩展性,本层定义了数据操作的接口,和基于某种技术的具体实现。
在dao包下,定义FlightDao接口和FlightDaoImpl实现类,定义TicketDao接口和TicketDaoImpl实现类,定义PassengerDao接口和PassengerDaoImpl实现类,定义SeatDao接口和SeatDaoImpl实现类,定义PlaneDao接口和PlaneDaoImpl实现类,定义CityDao接口和CityDaoImpl实现类。
4.1.4实体层
实体层是系统各层实质操作的数据,根据系统需求,在entity包下,分为Flight、Ticket、Passenger、Seat、Plane和City。
4.2模块详细设计
根据系统需求,将系统划分为一下模块,flight模块,ticket模块和passenger模块。
4.2.1flight模块
4.2.1.1FlightManager
属性定义
flightService
FlightService的实例对象,用于调用所提供的接口。
flight
Flight的实例对象,用于存放数据
方法定义
showFlight()
查询所有有效的航班,public,无参数,返回List<
Flight>
findFlightByNumber()
根据航班号查询航班,public,参数为Long:
flightNumber,返回为Flight
findFlightByLevel()
根据座位等级查询航班,public,参数为Integer:
seatLevet,返回为Flight
findFlightByPrice()
根据往返价格号查询航班,public,参数为Float:
price,返回为Flight
findFlightByTime()
根据出发/到达日期时间查询航班,public,参数为Date:
leaveTime、Date:
arriveTime,返回为Flight
4.2.1.2FlightService
flightDao
FlightDao的实例对象,用于调用所提供的接口。
查询所有有效的航班,private,无参数,返回List<
根据航班号查询航班,private,参数为Long:
根据座位等级查询航班,privat,参数为Integer:
根据往返价格号查询航班,privat,参数为Float:
根据出发/到达日期时间查询航班,privat,参数为Date:
4.2.1.3FlightDao
flightDaoImpl
FlightDaoImpl的实例对象,用于调用所提供的接口。
show()
查询所有有效的航班,无参数,返回List<
find()
查找一条航班记录,参数为Long:
get()
取得一条航班记录,无参数为,返回为Flight
add()
增加一条航班记录,参数为Flight:
flight,返回为boolean
update()
更新一条航班记录,参数为Flight:
remove()
删除一条航班记录,参数为Flight:
4.2.1.4FlightDaoImpl
4.2.1.5Flight
属性定义详情参考章节2.3.1航班
getter()
定义属性只读方法
Setter()
定义属性只写方法
4.2.2ticke模块
4.2.2.1TicketManger
ticketService
TicketService的实例对象,用于调用所提供的接口。
ticket
Ticket的实例对象,用于存放数据
showTicket()
查询所有有效的机票,public,无参数,返回List<
Ticket>
bookTicket()
预订机票,public,参数为Ticket:
ticket,返回为Ticket
payTicket()
支付机票,public,参数为Ticket:
printTicket()
打印机票,public,参数为Ticket:
cancleTicket()
取消机票,public,参数为Ticket:
4.2.2.2TicketService
ticketDao
TicketDao的实例对象,用于调用所提供的接口。
seatDao
SeatDao的实例对象,用于调用所提供的接口。
seat
Seat的实例对象,用于存放数据
planeDao
PlaneDao的实例对象,用于调用所提供的接口。
plane
Plane的实例对象,用于存放数据
查询所有有效的机票,private,无参数,返回List<
预订机票,private,参数为Ticket:
支付机票,private,参数为Ticket:
打印机票,private,参数为Ticket:
取消机票,private,参数为Ticket:
4.2.2.3TicketDao
ticketDaoImpl
TicketDaoImpl的实例对象,用于调用所提供的接口。
查询所有有效的机票,无参数,返回List<
查找一条机票记录,参数为String:
ticketNumber,返回为Ticket
取得一条机票记录,无参数为,返回为Ticket
增加一条机票记录,参数为Ticket:
ticket,返回为boolean
更新一条机票记录,参数为Ticket:
删除一条机票记录,参数为Ticket:
4.2.2.4SeatDao
seatDaoImpl
SeatDaoImpl的实例对象,用于调用所提供的接口。
查询所有有效的座位,无参数,返回List<
Seat>
查找一条座位记录,参数为String:
取得一条座位记录,无参数为,返回为Seat
增加一条座位记录,参数为Seat:
seat,返回为boolean
更新一条座位记录,参数为Seat:
删除一条座位记录,参数为Seat:
4.2.2.5PlaneDao
planeDaoImpl
PlaneDaoImpl的实例对象,用于调用所提供的接口。
查询所有有效的飞机,无参数,返回List<
Plane>
查找一条飞机记录,参数为Long:
取得一条飞机记录,无参数为,返回为Plane
增加一条飞机记录,参数为Plane:
plane,返回为boolean
更新一条飞机记录,参数为Plane:
删除一条飞机记录,参数为Plane:
4.2.2.6TicketDaoImpl
4.2.2.7SeatDaoImpl