
软件工程-学校教材订购系统.doc
6页学校教材订购系统引言1.1编写目的在前一阶段(学校教材订购系统需求分析说明书)中已解决了实现该系统需求的程序模块设计问题包括如何把该系统化分成若干个模块、决定各模块之间的的接口、模块之间传递的信息,以及数据结构、模块结构的设计等在以下的详细设计报告中间将对在本阶段中对系统所做的所有详细设计进行说明在本阶段中,确定如何具体的实现所要求的系统,从而在编码阶段可以把这个描述直接翻译成具体的程序语言书写的程序主要工作有:根据《学校教材订购系统需求分析说明书》所描述的数据、功能性能需求、处理流程、总体结构和模块设计,涉及软件系统的结构设计、逐个模块的程序描述1.2项目背景“学校教材订购系统”有两部分组成:销售系统和采购系统销售系统的工作过程为:首先由教师或学生提交购书单,经教材发行人员审核是有效购书单后,开发票、登记并返给教师或学生领书单,教师或学生即可去书库领书采购系统的主要工作过程为:若是脱销教材,则登记缺书,发缺书单给书库采购人员;一旦新书入库后,即发进书通知给教材发行人员1.3定义专门术语库存表:存放库中存在得书籍数据出库表:存放已销售的书籍的数据入库表:存放入库书籍的数据购书表:存放提交的购书信息。
缺书登记表:存放缺少的书籍的信息待购教材表:存放待购书籍信息缩写系统:若未特别指出,系统指本“学校教材订购系统”Access1.4参考资料1)《学校教材订购系统需求分析说明书》软件开发小组2)张海藩《软件工程导论》清华大学出版社3)萨师煊、王珊《数据库系统概论》高等教育出版社总体设计2.1需求概述为方便教师、学生领书,教材发行人员处理各种单据,以及采购人员采购需开发一个“学校教材订购系统”教师或学生提交购书单,经教材发行人员审核是有效购书单后,开发票、登记并返给教师或学生领书单,教师或学生即可去书库领书若是脱销教材,则登记缺书,发缺书单给书库采购人员;一旦新书入库后,即发进书通知给教材发行人员要求系统能有效、快速、安全、可靠和无误的完成上述操作并要求界面简单明了,易于操作,数据库利于维护2.2软件结构销售子系统销售子系统V和仃1FV提交购书单审核购书单开发票登记购书纪录返回领书单领书修改库存纪录维护相应的数据表米购子系统米购子系统11r1F1r1f发缺书单登记缺书纪录发进书通知单修改相应的表维护数据库程序描述3.1功能销售子系统模块:提交购书单、审核购书单、开发票、登记购书纪录、返回领书单、修改和维护数据库中相应的表。
采购子系统模块:发缺书单、登记缺书纪录、拟订待购书信息、发进书通知单、修改和维护数据库中相应的表3.2性能精度:购书是由需求决定的,只要有缺书现象则会体现出来,但也因为这样,如果需要提前多购相关书籍的话,则需要管理人员的参与① 时间特性要求:定购需要提前若干天② 可靠性:较高灵活性:在购书单未审核时,可以撤消订购或修改,一旦审核,则不能再修改3.3输入项目销售子系统模块:需要输入购书单中要求的信息(提交人姓名、书名、书号、数量、身份识别码)采购子系统模块:需要输入缺书单中要求的信息(书名、书号、数量)3.4输出项目销售子系统模块:需要打印领书单(书名、书号、数量、领书人姓名),发票(书名、书号、开票人姓名、交易金额、交易日期)采购子系统模块:需要打印进书通知单(书号、书名、进书日期)3.5算法.销售子系统模块:1.提交购书单过程(HandBuyBookBill):在提交购书单界面中输入购书单中的各信息:提交人姓名(Name)String购书的名称(BookName)String购书的书号(ISBN)String数量(No)String身份识别码(ID)String2.审核购书单过程(CheckBuyBookBill):对过程1提交购书单输入的部分信息进行审核:Check(购书名称(BookName))Check(购书书号(ISBN))Check(数量(No))Check(身份识别码(ID))如果有一个或多个错误则不提交购书单上的数据,转入过程3购书单错误信息显示过程。
如果审核通过转入过程4开发票3.购书单错误信息显示过程(BuyBookBillError):用来显示购书单中出现的错误:If(购书名称!=True)库中没有这类书,请重新输入If(购书书号!=True)书号错误,请重新输入If(数量!=True)数量越界,请重新输入If(身份识别码!=True)身份不对,请确认后重新输入4.开发票过程(PrintBill):Print(书名(BookName),书号(ISBN),开票人姓名(Name),交易金额(Money),交易日期(Date))5.登记购书记录过程(DBRegistBuyBook):将提交的信息存入到数据库的购书表中:DBBookName=”书名”DBISBN=”书号”DBNo=”数量”6.审核登记过程(CheckDBRegistBuyBook):若在存取过程中出现错误则转到过程7登记购书记录错误信息显示过程,若没有错误,返回成功登记信息,转到过程8发领书单/打印过程Check(存取)7.登记购书记录错误信息显示过程(DBRegistBuyBookError):显示在数据库操作中出现的错误,并RoolBack回滚转入过程5重新登记购书记录Display(错误的类型,相应提示)。
RoolBack8.发领书单/打印过程(PrintBookBill):Print(领书的名称(BookName)、领书的书号(ISBN)、领书的数量(No)、领书人姓名(Nmae))9.修改库存表、出库表过程(DBUpdateTable):修改出库表和库存表相应的记录库存表:书名、书号、数量出库表:书名、书号、数量、出库时间10.审核修改表过程(CheckDBUpdateTable):如在对数据库操作过程中出现错误,则转入过程11修改表错误信息显示过程,如果没错误,返回成功信息,继续进行下一步操作Check(数据库操作)11.修改表错误信息显示过程(DBUpdateTableError):显示在数据库操作中出现的错误,并RoolBack回滚转到过程9重新修改库存表、出库表过程Display(错误的类型,相应提示)RoolBack采购子系统模块:1.发缺书单过程(HandLackBookBill):在发缺书单的界面中,输入缺书的信息书名BookName书号ISBN数量NoStringStringint2.审核缺书单过程(CheckLackBookBill):对过程1中输入的信息核对Check(书名、书号、数量)如正确就转入过程4登记缺书记录;如果错误转入过程3缺书单错误信息显示过程。
3.缺书单错误信息显示过程(LackBillError):If(书名!=True)书名错误,请重新输入;If(书号!=True)书号错误,请重新输入;If(数量!=True)数量越界,请重新输入;4.登记缺书记录过程(DBRegistLackBook):5. 将缺书信息登入到缺书表中DBBookName=”书名”DBISBN=”书号”DBNo=数量审核登记过程(CheckDBRegistLackBook):对数据库操作的审核Check(登记过程)如有错转入过程6登记错误信息显示过程,如果没错误转入过程7修改数据库中的表过程6. 登记错误信息显示过程(DBRegistLackBookError):对登记中出现的错误显示,并转入过程4登记缺书记录,重新登记7. Display(错误的类型,相应提示)RoolBack修改数据库中的表过程(DBUpdateTable):对新进的新书,修改数据库中入库表和库存表的记录:入库表:DBBookName=”书名”DBISBN=”书号”DBNo=”数量”DBIn_Date=”入库日期”库存表:DBBookName=”书名”DBISBN=”书号”DBNo=”数量”&审核修改过程(CheckDBUpdateTable):对数据库中入库表、库存表的修改审核Check(修改过程)如果有错转入过程9修改错误信息显示过程;如无错,转入过程10发进书通知单过程。
9. 修改错误信息显示过程(DBUpdateTableError):对修改中出现的错误显示,并转入过程7修改数据库中的表,重新修改10. 发进书通知单过程(PrintBookNotice):1. Print(书名、书号、进书日期);6程序逻辑销售子系统模块程序流程图:1. 结束提交购书单:(HandBuyBookBill)审核购书单(CheckBuyBookBill)购书单错误信息显示(BuyBookBillError)开发票(PrintBill)登记购书记录(DBRegistBuyBook)审核登记(CheckDBRegistBuyBook)登记购书记录错误信息显示(DBRegistBuyBookError)发领书单/打印(PrintBookBill)修改库存表、出库表(DBUpdateTable)审核修改表(CheckDBUpdateTable)修改表错误信息显示(DBUpdateTableError)采购子系统模块程序流程图:1.2.3.4.5.6.7.&9.10.3.7发缺书单(HandLackBookBill)审核缺书单(CheckLackBookBill)缺书单错误信息显示(LackBillError)登记缺书记录(DBRegistLackBook)审核登记(CheckDBRegistLackBook)登记错误信息显示(DBRegistLackBookError)修改数据库中的表(DBUpdateTable)审核修改(CheckDBUpdateTable)修改错误信息显示(DBUpdateTableError)发进书通知单(PrintBookNotice)接口各模块过程之间采用函数调用、参数传递、返回值的方式进行消息传递。
具体参数的结构将在下面数据结构设计的以参数传递或返回值的形式在内容中说明接口传递的信息将是以数据结构封装了的数据,模块之间传递3.8存储分配为程序当中的数据结构在内存中开辟空间存储,如入到数据库中后在数据库的表中为其开辟存储空间3.9限制条件输入的信息都封装在数据结构当中,不能独立存在,在向数据库中提交数据时必须一起提交而不能逐项提交输入数据的类型必须和定义的数据类型相匹配3.10测试要点对本程序进行黑盒和白盒测试,在白盒测试中,进行路径测试,条件测试,判定覆盖,语句覆盖;在黑盒测试中采用等价类划分的测试方法,列出尽可能多的有效等价类和无效等价类确保程序正常运行,无误。












