1、文档编号: BOS-1版 本 号: V1.0项目名称: 学校教材订购系统文 档 名 称: 总体设计说明书项目负责人: 李建朋 编写: _ 全体人员_ 2007年12月27日校对: _全体人员 2007年12月28日审核: 全体人员同意 2008年1月1日批准: 李建朋 2008年1月1日开发单位:河北大学工商学院05计科/软件 李建朋,高璐,窦丽华,韩垚,袁志翔总 体 设 计 说 明 书1 引言1.1 编写目的在前一阶段学校教材订购系统需求分析说明书中已解决了实现该系统需求的程序模块设计问题。包括如何把该系统化分成若干个模块、决定各模块之间的的接口、模块之间传递的信息,以及数据结构、模块结构的
2、设计等。在以下的详细设计报告中间将对在本阶段中对系统所做的所有详细设计进行说明。在本阶段中,确定如何具体的实现所要求的系统,从而在编码阶段可以把这个描述直接翻译成具体的程序语言书写的程序。主要工作有:根据学校教材订购系统需求分析说明书所描述的数据、功能性能需求、处理流程、总体结构和模块设计,涉及软件系统的结构设计、逐个模块的程序描述。本设计说明书可作为学校教材订购系统详细设计的基础,后续文档的编写和程序员抒写程序的参考。参考资料 学校教材订购系统可行性研究报告 学校教材订购系统需求规格说明书 学校教材订购系统项目开发计划1.2 项目背景学校教材订购系统有两部分组成:销售系统,采购系统和财务子系
3、统。整个系统的工作过程:用户输入正确的登录信息,可以登录进行相关的操作,输入有效的购书申请可以受到预订单,交款后可得发票单,凭发票单,领书通知单领取教材。销售人员可以向财务系统提交预订单和支付单,财务系统进行处理,待购书者交款后开发票给购书者,并给销售者以领书通知单。待发放教材后提交出库单。采购人员向财务系统报预购单和财务报表,经财务系统处理后给出采购单和支出单,采购人员购回教材提交进库单。最后财务系统可以整合信息生成系列财务报表。1.3 定义1.3.1专门术语库存表:存放库中存在得书籍数据。出库表:存放已销售的书籍的数据。入库表:存放入库书籍的数据。购书表:存放提交的购书信息。缺书登记表:存
4、放缺少的书籍的信息。待购教材表:存放待购书籍信息。 财务表:核对信息。1.3.2 缩写系统:若未特别指出,系统指本“学校教材订购系统”。数据库采用Sql server 2000。1.4 参考资料1) 软件工程 机械工业出版社 2) 张海藩 软件工程导论 清华大学出版社 2 总体设计2.1 需求概述 为方便教师、学生领书,教材发行人员处理各种单据,以及采购人员采购需开发一个“学校教材订购系统”。用户输入正确的登录信息,可以登录进行相关的操作,输入有效的购书申请可以受到预订单,交款后可得发票单,凭发票单,领书通知单领取教材。销售人员可以向财务系统提交预订单和支付单,财务系统进行处理,待购书者交款后
5、开发票给购书者,并给销售者以领书通知单。待发放教材后提交出库单。采购人员向财务系统报预购单和财务报表,经财务系统处理后给出采购单和支出单,采购人员购回教材提交进库单。最后财务系统可以整合信息生成系列财务报表。 22 处理流程图 23 总体结构和模块外部设计 1销售子系统 销售子系统维护相应的数据表登记购书纪录领书修改库存纪录提交给财务系统提交购书单审核购书单 2采购子系统 采购子系统维护数据库修改相应的表登记缺书纪录领取缺书单 3财务子系统财务子系统发缺书单核对缺书记录发领书单,发购书单开发票 登记核对购书单的信息 4学校教材订购系统层次图修改库存 库存信息 用户信息 订购信息 取数据 用户信
6、息 订书信息 处理 发票 购书单 采购单 权限设置 数据库备分 事物处理打 印系统维护初 始 化学校教材订购系统 核对信息 3 程序描述3.1 功能销售子系统模块:提交购书单、审核购书单、登记购书纪录。采购子系统模块:发缺书单、登记缺书纪录、拟订待购书信息。财务子系统模块:修改和维护数据库中相应的表,开发票、 购书单、 采购单。3.2 性能 精度:购书是由需求决定的,只要有缺书现象则会体现出来,但也因为这样,如果需要提前多购相关书籍的话,则需要管理人员的参与。 时间特性要求:定购需要提前若干天。 可靠性:较高 灵活性:在购书单未审核时,可以撤消订购或修改,一旦审核,则不能再修改。3.3 输入项
7、目用户输入正确的登录信息,可以登录进行相关的操作,输入有效的购书申请可以受到预订单,交款后可得发票单,凭发票单,领书通知单领取教材。3.4 输出项目销售人员可以向财务系统提交预订单和支付单,财务系统进行处理,待购书者交款后开发票给购书者,并给销售者以领书通知单。待发放教材后提交出库单。采购人员向财务系统报预购单和财务报表,经财务系统处理后给出采购单和支出单,采购人员购回教材提交进库单。最后财务系统可以整合信息生成系列财务报表。3.5 算法3.5.1销售子系统模块:1 提交购书单过程(HandBuyBookBill):在提交购书单界面中输入购书单中的各信息:提交人姓名(Name)String购书
8、的名称(BookName)String购书的书号(ISBN)String数量(No)String身份识别码(ID)String2 审核购书单过程(CheckBuyBookBill):对过程1 提交购书单输入的部分信息进行审核:Check(购书名称(BookName)Check(购书书号(ISBN)Check(数量(No)Check(身份识别码(ID) 如果有一个或多个错误则不提交购书单上的数据,转入过程3购书单错误信息显示过程。如果审核通过转入过程4 开发票。3 购书单错误信息显示过程(BuyBookBillError):用来显示购书单中出现的错误:If(购书名称!=True)库中没有这类书,
9、请重新输入If(购书书号!=True)书号错误,请重新输入If(数量!=True)数量越界,请重新输入If(身份识别码!=True)身份不对,请确认后重新输入4 开发票过程(PrintBill):Print(书名(BookName),书号(ISBN),开票人姓名(Name),交易金额(Money),交易日期(Date)。5 登记购书记录过程(DBRegistBuyBook):将提交的信息存入到数据库的购书表中:DB BookName=”书名”DB ISBN=”书号”DB No=”数量”6 审核登记过程(CheckDBRegistBuyBook):若在存取过程中出现错误则转到过程7登记购书记录错
10、误信息显示过程,若没有错误,返回成功登记信息,转到过程8发领书单/打印过程。Check(存取)。7 登记购书记录错误信息显示过程(DBRegistBuyBookError):显示在数据库操作中出现的错误,并RoolBack回滚转入过程5重新登记购书记录 Display(错误的类型,相应提示)。 RoolBack8 发领书单/打印过程(PrintBookBill):Print(领书的名称(BookName)、领书的书号(ISBN)、领书的数量(No)、领书人姓名(Nmae)。9 修改库存表、出库表过程(DBUpdateTable):修改出库表和库存表相应的记录库存表:书名、书号、数量出库表:书名
11、、书号、数量、出库时间10 审核修改表过程(CheckDBUpdateTable):如在对数据库操作过程中出现错误,则转入过程11修改表错误信息显示过程,如果没错误,返回成功信息,继续进行下一步操作。Check(数据库操作)。11 修改表错误信息显示过程(DBUpdateTableError):显示在数据库操作中出现的错误,并RoolBack回滚转到过程9重新修改库存表、出库表过程。Display(错误的类型,相应提示)。 RoolBack3.5.2 采购子系统模块:1 发缺书单过程(HandLackBookBill):在发缺书单的界面中,输入缺书的信息书名BookName书号ISBN数量No
12、StringStringint2 审核缺书单过程(CheckLackBookBill):对过程1中输入的信息核对Check(书名、书号、数量)如正确就转入过程4登记缺书记录;如果错误转入过程3缺书单错误信息显示过程。3 缺书单错误信息显示过程(LackBillError):If(书名!=True) 书名错误,请重新输入;If(书号!=True) 书号错误,请重新输入;If(数量!=True) 数量越界,请重新输入;4 登记缺书记录过程(DBRegistLackBook):将缺书信息登入到缺书表中DB BookName=”书名”DB ISBN=”书号”DB No=数量5 审核登记过程(Check
13、DBRegistLackBook):对数据库操作的审核Check(登记过程)如有错转入过程6登记错误信息显示过程,如果没错误转入过程7修改数据库中的表过程。6 登记错误信息显示过程(DBRegistLackBookError):对登记中出现的错误显示,并转入过程4登记缺书记录,重新登记。Display(错误的类型,相应提示)RoolBack7 修改数据库中的表过程(DBUpdateTable):对新进的新书,修改数据库中入库表和库存表的记录:入库表:DB BookName=”书名”DB ISBN=”书号”DB No=”数量”DB In_Date=”入库日期”库存表:DB BookName=”书
14、名”DB ISBN=”书号”DB No=”数量”8 审核修改过程(CheckDBUpdateTable):对数据库中入库表、库存表的修改审核Check(修改过程)如果有错转入过程9修改错误信息显示过程;如无错,转入过程10发进书通知单过程。9 修改错误信息显示过程(DBUpdateTableError):对修改中出现的错误显示,并转入过程7修改数据库中的表,重新修改。10 发进书通知单过程(PrintBookNotice):Print(书名、书号、进书日期);36 程序逻辑系统流程图 1:开始用户提交购书单 1N销售系统审核购书单购书单2 1错误显示 3Y财务系统开发票 4登记购书记录 5N错
15、误显示 7审核登记 6Y财务系统发领书单 8修改相应表 9N审核修改 10错误显示 11Y结束1 提交购书单:(HandBuyBookBill)2 审核购书单(CheckBuyBookBill)3 购书单错误信息显示(BuyBookBillError)4 开发票(PrintBill)5 登记购书记录(DBRegistBuyBook)6 审核登记(CheckDBRegistBuyBook)7 登记购书记录错误信息显示(DBRegistBuyBookError)8 发领书单/打印(PrintBookBill)9 修改库存表、出库表(DBUpdateTable)10 审核修改表(CheckDBUpd
16、ateTable)11 修改表错误信息显示(DBUpdateTableError)系统流程图 2:开始采购系统发缺书单 1财务系统审核缺书单 2错误显示 3登记缺书 4审核登记 5错误显示 6修改数据库的表 7审核修改 8错误显示 9发进书通知单 10采购人员提交进库单 11结束1 发缺书单(HandLackBookBill)2 审核缺书单(CheckLackBookBill)3 缺书单错误信息显示(LackBillError)4 登记缺书记录(DBRegistLackBook)5 审核登记(CheckDBRegistLackBook)6 登记错误信息显示(DBRegistLackBookEr
17、ror)7 修改数据库中的表(DBUpdateTable)8 审核修改(CheckDBUpdateTable)9 修改错误信息显示(DBUpdateTableError)10 发进书通知单(PrintBookNotice)3.7 接口各模块过程之间采用函数调用、参数传递、返回值的方式进行消息传递。具体参数的结构将在下面数据结构设计的内容中说明。接口传递的信息将是以数据结构封装了的数据,以参数传递或返回值的形式在模块之间传递。3.8 存储分配 为程序当中的数据结构在内存中开辟空间存储,如入到数据库中后在数据库的表中为其开辟存储空间。3.9 限制条件输入的信息都封装在数据结构当中,不能独立存在,在
18、向数据库中提交数据时必须一起提交而不能逐项提交。输入数据的类型必须和定义的数据类型相匹配。3.10 测试要点 对本程序进行黑盒和白盒测试,在白盒测试中,进行路径测试,条件测试,判定覆盖,语句覆盖;在黑盒测试中采用等价类划分的测试方法,列出尽可能多的有效等价类和无效等价类。确保程序正常运行,无误。4 出错处理设计出错信息处理对策输入数据格式错误重新输入输入数据溢出重新输入输入数据不完全补充输入数据库的内容被破坏可手动或自动恢复打印机未准备好检查打印机系统死锁重新启动系统5 运行设计51 运行模块组合运行时,系统先启动主模块,显示系统主要功能,供用户选择调用。当用户选择了相应的功能后,由主模块调用,功能完成后选择主模块,用户可选择其它模块。功能模块运行时,可能会调用更下层模块,情况与此类似。当用户第一次使用时,应先调用系统维护功能模块下层的权限设置模块,设定使用权限及密码。52 运行控制系统运行哪个模块,由用户通过鼠标或键盘进行选择,各模块中均有退出按钮可返回调用它的上层模块。6 安全保密设计系统要求具有一定的安全保密性,因此设有操作口令,对要求进入的用户必须输入用户名及口令,方可进入,并被赋予相应的使用权限,口令由系统初次使用时设置。7 维护设计 系统本身带有系统维护功能模块,可进行数据库的备份等。