附录A 部分习题解答习题19.A①,B②,C④,D③,E①10.A②,B①,C④,D①,E②11、快速原型,原因是这个软件功能非常简单,可以很快地容易实现,而且实现并测试完之后,该产品将被抛弃。
12、该软件产品跟踪该公司的全部流程,可以按阶段划分,为了保证前后的连续和衔接,每个阶段都需要完成合格的文档,所以考虑使用瀑布模型。
13、新产品的要求是可移植性好,并且容易适应新的运行环境,可能用户会提出不同的需求,新产品也要满足,因此,对软件体系结构有开放的要求,采用增量模型可以较好地解决这个问题。
习题21、A④,B③,C①,D②2、房产经营管理系统(1)数据字典规格=[三房一厅| 两房一厅| 一房一厅]房间=房产编号+房产地点+楼房名称+层次+朝向+规格+面积+单价+总价+[租|售]+[已|未]+备注房产={房产地点+{楼房名称+总层高+{{房间}}}}单价=[每月租金|每平方米价格]客户=客户编号+姓名+性别+地址+电话客户需求=客户编号+日期+{房产编号}交易情况=日期+客户编号+房产编号+金额+备注+经手人(2)房产经营管理系统数据流图,如图附录图1所示。
实用软件工程220图附录图.1房产经营管理系统数据流图(3)房产经营管理系统IPO 图,如图附录图2所示。
输入 处理 输出图附录图.2 房产经营管理系统IPO 图3、火车卧铺票订票系统 (1)数据字典列车类型=[普快/特快/快速]+[空调/非空调] 停靠站=站名+(到达时间,发车时间) 车次=车次号+列车类型+{停靠站} 列车运行情况={车次} 软卧=[上铺/下铺]硬卧=[上铺/中铺/下铺] 铺位类型=[软卧/硬卧]房产 客户需求查询 统计 租/售房产情况统计结果租/售合同车票号=车厢号+{铺位号}。
如,5车8号上。
售票情况=1{日期+{车次+{车票号+[已售/未售]}}} 5票价=起始站+{到达站+{列车类型+{铺位类型+价格+[全/半]}}}火车票=日期+车次+起始站+到达站+列车类型+铺位类型+价格+车票号+[全/半](2)数据流图本系统的数据库可设计两张数据表:列车运行情况表和售票情况表。
旅客根据列车运行情况,提出购票要求。
售票系统根据旅客要求,查询售票情况表,有票则输出火车票,并更改售票情况;无票则告诉旅客。
数据流图如图附录图3所示。
图附录图.3 火车卧铺票售票系统数据流图(3)IPO图如图附录图4所示。
图附录图.4 火车卧铺票订票系统IPO图4.银行储蓄管理系统(1)数据流图,如图附录图5所示。
221附录部分习题解答图附录图5 银行储蓄管理系统数据流图(2)数据字典: ● 系统中的数据对象:业务员、储户、存款清单、取款清单、利息清单 ● 储户与存款清单、取款清单、密码信息分别有1:N 的拥有联系 ● 业务员与存款清单、取款清单、利息清单有1:N 的处理联系。
●存款清单(存款人姓名,住址,存款人证件号码,存款类型,存款日期、到期日期、利率,存款数量)● 取款清单(存款人姓名,存款人证件号码,取款人姓名,取款人证件号码,取款类型,取款数量)● 利息清单(取款人姓名,身份证号码,取款类型,利息,取款总数量) (3)实体-关系图,如图附录图6银行储蓄管理系统实体-关系图所示。
图附录图6 银行储蓄管理系统实体-关系图5.飞机票订票系统的实体-关系图,如图附录图7所示。
图附录图7 飞机票订票系统实体-关系图6.图附录图8 医院患者监护系统数据流图7. 复印机状态转换图,如图附录图9所示。
排除故障图附录图9 复印机状态转换图8.电话号码数据字典如下:电话号码=[校内电话|校外电话]校内电话=非零数字字符+3{数字字符}3校外电话=0+[本市电话│外地电话]本市电话=非零数字字符+7{数字字符}7外地电话=3{数字字符}3 + 非零数字字符+7{数字字符}7非零数字字符=[1|2|3|4|5|6|7|8|9]数字字符=[0|1|2|3|4|5|6|7|8|9]习题35、学生成绩管理系统的HIPO图,如图附录图10所示。
图附录图10 学生成绩管理系统HIPO图6、图书馆管理系统的HIPO图,如图附录图11所示.225附录部分习题解答实用软件工程226图附录图11 图书馆管理系统HIPO 图7.A ②,B ③,C ③,D ②,E ② 8.A ⑤,B ⑦,C ③,D ②,E ①9.A ④,B ①,C ③,D ②,E ①10、旅游价格优惠判定表如表附录表1所示。
表附录表1 旅游价格优惠判定表12.伪程序对应的盒图如图附录图12所示。
图书馆管理系统读者管理图书采编 图书流通 图书查询采购入库图书编码借书 还书 添加 删除 修改BLOCK:13.(1)习题3.13对应的程序流程图如图附录图13所示。
实用软件工程228图附录图13 习题3.13伪程序所对应的程序流程图(2) 程序不是结构化的,因为用了GOTO结构。
部分习题解答附录229(3) 等价的结构化程序所对应的流程图,如图附录图14所示。
图附录图14 习题3.13伪程序等价的结构化流程图对应的结构化程序如下。
then set FLAG TO 1else if TABLE(I)>ITEMthen set FINISH to I-1else set START TO I+1enddoexit(4)此程序的功能是:在TABLE中用二分法查找已知数ITEM。
它完成预定功能隐含的前提条件是:TABLE中的数据应按升序排序。
习题45.A②,B④,C④,D②,E①6.A②,B④,C④,D①,E④,F④7.A②,B⑤,C①,D②,E⑤,F③8.A②,B②,C③,D④,E③,F②,G④,H⑤,I①,J①9.正确的如下:②,⑤,⑥,⑦,⑨,⑩10.正确的如下:②,⑤11.A⑥,B②,C①,D⑧,E④14.单元测试时,集中检验软件设计的最小单元——模块。
在正式测试之前必须先通过编译程序检查并且改正所有语法错误,然后用详细设计描述作指南,对重要的执行通路进行测试,以便发现模块内部的错误。
单元测试可以使用白盒测试法,而且对多个模块的测试可以并行地进行。
在单元测试期间主要评价模块的下述五个特性:模块接口;局部数据结构;重要的执行通路;出错处理通路;影响上述各方面特性的边界条件。
集成测试是组装软件的系统技术。
例如,子系统测试是在把模块按照设计要求组装起来的同时进行测试,主要目标是发现与接口有关的问题(系统测试与此类似)。
由模块组装成程序时有两种方法。
一种方法是先分别测试每个模块,再把所有模块按设计要求放在一起结合成所要的程序,这种方法称为非渐增式测试方法;另一种方法是把下一个要测试的模块同已经测试好的那些模块结合起来进行测试,测试完以后再把下一个应该测试的模块结合进来测试。
这种每次增加一个模块的方法称为渐增式测试,这种方法实际上同时完成单元测试和集成测试。
15.添加编号后的程序如下:Start1:Input (X,Y,Z)2:If X<123:then Z=Z+14:Else Y=Y+1End if5:If Y>126:Then Z=1End if7:If Z>18:Then X=X+129:Else Y=Y+1End if10:Print (X,Y,Z)End对应的程序流图,如图附录图15所示。
图附录图15 习题3.15流程图环形复杂度=E-G+2=12-10+2=4。
独立路径如下:1 3 5 7 8 101 2 4 5 7 8 101 2 4 5 6 7 8 101 2 4 5 6 7 9 10习题57.(1)、(3)、(6)、(7)、(9)8.(1)最长,最多(2)编码,数据,文档(3)用户提出维护申请,维护组织审查申请报告并安排维护工作,进行维护并做详细的维护记录,复审(4)错误,测试,维护(5)理解,改正,适应和增强习题67、(1)银行储蓄系统的数据流图该系统的数据库可设计两张数据表:利率表存放各种类型的利率,储户文件存放储户的信息。
数据处理分为存款、取款和储户注销。
存款时要根据利率表中的存款类型确定利率。
取款和注销要对储户文件进行处理。
数据流图如图附录图16所示。
图附录图16 银行储蓄系统数据流图(2)银行储蓄系统的对象模型,如图附录图17所示。
图附录图17 银行储蓄系统对象模型(3)功能模型如图附录图18所示。
图附录图18 银行储蓄系统功能模型(4)动态模型如图附录图19所示。
实用软件工程236图附录图19 银行储蓄系统动态模型8、公务员招聘考试管理系统的顺序图,如图附录图20所示。
图附录图20 公务员招聘考试管理系统的顺序图接收业务状态 闲置状态存款单处理状态 do:打印存款凭证 判断状态 do:判断有无密码计算利息 打印清单核对状态 do:核对密码提示状态 do:提示出错有储户来存款要求 取款要求有密码无密码 正确不正确给出本金利息清单提示出错信息9、公安报警系统顺序图如图附录图21所示。
图附录图21 公安报警系统顺序图10.A①,B⑥,C⑤,D②,E③,F②习题74.A③,B②,C②,D①,E②5.A②,B④,C②,D②6.A①,B④,C③,D④,E①7.对象模型如图附录图22所示。
237附录部分习题解答图附录图22 习题7.7对象模型8.对象模型如图附录图23所示。
图附录图23 习题7.8对象模型9、(1图附录图24 习题7.9对象模型(2)动态模型如图附录图25所示。
图附录图25 习题7.9动态模型(3图附录图26 习题7.9功能模型习题86.(1)工具和方法的集合(2)软件开发生产率,软件质量(3)质量(4)用户接口(5)软件工具,方法,模型习题98.A④,B③,C⑥,D⑤,E⑦9.A③,B④,C④,D①,E③。