《软件工程案例教程》李军国主编习题答案 下载本文

附录A 习题答案17

第7章习题答案

一、判断题

题号 1 答案 Y 2 Y 二、选择题

题号 1 答案 D 三、填空题

题号 1 2 3 4 A 程序运行时间 代码行度量法 文档化 自顶向下 B 存储器效率 McCabe环形复杂性度量 规范化 单入口单出口 C 输入/输出效率 Halstead复杂行度量 结构化 D 可视化 四、简答题

1. 简述程序设计语言的三种类型及特点?

机器语言,汇编语言:依赖于机器,面向机器 高级语言:独立于机器,面向过程或面向对象

面向问题语言:独立于机器,非过程式语言(4GL)

1. 程序设计语言基本成分是什么?

答:基本成份可归纳为四种:数据成分、运算成分、控制成分、传输成分。 ① 数据成分:指明该语言能接受的数据,用来描述程序中的数据。如各种类型的变量、数组、指针、记录等。 ② 运算成分:它指明该语言允许执行的运算,用来描述程序中所需进行的运算。如 + 、- 、* 、/ 等。 ③ 控制成分:它指明该语言允许的控制结构,人们可利用这些控制成分来构造程序中的控制逻辑。 ④ 传输成分:它指明该语言允许的数据传输方式,在程序中可用它进行数据传输。 2. 良好的面向对象程序设计风格有哪些准则?

既包括传统的程序设计风格准则,也包括为适应面向对象方法所特有的概念(例如,继承性)而必须遵循的一些新准则:提高可重用性、提高可扩充性和提高健壮性。

五、综合题

1. 如何选择适合项目的面向对象程序设计语言

开发人员在考虑面向对象语言的选择时,除了语言自身特点外也应考虑以下一些实际因素:

(1) 将来能否占主导地位 (2) 可重用性

(3) 类库和开发环境

附录A 习题答案18

(4) 其他因素:对用户学习面向对象分析、设计和编码技术所能提供的培训服务水

平;在使用面向对象语言时所能提供的技术支持资源;能提供给开发人员使用的开发工具、平台和发布平台,对及其性能和内存的需求,集成已有软件的方便程度等等。

2. 请分别画出顺序结构、选择结构、循环结构的结构示意图

真AP假P真假BABA顺序结构条件选择结构while循环结构

3. 考虑提高程序效率,必须明确的三条原则是?

程序的效率是指程序的执行速度及程序所需占用的内存的存储空间。程序编码是最后提高运行速度和节省存储的机会,因此在此阶段不能不考虑程序的效率。在讨论提高效率的要求,应该明确三条原则:

① 效率是一个性能要求,目标应在需求分析阶段给出。

② 追求效率要建立在不损害程序可读性或可靠性基础之上, 要先使程序正确,再提高程序效率;先使程序清晰,再提高程序效率。

③ 提高程序效率的根本途径在于选择良好的设计方法、 良好的数据结构与算法,而不是靠编程时对程序语句做调整。

4. 为什么要进行程序复杂性度量?

① 随着软件项目开发规模的不断扩大,要保证软件产品质量难度也越来越大,单凭以往的程序开发经验很难保证软件产品质量及开发的顺利进行,需要对产品及开发产品的过程进行度量,这就是软件度量。

② 程序复杂性度量是软件度量的重要组成部分,是指理解和处理程序的难易程度,主要针对模块内程序的复杂性。它直接关联到软件开发费用的多少,开发周期的长短和软件内部潜伏错误的多少。对程序进行复杂性度量可以减少程序复杂性,提高软件的简单性和可理解性,并使软件开发费用减少,开发周期缩短,软件内部潜藏错误减少。 5. 对照本章内容,对自己熟悉的一门程序设计语言,尝试分析和总结其基本成分和技术特点。并编写包括输入输出,数据运算,注释的程序,长度不小于500行。

6. 对照本章程序设计风格的内容,尝试修改代码。

附录A 习题答案19

第8章习题答案

一、选择题

题号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 C B D D A 1 C 16 2 D 17 D 位号 1 2 3 题号 18 19 20 C 21 1 A 2 A 位号 1 2 答案 A B C B C D C C A D B C 答案 B C C 二、简答题

1. 软件测试的目的是什么?

答:测试的目的:

(1) 测试是一个为了发现程序中的错误为目的的程序执行过程;

(2) 一个好的测试用例是能最大限度地找到迄今为止尚未发现的错误; (3) 成功的测试是能发现了那些尚未发现的错误。 2. 什么是黑盒测试?有哪些常用的黑盒测试方法?

黑盒测试法是依据软件的需求规格说明书,检查程序功能是否满足需求的要求,主要的黑盒测试方法有:等价类划分,边界值分析,错误推测法,因果图法和场景法。 3. 什么是白盒测试?有哪些常用的白盒测试方法

白盒测试主要针对于程序内部逻辑和数据流程的测试,因此白盒测试的测试用例设计需要了解程序的内部逻辑。常用的白盒测试方法主要有逻辑覆盖法、基本路径测试法。 4. 验证与确认之间的区别:

验证是检验开发出来的软件产品和设计规格说明书的一致性,即是否满足软件厂商的生产要求,保证生产出的产品是高质量的产品。确认就是检验产品功能的有效性,即是否满足用户的真正需求,确认是用户需要的产品。

因为设计规格说明书本身有可能存在错误,即便软件产品中某个功能实现的结果和设计规格说明书完全一致,但也可能不是用户需要的,因为设计规格说明书一开始就对用户需求的理解错了,所以仅仅进行验证测试是不充分的,还要进行确认测试, 5. 软件测试应该划分几个阶段?各个阶段应重点测试的内容是什么?

答:大体上来说可分为单元测试、集成测试、系统测试、验收测试;每个阶段又分为确定测试计划,测试设计,设计测试用例,实施测试,进行测试报告五个步骤:。

1) 单元测试对软件中的基本组成单位进行的测试,如一个模块、一个过程等等。它是软件动态测试的最基本的部分,也是最重要的部分之一,其目的是检验软件基本组成单位的正确性。

2) 集成测试软件系统集成过程中所进行的测试,其主要目的是检查软件单位之间的接口是否正确。

3) 系统测试,系统测试是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等满足其规约所指定的要求,检查软件的行为和输出是否正确并非一项简单的任务,它被称为测试的“先知者问题”。

附录A 习题答案20

4) 验收测试,在向软件的购买者展示该软件系统满足其用户的需求。它的测试数据通常是系统测试的测试数据的子集.

5) 回归测试,回归测试是在软件维护阶段,对软件进行修改之后进行的测试。其目的是检验对软件进行的修改是否正确。

三、综合题:

1. 程序功能说明书指出,某程序的输入条件为:每个学生可以选修1至3门课程,试用黑盒法设计测试用例。

(1)按等价分类法设计测试用例(要求列出设计过程) (2)按边界值分析法设计测试用例。 (3)按错误推测法设计测试用例 答:

合理等价类 ①选修1门 ②选修2门 ③选修3门

输入数据 2 0 >3 预期结果 输入有效 输入无效 输入无效 覆盖范围 ①②③ ④ ⑤ 不合理等价类 ④没选课 ⑤选3门以上 (2):边界值法值是1,3,所以测试用例为0,1,3,4。 (3):错误推测法设计的测试用例:空、空格、12、a、a1、1¥、null 2. 设被测试的程序段为:找出实现(1)语句覆盖;(2)条件覆盖;(3)判定覆盖至少要选择的数据组。

Begin可供选择的测试数据组为: s1 ;x y if (x=0) and (y>2)Ⅰ 0 3 then s2;Ⅱ 1 2 if (x<1) or (y=1)Ⅲ -1 2 then s3 ;Ⅳ 3 1 s4 ; end 答:(1)Ⅰ (2) Ⅰ,Ⅳ (3) Ⅰ,Ⅱ

3. 随意选择一个物品,根据所学的软件测试技术、方法和内容对其进行测试。如水杯、电梯等。

测试项目:杯子

需求测试:查看杯子使用说明书 界面测试:查看杯子外观