学校教材订购系统详细设计说明书1引言1.1 编写目的在前面(学校教材订购系统需求分析报告)中已明确了系统的主要功能,解决了系统“做什么”的问题,在概要设计阶段,我们对设计方案进行了概述。
在这个阶段,我们需要确定如何具体的实现所要求的系统,因此要详细设计系统的各个模块。
主要工作有:作出软件模块层次结构图,描述所有模块清单(名称,功能,I/O),从而在编码阶段可以把这个描述直接翻译成具体的程序语言书写的程序;设计数据库;设计页面。
本说明书主要提交给小组成员参考。
1.2 背景a. 待开发的软件系统的名称:学校教材定购系统b.本系统是河北大学内部的一个教材订购系统,实现教材的销售和采购。
c.本项目由老师委托我小组开发,开发人员包括: 组长兼系统分析员:龙一、系统设计员:xx、程序设计员:xx、数据库管理员:xx、数据操作员:xx。
系统最终用户为xx大学,由xx大学提供计算网络。
d.该系统还和学校财务科进行资金数据来往,.由本系统向财务处提供销售情况,实行教材的安全发放和采购.并顺便和各书店联营向个别人员单独售书。
1.3 定义1.3.1专门术语库存表:存放库中存在得书籍数据。
出库表:存放已销售的书籍的数据。
入库表:存放入库书籍的数据。
购书表:存放提交的购书信息。
缺书登记表:存放缺少的书籍的信息。
待购教材表:存放待购书籍信息。
1.3.2 缩写系统:若未特别指出,系统指本“学校教材定购系统”。
1.4 参考资料《软件工程导论》—第五版清华大学出版社张海藩编著2程序系统的结构模块结构图略3程序描述3.1销售子系统模块具体描述销售系统的工作过程为:首先由教师或学生提交购书单,经教材科发行人员审核是有效购书单后,开发票、登记并返给教师或学生领书单,教师或学生即可去书库领书。
输入项目需要输入购书单中要求的信息(提交人姓名、书名、书号、数量、身份识别码)。
输出项目需要打印领书单(书名、书号、数量、领书人姓名),发票(书名、书号、开票人姓名、交易金额、交易日期)。
流程逻辑分析:由订书人员提交购书单后,经过审核,通过后提交成功,由工作人员开出发票,同时登记购书记录并审核无误后,发领书单,最后更新相应表项,如出库表,库存表,并进行审核修改。
接口:各模块过程之间采用函数调用、参数传递、返回值的方式进行消息传递。
具体参数的结构将在下面数据结构设计的内容中说明。
接口传递的信息将是以数据结构封装了的数据,以参数传递或返回值的形式在模块之间传递。
存储分配:为程序当中的数据结构在内存中开辟空间存储,如入到数据库中后在数据库的表中为其开辟存储空间。
测试计划:本模块的具体测试将在下面各过程的设计中具体说明。
3.1.1提交购书单过程(HandBuyBookBill)用户通过该程序向系统发出购书请求,在提交购书单界面中输入购书单中的各信息。
本程序为并发执行,可以多人同时向系统提交购书单。
无子程序。
功能:收集用户提交的购书单,获得购书者的基本信息。
输人项:提交人姓名(Name)String购书的名称(BookName)String购书的书号(ISBN)String数量(No)String身份识别码(ID)String输出项:无。
算法:V oid HandBuyBookBill(n,bn,ibn,no,id){Name<<n;BookName<<bn;ISBN<<ibn;No<<no;ID<<id;}接口:销售模块通过调用HandBuyBookBill()函数来调用该程序。
测试计划:数据库连接情况:正常情况。
对用户输入的响应:合法输入,能够正常调用本程序;非法输入,系统能否辨别,并作出响应(提出警告);程序的异常状况,系统能否及时做出响应。
3.1.2审核购书单过程(CheckBuyBookBill)功能:校验购书单信息。
如果有一个或多个错误则不提交购书单上的数据,如果审核通过转入程序3.1.4开发票。
输人项:提交人姓名,购书的名称,购书的书号,数量,身份识别码(传入参数)。
输出项:无。
算法:Bool CheckBuyBookBill(Name,BookName,ISBN,No,ID){If(各参数与数据库中所存参数一致)Return true;V oid PrintBill(BookName,ISBN,Na,Mo,Da)ElseReturn false;}接口:调用形式:BOOL CheckBuyBookBill(Name,BookName,ISBN,No,ID)传入参量:Name,BookName,ISBN,No,ID传出参量:TRUE/FALSE测试计划:数据库连接正常数据库数据正常合法的购书单不合法的购书单数据库数据异常数据库连接异常3.1.3购书单错误信息显示过程(BuyBookBillError)功能:用来显示购书单中出现的错误。
输人项:购书的名称,购书的书号,数量,身份识别码(传入参数)。
算法:V oid BuyBookBillError(BookName,ISBN,No,ID){If(BookName!=True)库中没有这类书,请重新输入If(ISBN!=True)书号错误,请重新输入If(No!=True)数量越界,请重新输入If(ID!=True)身份不对,请确认后重新输入}接口:调用形式:V oid BuyBookBillError(BookName,ISBN,No,ID)传入参量:Name,BookName,ISBN,No,ID传出参量:各种提示信息测试计划:各信息都正确有一项信息错误所有信息全错3.1.4开发票过程(PrintBill)功能:开发票给购书者。
输人项:书名(BookName),书号(ISBN),(传入参数);开票人姓名(Name)string交易金额(Money)real交易日期(Date)time输出项:发票算法:V oid PrintBill(BookName,ISBN,Na,Mo,Da){Name<<Na;Money<<Mo;Date<<Da;Print(书名(BookName),书号(ISBN),开票人姓名(Name),交易金额(Money),交易日期(Date));}接口:调用形式:V oid PrintBill(BookName,ISBN,Name,Money,Date)传入参量:Name,BookName,ISBN ,Money,Date3.1.5登记购书记录过程(DBRegistBuyBook)功能:将提交的信息存入到数据库的购书表中。
输人项:书名,书号,数量(传入参数)。
输出项:无算法:V oid DBRegistBuyBook(书名,书号,数量){DB Book Name=”书名”DB ISBN=”书号”DB No=”数量”}接口:调用形式:V oid DBRegistBuyBook(书名,书号,数量)传入参量:书名,书号,数量3.1.6审核登记过程(CheckDBRegistBuyBook)功能:若在存取过程中出现错误则转到过程7登记购书记录错误信息显示过程,若没有错误,返回成功登记信息,转到过程8发领书单/打印过程(此程序为系统内部程序)。
输人项:无输出项:无算法:V oid CheckDBRegistBuyBook(){If(数据库存取过程有错误)V oid DBRegistBuyBookError();ElseV oid PrintBookBill();}接口:调用形式:V oid CheckDBRegistBuyBook()传入参量:无传出参量:无3.1.7登记购书记录错误信息显示过程(DBRegistBuyBookError)功能:显示在数据库操作中出现的错误,并RoolBack回滚转入过程5重新登记购书记录。
输人项:无输出项:数据库操作中的错误类型、相应提示算法:V oid DBRegistBuyBookError(){Display(错误的类型,相应提示);RoolBackVoid DBRegistBuyBook(书名,书号,数量);}接口:调用形式:V oid DBRegistBuyBookError()传入参量:无传出参量:无3.1.8发领书单/打印过程(PrintBookBill)功能:打印领书单给购书者。
输人项:领书的名称(BookName)、领书的书号(ISBN)、领书的数量(No)、领书人姓名(Nmae)(参数传入)输出项:领书单算法:V oid PrintBookBill(Nmae,ISBN,No,BookName){Print(领书的名称(BookName)、领书的书号(ISBN)、领书的数量(No)、领书人姓名(Nmae))。
}接口:调用形式:V oid PrintBookBill(Nmae,ISBN,No,BookName)传入参量:Nmae,ISBN,No,BookName传出参量:无程序3.1.5、3.1.6、3.1.7、3.1.8测试计划:数据库连接正常传入数据库数据正常成功登记数据并显示/打印领书单传入数据库数据异常给出错误类型和相应提示数据库连接异常给出错误类型和相应提示3.1.9修改库存表、出库表过程(DBUpdateTable)功能:修改出库表和库存表相应的记录输人项:书名、书号、数量(参数传入);出库时间(Outtime)time输出项:更新后的库存表和出库表算法:V oid DBUpdateTable(BookName ,ISBN,No,Ot){Outtime<<Ot;修改库存表:书名、书号、数量修改出库表:书名、书号、数量、出库时间}接口:调用形式:V oid DBUpdateTable(BookName ,ISBN,No,Ot)传入参量:Nmae,ISBN,No传出参量:无3.1.10审核修改表过程(CheckDBUpdateTable)功能:如在对数据库操作过程中出现错误,则转入过程11修改表错误信息显示过程,如果没错误,返回成功信息,继续进行下一步操作。
(系统内部程序)输人项:无输出项:成功信息算法:V oid CheckDBUpdateTable(){If(修改数据库操作有误)V oid DBUpdateTableError();ElsePrint(“操作成功”);将更新后的库存表、出库表存入数据库;}接口:调用形式:V oid CheckDBUpdateTable()传入参量:无传出参量:无3.1.11修改表错误信息显示过程(DBUpdateTableError)功能:显示在数据库操作中出现的错误,并RoolBack回滚转到程序3.1.9重新修改库存表、出库表过程。