1、1、1编写目的:31、2项目背景:31、3文中特殊的定义和缩写:4131定义4132缩写41、4参考资料:42.总体设计:52、1需求概要:52、2软件结构:51、客户机接受信息模块结构图:52.客户机输出信息模块:63.网络接受和发送模块结构:74.服务器模块:83、程序描述:93、1客户机接受信息模块:91、PersInfoExam过程:92、PersInfoInput过程:93.PersInfoTempSave过程:104.CheckNoticeExam过程:105.CheckNoticeInput过程:106
2、.CheckNoticeSave过程:117.IErrorHandle过程:118.JudgeOrderOrCash过程:119.OrderTransPre过程:1110CashTranPre过程:1211.SetCSFlag过程:123.2客户机输出信息模块:121CDataRecPre过程:122DBOperaCheck过程:123JudgeOrderOrCheck过程:124.PersInfoComp1过程:135CheckNoticeOutput过程:136CheckNoticeComp过程:137PersInfoComp2
3、过程:138TicketOutput过程:139OErrorHandle过程:143.3网络接受和发送模块结构:141NetCheck过程:142.RecPre过程:143.NetReceive过程:144NetDataDiscry过程:155NetDataUnpack过程:156SendPre过程:157NetDataPack过程:158NetDataEncry过程:159NetSend过程:1510NetMonitor过程:1511.NErrorHandle过程:1612JudgeCSFlag过程:163.4服务器模块:161
4、.SDataRecPre过程:162.JudgeOrderOrCash过程:163.TicketAvailable过程:164.LockTicket过程:165.AddPers过程:176.GetoutCheck过程:177.InfoComp过程:178GetoutTicket过程:179DelItem过程:1710JudgeCheckTicket过程:1811.CheckTransPre过程:1812.TicketTransPre过程:1813.SetCSFlag过程:1814.DBErrorHandle过程:181
5、5.DBErrorTransPre过程:18五详细设计说明书1、引言:1、1编写目的:在前一阶段(概要设计说明书)中,已解决了实现该系统需求的程序模块设计问题。包括如何把该系统划分成若干个模块、决定各个模块之间的接口、模块之间传递的信息,以及数据结构、模块结构的设计等。在以下的详细设计报告中将对在本阶段中对系统所做的所有详细设计进行说明。在本阶段中,确定应该如何具体地实现所要求的系统,从而在编码阶段可以把这个描述直接翻译成用具体的程序语言书写的程序。主要的工作有:根据在需求分析说明书中所描述的数据、功能、运行、性能需求,并依照概要设计说明书所确定的处理流程、总体结构和模块外
6、部设计,设计软件系统的结构设计、逐个模块的程序描述(包括各模块的功能、性能、输入、输出、算法、程序逻辑、接口等等),解决如何1接受:旅客信息及取票通知和帐单;2输出:取票通知和帐单及机票;3网络输出和加密,输入和解密;4分辨信息的种类并采取相应的处理步骤;5判断信息的正误并采取相应的处理步骤;6进行数据库的查询、修改工作;7接受并判断错误,输出相应的出错消息;在以下的各个阶段中,用户操作手册将与本阶段的工作紧密结合,努力作到让用户易懂易学。测试报告和维护报告也将参考本说明书,检验本系统的各项性能指标,及时发现纰漏及时修补,一定要把功能强大、稳定可靠、便于维护的机票预定系统交到用户手中
7、。1、2项目背景:本项目(机票预定系统)时由浙江航空公司委托,由软件开发小组负责开发。本机票预定系统项目主要由两部分形成:1、各旅行社中的前台客户程序;2、航空公司中的数据库服务器程序;1、3文中特殊的定义和缩写:131定义SQLSERVER:系统服务器所使用的数据库管理系统(DBMS)SQL:一种用于访问查询数据库的语言事务流:数据进入模块后可能有多种路径进行处理。主键:数据库表中的关键域。值互不相同。外部主键:数据库表中与其他表主键关联的域。ROLLBACK:数据库的错误恢复机制。132缩写系统:若未特别指出,统指本机票预定系统。SQL:Structure
8、dQueryLanguage(结构化查询语言)。ATM:AsynchronousTransferMode(异步传输模式)。的“计算机软件开发文档1、4参考资料:1机票预定系统项目计划任务书浙江航空公司2机票预定系统项目开发计划软件开发小组3需求规格说明书软件开发小组4概要设计说明书软件开发小组4用户操作手册(初稿)软件开发小组5软件工程及其应用周苏、王文等天津科学技术出版社6软件工程张海藩清华大学出版社7ComputerNetworkA.S.TanenbaunPrenticeHall以下列出在概要设计过程中所使用到的有关资料:文档所采用的标准是参照软件工程导
10、户机接受信息模块结构图:网络接受和发送模块2.客户机输出信息模块:网络接受和发送模块帐单和取票通知的输出界面机票的输出界面213.网络接受和发送模块结构:客户机接受信息模块或服务器输出信息模块服务器输入信息模块客户机输出信息模块4.服务器模块网络接受和发送模块网络接受和发送模块3、程序描述:3、1客户机接受信息模块:1、PersInfoExam过程:对在旅客信息界面中输入的各项信息进行初步检验。若发现错误,令PErrorAppear=T,判断错误类型,并将相应的错误类型PErrorType或PErrorRank作为参数,转入IErrorHandle过程。若未发
13、过程操作后,须删除。4.CheckNoticeExam过程:对在帐单和取票通知的信息界面中输入的各项信息进行初步检验。若发现错误,令CErrorAppear=T,判断错误类型,并将相应的错误类型CErrorType或CErrorRank作为参数,转入IErrorHandle过程。若未发现错误,转入CheckNoticeInput过程。其中的错误种类有:1.数据结构不匹配,CerrorType=T,否则=F;帐单号longint姓名string身份证号码longint付款金额money航班号string取票截止日期date目的地stri
14、ng2.数据超出规定范围CErrorRank=T;否则=F;如帐单号不是规定的15位;金额为负;取票截止日期已过;等等5.CheckNoticeInput过程:ClassCheckNotice经检验无误后,将输入界面表单中的数据输入到ClassCheckNoticLongintcncode=帐单号Stringname=姓名Longintidcode=身份证号码Moneybill=付款金额Stringplanecode=航班号Datedtime=取票截止日期1011Stringdenist=目的地6.CheckNoticeSave过程
15、:将由CheckNoticeInput输入的旅客信息保存在一个临时文件CheckNoticeTemp.txt中。以备与将来从服务器经网络传输过来的数据校验。此类temp文件在每次软件的完全过程操作后,须删除。7.IErrorHandle过程:在PersInfoExam或CheckNoticeExam过程中若发现错误,就转入本过程,执行相应的处理,并输出相应的出错信息。If(PErrorType=T)输出“您的个人信息可能输错了位置。请重试。”If(PErrorRank=T)输出“您的个人信息不适应规定范围。请重试。”再转入旅客信息输入的界面
16、中。If(CErrorType=T)输出“您的帐单信息可能输错了位置。请重试。”If(CErrorRank=T)输出“您的帐单信息不适应规定范围。请重试。”再转入帐单和取票通知信息的输入界面。8.JudgeOrderOrCash过程:根据PersInfoInput输入的ocflag判断本次操作是定票或取票,相应的设置标志,相应的转入OrderTransPre或CashTransPre过程.9.OrderTransPre过程:定票要求传输前,作好各方面(硬件、软件)的准备。如准备好要传输的定票信息,包括旅客信息,客户机信息等等。客户机信息包括唯一序列号c_i
19、,以便接受网络传输来的数据。如设置服务器的空闲与否状态s_idle=F,继承正在工作联系的客户机序列号c_id。完成后转入下一个过程DBOperaCheck.2DBOperaCheck过程:检验网络传输过来的数据。若是出错信息,转入OErrorHandle过程。否则转入JudgeOrderOrCheck过程。3JudgeOrderOrCheck过程:根据网络传输来的数据中的ocflag判断本次操作是定票或取票,相应的设置标志,相应的转入PersInfoComp或CheckNoticeComp过程.12134.PersInfoComp1过程:将数
21、denist=目的地Boolocflag=定票/取票6CheckNoticeComp过程:将数据库中的帐单和取票通知信息与临时文件CheckNoticeTemp.txt中的旅客信息进行比较,如果吻合,就转入PersInfoComp过程。否则出错,转入OErrorHandle过程。7PersInfoComp2过程:将数据库中的旅客信息与临时文件就转入TicketOutput过程。否则出错,PersInfoTemp.txt中的旅客信息进行比较,如果吻合,转入OErrorHandle过程。8TicketOutput过程:13将机票输出到界面2。注意格式
23、ticeComp过程转入的,是数据库处理有误,返回的帐单和取票通知信息无法与原先输入的帐单和取票通知信息吻合。3.3网络接受和发送模块结构:1NetCheck过程:检查网路的工作状况。发送一些检验消息,接受一些反馈信息,查询要建立通路的终端是否有效,若有效就作好响应的准备,转入RecPre和SendPre过程;若无效就转入NErrorHandle过程。如服务器要传输信息给某客户机,可先发检验消息,包括由服务器发送的c_id可检验相应的客户机是否仍处于等待状态,客户机再将waitflag反馈给服务器;客户机要传输信息给服务器,若服务器的s_idle=T,由客
24、户机发送的c_id的值可赋予服务器中的c_id,再将s_idle反馈给客户机.2.RecPre过程:经过NetCheck过程检验网路后,作好接受数据的准备。若是服务器客户机,应该只要相应c_id的客户机做准备,激活客户机输出模块。若是客户机服务器,由于服务器始终处于活动状态,无须激活。3.NetReceive过程:接受网络数据包。在分包接受的过程中,始终保持与NetMonitor过程联系,接受和反馈网络数据传输状况的信息,根据这些信息继续接受数据包,或做相应的调整。14154NetDataDiscry过程:将由网络传输来的数据依据一定的算
25、法解密。5NetDataUnpack过程:将经解密后的数据(被压缩过的)依据一定的算法解压。6SendPre过程:客户机,应该服务器,由于服务器经过NetCheck过程检验网路后,作好发送数据的准备。若是服务器只要相应c_id的客户机做准备,激活客户机输出模块。若是客户机始终处于活动状态,无须激活。7NetDataPack过程:将由服务器模块传过来的数据依据一定的算法压缩,打包。8NetDataEncry过程:将准备送网络发送的数据依据一定的算法加密。9NetSend过程:发送经过压缩打包和加密的数据包。在分包发送的过程中,始终保持与NetMonitor
26、过程联系,接受和反馈网络数据传输状况的信息,根据这些信息继续发送数据包,或做相应的调整。10NetMonitor过程:从服务器与某客户机建立网络联系开始,到数据传输完成,联系断开为止,NetMonitor过程始终监视着网络状况。并将状况信息随时传给NetReceive和NetSend过程,同时从这两个过程接受数据接受和发送的状况信息。如果以上的状况信息反映出错误,就转入NErrorHandle过程处理。151611.NErrorHandle过程:网络模块的错误处理过程。主要的错误种类有:1。无法建立服务器与某客户机建立网络联系,由NetCheck过程转来;
27、2。联系建立后,网络数据传输出现错误,由NetMonitor过程转来。12JudgeCSFlag过程:本过程根据由客户机输入模块中的SetCSFlag过程或服务器模块中的SetCSFlag过程来确定网络模块完成后应转入哪一个模块,客户机输出模块或服务器模块。3.4服务器模块:1.SDataRecPre过程:作好服务器各方面(硬件、软件)的准备,以便接受网络传输来的数据。如设置服务器的空闲与否状态s_idle=F,继承正在工作联系的客户机序列号c_id。完成后转入下一个过程JudgeOrderOrCash.2.JudgeOrderOrCash过程:根据网络输