【软件工程期末复习】课后部分习题

第一章

选择题

  1. 下列说法中正确的是(B)
  1. A.20世纪50年代提出了软件工程的概念
  2. 20世纪60年代提出了软件工程的概念
  3. 20世纪70年代出现了客户机/服务器技术
  4. 20世纪80年代软件工程学科达到成熟
  1. 软件工程危机的主要原因(D)
  1. 软件工具的落后
  2. 软件生产能力不足
  3. 实行严格的产品控制
  4. 软件本身的特点及开发方式
  1. 软件工程的3个要素是(C)
  1. 技术、方法和工具
  2. 方法、对象和类
  3. 方法、工具和过程
  4. 过程、模型和方法
  1. 在下列选项中,(A)不属于软件工程学科研究的基本内容
  1. 软件工程材料
  2. 软件工程方法
  3. 软件工程原理
  4. 软件工程过程

判断题

  1. 软件就是程序,编写软件就是编写程序。×
  2. 软件危机的主要表现是软件需求增加,软件价格上升。×
  3. 软件工程学科出现的主要原因是软件危机出现。√
  4. 软件工具的作用是延长软件产品的寿命。×(软件工具为软件工程方法提供了自动的或半自动的软件支撑环境,辅助软件开发任务的完成

简答题

  1. 简述软件工程研究的内容。
  • 软件开发技术;主要研究软件开发方法、软件开发过程、软件开发工具和环境。
  • 软件工程管理;主要研究软件工程经济学和软件管理学。

(技术和管理是软件开发中缺一不可的两个方面,没有科学的管理,再先进的技术也不能充分发挥作用。)

  1. 通常有哪几种软件开发方法。
  • 结构化方法。
  • 面向数据结构方法。
  • 面向对象方法。
  • 形式化方法。


第二章

选择题

  1. 增量模型本质上是一种(C)
  1. 线性顺序模型
  2. 整体开发模型
  3. 非整体开发模型
  4. 螺旋模型
  1. 软件过程是(C)
  1. 特定的开发模型
  2. 一种软件求解的计算逻辑
  3. 软件开发活动的集合
  4. 软件生命周期模型
  1. 软件生命周期模型不包括(B)
  1. 瀑布模型
  2. 用例模型
  3. 增量模型
  4. 螺旋模型
  1. 包含风险分析的软件工程模型是(A)
  1. 螺旋模型
  2. 瀑布模型
  3. 增量模型
  4. 喷泉模型
  1. 软件工程中描述生命周期的瀑布模型一般包括计划、需求分析、设计、编码、(D)、维护等几个阶段
  1. 产品发布
  2. 版本更新
  3. 可行性分析
  4. 测试
  1. 软件开发的瀑布模型,一般都将开发过程划分为:分析、设计、编码和测试等阶段,一般认为可能占用人员最多的阶段是(C)
  1. 分析阶段
  2. 设计阶段
  3. 编码阶段
  4. 测试阶段
  1. 螺旋模型综合了(B)的优点,并增加了风险分析
  1. 增量模型和喷泉模型
  2. 瀑布模型和快速原型模型
  3. 瀑布模型和喷泉模型
  4. 快速原型模型和喷泉模型

判断题

  1. 瀑布模型最大的优点是将软件开发的各个阶段划分的十分清晰。×
  2. 螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动。×
  3. 软件工程过程应该以软件设计为中心,关键是编写程序。×(质量为中心,质量+生产力)
  4. 极限编程属于增量模型。×

简答题

  1. 在统一软件开发过程模型中,核心工作流包含哪些/li>

业务建模;需求分析;分析设计;实现;测试;部署

  1. 敏捷过程的核心价值观有哪些对传统方法的“反叛”体现在哪些方面/li>
  • 注重个人与交互;
  • 提高客户参与度;
  • 重点关注可以工作的软件;
  • 以积极的心态响应需求变化;

敏捷方法对传统方法的“反叛”体现在以人为中心,不再依靠文档来控制过程,认为传统过程过于僵化,文档繁琐,主张对传统过程“瘦身”,在上述价值观的支配下,做到能够为准。


第三章

选择题

  1. 可行性研究也成为(D)
  1. 技术可行性研究
  2. 操作可行性研究
  3. 经济可行性研究
  4. 项目论证
  1. (A)研究往往是系统开发过程中难度最大的工作,是可行性研究的关键
  1. 技术可行性研究
  2. 操作可行性研究
  3. 经济可行性研究
  4. 风险可行性
  1. 研究软硬件资源的有效性是进行(A)研究的一方面
  1. 技术可行性
  2. 经济可行性
  3. 社会可行性
  4. 操作可行性
  1. 软件开发计划是软件工程中的一种(B)性文档
  1. 技术
  2. 管理
  3. 检索
  4. 文献

判断题

  1. 软件开发计划是软件工程中的一种技术性文档。×(管理性文档)
  2. 可行性研究过程也称为项目论证过程。√
  3. 投资回收期越长,获得利润的速度就越快,该项目就越值得开发。×
  4. 代码可行性是成本估算技术的一种。√

简答题

  1. 如何估算软件的成本/li>

对软件项目进行成本估算时,应该包括从项目立项至项目研发活动结束所花费的资源总和,并且可按阶段进行估算或测量。可以分为四个过程:估算规模;估算工作量;估算工期;估算成本。最终确定软件成本。

  1. 简述可行性研究的步骤。

接受委托调查研究方案选择和优化财务评价和综合评价编制可行性研究报告

明确系统目标 分析研究现行系统 设计新系统的高层逻辑模型 获得并比较可行的方案 撰写可行性研究报告


第四章

选择题

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

  1. 程序设计
  2. 可行性研究
  3. E-R分析
  4. 行为建模

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

  1. 概念
  2. 工具
  3. 方法
  4. 过程

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

  1. 对重要功能的描述
  2. 对算法的详细过程描述
  3. 对数据的要求
  4. 软件的性能

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

  1. 总结
  2. 阶段性报告
  3. 需求分析评审
  4. 以上答案都不正确

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

  1. 数据流图
  2. PAD图
  3. 状态转换图
  4. 数据词典

6. 数据流图是进行软件需求分析的常用图形工具,其基本图形符号是(C)

  1. 输入、输出、外部实体和加工
  2. 变换、加工、数据流和存储
  3. 加工、数据流、数据存储和外部实体
  4. 变换、数据存储、加工和数据流

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

  1. 自底向上逐步分解
  2. 自顶向下逐步分解
  3. 自底向上逐步抽象
  4. 自顶向下逐步抽象

8. 在E-R图中,包含以下基本成分(D)

  1. 数据、对象、实体
  2. 控制、关系、对象
  3. 实体、关系、控制
  4. 实体、属性、关系

判断题

  1. 用于需求分析的软件工具,应该能保证需求的正确性,即验证需求的一致性、完整性、现实性和有效性。√
  2. 需求分析是开发方的工作,用户的参与度不大。×
  3. 需求规格说明书在软件开发中具有重要的作用,它也可以作为软件可行性研究的依据。×
  4. 需求分析的主要目的是解决软件开发的具体方案。×
  5. 需求规格说明书描述了系统每个功能的具体实现。×
  6. 非功能需求是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的额外要求。√
  7. 需求分析阶段的成果主要是需求规格说明书,但该成果与软件设计、编码、测试直至维护关系不大。×
  8. 分层的DFD图可以用于可行性研究阶段,描述系统的物理结构。×
  9. 信息建模方法是从数据的角度来建立信息模型的,最常用的描述信息模型的方法是E-R图。√
  10. 在需求分析阶段主要采用图形工具来描述的原因是图形的信息量大,便于描述大规模的软件系统。×
  11. 设计数据流图时只需考虑必须完成的基本逻辑功能,完全不需要考虑怎样具体地实现这些功能。√

简答题

  1. 简述数据流图的作用。

一种能全面地描述系统流程的主要工具。

  1. 作为交流信息的工具,清晰表达数据流的情况;
  2. 作为分析和设计的工具,有利于系统建模;
  3. 便于用户表达功能需求和数据需求及其联系;
  4. 便于两类人员共同理解现行系统和规划系统的框架;
  1. 简述状态图的作用。
  1. 状态图清晰地描述了状态之间的转换顺序,通过状态的转换顺序就可以清晰地看出事件的执行顺序。
  2. 清晰地事件顺序有利于程序员在开发过程中避免出现事件顺序错误的情况。
  3. 清晰地描述了状态装换时所必需的触发事件、监听条件和动作等影响转换的因素,有利于程序员避免程序中非法事件的进入。
  4. 通过判定可以刚好地描述工作流因为不同条件发生的分支。

显示了该实体如何根据当前所处的状态对不同的事件做出反应。


第五章

选择题

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

  1. 控制结构
  2. 模块
  3. 数据流
  4. 事务流

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

  1. 模块间的联系程度
  2. 信息隐藏程度
  3. 模块的功能强度
  4. 接口的负责程度

3. Jackson方法根据(C)来导出程序结构

  1. 数据流图
  2. 数据间的控制结构
  3. 数据结构
  4. IPO图

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

  1. 公共环境耦合
  2. 控制耦合
  3. 数据耦合
  4. 特征耦合

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

  1. 数据流和控制流
  2. 变换流和控制流
  3. 事务流和控制流
  4. 变换流和事务流

判断题

  1. 判断表的优点是容易转换为计算机实现,缺点是不能够描述组合条件。×
  2. 面向数据的设计方法一般都包括下列任务:确定数据结构特征、;用顺序、选择和重复3种基本形式表示数据等。√
  3. 模块独立要求低耦合高内聚。×
  4. 软件设计说明书是软件概要设计的主要成果。×
  5. 软件设计中设计复审和设计本身一样重要,其主要作用是避免后期付出高代价。√
  6. 因为划分模块可以降低软件的复杂度和工作量,所以应该将模块分得越小越好。×
  7. 结构化设计(SD)法是一种面向数据结构的设计方法,强调程序结构与问题结构相对应。×

简答题

  1. 简述软件设计与需求分析的关系。

软件设计是把需求规格说明书里的归纳的需求转换为可行的解决方案,反映到设计说明书中;

简单的说,需求分析就是回答软件系统能“做什么”的问题,而软件设计是解决“怎么做”的问题。

  1. 什么是模块、模块化件设计为什么要模块化/li>

模块是由边界元素,限定的相邻的程序元素的序列,而且有个总体的标识符来代表它。

模块化是把程序划分为可独立命名且独立访问的模块,都有一个子功能,构成一个整体。

使软件结构更清晰,不仅容易设计,也易理解和阅读。

  1. 简述结构化设计的优点。

掌握快,设计简单易理解,自顶向下快速设计。

  1. 为什么说“高内聚,低耦合”的设计有利于提高系统的独立性/li>

耦合是对各模块间互连程度的度量。为了体现模块的独立性,应降低耦合程序。

内聚是模块内部各元素间的紧密程度。两个密切相关,低耦合意味着高内聚。


第六章

选择题

  1. 在面向对象技术中,对象是类的实例。对象有3中成分:(A)、属性和方法(或操作)
  1. 标识
  2. 继承
  3. 封装
  4. 消息
  1. 以下哪一项不是面向对象的特征D)
  1. 多态性
  2. 继承性
  3. 封装性
  4. 过程调用
  1. 汽车有一个发动机,汽车和发动机之间的关系是(B)关系
  1. 组装
  2. 整体部分
  3. 分类
  4. 一般具体
  1. ()是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外界是隐藏的,外界只能通过有限的接口与对象发生联系。
  1. 多态性
  2. 继承
  3. 消息
  4. 封装
  1. 面向对象的主要特征除了对象唯一性、封装、继承外,还有(D)
  1. 兼容性
  2. 完整性
  3. 可移植性
  4. 多态性
  1. 关联是建立(B)之间关系的一种手段
  1. 对象
  2. 功能
  3. 属性
  1. 面向对象软件技术的许多强有力的功能和突出的优点,都来源于把类组织成一个层次结构的系统,一个类的上层可以有父类,下层可以有子类,这种层次结构系统的一个重要性质是(B),一个子类获得其父类的全部描述(数据或操作)
  1. 兼容性
  2. 继承性
  3. 复用性
  4. 多态性
  1. 所有的对象可以成为各种对象类,每个对象类都定义了一组(D)
  1. 说明
  2. 类型
  3. 过程
  4. 方法
  1. 通过执行对象的操作改变对象的属性,但它必须通过(B)的继承
  1. 操作
  2. 消息
  3. 信息
  4. 继承
  1. UML是软件开发中的一个重要工具,它主要应用于(D)
  1. 基于螺旋模型的结构化方法
  2. 基于需求动态定义的原型化方法
  3. 基于数据的数据流开发方法
  4. 基于对象的面向对象的方法
  1. 是从用户使用系统的角度描述系统功能的图形表达方法
  1. 类图
  2. 活动图
  3. 用例图
  4. 状态图
  1. 描述了一组交互对象间的动态协作关系,它表示完成某项行为的对象和这些对象之间传递消息的时间顺序
  1. 类图
  2. 顺序图
  3. 状态图
  4. 协作图

判断题

  1. UML是一种建模语言,是一种标准的表示,是一种方法。×
  2. 类图用来表示系统中类和类与类之间的关系,它是对系统动态结构的描述。×
  3. 在面向对象的软件开发方法中,每个类都存在其相应的对象,类是对象的实例,对象是生成类的模板。×
  4. 顺序图描述对象是如何交互的并且将重点放在消息序列上。√
  5. 继承性是父类和子类之间共享数据结构和消息的机制,这是类之间的一种关系。×
  6. 多态性增强了软件的灵活性和重用性,允许用更为明确、易懂的方式去建立通用软件,多态性和继承性相结合使软件具有更广泛的重用性和可扩充性。×
  7. 类封装比对象封装更具体、更细致。×
  8. 用例之间有扩展、使用、组合等几种关系。×
  9. 活动图显示动作及其结果,着重描述操作实现中完成的工作,以及用例实例或类中的活动。×
  10. UML支持面向对象的主要概念,并与具体的开发过程相关。×
  11. 部署图描述系统硬件的物理拓扑结构以及在此结构上执行的软件。√

简答题

  1. 什么是面向对象技术向对象方法的特点有哪些/li>

面向对象技术强调在软件开发过程中面向客观世界或问题域中的事物,采用人类在认识客观世界的过程中普遍运用的思维方式,直观、自然地描述客观世界中的有关事物。

特点:继承、封装、多态

  • 类是对现实世界中具有共同特性的某类事物的抽象。
  • 对象内部含有数据和对数据的操作。
  • 对象之间是相互关联和相互作用的。
  • 对象含有一组用于表示其特征的属性。

通俗来说:

  • 使人们更好地认识客观世界
  • 能很好地适应需求变化。
  • 容易实现软件复用。
  • 系统易于维护和修改。


第七章

选择题

  1. 面向对象模型主要由以下哪些模型组成A)
  1. 对象模型、动态模型、功能模型
  2. 对象模型、数据模型、功能模型
  3. 数据模型、动态模型、功能模型
  4. 对象模型、动态模型、数据模型
  1. 面向对象分析的首要工作是建立(D)
  1. 系统的动态模型
  2. 系统的功能模型
  3. 来源:^_^阿 谷

    声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年1月3日
下一篇 2022年1月3日

相关推荐