软件工程作业姓名:李泽伟班级:11信科(1)班学号:20113266301181.题目:采用结构化分析方法写出书店管理系统的需求文档,包括数据流图及数据字典,书店JS是一家从事图书销售的传统公司,对系统要求如下:(1)记录每本图书的库存。(2)实现图书的零售(包括打折),实现开架售书。(3)可以每日统计销售情况。(4)实现图书的采购、退货及结算,实现与供货商的销售及结算关系。(5)遵守出版行业的行规:在书店到书后,若在3个月内未实现销售,可全部或部分退货,在发书后3个月内给予发票,书店在3个月后可部分或全部付款,该项规则对采购货批发均有效。(6)该书店还可将该产品批发给其他书店。(7)在供应商、书店、其他书店、零售客户之间的结算采用码洋折扣方式进行,也就是说如果图书的实价为X,则图书码洋为X,而以7折给书店,则图书的实洋就为0.7X,供应商、书店等以相对固定的折扣进行交易。(8)管理人员可以随时查看库存、采购、销售、付款、到款情况,并能提供日/月销售报表、应付/付款情况分析表、应收/到款情况分析表。由于销售商品是图书,图书除有书名、作者、出版社外,还有版次、印次、出版日期以及ISBN号、条码、定价;由于出版领域的特殊性,一种图书(如软件工程)只有一个ISBN号以及一个条码,而该图书一句不同的版次、印次,可有不同的定价,折给条码的扫描确定一本图书带来一定的困难。答案:数据流图:JS图书销售系统零售客户供货商其它书店管理人员零售信息零售发票发票统计结果1零售3批发2采购4统计进货信息统计结果零售信息零售发票发票库存销售情况采购情况顶层图0层图结算信息批发信息批发商退货批发商退货批发信息结算信息进货信息退货信息退货信息2.1采购1.1零售1.2结算、打印发票2.2退货2.3进货结算3.1批发3.2退货3.3批发结算、打印发票4.1统计、打印库存4.2查看、打印采购情况分析4.3查看、打印销售情况分析库存销售情况零售发票采购情况进货信息退货信息批发信息发票批发商退货采购情况分析销售情况分析库存结算信息零售信息JS图书销售系统零售采购批发统计零售结算打印发票采购退货结算批发批发结算批发退货销售情况分析库存情况分析采购情况分析数据字典:1、数据流条目:订货单={书号+书名+作者+出版社+数量}+日期+订货人付款单=应付金额+实付金额+付款人+收款人+日期发货单={书号+书名+作者+出版社+数量}+发货人+收货人+日期发票={书号+书名+作者+出版社+数量+单价+金额}+总金额+日期+(营业员)收据={书号+书名+作者+出版社+数量+单价+金额}+总金额+日期+单位收款单={书号+书名+作者+出版社+数量}+订货日期+付款人+收款人+收款日期采购单={书号+书名+作者+出版社+数量}采购订单={书号+书名+作者+出版社+数量}+采购人+采购单位+日期到货通知单={书号+书名+作者+出版社+数量}+订货日期+订货人+到货日期退货书单={书号+书名+作者+出版社+数量}+退货人+退货单位+日期退货单={书号+书名+作者+出版社+数量+单价+金额}+总金额+退货人+退货日期应付款分析表=应付款单位+{书号+书名+作者+出版社+数量+单价+金额}+总金额+应付款日期应收款分析表=应收款单位(个人)+{书号+书名+作者+出版社+数量+单价+金额}+总金额+应收款日期2、文件条目:图书库存={书号+书名+作者+出版社+数量}+日期销售文件={书号+书名+作者+出版社+数量+单价+金额}+总金额+销售日期图书采购文件={书号+书名+作者+出版社+数量+单价+金额}+总金额+采购日期书店结算账本=销售文件+图书采购文件+应付款分析表+应收款分析表3、数据项条目书号=00000000…99999999日期=XXXX.XX.XX数量*单价=金额E-R图:2.书店管理系统用况建模2.1.书店管理系统用例图2.2.用例的详细描述用例名称:书店管理系统参与的执行者:客户、系统业务员前置条件:一个客户或系统业务员进入系统事件流:基本路径:1、当用户户进入系统,用例开始2、用户验证(客户/系统管理员)3、进入系统主界面4、如果客户进入系统则选购图书5、客户到前台结账时形成订书单6、客户退出系统7、当系统管理员进入系统时,管理员根据界面信息拟制订书单8、系统管理员录入图书信息9、录入图书信息完毕后退出可选路径:系统管理员与客户进入系统没有顺序规定,用户在任何时候都可以退出系统,而且用户之前的活动将被保存,用例结束。3.书店管理系统的静态模型3.1标识候选对象外部实体有客户、系统管理员、出版社、供货商、图书、订单、库存、订单管理系统。这些外部实体都可以作为候选对象。需要处理的信息有名称、单价、供货信息、订单的订单项、图书的编号、订单日期、客户信息等。3.2筛选候选对象图书管理系统实际上代表了整个系统,所有信息的显示、操作界面等都由图书管理系统来展示,因此可以将其确定为最终的所需的对象。客户、、系统管理员、出版社、供货商、图书、订单、库存等候选对象都有明确的属性和操作,显然应该成为最终的对象。考虑到一份订单可以由多个订单项组成,因此增加订单项这个对象。综上所述,最终得到图书管理系统包含以下类:客户、、系统管理员、出版社、供货商、图书、订单、库存、订单项。3.3标识属性和操作表3.3图书管理系统的类及其属性类名客户管理员出版社供货商图书订单库存订单项属性客户名客户地址客户电话姓名编号电话出版社名出版社号出版社地址供货商名供货商地址供货单联系电话书号书名作者价格出版社号订单号客户信息图书编号购买数量日期图书编号库存数量入库时间图书编号订单日期供货商信息3.4确定类之间的关系操作添加修改信息删除记录更新库存打印修改修改添加删除打印添加修改创建订单修改订单删除订单更新订单打印添加修改更新图书管理系统的类图4.某模块的流程图如图13.18所示。根据判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖等覆盖标准分别设计最少的测试用例。4.1判定覆盖判定覆盖是指选择足够的测试用例,使得运行这些测试用例时,被测程序的所有可能结果都至少出现一次(即判定的每个分支都至少经过一次)。表4.1满足判定覆盖标准的测试用例测试数据预期结果判定1判定2X=100,Y=90T=1YX=100,Y=70T=2NYX=100,Y=40T=3NN4.2条件覆盖条件覆盖是指选择足够的测试用例,使得运行这些测试用例时,被测程序的每个判定中的每个条件的所有可能结果都至少出现一次。表4.2满足条件覆盖标准的测试用例测试数据预期结果判定1判定2X=100,Y=30T=3NNX=70,Y=100T=2NY4.3判定/条件覆盖判定/条件覆盖是指选择足够的测试用例,使得运行这些测试用例时,被测程序的每个判定的所有可能结果都至少执行一次,并且,每个判定中的每个条件的所有可能结果都至少出现一次。表4.2满足判定/条件覆盖标准的测试用例测试数据预期结果判定1判定2X=100,Y=90T=1YX=100,Y=30T=3NNX=70,Y=100T=2NY4.4条件组合覆盖条件组合覆盖是指选择足够的测试用例,使得运行这些用例时,被测程序的每个判定的条件结果的所有可能组合都至少出现一次。判定1中的条件结果的所有可能组合是:①X=80,Y=80②X=80,Y80③X80,Y=80④X80,Y80判定2中的条件结果的所有可能组合是:⑤X+Y=140,X=90,Y80⑥X+Y=140,X80,Y=90⑦X+Y=140,X90,Y90⑧X+Y140,X=90,Y90⑨X+Y140,X90,Y=90⑩X+Y140,X90,Y90表4.3满足条件组合覆盖标准的测试用例测试数据预期结果判定1判定2覆盖的条件X=100,Y=90T=1Y1X=100,Y=50T=3NN2,5X=70,Y=100T=2NY3,6X=70,Y=80T=3NN4,8X=70,Y=80T=3NN4,7X=30,Y=100T=3NN9X=60,Y=60T=3NN104.5路径覆盖路径覆盖是指选择足够的测试用例,使得运行这些测试用例时,被测程序的每条可能执行的路径都至少经过一次。表4.5满足路径覆盖标准的测试用例测试数据预期结果判定1判定2X=100,Y=90T=1YX=100,Y=30T=3NNX=70,Y=100T=2NY