实用软件工程(吕云翔第三版)课后习题答案

第一章

单选题

1. 下列说法中正确的是()。

  • A. 20世纪50年代提出了软件工程的概念
  • B. 20世纪60年代提出了软件工程的概念
  • C. 20世纪70年代提出了软件工程的概念
  • D. 20世纪80年代提出了软件工程的概念

答案: B

2. 产生软件危机的主要原因是()。

  • A. 软件工具落后
  • B. 软件成产能力不足
  • C. 实施严格的版本控制
  • D. 软件本身的特点及开发方法不足

答案: D

3. 软件工程的三要素是()。

  • A. 技术、方法和工具
  • B. 方法、对象和类
  • C. 方法、工具和过程
  • D. 过程、模型和方法

答案: C

4. 在下列选项中,()不属于软件工程学科所要研究的基本内容。

  • A. 软件工程材料
  • B. 软件工程方法
  • C. 软件工程原理
  • D. 软件工程过程

答案: A

判断题

1. 软件就是程序,编写软件就是编写程序。×

2.软件危机的主要表现是软件需求增加,软件价格上升。×

3. 软件工程学科出现的主要原因是软件危机出现。

4. 软件工程工具的作用是为了延长软件产品的寿命。×

填空题

1. 软件危机是指人们在软开件发维护软件过程中遇到的一系列问题。

2. 忽略软件开发前期的需求分析是造成软件危机的一大原因。

3. 开发出来的软件产品不能满足用户的需求,即产品的功能或特性与需求并不符合。

4. 软件工程分为工具层、方法层、过程层、质量保证层

5. 软件工程第一次提出在北大西洋公约组织举办的学术会议上。

第二章

单选题

1. 增量模型本质上是一种( )。

  • A. 线性顺序模型
  • B. 整体开发模型
  • C. 非整体开发模型
  • D. 螺旋模型

答案: C

2. 软件过程是( )。

  • A. 特定的开发模型
  • B. 一种软件求解的计算逻辑
  • C. 软件开发活动的集合
  • D. 软件生命周期模型

答案: C

3. 软件生命周期模型不包括( )。

  • A. 瀑布模型
  • B. 用例模型
  • C. 增量模型
  • D. 螺旋模型

答案: B

4. 包含风险分析的软件过程模型是( )。

  • A. 螺旋模型
  • B. 瀑布模型
  • C. 增量模型
  • D. 喷泉模型

答案: A

5. 软件工程中描述生命周期的瀑布模型一般包括需求分析、设计、编码、(  )、维护等几个阶段。

  • A. 产品发布
  • B. 版本更新
  • C. 可行性分析
  • D. 测试

答案: D

6.软件开发的瀑布模型中,一般认为可能占用开发人员最多的阶段是(   )。

  • A. 分析阶段
  • B. 设计阶段
  • C. 编码阶段
  • D. 测试阶段

答案: C

7. 螺旋模型综合了(  )的优点,并增加了分析风险。

  • A. 增量模型和喷泉模型
  • B. 瀑布模型和快速原型模型
  • C. 瀑布模型和喷泉模型
  • D. 快速模型和喷泉模型

答案: B

判断题

1. 瀑布模型的最大优点是将软件开发的各个阶段划分的十分清晰。×

2. 螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析。×

3.软件工程过程应该以软件设计为中心,关键是编写程序。×

4. 极限编程属于增量模型。×

填空题

1. 螺旋模型是瀑布模型和快速原型模型的结合。

2. 基于组件的开发模型充分体现了软件复用的思想。

3. 统一软件开发过程模型是基于迭代思想的软件开发模型。

4. 喷泉模型是典型的面向对象模型,具有较好的可移植性。

5. 采用RUP,可以从初始开始不断迭代,可以多次执行各个工作流程。

第三章

单选题

1. 可行性研究也称为()。

  • A. 技术可行性研究
  • B. 操作可行性研究
  • C. 经济可行性研究
  • D. 项目论证

答案: D

2. ()研究往往是系统开发过程中难度最大的工作,也是可行性研究的关键。

  • A. 技术可行性
  • B. 操作可行性
  • C. 经济可行性
  • D. 风险可行性

答案: A

3. 研究软硬件资源的有效性是进行()研究的一方面。

  • A. 技术可行性
  • B. 经济可行性
  • C. 社会可行性
  • D. 操作可行性

答案: A

4.软件开发计划是软件工程中的一种()性文档。

  • A. 技术
  • B. 管理
  • C. 检索
  • D. 文献

答案: B

判断题

1. 软件开发计划是软件工程中的一种技术性文档。×

2. 可行性研究过程也称为项目论证过程。

3. 投资回收期越长,获得利润就越快,项目就越值得开发。×

4. 代码行技术是成本估算技术的一种。

填空题

1. 可行性研究的结论有3种:可行、基本可行、不可行

2. 经济可行性研究主要研究开发和运行需要的成本和得到的效益

3. 计划可行性研究主要是估计项目完成所需要的时间并评估项目预留的时间是否足够。

4. 可行性研究主要包括战略可行性、操作可行性、计划可行性、技术可行性、社会可行性、市场可行性、经济可行性、 风险可行性

5. 技术可行性研究是系统开发过程中难度最大的工作,也是可行性研究的关键。

6. 技术可行性研究主要关注待开发的系统的功能、性能和限制条件。

7. 成本效益分析的第一步是估算开发成本、运行费用和新系统带来的经济效益

8. 任务分解技术最常用的方法是按开发阶段划分任务。

9. 纯收入是软件生命周期中软件系统的累计经济效益与投资之差。

第四章

单选题

1. 在需求分析之前有必要进行(   )进行。

  • A. 程序设计
  • B. 可行性研究
  • C. E-R分析
  • D. 行为建模

答案: B

2. 需求分析是一个( ),它应该贯穿于系统的整个生命周期中,而不是仅仅属于软件生命周期早期的一项工作。

  • A. 概念
  • B. 工具
  • C. 方法
  • D. 过程

答案: D

3. 软件需求规格说明书的内容不应该包括(   )。

  • A. 对重要功能的描述
  • B. 对算法的详细过程描述
  • C. 对数据的要求
  • D. 软件的性能

答案: B

4. 软件需求分析阶段的工作可以分为以下5个方面:对问题的识别、分析、综合、编写需求分析文档以及(    )。

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

答案: C

5. 进行需求分析可使用多种工具,但(   )是不适用的。

  • A. 数据流图
  • B. PDA
  • C. 状态转换图
  • D. 数据字典

答案: B

6. 结构化分析方法的基本思想是(   )。

  • A. 自底向上,逐步分解
  • B. 自顶向下,逐步分解
  • C. 自底向上,逐步抽象
  • D. 自顶向下,逐步抽象

答案: B

7. 在E-R图中,包含以下基本要素(   )。

  • A. 数据、对象、实体
  • B. 控制、关系、对象
  • C. 实体、关系、控制
  • D. 实体、属性、关系

答案: D

判断题

1. 用于需求分析的软件工具,应该能保证需求的正确性,即验证需求的一致性、完整性、现实性和有效性。

2. 需求分析是开发方的工作,用户的参与度不大。×

3. 需求规格说明书在软件开发中具有重要的作用,它也可以作为软件可行性研究的依据。×

4. 需求分析的主要目的是指定软件开发的具体方案。×

5. 需求规格说明书描述了系统每个功能的具体实现。×

6.非功能性需求是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的额外要求。

7. 需求分析阶段的成果主要是需求规格说明书,但该成果与软件设计、编码、测试以及维护关系不大。×

8. 分层的DFD可以用于可行性研究阶段,描述系统的物理结构。×

9. 信息建模方法是从数据的角度来建立信息模型的,最常用的描述信息模型的方法是E-R图。

10.在需求分析阶段主要采用图形工具来描述的原因是图形的信息量大,便于描述规模大的软件系统。×

11. 设计数据流图时只需考虑系统必须完成的基本逻辑功能,完全不需要考虑怎样具体实现这些功能。

填空题

1. 需求分析的步骤分为需求获取、分析建模、需求描述和需求验证

2. 需求可以分为两大类:功能性需求非功能性需求

3. 需求管理是一种用于查找、记录、组织和跟踪系统需求变更的系统化方法。

4. 功能分解方法将一个系统看成由若干功能模块组成。

5. 面向对象的分析方法的关键是识别问题域内的对象

6. 数据流图主要分为YourdonGane

7. 状态转换图是一种描述系统对内部或外部事件响应的行为模型。

8. 结构化分析方法通常强调自顶向下逐层分解的方法。

9. 分析模型应该包括功能模型、数据模型和行为模型。

10. 中层数据流图是对顶层数据流图的细化。

第五章

单选题

1. 面向数据流的软件设计方法()映射成软件结构。

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

答案: C

2. 模块的独立性是由内聚性和耦合性来度量的,其中内聚性表示的是()。

  • A. 模块间的联系程度
  • B. 信息隐藏程度
  • C. 模块的功能程度
  • D. 接口的复杂程度

答案: C

3. Kackson方法根据()来导出程序结构。

  • A. 数据流图
  • B. 数据间的控制结构
  • C. 数据结构
  • D. IPO图

答案: C

4. 为了提高模块的独立性,模块之间最好是()。

  • A. 公共耦合
  • B. 控制耦合
  • C. 数据耦合
  • D. 特征耦合

答案: C

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

  • A. 数据流和控制流
  • B. 变换流和控制流
  • C. 事务流和控制流
  • D. 变换流和事务流

答案: D

6. 总体设计(概要设计)不包括()。

  • A. 体系结构设计
  • B. 接口设计
  • C. 数据设计
  • D. 数据结构设计

答案: D

7. 一个模块把一个数值作为参数传递给另一个模块,这两个模块之间的耦合是()。

  • A. 公共耦合
  • B. 数据耦合
  • C. 控制耦合
  • D. 内容耦合

答案: B

8. 划分模块式,一个模块的()。

  • A. 作用范围应在其作用范围内
  • B. 控制范围应在其作用范围内
  • C. 作用范围和控制范围互不包含
  • D. 作用范围和控制范围不受任何限制

答案: A

9. 详细设计的任务是定义每个模块的()。

  • A. 外部特征
  • B. 内部特征
  • C. 算法和数据格式
  • D. 功能和输入输出数据

答案: C

10. 下面不是结构化方法的基本原理的是()。

  • A. 自底向上功能分解
  • B. 数据抽象
  • C. 功能抽象
  • D. 模块化

答案: A

判断题

1. 判定表的优点是容易转换为计算机实现,缺点是不能描述组合条件。×

2.面向数据结构的设计方法一般都包括下列任务:确定数据结构特征;用顺序型、选择型和循环型3种基本形式表示数据。

3. 模块独立性要求高耦合、低内聚×

4. 软件设计说明书是软件概要设计的主要成果。×

5. 软件设计中审计详审和设计本身一样重要,其主要作用是避免后期付出高昂的代价

6. 划分模块可以降低软件的复杂度和工作量,所以应该将模块分的越小越好。×

7. 结构化设计方法是一种面向数据结构的设计方法,强调程序结构与问题结构相对应×

8. 所有的数据流图都可以看作变换型数据流图。×

9. 数据耦合是高耦合。×

10. 文件一般用于长期存储,数据库一般用于临时存储。×

填空题

1. 模块化的基本原则是高内聚、低耦合

2.模块结构图之中如果两个模块之间有直接连线,表示它们之间存在调用关系。

3. 变换型DFD由输入变换输出组成。

4. 程序控制分为顺序、选择、循环3种基本结构

5. 伪代码的优点是不仅可以作为设计工具、还可以作为注释工具。

6. 流程图是对过程、算法、流程的一种图形表示。

7. 数据设计包括程序级的数据结构设计、应用级的数据库设计两个方面。

第六章

单选题

1. 面向对象技术中,对象是类的实例。类有3种成分:(   )、属性和方法(或操作)。

  • A. 标识
  • B. 继承
  • C. 封装
  • D. 消息

答案: C

2. 汽车有一个发动机,那么汽车与发动机的关系是(   )关系。

  • A. 组装
  • B. 整体-部分
  • C. 分类
  • D. 一般-具体

答案: B

3. (   )是把对象的属性与操作结合在一起,构成一个独立的对象,其内部消息对外界是隐藏的,外界只能通过有线的接口与对象发生联系。

  • A. 多态
  • B. 继承
  • C. 消息
  • D. 封装

答案: D

4. 关联是建立( )之间关系的一种手段。

  • A. 操作
  • B. 类
  • C. 功能
  • D. 属性

答案: B

5. 面向对象软件技术的许多强有力的功能和突出的优点都来源于把类组织成一个层次结构的系统。一个类的上层可以有父类,下层可以有子类。这种层次结构系统的一个重要性质是( ),一个子类可以获得其父类的全部描述(数据和操作)。

  • A. 兼容性
  • B. 继承性
  • C. 复用性
  • D. 多态性

答案: B

6. 所有的对象都可以成为各种对象类,每个对象类都定义了一组(  )。

  • A. 说明
  • B. 类型
  • C. 过程
  • D. 方法

答案: D

7.UML是软件开发中的一个重要工具,它主要应用于(  )。

  • A. 基于螺旋模型的结构化方法
  • B. 基于需求动态定义的原型化方法
  • C. 基于数据的数据流开发方法
  • D. 基于对象的面向对象方法

答案: D

8. (  )是从用户使用系统的角度类描述系统功能的图形表示方法。

  • A. 类图
  • B. 活动图
  • C. 用例图
  • D. 状态图

答案: C

9. ( )描述了一组交互对象间的动态协作关系,它表示完成某项行为的对象和这些对象之间传递消息的时间顺序。

  • A. 类图
  • B. 顺序图
  • C. 状态图
  • D. 协作图

答案: B

判断题

1. UML是一种建模语言,是一种标准的表示,是一种方法。×

2. 类图用来表示系统中类与类之间的关系,它是对系统动态结构的描述。×

3. 在面向对象的软件开发方法中,每个类都存在其相应的对象,类是对象的实例,对象是生成类的模版。×

4. 顺序图用于描述对象是如何交互的且将重点放在消息序列上。

5.继承性是父类与子类之间共享数据结构和消息的机制,这是类之间的一种关系。×

6. 多态性增强了软件的灵活性和复用性,允许用更为明确、易懂的方式去建立通用软件,多态性和继承性相结合使软件具有更广泛的复用性和扩充性。×

7. 类封装比对象封装更具体、更细致。×

8. 用例之间有扩展、使用、组合等几种关系。×

9.活动图显示动作及其结果,着重描述操作实现中所完成的工作,以及用例实例或类中的活动。×

10. UML支持面向对象的主要概念,并与具体的开发过程相关。×

11. 部署图用于描述系统硬件的物理拓扑结构以及在此结构上执行的软件。

填空题

1.对象是客观实体的抽象表示,由数据对数据的操作两部分组成。

2. 类是对具有相同属性和行为的一组对象的抽象描述。因此,它可作为一种用户自定义类型和创建对象的样板,而按照这种样板所创建的一个个具体对象就是类的实例

3. UML的静态建模机制包括用例图、类图、对象图、包图。

4. 在UML中,泳道把活动图中的活动划分为若干组,并将划分的组指定给对象,这些对象必须履行改组所包括的活动。

5. 顺序图是用来反映若干个对象之间动态协作关系的一种交互图。它主要反映对象之间已发送消息的先后次序和对象之间的交互过程。

6. 用例图是从用户使用系统的角度来描述系统功能的图形表示法。

7. 部署图就是用于表示构成分布式系统的节点集和节点之间的联系的图标,它可以表示系统重软件和硬件的物理架构。

8. 类图是面向对象设计的核心,是建立状态图、协作图和其他图的基础。

第七章

单选题

1. 面向对象模型主要由以下哪些模块组成?( )

  • A. 对象模型、动态模型、功能模型
  • B. 对象模型、数据模型、功能模型
  • C. 数据模型、动态模型、功能模型
  • D. 对象模型、动态模型、数据模型

答案: A

2. 面向对象分析的首要任务是建立()。

  • A. 系统的动态模型
  • B. 系统的功能模型
  • C. 基本的E-R图
  • D. 问题的对象模型

答案: D

3. 面向对象分析阶段建立的3个模型中,核心的模型是()模型。

  • A. 功能
  • B. 动态
  • C. 对象
  • D. 分析

答案: C

4. 面向对象的动态模型中,每张状态图表示()的动态行为。

  • A. 某一个类
  • B. 有关联的若干个类
  • C. 一系列事件
  • D. 一系列状态

答案: A

5. 在考察系统的一些涉及时序和改变的状况时,要用动态模型来表示。动态模型着重于系统的控制逻辑,它包括两个图:一个是事件追踪图;一个是()。

  • A. 顺序图
  • B. 状态图
  • C. 系统结构图
  • D. 数据流图

答案: B

6. 对象模型的描述工具是()。

  • A. 状态图
  • B. 数据流图
  • C. 结构图
  • D. 类图

答案: D

7. 功能模型中所有的()往往形成一个层析结构,在这个层次结构中一个数据流图的过程可以由下一层数据流图进行进一步的说明。

  • A. 事件追踪图
  • B. 物理模型图
  • C. 状态转换图
  • D. 数据流图

答案: D

8. 在面向对象软件开发方法中,类与类之间主要有()结构关系。

  • A. 继承和聚合
  • B. 一般和特殊
  • C. 聚合和消息传递
  • D. 继承和方法调用

答案: A

9.下面说法正确的是()。

  • A. 对象表示客观中存在的实物。
  • B. 类是对象的实例。
  • C. 类是具有相同属性和操作的对象的集合
  • D. 对象也是类

答案: C

判断题

1. 模型是对现实的简化,建模是为了更好地理解所开发的系统。

2. 在面向对象的需求分析方法中,建立动态模型是最主要的任务。×

3. 面向对象分析阶段建立的3个模型中,核心的模型是功能模型。×

4. 对象模型的描述工具是状态图。×

5. 两个对象之间的关联关系只能有一个。×

填空题

1. 面向对象分析的首要工作是建立问题的对象模型

2. 大型系统的对象模型通常由5个层次构成,分别是主题层、 类与对象层、 结构层 、属性层 、服务层

3. 数据流图中的处理对应于状态图中的活动或动作,数据流对应于类图的对象或属性

4. 功能模型中包含两类数据存储,分别是类的数据存储不属于类的数据存储

5. 对象或类之间的关系有依赖、关联、聚合、组合、泛化、实现

6. 对象模型由问题域中的对象及其相互的关系组成。

7. 对象模型的描述工具是类图

第八章

单选题

1. 面向对象设计阶段的主要任务是系统设计和(  )。

  • A. 结构化设计
  • B. 数据设计
  • C. 面向对象程序设计
  • D. 对象设计

答案: D

2. 是表达系统类及其相互联系的图示,它是面向对象设计的核心,是建立状态图、协作图和其它图的基础。

  • A. 部署图
  • B. 类图
  • C. 组件图
  • D. 配置图

答案: B

3. 下面列的性质中,( )不属于面向对象设计的特性。

  • A. 继承性
  • B. 复用性
  • C. 封装性
  • D. 可视化

答案: D

4. 下列是面向对象程序设计方法中有关对象的描述,其中( )是正确的。

  • A. 对象在内存中没有它的存储区
  • B. 对象的属性集合是它的特征表示
  • C. 对象的定义与程序中类型的概念相当
  • D. 对象之间不能相互通信

答案: B

5. 面向对象程序设计中,基于父类创建的子类具有父类的所有特性(属性和方法),这一特点称为类的( )。

  • A. 多态性
  • B. 封装性
  • C. 继承性
  • D. 复用性

答案: C

6. 下列哪项不是面向对象设计的启发规则?(   )

  • A. 设计结果应该清晰易懂
  • B. 类等级深度应该适当
  • C. 尽量添加设计的变动
  • D. 使用简单协议

答案: C

7. 下面哪项不是系统分解的好处?( )

  • A. 降低设计难度
  • B. 有利于软件开发人员分工协作
  • C. 有利于维护人员理解并维护系统
  • D. 有利于增加系统依赖性

答案: D

8. 不属于任务管理子系统的是(  )。

  • A. 人机交互所需输入
  • B. 任务的定义
  • C. 任务的通信
  • D. 硬件分配

答案: A

9. 以下哪个是人机交互子系统设计的原因?( )

  • A. 系统与外界的接口是容易变动的
  • B. 系统的服务容易变动
  • C. 鉴别、定界、追踪和评估变动产生的影响
  • D. 强调人如何命令系统

答案: D

10. 在软件系统中,由于需求的变化,一些对象的实现可能会发生变化。为了应对这种“易变对象”的变化,人民提出了(  )。

  • A. 工厂模式
  • B. 外观模式
  • C. 观察者模式
  • D. 以上都不是

答案: A

判断题

1. 在面向最像的设计中,应遵循的设计准则除了模块化、抽象、低耦合、高内聚以外,还有信息隐藏。

2.面向对象分析和设计活动是一个多次反复迭代的过程。

3. 关系数据库可以完全支持面向对象的概念,面向对象设计中的类可以直接对应到关系数据库中的表。×

4. 面向对象设计是在分析模型的基础上,运用面向对象技术生成软件实现环境下的设计模型。

5. 常见的任务有事件驱动型任务、时钟驱动型任务、优先任务、关键任务和协调任务等。

6.设计任务管理子系统时,当系统中存在3个或3个以上的任务时,就应该增加一个任务,用它作为协调任务。

7. 用指针可以方便地实现单向关联。

8.如果某个关联包含链属性,不同关联重数的实现方法相同。×

9. 不可以用独立的关联对象实现双向关联。×

10. 增加冗余关联可以提高访问效率。

11. 在面向对象分析过程中,可以忽略对象模型中存在的冗余关联。×

12.设计模式是从大量或成功实践中总结出来并被公认的实践和知识。

填空题

1. 数据管理子系统包括永久数据的存取,他隔离了物理的数据管理方法

2.存储服务用来协调每个需永久保存的对象的存储。

3. 问题域子系统称问题域部分

4. 在问题域子系统中稳定性是在类似系统中重用分析、设计和编程结果的关键因素。

5. 系统需求最易变动的就是加工和子加工

6. 在设计问题域子系统的时候,对于调整需求,通常首先简单修改面向对象分析模型

7. 面向对象技术的基本特征主要为抽象性、封装性、继承性和多态性

8. 在调整继承层次时,使用一种只有单继承和无继承的编程语言时,需要将多继承转换为单继承

9. 在优化对象设计时,提高效率的技术有增加冗余关联、调整查询次序和保留派生属性。

10. 软件设计模式一般分为创建型模式、结构型模式和行为型模式

第九章

单选题

1. 软件实现是软件产品由概念到实体的一个关键过程,它将()的结果翻译成用某种程序设计语言编写的且最终可以运行的程序代码。虽然软件的质量取决于软件设计,但是规范的程序设计风格将会给后期的软件维护带来不可忽视的影响。

  • A. 软件设计
  • B. 详细设计
  • C. 架构设计
  • D. 总体设计

答案: B

2. ()是一种纯面向对象语言。

  • A. C
  • B. Pascal
  • C. Eiffel
  • D. LISP

答案: C

3. 第一个体现结构化编程思想的程序设计语言是()。

  • A. FORTRAN
  • B. C
  • C. Pascal
  • D. COBOL

答案: C

4. 面向对象设计的结果,实现时()。

  • A. 只能使用面向对象语言
  • B. 只能使用非面向对象语言
  • C. 可以使用第四代语言
  • D. 既可以使用面向对象语言,也可以使用非面向对象语言

答案: A

判断题

1.C语言是一种纯面向对象语言。×

2.进行程序设计语言选择时,首先考虑的是应用领域。

3. 良好的个人编码风格是一个优秀的程序员所应具备的素质。

4.项目的应用领域是选择程序设计语言的关键因素。

5. FORTRAN、Pascal、C语言和汇编语言都是科学计算中可选用的语言。×

填空题

1. 机器语言采用01为指令代码来编写程序。

2. 汇编语言采用一种助记符来代替机器语言中晦涩、难懂的二进制代码。

3. 开发软件时,应该根据待开发软件的特征及开发团队的情况考虑使用合适的编程语言。

4. 编码风格是指源程序的编写习惯,例如变量的命名规则、代码的注释方法、缩进等

5. 注释可分为序言注释和行内注释。

6.(填空题)注释的位置应与被描述的代码相邻,注释可以放在代码的上方或右方,不可放在下方

7. 比较知名的命名规则有微软公司的匈牙利法。

9. 标识符的长度应当符合最小长度与最大信息量原则。

10. 命名规则尽量与采用的操作系统或开发工具的风格一致。

11. 效率是对计算机资源利用率的度量。

第十章

单选题

1. 软件测试的目的是( )。

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

答案: B

2. 白盒测试又称为逻辑覆盖法,主要用于( )。

  • A. 确认测试
  • B. 系统测试
  • C. α测试
  • D. 单元测试

答案: D

3. 在软件工程中,白盒测试方法可用于测试程序的内部结构,此方法将程序作为( )。

  • A. 循环的集合
  • B. 路径的集合
  • C. 目标的集合
  • D. 地址的集合

答案: B

4. 成功的测试是指运行测试用例后( )。

  • A. 发现程序错误
  • B. 未发现程序错误
  • C. 证明程序正确
  • D. 改正了程序错误

答案: A

5.白盒测试是根据程序的( )来设计测试用例的方法。

  • A. 输出数据
  • B. 内部逻辑
  • C. 功能
  • D. 输入数据

答案: B

6. 在软件测试中,逻辑覆盖法属于( )。

  • A. 黑盒测试方法
  • B. 白盒测试方法
  • C. 灰盒测试方法
  • D. 软件验收方法

答案: B

7. 黑盒测试是从( )角度进行测试,白盒测试是从( )角度进行的测试。

  • A. 开发人员、管理人员
  • B. 用户、开发人员
  • C. 用户、管理人员
  • D. 开发人员、用户

答案: B

8.软件测试可能发现软件中的( ),但不能证明软件( )。

  • A. 所有错误、没有错误
  • B. 设计错误、没有错误
  • C. 逻辑错误、没有错误
  • D. 错误、没有错误

答案: D

9. 使用白盒测试方法时,确定测试数据应根据( )和指定的覆盖标准。

  • A. 程序的内部逻辑
  • B. 程序的复杂程度
  • C. 程序的难易程度
  • D. 程序的功能

答案: A

10. 黑盒测试的方法根据( )设计测试 用例。

  • A. 程序的调用规则
  • B. 软件要完成的功能
  • C. 模块间的逻辑关系
  • D. 程序的数据结构

答案: B

11.集成测试的主要方法有2个:一个是( );另一个是( )。

  • A. 白盒测试方法、黑盒测试方法
  • B. 等价类划分法、边界值分析法
  • C. 增量式测试方法、非增量式测试方法
  • D. 因果图法、错误推测法

答案: C

12. 软件测试的目的是尽可能发现软件中的错误,通常( )是代码编写阶段可进行的测试,它是整个测试工作的基础。

  • A. 集成测试
  • B. 系统测试
  • C. 验收测试
  • D. 单元测试

我的答案: D

13. 单元测试主要针对模块的几个基本特征进行测试,该阶段不能完成的测试是( )。

  • A. 系统功能
  • B. 局部数据结构
  • C. 重要的执行路径
  • D. 错误处理

答案: A

14. 软件维护的副作用,是指( )。

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

答案: C

15. 影响软件可维护性的主要因素不包括( )。

  • A. 可修改性
  • B. 可测试性
  • C. 可用性
  • D. 可理解性

答案: C

判断题

1. 软件测试是对软件需求规格说明、软件设计和编码的最全面也是最后的审查。×

2. 如果通过软件测试没有发现错误,则说明软件是正确的。×

3. 白盒测试无需考虑模块内部的执行过程和程序结构,只需了解模块的功能即可。×

4. 软件测试的目的是尽可能多地发现软件中存在的错误,并将它作为纠错的依据。

5. 测试用例由输入数据和预期的输出结果两部分组成。

6. 白盒测试是结构测试,主要以程序的内部逻辑为基础设计测试用例。

7. 软件测试的目的是证明软件是正确的。×

8. 单元测试通常应该先进行“人工走查”,再以白盒测试为主,辅以黑盒测试进行动态测试。

9. 白盒测试是一种静态测试方法,主要用于模块测试。×

10. 在等价类划分法中,为了提高测试效率,一个测试用例可以覆盖多个无效等价类×

11.功能测试是系统测试的主要内容,用于检查系统的功能、性能是否与需求规格说明相同。

12. 适应性维护是在软件使用过程中,用户对软件提出新的功能和性能需求,为了满足这些新的要求而对软件进行修改,使之在功能和性能上得到完善和增强的活动。×

填空题

1.在软件测试中,存在二八定律,即约80%的错误会集中存在于约20%的代码中。

2. 软件测试模型是指软件测试全部过程、活动或任务的结构框架。

3. 软件测试按照是否运行程序可分为静态测试和动态测试。

4. 通过描述每个经过用例的可能途径,可以确定不同的用例场景,这个流经路径要从用例开始到结束,遍历其中所有基本流和备选流

5.一般在软件测试过程中,既要用到黑盒测试,又要用到白盒测试。大的功能模块采用黑盒测试,小的组件采用白盒测试

6.在确认测试的过程中仅使用黑盒测试技术。

7.在进行单元测试时,被测试的单元本身不是独立的程序,需要为其开发驱动模块和桩模块。

8.集成测试一般由测试人员和开发人员完成

9.功能测试是系统测试中最基本的测试,它不管软件内部是如何实现的。

10.系统测试中,健壮性测试包含容错性测试和恢复测试。

11. β测试由最终用户实施,通常开发组织对其的管理很少或不管理。

12.软件维护可分为纠错性维护、适应性维护、完善性维护、预防性维护4类。

13.简单地说,软件部署就是将开发的软件拿给用户使用,给用户配置环境(包括硬件、软件的安装以及环境变量的设置等),使开发的软件能被用户正常使用的过程。

14.软件再工程是一类工程活动,他将逆向工程、重构和正向工程组合起来,将现存系统重新构造为新的形式。

第十一章

单选题

1. ()的作用是为有效地、定量地进行管理,把握软件工程过程的实际情况和它所产生的产品质量。

  • A. 估算
  • B. 度量
  • C. 风险分析
  • D. 进度安排

答案: B

2. LOC和FP是两种估算技术,但两者有许多共同的特征,只是LOC和FP技术对于分解所需要的()不同。

  • A. 详细程度
  • B. 分解要求
  • C. 使用方法
  • D. 改进过程

答案: A

3. 项目团队原来有6个成员,现在又增加了6个成员,这样沟通渠道增加了多少?( )

  • A. 4.4倍
  • B. 2倍
  • C. 6倍
  • D. 6条

答案: A

4. 下列哪项不是风险管理的过程?( )

  • A. 风险规划
  • B. 风险识别
  • C. 风险评估
  • D. 风险收集

答案: D

5. 按照软件配置管理的原始指导思想,受控制的对象应是()。

  • A. 软件过程
  • B. 软件项目
  • C. 软件配置项
  • D. 软件元素

答案: C

6.下面()不是人们常用的评价软件质量的4个因素之一。

  • A. 可理解性
  • B. 可靠性
  • C. 可维护性
  • D. 易用性

答案: D

7. 软件文档是软件工程实施的重要成分,它不仅是软件开发各阶段的重要依据,而且影响软件的()。

  • A. 可用性
  • B. 可维护性
  • C. 可扩展性
  • D. 可移植性

答案: B

8. CMM表示()。

  • A. 软件过程能力成熟度模型
  • B. 软件配置管理
  • C. 软件质量认证
  • D. 软件复用

答案: A

判断题

1. 代码行估算法是比较简单的定量估算软件规模的方法。

2. 功能点估算法依据对软件信息域特性和软件复杂性的评估结果,估算软件规模。

3.常用的制定进度计划的工具主要有Word和Excel两种。

4. 民主制程序员组的一个重要特点是,小组成员完全平等,享有充分民主,通过协商做出技术决策。

5. 主程序员组的两个关键特性是专业化和层次性。

6. 现代程序员组中,技术组长既对技术工作负责,又负责非技术事务。错

7. 风险有两个显著特点:一个是不确定性,另一个是损失。

8. 回避风险指的是风险倘若发生,就接受后果。×

9. 软件质量保证的措施主要有基于非执行的测试(也称为复审)、基于执行的测试和程序正确性证明。

10.总体上说,软件工程文档可以分为用户文档、开发文档和管理文档3类。

11. 文档是影响软件可维护性的决定因素。×

12. 软件生命周期的最后一个阶段是书写软件文档。 ×

13. CMM是指导软件开发的一种面向对象的新技术。×

填空题

1. 一般来说,随着项目进展,对项目内容了解的越多,估算也会越来越精确

2. 使用“主程序员组”的组织方式,可提高效率,减少总的人/年(或人/月)数。

3. Gant图是一种能有效显示行动时间规划的方法,也称为横道图或条形图

4. PERT图也称“计划评审技术”,它采用网络图来描述一个项目的任务网络。

5. 进行配置控制是配置管理的关键,包括访问控制、版本控制、变更控制和产品发布控制等。

6. 软件过程能力成熟度模型是用于评估软件能力与成熟度的一套标准。

7. 软件开发风险是一种不确定的事件或条件,一旦发生,会对项目目标产生某种正面或 负面的影响。

8. 总体上说,软件工程文档可以分为用户文档、开发文档和管理文档三类。

9. 软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对人员、产品、过程和项目进行分析和管理的活动。

10. 根据ISO9426标准的定义,软件质量的特性包括功能性、可靠性、可用性、效率、可维护性和可移植性。

<think>嗯,用户想了解Excel中的VLOOKUP函数的用法和参数含义。首先,我需要回忆一下VLOOKUP的基本结构。VLOOKUP是垂直查找函数,用于在表格的首列查找指定的值,然后返回该行中指定列的数据。它的四个参数分别是查找值、表格范围、列索引号和匹配模式。 接下来,我得确认每个参数的具体作用。第一个参数是lookup_value,也就是用户要查找的值,比如产品ID或者姓名。第二个参数是table_array,即查找的范围,这里要注意的是,查找值必须位于这个范围的第一列,否则函数无法正确工作。第三个参数是col_index_num,也就是用户想要返回的数据在表格范围中的第几列,这个列数是从表格范围的第一列开始算起的,不是整个工作表的列。第四个参数是range_lookup,决定是精确匹配还是近似匹配,通常用FALSE或0来指定精确匹配,避免错误。 然后,用户可能需要一个具体的例子来理解如何使用。比如,假设有一个产品价格表,用户想根据产品ID查找对应的价格。这时候,VLOOKUP就可以在ID列查找,然后返回价格列的数据。同时,要提醒用户注意表格范围最好使用绝对引用,比如$A$2:$C$100,这样在拖动公式时范围不会变化。 可能遇到的问题也需要考虑。比如,如果查找值不在表格的第一列,或者列索引号超过了表格的列数,函数会返回错误。此外,数据格式不一致也可能导致问题,比如查找值是数字,而表格中是文本格式的数字,这时候需要统一格式。还有,当出现#N/A错误时,可能是查找值不存在,或者匹配模式设置不正确,需要检查参数是否正确。 用户可能还会问到如何避免常见的错误,比如部分数据匹配出错的情况。这时候需要检查是否有多余的空格,或者数据格式不一致,或者表格范围没有锁定导致拖动时偏移。此外,XLOOKUP作为VLOOKUP的升级版,可能在某些情况下更方便,比如可以向左查找或者返回多列数据,这也是可以提及的内容。 最后,整理步骤,从基础语法到参数说明,再到具体案例,逐步引导用户理解如何使用VLOOKUP函数。同时,提供常见错误和解决方法,帮助用户在实际应用中避免问题。如果有必要,还可以比较VLOOKUP和其他查找函数的区别,比如HLOOKUP或XLOOKUP,但根据用户的问题,主要集中在VLOOKUP本身即可。</think>### Excel VLOOKUP函数详解 #### 一、基础语法与参数说明 VLOOKUP函数的语法为: $$=VLOOKUP(lookup\_value, table\_array, col\_index\_num, [range\_lookup])$$ 包含4个参数: 1. **lookup_value**(必填):要查找的值(如单元格引用或具体值) 2. **table_array**(必填):包含数据的表格范围(必须包含查找列和返回列) 3. **col_index_num**(必填):返回值所在列的序号(从table_array第一列开始计数) 4. **range_lookup**(可选):匹配类型 - `TRUE`/`1`:近似匹配(默认值,需数据升序排列) - `FALSE`/`0`:精确匹配(常用选项) [^1][^2] #### 二、使用步骤演示(工资表查询案例) 假设需要根据员工编号查询工资: 1. 建立查询单元格(如`B12`) 2. 输入公式: ```excel =VLOOKUP(A12, $A$2:$D$100, 4, 0) ``` - `A12`:待查询的员工编号 - `$A$2:$D$100`:锁定数据区域(绝对引用) - `4`:返回第4列(工资列) - `0`:精确匹配 [^2][^3] #### 三、常见错误与解决方法 | 错误现象 | 原因 | 解决方案 | |---------|------|---------| | #N/A | 查找值不存在 | 检查数据源或改用`IFERROR`容错 | | #REF! | 列序号超出范围 | 确认col_index_num ≤ 表格列数 | | 部分匹配失败 | 数据格式不一致 | 统一数值/文本格式 | | 结果错位 | 表格未锁定 | 使用`$`符号固定区域引用 | [^3][^4] #### 四、进阶技巧 1. **多条件查询**: 使用辅助列合并多个条件字段 ```excel =VLOOKUP(A2&B2, $D$2:$F$100, 3, 0) ``` 2. **通配符匹配**: `"*"`匹配任意字符,`"?"`匹配单个字符 ```excel =VLOOKUP("张*", $A$2:$C$100, 3, 0) ``` 3. **跨表查询**: 引用其他工作表数据 ```excel =VLOOKUP(A2, Sheet2!$A$2:$D$100, 4, 0) ``` [^1][^4]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值