您的当前位置:首页正文

详细设计说明书

来源:华佗健康网
详细设计说明书

《五.详细设计说明书》1、引⾔:1、1编写⽬的:

在前⼀阶段(概要设计说明书)中,已解决了实现该系统需求的程序模块设计问题。包括如何把该系统划分成若⼲个模块、决定各个模块之间的接⼝、模块之间传递的信息,以及数据结构、模块结构的设计等。在以下的详细设计报告中将对在本阶段中对系统所做的所有详细设计进⾏说明。

在本阶段中,确定应该如何具体地实现所要求的系统,从⽽在编码阶段可以把这个描述直接翻译成⽤具体的程序语⾔书写的程序。主要的⼯作有:根据在《需求分析说明书》中所描述的数据、功能、运⾏、性能需求,并依照《概要设计说明书》所确定的处理流程、总体结构和模块外部设计,设计软件系统的结构设计、逐个模块的程序描述(包括各模块的功能、性能、输⼊、输出、算法、程序逻辑、接⼝等等),解决如何1.输⼊:⽤户输⼊信息;2.输出:系统输出;

3.⽹络输出和加密,输⼊和解密;

4.分辨信息的种类并采取相应的处理步骤;5.判断信息的正误并采取相应的处理步骤;6.进⾏数据库的查询、修改⼯作;

7.接受并判断错误,输出相应的出错消息;

在以下的各个阶段中,《⽤户操作⼿册》将与本阶段的⼯作紧密结合,努⼒作到让⽤户易懂易学。《测试报告》和《维护报告》也将参考本说明书,检验本系统的各项性能指标,及时发现纰漏及时修补,⼀定要把功能强⼤、稳定可靠、便于维护的机票预定系统交到⽤户⼿中。1、2项⽬背景:

本项⽬(机票预定系统)时由浙江航空公司委托,由《》软件开发⼩组负责开发。本机票预定系统项⽬主要由两部分形成:1、各旅⾏社中的前台客户程序;2、航空公司中的数据库服务器程序;1、3⽂中特殊的定义和缩写:1.3.1定义

SQL SERVER: 系统服务器所使⽤的数据库管理系统(DBMS)。SQL: ⼀种⽤于访问查询数据库的语⾔

事务流:数据进⼊模块后可能有多种路径进⾏处理。主键:数据库表中的关键域。值互不相同。外部主键:数据库表中与其他表主键关联的域。ROLLBACK: 数据库的错误恢复机制。1.3.2 缩写

系统:若未特别指出,统指本机票预定系统。

SQL: Structured Query Language(结构化查询语⾔)。ATM: Asynchronous Transfer Mode (异步传输模式)。

1、4参考资料:

以下列出在概要设计过程中所使⽤到的有关资料:1.机票预定系统项⽬计划任务书浙江航空公司2.机票预定系统项⽬开发计划《》软件开发⼩组3.需求规格说明书《》软件开发⼩组4.概要设计说明书《》软件开发⼩组4.⽤户操作⼿册(初稿)《》软件开发⼩组

5.软件⼯程及其应⽤周苏、王⽂等天津科学技术出版社6.软件⼯程张海藩清华⼤学出版社

7.Computer Network A.S.Tanenbaun Prentice Hall

⽂档所采⽤的标准是参照《软件⼯程导论》沈美明著的“计算机软件开发⽂档编写指南”。2.总体设计:2、1需求概要:

浙江航空公司为⽅便旅客,需开发⼀个机票预定系统。为便于旅客由旅⾏社代替航空公司负责为旅客定票,旅⾏社把预定机票的旅客信息,包括姓名、性别、⼯作单位、⾝份证号码、旅⾏时间、旅⾏⽬的地,输⼊机票预定系统的客户端程序,系统经过查询航空公司内的航班数据服务器后,为旅客安排航班,印出取票通知。

旅客在飞机起飞前⼀天凭取票通知和帐单交款后取票,系统校对⽆误后即印出机票给旅客。

要求系统能有效、快速、安全、可靠和⽆误的完成上述操作。并要求客户机的界⾯要单明了,易于操作,服务器程序利于维护。

2、2 软件结构:

各模块之间的关系已由概要设计给出。1、客户机接受信息模块结构图:

⽹络接受和发送模块 2.客户机输出信息模块:

3. ⽹络接受和发送模块结构:

客户机接受信息模块或服务器输出信息模块

客户机输出信息模块服务器输⼊信息模块4.服务器模块:

3、程序描述:

3、1 客户机接受信息模块:1、PersInfoExam 过程:

对在旅客信息界⾯中输⼊的各项信息进⾏初步检验。若发现错误,令

PErrorAppear=T,判断错误类型,并将相应的错误类型PErrorType或PErrorRank作为参数,转⼊IErrorHandle过程。若未发现错误,转⼊PersInfoInput过程。其中的错误种类有:1.数据类型不匹配,PErrorType =T;否则=F;姓名 string 旅⾏⽬的地 string性别 string 旅⾏时间 date

⼯作单位 string (年/⽉/⽇ yy/mm/dd)⾝份证号码 long int 定票/取票 boolean

2、数据超出规定范围PErrorRank =T; 否则=F;等等

性别只能是‘男’或‘⼥’;⾝份证号码按规定必须是13位;旅⾏时间必须在定票的当天过⼀天以后; 等等2、PersInfoInput 过程:

经检验⽆误后,将输⼊界⾯表单中的数据输⼊到Class PersInfoClass PersInfo{ /* 伪码 */String name=姓名;String sex= 性别;

String company= ⼯作单位;Long int idcode= ⾝份证号码;Date stime= 旅⾏时间;

(syear/smonth/stime=年/⽉/⽇)String denist= ⽬的地Bool ocflag= 定票/取票}

3.PersInfoTempSave 过程:

将由PersInfoInput输⼊的旅客信息保存在⼀个临时⽂件PersInfoTemp.txt中。以备与将来从服务器经⽹络传输过来的数据校验。此类temp⽂件在每次软件的完全过程操作后,须删除。4.CheckNoticeExam过程:

对在帐单和取票通知的信息界⾯中输⼊的各项信息进⾏初步检验。若发现错误,令CErrorAppear=T,判断错误类型,并将相应的错误类型CErrorType或CErrorRank作为参数,转⼊IErrorHandle过程。若未发现错误,转⼊CheckNoticeInput过程。其中的错误种类有:

1.数据结构不匹配,CerrorType=T,否则=F;帐单号 long int姓名 string⾝份证号码 long int付款⾦额 money航班号 string取票截⽌⽇期 date⽬的地 string

2.数据超出规定范围CErrorRank =T; 否则=F;

如帐单号不是规定的15位;⾦额为负;取票截⽌⽇期已过;等等5.CheckNoticeInput过程:

经检验⽆误后,将输⼊界⾯表单中的数据输⼊到Class CheckNoticeClass CheckNotic{Long int cncode=帐单号String name=姓名

Long int idcode=⾝份证号码Money bill = 付款⾦额

String planecode= 航班号Date dtime= 取票截⽌⽇期String denist= ⽬的地}

6.CheckNoticeSave 过程:

将由CheckNoticeInput输⼊的旅客信息保存在⼀个临时⽂件CheckNoticeTemp.txt中。以备与将来从服务器经⽹络传输过来的数据校验。此类temp⽂件在每次软件的完全过程操作后,须删除。7.IErrorHandle过程:

在PersInfoExam或CheckNoticeExam过程中若发现错误,就转⼊本过程,执⾏相应的处理,并输出相应的出错信息。If (PErrorType==T)

输出“您的个⼈信息可能输错了位置。请重试。”If (PErrorRank==T)

输出“您的个⼈信息不适应规定范围。请重试。”再转⼊旅客信息输⼊的界⾯中。If (CErrorType==T)

输出“您的帐单信息可能输错了位置。请重试。”If (CErrorRank==T)

输出“您的帐单信息不适应规定范围。请重试。”再转⼊帐单和取票通知信息的输⼊界⾯。8.JudgeOrderOrCash过程:

根据PersInfoInput输⼊的ocflag 判断本次操作是定票或取票,相应的设置标志,相应的转⼊OrderTransPre或CashTransPre过程.

9.OrderTransPre过程:

定票要求传输前,作好各⽅⾯(硬件、软件)的准备。如准备好要传输的定票信息,包括旅客信息,客户机信息等等。客户机信息包括唯⼀序列号c_id,并设置等待标志waitflag =T和等待开始时间waitstime,等等。转⼊⽹络模块后,此过程仍处于等待状态,并⼀直记时,当waitflag==T且系统时间超过waitstime⽐如⼗分钟后,结束操作,输出操作超时的出错信息。当客户机接受到数据库的信息,客户机输⼊模块中的DataRecPre过程会置waitflag=F,这样本过程就会结束。10.CashTranPre过程:

取票要求传输前,作好各⽅⾯(硬件、软件)的准备。如准备好要传输的取票信息,包括帐单和取票通知的信息,客户机信息等等。客户机信息包括唯⼀序列号c_id,并设置等待标志waitflag =T和等待开始时间waitstime,等等。转⼊⽹络模块后,此过程仍处于等待状态,并⼀直记时,当waitflag==T且系统时间超过waitstime⽐如⼗分钟后,结束操作,输出操作超时的出错信息。当客户机接受到数据库的信息,客户机输⼊模块中的DataRecPre过程会置waitflag=F,这样本过程就会结束。11.SetCSFlag过程:

设置客户机/服务器标志CSFlag=T(表⽰将要进⾏的传输是从客户机到服务器)。以备⽹络模块中的JudgeCSFlag过程使⽤。3.2客户机输出信息模块:1.C DataRecPre 过程:

作好各⽅⾯(硬件、软件)的准备,以便接受⽹络传输来的数据。如设置服务器的空闲与否状态s_idle =F,继承正在⼯作联系的客户机序列号c_id 。完成后转⼊下⼀个过程DBOperaCheck.2.D BOperaCheck过程:

检验⽹络传输过来的数据。若是出错信息,转⼊OErrorHandle过程。否则转⼊JudgeOrderOrCheck过程。3.J udgeOrderOrCheck过程:

根据⽹络传输来的数据中的ocflag 判断本次操作是定票或取票,相应的设置标志,相应的转⼊PersInfoComp或CheckNoticeComp过程.4.PersInfoComp1过程:

将数据库中的旅客信息与临时⽂件PersInfoTemp.txt中的旅客信息进⾏⽐较,如果吻合,就转⼊CheckNoticeOutput 过程。否则出错,转⼊OErrorHandle过程。5.CheckNoticeOutput过程:

将帐单和取票通知输出到界⾯1中。注意格式。Long int cncode =帐单号;String name=姓名;String sex= 性别;

String company= ⼯作单位;Long int idcode= ⾝份证号码;Date stime= 旅⾏时间;

(syear/smonth/stime=年/⽉/⽇)String denist= ⽬的地Bool ocflag= 定票/取票6.CheckNoticeComp 过程:

将数据库中的帐单和取票通知信息与临时⽂件CheckNoticeTemp.txt中的旅客信息进⾏⽐较,如果吻合,就转⼊PersInfoComp过程。否则出错,转⼊OErrorHandle过程。7.PersInfoComp2过程:

将数据库中的旅客信息与临时⽂件PersInfoTemp.txt中的旅客信息进⾏⽐较,如果吻合,就转⼊TicketOutput 过程。否则出错,转⼊OErrorHandle过程。8.TicketOutput过程:

将机票输出到界⾯2。注意格式。Long int planecode=航班号;Date/time stime=起飞时间;String name=姓名;

Long int idcode=⾝份证号码;Int seatcode = 座位号;Money price= 票价;9.OErrorHandle 过程:

处理各个过程产⽣的错误,输出相应的出错信息到输出界⾯3 。由DBErrorCheck过程转⼊的,是数据库操作失效,如:所需机票已被定光;数据库中⽆对应的帐单或旅客信息;等等。由PersInfoComp过程转⼊的,是数据库处理有误,返回的旅客信息⽆法与原先输⼊的旅客信息吻合。由CheckNoticeComp过程转⼊的,是数据库处理有误,返回的帐单和取票通知信息⽆法与原先输⼊的帐单和取票通知信息吻合。3.3⽹络接受和发送模块结构:

1.N etCheck过程:

检查⽹路的⼯作状况。发送⼀些检验消息,接受⼀些反馈信息,查询要建⽴通路的终端是否有效,若有效就作好响应的准备,转⼊RecPre和SendPre过程;若⽆效就转⼊NErrorHandle 过程。

如服务器要传输信息给某客户机,可先发检验消息,包括由服务器发送的c_id可检验相应的客户机是否仍处于等待状态,客户机再将waitflag反馈给服务器;客户机要传输信息给服务器,若服务器的s_idle=T,由客户机发送的c_id的值可赋予服务器中的c_id,再将s_idle反馈给客户机.2. RecPre过程:

经过NetCheck过程检验⽹路后,作好接受数据的准备。若是服务器→客户机,应该只要相应c_id的客户机做准备,激活客户机输出模块。若是客户机→服务器,由于服务器始终处于活动状态,⽆须激活。3. NetReceive过程:

接受⽹络数据包。在分包接受的过程中,始终保持与NetMonitor过程联系 ,接受和反馈⽹络数据传输状况的信息,根据这些信息继续接受数据包,或做相应的调整。4.N etDataDiscry过程:

将由⽹络传输来的数据依据⼀定的算法解密。5.N etDataUnpack 过程:

将经解密后的数据(被压缩过的)依据⼀定的算法解压。6.S endPre过程:

经过NetCheck过程检验⽹路后,作好发送数据的准备。若是服务器→客户机,应该只要相应c_id的客户机做准备,激活客户机输出模块。若是客户机→服务器,由于服务器始终处于活动状态,⽆须激活。7.N etDataPack过程:

将由服务器模块传过来的数据依据⼀定的算法压缩,打包。8.N etDataEncry过程:

将准备送⽹络发送的数据依据⼀定的算法加密。9.N etSend过程:

发送经过压缩打包和加密的数据包。在分包发送的过程中,始终保持与NetMonitor过程联系 ,接受和反馈⽹络数据传输状况的信息,根据这些信息继续发送数据包,或做相应的调整。10.NetMonitor过程:

从服务器与某客户机建⽴⽹络联系开始,到数据传输完成,联系断开为⽌,NetMonitor过程始终监视着⽹络状况。并将状况信息随时传给NetReceive和NetSend过程,同时从这两个过程接受数据接受和发送的状况信息。如果以上的状况信息反映出错误,就转⼊NErrorHandle 过程处理。11. NErrorHandle过程:

⽹络模块的错误处理过程。主要的错误种类有:1。⽆法建⽴服务器与某客户机建⽴⽹络联系,由NetCheck 过程转来;2。联系建⽴后,⽹络数据传输出现错误,由NetMonitor过程转来。12.JudgeCSFlag过程:

本过程根据由客户机输⼊模块中的SetCSFlag过程或服务器模块中的SetCSFlag 过程来确定⽹络模块完成后应转⼊哪⼀个模块,客户机输出模块或服务器模块。3.4服务器模块:1.SDataRecPre过程:

作好服务器各⽅⾯(硬件、软件)的准备,以便接受⽹络传输来的数据。如设置服务器的空闲与否状态s_idle =F,继承正在⼯作联系的客户机序列号c_id 。完成后转⼊下⼀个过程JudgeOrderOrCash .

2.JudgeOrderOrCash过程:

根据⽹络输⼊的数据中的ocflag 判断本次操作是定票或取票,相应的设置标志,相应的转⼊TicketAvailable或InfoComp过程.3.TicketAvailable过程:

根据旅客信息中的旅⾏时间(⽇期)查询数据库,若Ticket表中在此⽇期仍有票剩余(未被定票或购票),就转⼊LockTicket 过程;若⽆余票,就转⼊DBErrorHandle 过程.4.LockTicket过程:

根据旅客信息中的旅⾏时间(⽇期),在Ticket表中,把相应数量的起飞⽇期等于此⽇期的机票锁住,作为已定的机票.5.AddPers过程:

把已定票的旅客信息添加到PerInfo表中.姓名性别⾝份证号码⼯作单位旅⾏⽬的地旅⾏时间

6.GetoutCheck过程:

把查询后许可的定票信息添加到Check表中,同时准备把此信息向⽹络输出.帐单号姓名⾝份证号码⾦额航班号截⽌⽇期⽬的地

http://www.doczj.com/doc/e641bdd2dd36a32d727581f4.html Comp过程:

检查输⼊的旅客信息、帐单和取票通知信息在数据库的PersInfo和Check 表中是否有对应

的项。如果有,就转⼊DelItem 过程;如果⽆,就转⼊DBErrorHandle过程。8.GetoutTicket 过程:在Ticket表中取出并删除对应的被锁住的机票信息,准备把此信息向⽹络输出. 9.DelItem 过程:

在数据库的PersInfo 和Check 表中,删除已取票的旅客信息、帐单和取票通知信息。10.JudgeCheckTicket过程:根据数据库输出的数据判断本次输出是帐单和取票通知或机票,相应的设置标志,相应的转⼊CheckTransPre或TicketTransPre过程.11.CheckTransPre过程:

帐单和取票通知传输前,作好各⽅⾯(硬件、软件)的准备。如准备好要传输信息,包括帐单信息,要联系的客户机信息等等。客户机信息包括唯⼀序列号c_id。12.TicketTransPre 过程:

机票传输前,作好各⽅⾯(硬件、软件)的准备。如准备好要传输信息,包括机票信息,要联系的客户机信息等等。客户机信息包括唯⼀序列号c_id。13.SetCSFlag 过程:

设置客户机/服务器标志CSFlag=F(表⽰将要进⾏的传输是从服务器到客户机)。以备⽹络模块中的JudgeCSFlag过程使⽤。14.DBErrorHandle 过程:

判断数据库操作中出现的错误,并处理和返回到客户机上。由TicketAvailable过程转⼊的错误,是Ticket表中在相应⽇期⽆票剩余(全被定票或购票,或者飞机已起飞);由Infocomp 过程转⼊的错误,是输⼊的旅客信息、帐单和取票通知信息在数据库的PersInfo 和Check 表中没有对应的项,说明取票信息和定票信息不符。15.DBErrorTransPre 过程:

错误信息传输前,作好各⽅⾯(硬件、软件)的准备。如准备好要传输信息,包括错误类别信息,要联系的客户机信息等等。客户机信息包括唯⼀序列号c_id。接着转⼊⽹络接受和发送模块。

因篇幅问题不能全部显示,请点此查看更多更全内容