1、综合练习(1)1、 填空(每空 0.5,共 20 分)(1)软件生命周期可划分为 , 和 三个时期,通常把这 3 个时期再细分为 8 个阶段,它们是 、 、 、 、 、 、 和 ,其中 阶段的工作是 8 个阶段中最大的。(2)可行性研究的任务是从 、 和 等三个方面的研究。(3)至少应该从 、 、 、和 等四个方面验证软件需求的正确性,其中 和 这两个方面的正确性必须有用户的积极参与才能验证,而且为了验证这两个方面的正确性往往需要开发 。(4)软件总体设计时应该遵循 、 、 、 、 和等六条基本原理。详细设计通常以 技术为逻辑基础,因为从软件工程的观点看, 是软件最重要的质量标准之一。(5)软
2、件测试的目的是 ,通常把测试方法分为 和 两大类。因为通常不可能做到 ,所以精心设计 是保证达到测试目的所必须的。(6)面向对象方法用 分解取代了传统方法的分解。(7)在面向对象的软件中, 是对具有相同数据和相同操作的一组相似对象的定义; 是由某个特定的类所描述的一个具体对象。2、按下述要求完成给出的程序流程图,即在答案栏内写出图中 A,B,C,D,E 的正确内容。 (每栏 3 分,共 15 分)给程序输入二维数组 W(I ,J) ,其中 IM,JN(M 和 N 均为正整数)。程序打印出数组中绝对值最小的元素值 Q=W(K,L),及其下标 K,L 的值。假定数组中仅有一个绝对值最小的元素。应该
3、完成的程序流程图如图 A.1 所示。【答案栏】A: B: C: D: E: 3、 下面给出了用盒图(见图 A.2)描述的一个程序的算法,请用逻辑覆盖法设计测试方案,要求做到语句覆盖和路径覆盖。 (共 15 分)图 A.2 用盒图描绘的算法4、 某高校可用的电话号码有以下几类:校内电话号码由 4 位数字组成,第 1 位数字不是0;校外电话又分为本市电话和外地电话两类,拨校外电话需先拨 0,如果是本市电话再接着拨 8 位电话号码(第一位不是 0) ,如果是外地电话则先拨区码(3-5 位数字) ,在拨当地电话号码(7 或 8 位数字,第 1 位不是 0) 。请定义上述的电话号码。 (共 15 分)5
4、、 请说明多态重用与继承重用的关系。 (共 15 分)6、 请建立下述的图书馆馆藏出版物的对象模型。 (共 20 分)一家图书馆藏有书籍、杂志、小册子、电影录像带,音乐 CD、录音图书磁带和报纸等出版物,供读者借阅。这些出版物有出版物名,出版者,获得日期,目录编号,书架位置,借出状态和借出限制等属性,并有借出,收回等服务。入口W ( I , J )Q = W ( 1 , 1 )K = 1 , L = 1Q = 0I = 1I 循环AQ = W ( I , J )K = I , L = JBDCEQ , K , L出口是否是否J = 1J 循环图 A.1 要求完成的程序流程图综合练习(2)1、
5、将下列各对事物之间的关系(继承、聚集或一般关系)写在括弧内。 (共 10 分)(1) 小汽车富康牌小汽车 ( )(2) 人员雇员 ( )(3) 图书馆期刊阅览室 ( )(4) 书图书管理员 ( )(5) 小汽车司机 ( )(6) 读者借出的书 ( )(7) 班级学生 ( )(8) 教师教授 ( )(9) 丈夫妻子 ( )(10) 列车餐车 ( )2、 判断下列各项是类还是类的实例,答案写在括弧内。 (共 10 分)(1) 我的小汽车 ( )(2) 人员 ( )(3) 王晓明 ( )(4) 交通工具 ( )(5) 教授 ( )(6) 计算机系 ( )(7) 中国工人 ( )(8) 清华大学学生
6、( )(9) 日本国 ( )(10) 喷气式战机 ( )3、 从供选择的答案中选出在下列叙述中括弧内字母该代表的正确内容,把答案写在答案栏内。 (共 10 分)(1) 一组语句在程序的多处出现,为了节省内存空间吧这词儿语句放在一个模块中,该模块的内聚度是(A)的。(2) 将几个逻辑上相似的成分放在一个人模块中,该模块的内聚度是(B)的。(3) 模块中所有成分都使用共同的数据,该模块的内聚度是(C)的。(4) 模块内某些成分的输出是另一些成分的输入,该模块的内聚度是(D)的。(5) 模块中所有成分结合起来完成单独一向任务,该模块的内聚度是(E)的。它具有简明的外部界面,有它构成的软件易于理解,测
7、试和维护。【供选择的答案】AE 1、功能性 2、顺序性 3、通信性 4、过程性5、偶然性 6、瞬时性 7、逻辑性【答案栏】A: B: C: D: E: 4、 图 A.3 是用程序流程图描绘的处理算法,请把它改画为等价的盒图。 (共 10 分)acdefighbx 1x 7x 6x 4x 3x 5x 2x 8j假 真真假 真真假假真假图 A.3 程序流程图5、 有一个长度为 48000 条机器指令的程序,第一个月有甲乙二人分别测试它。甲改正了20 个错误,是程序的无故障时间达到了 8 个小时。乙在测试该程序的另一个副本时改正了 24 个错误,其中 6 个错误与甲改正的相同。然后,有甲一个人继续测
8、试这个程序。请问(共 20 分)(1) 刚开始测试时程序中的错误总数 ET 是多少?(2) 为使平均无故障时间达到 240h,如果甲不利用乙的工作成果,则他还需要再改正多少个错误?(3) 为使平均无故障时间达到 480h,如果甲利用了乙的工作成果,则他还需要改正多少个错误?6、 办公室复印机的工作过程大致如下:未接到复印机命令时处于闲置状态,一旦接到辅以命令则进入复印状态,完成一个复印命令规定的工作后又回到闲置状态,等待下一个复印命令;如果执行复印命令时发现缺纸,则进入缺纸状态,发出警告,等待装纸,装满纸后进入闲置状态,准备接受复印命令;如果复印时发生卡纸故障,则进入卡纸状态,发出警告等待维修
9、人员来排除故障,故障排除后回到闲置状态。请用状态转换图描绘复印机的行为。 (共 20 分)7、 请建立下述杂货店问题的对象模型。 (共 20 分)一家杂货店想使其库存管理自动化。这家杂货店拥有能记录顾客购买的所有商品的名称和数量的销售终端。顾客服务台也有类似的终端,以处理顾客的退货。它在码头有另外一个终端用于处理供应商发货。肉食部和农产品部所有终端用于输入由于损耗导致的损失和折扣。综合练习(3)1、 判断下述提高软件可维护性的措施是否正确,正确的在括弧内写对,错的写错。 (共 10分)(1) 在进行需求分析是同时考虑维护问题。 ( )(2) 完成测试后,为缩短源程序长度而删去程序中的注解。 (
10、 )(3) 尽可能在软件开发过程中保证各阶段的文档的正确性。 ( )(4) 编码时尽可能使用全局变量。 ( )(5) 选择时间按效率和空间效率尽可能高的算法。 ( )(6) 尽可能利用硬件的特点以提高效率。 ( )(7) 重视程序结构的设计,使程序具有较好的层次结构。 ( )(8) 使用维护工具或软件工程环境。 ( )(9) 进行概要设计时量使用高级语言编程。 ( )(10) 提高程序可读性,尽量使用该机语言编程。 ( )2为开发一个路自动售票系统(该系统预计从 2004 年使用到 2014 年) ,请完成下面的数据流图(见图 A.4)和数据字典,即从供选择的答案中选出 A、B 、C、D和 E
11、 的内容,并给出 F、G 的内容,填在答案栏中。 (共 20 分)(1) 数据流图受理D乘客收款登记EAC车费已收款B图 A.4 铁路自动售票系统数据流图供选择的答案A-E 车次表; 接受; 售票记录; 购票请求; 拒绝。(2)数据字典购票请求=F乘车日期=G到站=4字母20字母=“A”“Z”!“a”“z”车次=“001”“999”拒绝=无车次|无票无车次=“no train”无票=“no ticket”接受=“to sale”已收款=“yes”车次表=起站+ 止站+车次起站=止站=到站售票记录=乘车日期+ 起站+止站+ 车次+座号座号=车厢号+座位号车厢号=“01”“20”座位号=H注:“0
12、1”“20”表示数字范围从 01 到 20乘车日期应给出年、月、日,例如,2004/06/21;假设每个车厢有 100 个座位。答案栏A: B: C: D: E: 3 画出简化的文本编辑程序的用例图,该编辑程序的主要功能有,建立文件、打开文件、插入文件、修改文件和保存文件。 (共 10 分)4图 A.5 所示的程序流程图描绘了一个非结构化的程序。 (共 20 分)(1)为什么说它是非结构化的?(2)利用附加变量 FLAG,设计一个等价的结构化程序,用盒图描绘你的设计结果。(3)不用附加变量,设计一个等价的结构化程序,用盒图描绘你的设计结果。开始P 0gq :=E:=+|-:=:=0|1其中,符号:=表示定义为;符号表示可选项;符号 a|b 表示 a 或 b。假设一个有穷状态机以一串字符为输入,根据浮点二进制数的定义判断输入的字符串是否是合法的浮点二进制数,请画出这个有穷状态机。 (共 20 分)