1、学校教材订购系统详细设计说明书目录1引言21.1编写目的21.2背景21.3基线21.4特殊名词定义21.5参考资料22模块命名规则33程序系统的结构34程序的描述74.1教材销售系统模块74.1.1功能的描述74.1.2模块的IPO表74.1.3界面的设计84.1.4主要算法104.1.5流程逻辑104.1.6接口114.1.7存储分配114.1.8注释设计124.1.9限制条件144.1.10测试计划144.1.11尚未解决的问题144.2教材采购系统模块141引言1.1编写目的本说明书目的在于明确说明系统各功能的实现方式,指导各成员进行编码。本说明书的预期读者为:项目经理、程序开发人
3、73022090652009-11-25清华大学出版社Java软件结构与数据结构(第3版)97873022073062009-9-4清华大学出版社Java编程艺术97873021931732009-6-16清华大学出版社软件工程(第6版)0180572008-6机械工业出版社设计模式2008-8机械工业出版社UML和模式应用2006-5机械工业出版社2模块命名规则标识符类型命名规则例子包(Packages)一个唯一包名的前缀总是全部小写的ASCIIzimu并且是一个顶级域名,通常是com,edu,gov,mil,net,org,或1981年ISO3166标准所指定的标识国家的英
4、文双字符代码。包名的后续部分根据不同机构各自内部的命名规范而不尽相冋。这类命名规范可能以特定目录名的组成来区分部门(department),项目(project),及其(machine),或注册名(loginname)。包括基本为全小写的字母com.softhard.usercom.apple.quicktime.v2.cs.bovik.cheese类(Classes)类名是一个单词,米用大小写混合的方式,每个单词的首字母大写。尽量使你的类名简洁而富于描述。使用完整单词,避免错写词(除非该错写词被更广泛使用,像URL,HTML)classRaster;cla
5、ssImageSprite;接口(Interfaces)命名规则:大小写规则与类名相似interfaceRasterDelegate;interfaceStoring;方法(Methods)方法名是一个动词,米用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母音大写run();runFast();getBackground();变量(Variables)除了变量名外,所有实例,包括类,类常量,均采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写。变量名不应以下划线或类元符号开头,尽管这在语法上是允许的。变量名应简短且富于描述。变量
7、cfinalintMIN_WIDTH=4;staticfinalintMAX_WIDTH=999staticfinalintGETTHECPU=1;3程序系统的结构本系统的软件结构图如下所示:ft材稍俾JM技Hi出系统I+vI矮统I1W!itii新j即T5览E1frt1so!越说明:学校教材订购系统包括教材销售模块和教材采购模块、退出系统模块,教材销售模块包含如下功能:教材浏览、填写订单、订单结账、新书通知;教材采购模块包含教材入库和缺书通知。销售系统的用例图如下所示:人扇采购系统模块的时序图如下:教材入库的时序图:教材入庫荣单教材信息1数据库:教材采购人员;I:a教林S称(
8、):_PTVF1*L|VVVV1*|RV1d1:检查教材昱苦荐在011111111i111111111IIil1J3:查找教材信息();:亠NlliF4!教材入库0J1il1li5:输人輙材入库数量o,|iiiiliill|l|l|ii|一|!|ij6:更新教5材虑存数量().;IIIIbihli111111i-Lvoid+gstTerfbooklcilO:ini+setTexlDookldi(teKDbaokid:int):void+getPurchaserO:String+setPurchaser(purchase
9、r:String):void*getTeribookO:Teribook+setTeribookflextbook:Textbook):void+getAnrioiuntO:Int+smtAmount(台力口uni:ini)void+getOrdcrDale-0:Siring+setOrderDate(orderDate:String):void-bookOnlerBOOkReCQlfyltextbo-id:int*title:Stringdesc:Strina-price:double-artnoumt;ihigetl
10、diO:iniseUd(idinf):voidgelTitleOStringsemtl白(til胆:Siring)voidgelDescO.StringseUDescCdlesc.String):voidgelPriceQ:doublsseitPricetprice:diouble):voidoetAmouniO:inisetAmuni(amonnt:int):voidxfiboogeUdO:itrtseiid(idinu:wiiclqel.Te)ttbookldO:IntsatTe)dboakld(
11、lextbookld:int):voidQetTKtbookO:TextbooksetTextbook(texlbook:Textoook):voidaelAmountO:iniselAmount(amoiunt-int);voidgelLCWDate0StringslLackDate(IackDale:string):wldArrihralBook-id:ini【-textbookld:int-amount:ini-arrivalDStestring-Id:int-bookOrderld:Ini-re
12、ceiptNDStringpaid:doubts+geUdlO:ini卡seUd(ld:int):void+getBookOrderldO:int+setBookOrd9rld(lbookOrderldi:InD:void*oetJReceiptNoO:String*setReceiptNo(receipthlo:Strina):void*setBookOrderOBookOrder+selBookOrder(ba-okOrdierBookOrder)void卡geflPaidOdouble寺GlPald(|sailid
13、:double):void系统的主要类图如下所示:ArnvalBooUcDaoUaiiiSigruici!泊曰的肌n炽电牌ipthhco皿1ini忖心心怕亦nti-m:ainMEnu:StinQ=*Vpw.=聆別目!sMenu:Siringi才加山川-puch令占日帕Rnu:Slnng匚gnfhmF!関刖帥mg二协5卜1川财|吒肪创|血|口1肛arrivalBookClDOkOrderCa*QienE8tEBiDQkREi;EipMMoO:SiririQ*clos归艮巳sourc启。:0祖三ton兮ollialinOnQnuLmnnqjesy
14、ltiRRgRxStnngiaiTDhrtE::Strinq):StringEnt日rMmlnhlmmjO:void馆念1曲MenuO如-ImowseT餉book。:初泌-Duirh目5前:voidpaymqntOyoIM-mrii#alBCi0ikNDliumO时did电ntgPurtiia弓mMEnuo:void=laiiclBcmkMMicEi:i:void=启nnjirTExtBoDkO卅oitlmsiin但月百:String皿:匕口皿+ArrivaiBookDacO*addArrrvalBDok(aiTivalBook:Arrivaieool+
15、dieleteArriiBooic(arrivaiBook阳rivalBookvoiflGookOrderDao+BookOrderDaoo+addBookOrderfbookOrcier:BookOrfler):BookOrder哼findBookOrderByOrderDate(orderOate:Stiring:ListBookOrder*+flndBookOrd0fByld(ld:Ini):BookOrdisr-bookRcip3&BookFtecirtDdDookDao*LackBookDaDO*addLackBook(lackB
16、qdk:LackBoolkByici(ld:Ino:LacRBook*findAIILackBookQUstLackBook*deleleLacWBookflackBook:LackSooKi:void+BookRacelplDaoO+addBoakRtsilipl(E)aokRcslpiiBookR$cipl):BDOkRacalpt十仙dBaokJReteiplBIdOd:intiBookFieteipt+findBookiReceipyReteiptNo(receipiNo:Siring):BookReceipt+findBookReceip
17、iflyDate(date:8tnng):Lisl+deletBookRcelpfl(t)ookRclp3:BooKAiecelpl):voidiDm-LaclcBeokDgoTexlhookDaoDBSwvice+gEnfiztSiouixpO:+closeDataSourcefi:void*TeidbookDaoO*addTexlboiioikdextbook:Texthaok):Textbook斗ilndTedl3ookByld(lcl:inlj:Te)dbook+findTebciokByTiiie(title;Slrmg):口创订
18、色址阳叫冷*findAllTexlbookOu$tTejdb&ok*updateTerfooDk(texlbook:TextbooW:int4程序的描述4.1教材销售系统模块4.1.1功能的描述教材销售系统模块包括以下几个功能:教材浏览、填写订单、订单结账、新书通知。任何用户只有通过这个模块才可以销售教材,此模块操作简单、方便。4.1.2模块的IPO表教材销售系统模块的IPO表如下表所示:系统名称学校教材订购系统模块名称教材销售系统模块模块编号作者陈鎏鹏日期2010.1.1模块简述用于销售教材调用模块教材采购系统模块被调用模块项目教材名称、订单编号、付款金额、购买的数量、购买输入
20、系统模块的界面设计如下:蔚幣席京當常當常薔玄密幣常常忤密土直写丁单.書需前需常書帽需常需書帝前奩訴常教材名称:丈学咧理购买数量(齐):40.0购买数量(本):0购买人:軒瀝鹏确认创建订单?a/N);v丁里创建完成!订单编号:12总全额(RMB):16SO,0常常需需盍需常常蓄it專i/才才士肖售壬岂市常常窑肃需常書需需鑫1.教材浏览2.填写订单3.订单结账4.新书通知0-返回请选择操作:学校教材订驰系统一教材销售系统3.教材采购系统0.退出系銃请选择操作:11.4.请选择操洛;教材销售系统***教材浏览填写订单订单結账新书通知返回填写订单卄”卄教材名称:线性
21、代数教材线阳代数不存在,谙重新填写!或确认返回?(Y/N):教材名称:盍壺書吉辭吉需雅吉喘1辭吉需雅吉常1订单結账需蓄常味蓄需需實需常蓄需書需需當劇入订单编号:err号:12、订单总额1680*0RMB,请付款:LzUD伺款金颔不足!或确认遗回?(/眄:对不合法的订单编号“ert”默认跳过处理吉素會畫宙書卞雷養in吉卞會畫宙書输入订单编号:ert輸入it单媪号:12订单结账订单总额1680.0RHB,请付紀1500付敞金额不足!或确认型回?(Y/N):n订单总额1580.0RHB*谙付款:23.0UL输入格式不合法!订单总额1680.0RMB*请付款:订单总额IbSO
22、.ORHEr请付款:1700己忖款1700.ORME实收1680.GRHB领书单编号:20100103000!请注意保管。零20.00.请选择操作;教材销售系统*教材浏览填写订单订单结账新书通紂返回1,4.陋常書需常需盍冑書需需需盍常書需常書言常敦材名称:高等代数救材名祢:大学物理入库数量:1000日期:2010-01-03**#*-*#*沏材名称:数学分析入库数量:1000日期:2009-12-30玄需常常弟書需需書希需乂*斋*常弟書常需*希常書需需:IT常弟會需需書希素奮需常*常未倉需常書常素倉需瞩敎材名称:高等代数入库数量:500日期:2009-12-29*#*
23、#*#*#*#*#*诵认返回?(T/W1:4.1.4主要算法(1)填写订单的处理:处理流程:填写教材名称;获取输入的数据,查询数据库;If教材名称输入正确继续填写教材的购买数量以及购买人的名字,确认创建订单成功;Else教材名称输入错误提示教材XXX不存在,请重新填写;(2)订单结账的处理:处理流程:输入订单编号;If订单编号输入正确显示订单的消费金额;If输入的金额正确支付金额成功;Else输入的金额格式不对and金额数不够提示输入格式错误或者支付金额不足;Else确认支付或返回;其他的算法此处不一一列出4.1.5流程逻辑系统的流程图如下:自动对货币格式和金额大小进行处理弟斤书T-
25、当教材不足或者没有的时候,它需要调用系统的教材采购模块。4.1.7存储分配arrival_book表:创建保存尊另存为创連栏位,目插入栏位删除栏位/主键皆上移事下移栏位索引拆键触发器选项.注记SQL预览名类型底度十进位允许空值(jidint110textbookidint110amountint110arrivalDdtevarchar莎0textbook表宅娄型1袒|十谨位I允舒空值Midrnt110小titlevarchar400Itb.descvarchar4000【刷pricedecimal102amountmt1101丨jlackbook表栏位索引1外龍IM问|逢顼注记
26、|沁预览名类型1民度1十进僮1龙许空值0卜対Int110textbookldint110amountInt110口(ackDateYarchar200口BookReceipt表沁屣J保存_郎另存为创建栏位”1插人栏位山删窮師x主键_上移“下穰岂乂潮I讣理能发器选项汪记5QL硕览BookOrder表2创建口保呼厚另睜対圉创建栏位富卸屈悅卿删除诞當上移事T桜拦位索引外键蠟團谨项琏记SQL预掘名婪型I.KJS十国位允许空值计idint110,1textbookldint110purchaservarchar200amountint110orderDatevarchar26c
28、他类文档see元整类名(可选)示例:*Classdeseriptiongoeshere.*、*version1.102*authorFirstnameLastname*sineeJDK1.4*/3方法的注释函数实现时在函数体前要对函数的功能、注意事项做描述;参数用:param参数名参数扌田述表示,一个参数一行(方法有参数则必须);返回值用:return返回说明表示;(有返回则必须);违例用:throws违例类说明表示,一个违例一行;(有违例则必须)尽可能列举出所有会抛出此异常的情况;类名#方法名表示;(可选);注释体用/*/示例:/*Serialization.*paramoisThedobjectinputstream*returnFile*throwslOExeeptionProblemperformingthedefaultstreamreading*throwsClassNotFoundExeeptionProble