软件工程实用教程第三版郭宁主编课后习题和答案解析 下载本文

专业整理

第一章 软件工程引论

1. 在下列选项中,(D)不是软件的特征。

A. 系统性与复制性 B. 可靠性与一致性 C. 抽象性与智能型 D.有形性与可控性 2. 软件是一种(B)产品。

A. 有形 B. 逻辑 C. 物质 D. 消耗

3. 软件工程是一种(A)分阶段实现的软件程序开发方法。

A. 自顶向下 B. 自底向上 C. 逐步求精 D. 面向数据流 4. 与计算机科学的理论研究不同,软件工程是一门(B)学科。

A. 理论性 B. 工程性 C. 原理性 D. 心理性

5. 软件工程与计算机科学性质不同,软件工程着重于(C)。

A. 原理探讨 B. 理论研究 C. 建造软件系统 D. 原理性的理论 6. 下列说法正确的是(B)

A. 软件工程的概念于20世纪50年代提出 B. 软件工程的概念于20世纪60年代提出 C. 20世纪70年代出现了客户机/服务器技术 D. 20世纪80年代软件工程学科达到成熟

7. 软件工程方法学中的软件工程管理是其中的一个重要内容,它包括软件管理学和软件工

程经济学,它要达到的目标是(D) A. 管理开发人员,以开发良好的软件

B. 采用先进的软件开发工具,开发优秀的软件 C. 消除软件危机,达到软件生产的规模效益 D. 以基本的社会效益为基础,工程化生产软件

第二章 软件生命周期及开发模型

1. 软件生命周期包括可行性分析和项目开发计划、需求分析、总体设计、详细分析、编码、

(B)、维护等活动。

A. 应用 B. 测试 C. 检测 D. 以上答案都不正确

2. 软件生命周期模型有多中,下列项目中, (C)不是软件生命周期模型。

A. 螺旋模型 B. 增量模型 C. 功能模型 D. 瀑布模型 3. 软件生命周期中时间最长的阶段时(D)

A. 需求分析阶段 B. 总体设计阶段 C. 测试阶段 D. 维护阶段 4. 瀑布模型是一种(D)

A. 软件开发方法 B. 软件生存周期 C. 程序设计方法学 D. 软件生存周期模型 5. 软件开发中常采用的结构化生命周期方法,由于其特征而一般称其为(A)

A. 瀑布模型 B. 对象模型 C. 螺旋模型 D. 层次模型 6. 在结构化的瀑布模型中,(D)阶段定义的标准将成为软件测试中系统测试阶段的目标

A. 详细设计阶段 B. 总体设计阶段 C. 可行性研究阶段 D. 需求分析 7. 增量模型是一种(B)的模型

A. 整体开发 B. 非整体开发 C. 灵活性差 D. 较晚产生工作软件 8. (C)是指模拟某种产品的原始模型

A. 模型 B. 最初模型 C. 原型 D. 进化模型

9. 建立原型的目的不同,实现原型的途径也有所不同,下列不正确的类型是(B)

A. 用于验证软件需求的原型 B. 垂直原型 C. 用于验证设计方案的原型 D.用于演化

出目标系统的原型

WORD完美格式

专业整理

10. 原型化方法是一种(A)型的设计过程。

A. 在外向内 B. 自顶向下 C. 自内向外 D. 自底向上 11. 对于原型的使用建议,以下说法不正确的是(C)

A. 对于开发周期很长的项目,能够使用原型 B. 在系统的使用可能变化较大、不能相

对稳定是,能够使用原型 C. 缺乏开发工具,或对原型的可用工具不了解的时候,能够使用原型 D. 开发者对系统的某种设计方案的实现无信心或无十分的把握时,能够使用原型

12. 原型模型的主要特点之一是(B)

A. 开发完毕才见到产品 B. 及早提供工作软件 C. 及早提供全部完整软件 D. 开发

完毕才见到工作软件

第三章 结构化需求分析

1. 需求工程的主要目的是(C)

A. 制定系统开发的具体方案 B. 进一步确定系统的需求 C. 解决系统是“做什么的为

题” D. 解决系统是“如何做的问题”

2. 需求分析的任务不包括(B)

A. 问题分析 B. 系统设计 C. 需求分析 D.需求评审 3. 软件分析的第一步要做的工作是(A)

A. 定义系统的目标 B. 定义系统的功能模块 C. 分析用户需求 D. 分析系统开发的

可行性

4. 可行性研究的目的是用最小的代价在尽可能短的时间内确定问题的(A)

A. 能否可解 B. 工程进度 C. 开发计划 D. 人员配置 5. 需求分析最终结果是产生(B)

A. 项目开发计划 B. 需求规格说明书 C. 设计说明书 D. 可行性分析报告 6. 在结构化分析方法中,(C)是表达系统内部数据运动的图形化技术

A. 数据字典 B. 实体关系图 C. 数据流图 D. 状态转换图 7. DFD中的每个加工至少需要(D)

A. 一个输入流 B. 一个输出流 C. 一个输入或输出流 D. 一个输入流和一个数处理 8. 需求分析的主要方法有(C)

A. 形式化分析方法 B. PAD图描述 C. 结构化分析方法 D. 程序流程图 9. SA法的主要描述手段有(B)

A. 系统流程图和模块图 B. DFD图、数据字典、加工说明 C. 软件结构图、加工说明

D. 功能结构图、加工说明

10. 软件需求分析阶段的工作,可以分为以下4个方面:对问题的识别、分析与综合、编写

需求分析文档以及(C)

A. 总结 B. 编写阶段性报告 C. 进行需求分析评审 D. 以上答案都不正确

第四章 结构化软件设计

1. 在面向数据流的软件设计方法中,一般将信息里与分为(D)

A. 数据流和控制流 B. 变换流和控制流 C. 事务流和控制流 D. 变换流和事务流 2. 耦合度可以分为七级,其中最松散的耦合是(A)

A. 非直接耦合 B. 数据耦合 C. 特征耦合 D. 控制耦合

3. 当模块中包含复杂的条件组合,只有(A)能够清晰的表达出各种动作之间的对应关系

A. 判定表和判定树 B. 盒图 C. 流程图 D. 关系图 4. 一个软件的宽度是指其控制的(C)

A. 模块数 B. 层数 C. 跨度 D. 厚度

WORD完美格式

专业整理

5. 面向数据流的软件设计方法可将(C)映射成软件结构

A. 控制结构 B. 模块 C. 数据流 D. 事务流

第五章 面向对象的需求分析

1. 采用UML进行软件建模的过程中,类图是系统的一种静态视图,用(B)可明确表示两

类事物之间存在的整体/部分形式的关联关系。

A. 依赖关系 B. 聚合关系 C. 泛化关系 D. 实现关系

2. 在UML语言中,图中的a、b、c三中图形符号按照顺序分别表示(C)

Kim, KeehyunKim, HyunsooJung, Yoontae

A. 边界对象、实体对象、控制对象 B. 实体对象、边界对象、控制对象 C. 控制对象、

实体对象、边界对象 D. 边界对象、控制对象、实体对象

3. 不同的对象收到同一消息可以产生完全不同的结果,这一现象叫做(B)

A. 继承 B. 多态 C. 动态绑定 D. 静态绑定

第六章 面向对象的软件设计

1. 下面哪种设计模式定义了对象间的一种一对多的依赖关系,以便当一个对象的状态发生

改变时,所有依赖于它的对象都得到通知并自动刷新(D) A. Adapter(适配器) B. Iterator(迭代器) C. Prototype(原型) D. Observer(观察者)

2. UML中有多种类型的图,其中,(B)对系统的使用方式进行了分类;()显示了类及其

相互关系;()显示了人或对象的活动,其方式类似于流程图;通信图显示了在某种情况下对象之间发送的消息;()与通信图类似,但强调的是顺序而不是连接。

A. 用例图、顺序图、类图、活动图 B. 用例图、类图、活动图、顺序图 C. 类图、顺

序图、活动图、用例图 D. 活动图、顺序图、用例图、类图

3. UML类图的类与类之间的关系有5种:继承、依赖、关联、组合和聚合,若类A需要使

用标准数学函数类库中提供的功能,那么类A与标准类库中提供的类之间存在(A)关系

A. 依赖 B. 关联 C. 聚合 D. 组合

第七章 软件测试技术

1. 用边界值分析法,假定1

A. X=1,X=100 B. X=0,X=1,X=100,X=101 C. X=2,X=99 D. X=0,X=101 2. 下列关于软件验收测试的合格通过准则错误的是(C)

A. 软件需求分析说明书中定义的所有功能已全部实现 B. 所有测试项没有 C. 立项审批表、需求分析文档、设计文档和编码实现不一致 D.验收测试工件齐全 3. 以下关于集成测试的内容正确的有(D)

① 集成测试也叫组装测试或者联合测试 ② 测试在把各个模块连接起来的时候,穿越

模块接口的数据是否会丢失 ③ 测试一个模块的功能是否会对另一个模块的功能产生不利影响 ④ 测试各个子功能组合起来,能否达到预期要求的父功能 ⑤ 测试全局数据结构是否有问题 ⑥ 测试单个模块的误差累积起来,是否会放大,从而达到不能接受的程度

A. ①②④⑤⑥ B. ②③④⑤⑥ C. ①②③⑤⑥ D. 以上全部正确

WORD完美格式

专业整理

4. 为了提高测试的效率,应该(D)

A. 随机的选取测试数据 B. 取一切可能的输入数据作为测试数据 C. 在完成编码以

后制定软件的测试计划 D. 选择发现错误的可能性大的数据作为测试数据

5. 软件调试的目的是(A)

A. 找出错误所在并改正之 B. 排除存在错误的可能性 C. 对错误性质进行分类 D.

统计出错的次数

6. 单元测试一般以白盒为主,测试的依据是(A)

A. 模块功能规格说明 B. 系统模块结构图 C. 系统需求规格说明 D. 统计出错的次

7. 下次关于α、β测试的描述中正确的是(C)

A. α测试不需要用户代表参加 B. β测试不是验收测试的一种 C. α测试可以有用

户代表参加 D. β测试是系统测试的一种

8. 软件测试的目的是(B)

A. 评价软件的质量 B. 发现软件的错误 C. 找出软件中所有的错误 D. 证明软件是

正确的

9. 软件测试用例主要由输入数据和(C)两部分组成

A. 测试计划 B. 测试规则 C. 预期输出结果 D. 以往测试记录分析 10. 在黑盒测试中,着重检查输入条件组合的方法是(D)

A. 等价类划分法 B. 边界值分析法 C. 错误推测法 D. 因果图法

第八章 软件维护技术

1. 随着软硬件环境变化而修改软件的过程是(B)

A. 校正性维护 B. 适宜性维护 C. 完善性维护 D. 预防性维护 2. 为了提高软件的可维护性,在编码阶段应注意(B)

A. 保存测试用例和数据 B. 提高模块的独立性 C. 文档的副作用 D. 养成好的程序设

计风格

3. 为提高系统性能而进行的修改属于(C)

A. 纠正性维护 B. 适应性维护 C. 完善性维护 D. 测试性维护 4. 软件生命周期中,(D)阶段所站的工作量最大

A. 分析阶段 B. 设计阶段 C. 编码阶段 D. 维护阶段 5. 系统维护中要解决的为题来源于(D)

A. 系统分析阶段 B. 系统设计阶段 C. 系统实施阶段 D. 上述3个阶段(A、B、C)都

包括

6. 软件维护的副作用,是指(C)

A. 开发时的错误 B. 隐含的错误 C. 因修改软件而造成的错误 D. 运行时的误操作

第一章 软件工程引论

1. 2. 3. 4. 5.

软件工程出现的主要原因是软件危机的出现。 √

文档是软件产品的一部分,没有文档的软件就不能称为软件。√ 软件危机的主要表现是软件需求量迅速增加,软件价格上升。× 一个成功的项目唯一应该提交的就是运行程序法。×

与计算机科学的理论研究不同,软件工程是一门原理性学科。×

第二章 软件生命周期及开发模型

1. 瀑布模型和增量模型都属于整体开发模型。× 2. 原型模型可以有效地适应用户需求的动态变化。×

WORD完美格式