当前位置: 首页 > news >正文

GDPU软件工程习题(挖空版)

答案:

GDPU软件工程24期末复习-CSDN博客

1.8 练习题

一、填空题

  1. 软件工程是一门综合性的交叉学科,它涉及计算机学科、(        )学科、(        )学科和(        )学科。
  2. 软件工程研究的主要内容是 (           )(           )(          ) 三个方面。
  3. 软件生产的复杂性和高成本使大型软件生产出现了很多问题,即出现 (              ),软件工程正是为了克服它所提出的一种概念及相关方法和技术。
  4. SWEBOK V3 中,软件工程知识体细分为 (            )和 (            ) 两大类。
  5. (         ) 模型假设需求可以分段,成为一系列增量产品,每一增量可以分别开发。
  6. (         ) 模型比较适用于面向对象的开发方法。
  7. 软件工程是用工程科学的知识和技术原理来 (           ) 、(            ) 、(           )  软件的一门学科。

二、判断题

  1. SWEBOK V3 分为两大类,共有 15 个知识域。(  
  2. 软件工程的提出起源于软件危机,其目的是最终解决软件的生产工程化。(  
  3. 软件工程学一般包含软件开发技术和软件工程管理两方面的内容,软件开发方法学和软件工程环境属于软件开发技术的内容,软件工程经济学属于软件工程管理。(  
  4. 软件开发中的最大的问题不是管理问题,而是技术问题。(  
  5. XP(eXtreme Programming,极限编程)是由 Kent Beck 提出的一套针对业务需求和软件开发实践的规则,包括 13 个核心实践。(  
  6. DevOps 希望做到的是软件产品交付过程中 IT 工具链的打通。(  

三、选择题

  1. 下列所述不是敏捷生存期模型的是(   )。
    • A. Scrum
    • B. XP
    • C. V 模型
    • D. OPEN UP
  2. 软件工程的出现主要是由于(    )。
    • A. 程序设计方法学的影响
    • B. 其他工程科学的影响
    • C. 软件危机的出现
    • D. 计算机的发展
  3. 以下(   )不是软件危机的表现形式。
    • A. 开发的软件不满足用户的需要
    • B. 开发的软件可维护性差
    • C. 开发的软件价格便宜
    • D. 开发的软件可靠性差
  4. 以下不是 SWEBOK V3 软件工程实践中的知识域的是(   )。
    • A. 软件需求
    • B. 工程基础
    • C. 软件构造
    • D. 软件设计
  5. 下列所述不是软件组成的是(   )。
    • A. 程序
    • B. 数据
    • C. 界面
    • D. 文档
  6. 下列对“计算机软件”描述正确的是(   )。
    • A. 是计算机系统的组成部分
    • B. 不能作为商品参与交易
    • C. 是在计算机硬件设备生产过程中生产出来的
    • D. 只存在于计算机系统工作时
  7. 软件工程方法的提出起源于软件危机,其目的应该是最终解决软件的(   )问题。
    • A. 软件危机
    • B. 质量保证
    • C. 开发效率
    • D. 生产工程化
  8. 软件工程学涉及软件开发技术和项目管理等方面的内容,下述内容中(   )不属于开发技术的范畴。
    • A. 软件开发方法
    • B. 软件开发工具
    • C. 软件工程环境
    • D. 软件工程经济

2.8 练习题

一、填空题

  1. UML 的三个基本构造块是 (         )、 (         ) 和  (         )。
  2. 在软件开发的结构化方法中,采用的主要技术是 SA,即  (                  ),以及 SD,即  (                    )。
  3. 数据流图描述数据在软件中的流动和处理过程,是软件模型的一种图示,它一般包括 4 种图形符号:变换/加工、外部实体、数据流向和  (              )。
  4.  (               ) 是将数据和对数据的操作紧密地结合起来的方法,这是其与传统结构化方法的主要区别。
  5. 软件代理一般具有  (             )、(             )、(             ) 特性。

二、判断题

  1. 面向对象开发过程是多次重复和迭代的演化过程,在概念和表示方法上的一致性保证了各项开发活动之间的平滑过渡。(  
  2. 基于构件软件工程开发的整个过程从需求开始,在完成体系结构设计后,并不立即开始详细设计,而是确定哪些部分可由构件组装而成。(  
  3. 软件逆向工程是根据对软件需求的分析恢复其设计和软件代码的过程。(  

三、选择题

  1. 结构化分析方法是面向(   )的自顶向下逐步求精的分析方法。
    • A. 目标
    • B. 数据流
    • C. 功能
    • D. 对象
  2. 结构化的概要设计是以(   )技术为基础的软件设计方法。
    • A. 抽象
    • B. 模块化
    • C. 自下而上
    • D. 信息隐藏
  3. 在结构化分析方法中,常用的描述软件功能需求的工具是(   )。
    • A. 业务流程图、处理说明
    • B. 软件流程图、模块说明
    • C. 数据流程图、数据字典
    • D. 系统流程图、程序编码
  4.    )不是 UML 的图示。
    • A. 流程图
    • B. 用例图
    • C. 活动图
    • D. 序列图
  5. 下面哪一项不是敏捷开发方法?(  
    • A. RAD
    • B. 极限编程(XP)
    • C. 特征驱动开发(FDD)
    • D. 瀑布方法

3.12 练习题

一、填空题

  1. 分析模型在系统级描述和 (               ) 之间建立了桥梁。
  2. 最常见的实体关系图表示法是 (                ) 表示法和  (                 ) 表示法。
  3. 结构化分析方法是面向  (                  ) 进行需求分析的方法。结构化分析方法使用  (                   ) 等来描述。
  4. 在需求分析中,可从有关问题的简述中提取组成数据流图的基本成分。通常问题简述中的动词短语将成为数据流图中的  (               ) 成分。
  5. 面向对象的需求分析中常用的 UML 图示有 (          )、(          )、(          )、和 (          ) 等。
  6. 敏捷项目主要通过 (                    ) 描述软件需求。

二、判断题

  1. 系统流程图表达了系统中各个元素之间信息的流动情况。(  
  2. 用例需求分析方法是一种结构化的情景分析方法,即一种基于场景建模的方法。(  
  3. 面向对象分析方法认为系统是对象的集合,是以功能和数据为基础的。(  
  4. 结构化分析方法适合于数据处理类型软件的需求分析。(  
  5. 需求变更管理是需求管理过程中很重要的环节。(  
  6. 软件需求规格说明的内容包括算法的详细描述。(  
  7. 用户地图将 Product Backlog 映射为一个二维图形,使 Product Backlog 变得更加可视化。(  

三、选择题

  1. 软件开发过程中,需求活动的主要任务是(   )。
    • A. 给出软件解决方案
    • B. 定义需求并建立系统模型
    • C. 定义模块算法
    • D. 给出系统模块结构
  2. 软件需求规格说明文档中包括多方面的内容,下述(   )不是软件需求规格说明文档中应包括的内容。
    • A. 安全描述
    • B. 功能描述
    • C. 性能描述
    • D. 软件代码
  3. 软件需求分析一般应确定的是用户对软件的(   )。
    • A. 功能需求
    • B. 非功能需求
    • C. 性能需求
    • D. 功能需求和非功能需求
  4. 结构化分析方法中,描述软件功能需求的常用工具有(   )。
    • A. 业务图,数据字典
    • B. 软件流程图,模块说明
    • C. 用例图,数据字典
    • D. 系统流程图,程序编码
  5. 软件需求分析阶段建立原型的主要目的是(   )。
    • A. 确定系统的功能和性能要求
    • B. 确定系统的性能要求
    • C. 确定系统是否满足用户要求
    • D. 确定系统是否满足开发人员要求
  6. 在需求分析阶段,需求分析人员需要了解用户的需求,认真仔细地进行调研和分析,最终应建立目标系统的逻辑模型并写出(   )。
    • A. 模块说明书
    • B. 需求规格说明
    • C. 项目开发设计
    • D. 合同文档
  7. 软件需求阶段要解决的问题是(   )。
    • A. 软件做什么
    • B. 软件提供哪些信息
    • C. 软件采用什么结构
    • D. 软件怎样做
  8. 软件需求管理过程包括需求获取、需求分析、需求规格说明编写、需求验证以及(   )。
    • A. 用户参与
    • B. 需求变更
    • C. 总结
    • D. 都不正确
  9. 在原型法中开发人员根据(   )需求不断修改原型,直到满足用户要求为止。
    • A. 用户
    • B. 开发人员
    • C. 系统分析员
    • D. 程序员
  10. 结构化分析方法使用数据流图、(   )和加工说明等描述工具,即用直观的图和简单的语言来描述软件系统模型。
    • A. DFD
    • B. PAD
    • C. HIPO
    • D. 数据字典
  11. 下面关于 BDD 描述不正确的是(   )。
    • A. 行为驱动开发,是一种敏捷软件开发的技术
    • B. BDD 与 TDD 一样,重点在于测试
    • C. BDD 强调用领域特定语言描述用户行为
    • D. 行为驱动开发的核心在于“行为”

4.13 练习题

一、填空题

  1. C/S、B/S、SOA、BMP 等都是不同的 (                    )。
  2. 数据字典包括 (             )、(             )、数据存储和基本加工。
  3. 高内聚、松耦合是 (                  ) 的基本原则。
  4. (                   ) 把已确定的软件需求转换成特定形式的设计表示,使其得以实现。
  5. 设计模型是从分析模型转化而来的,主要包括四类模型: (                           )、数据设计模型、接口设计模型、构件设计模型。
  6. 面向对象设计的主要特点是建立了四个非常重要的软件设计概念:抽象性、(                          ) 和功能独立性和模块化。
  7. 模块层次图和模块结构图是 (                    ) 的重要方法。
  8. UML设计中主要采用的图示有 (                )、(                )、(                 )等。
  9. 软件模块设计包括模块划分、(                 )、模块的调用关系、每个模块的功能等。
  10. 数据库的设计一般包括三个方面的设计:(                   )、逻辑结构设计和物理结构设计。
  11. 当软件出现 (                   )、(                   )、(                   )、(                    )、(                   )、(                    )、(                   )、(                    )、(                    )、(                    ) 等“气味”时,就表明软件正在腐化。

二、判断题

  1. 软件设计是软件工程的重要阶段,是一个把软件需求转换为软件代码的过程。(  
  2. 软件设计说明书是软件概要设计的主要成果。(  
  3. 软件设计中设计复审和设计本身一样重要,其主要作用是避免后期付出高昂代价。(  
  4. 应用程序框架结构是一个可以重复使用的、大致完成的应用程序,可以通过对其进行定制,开发成一个客户需要的真正的应用程序。(  
  5. 面向对象设计(OOD)是将面向对象分析(OOA)的模型转换为设计模型的过程。(  
  6. 在进行概要设计时应加强模块间的联系。(  
  7. 复用原则也是软件设计的一个重要原则。(  
  8. 以对象、类、继承和通信为基础的面向对象设计方法也是常见的软件概要设计方法之一。(  
  9. Django 是一个基于 Java 的开放源代码的 Web 应用框架。(  

三、选择题

  1. 内聚是从功能角度来度量模块内的联系,按照特定次序执行元素的模块属于(   )方式。
    • A. 逻辑内聚
    • B. 时间内聚
    • C. 过程内聚
    • D. 顺序内聚
  2. 概要设计是软件工程中很重要的技术活动,下列不是概要设计任务的是(   )。
    • A. 设计软件系统结构
    • B. 编写测试报告
    • C. 数据结构和数据库设计
    • D. 编写概要设计文档
  3. 数据字典是定义(   )中的数据的工具。
    • A. 数据流图
    • B. 系统流程图
    • C. 程序流程图
    • D. 软件结构图
  4. 耦合是软件各个模块间连接的一种度量。一组模块都访问同一数据结构应属于(   )方式。
    • A. 内容耦合
    • B. 公共耦合
    • C. 外部耦合
    • D. 控制耦合
  5. 面向数据流的软件设计方法中,一般把数据流图中的数据流分为(   )两种,再将数据流图映射为软件结构。
    • A. 数据流与事务流
    • B. 交换流和事务流
    • C. 信息流与控制流
    • D. 交换流和数据流
  6. 软件设计是一个将(   )换为软件表示的过程。
    • A. 代码设计
    • B. 软件需求
    • C. 详细设计
    • D. 系统分析
  7. 数据存储和数据流都是(   ),仅仅是所处的状态不同。
    • A. 分析结果
    • B. 事件
    • C. 动作
    • D. 数据
  8. 模块本身的内聚是模块独立性的重要度量因素之一,在 7 类内聚中,具有最强内聚的一类是(   )。
    • A. 顺序性内聚
    • B. 过程性内聚
    • C. 逻辑性内聚
    • D. 功能性内聚
  9. 面向数据流的设计方法把(   )映射成软件结构。
    • A. 数据流
    • B. 系统结构
    • C. 控制结构
    • D. 信息流
  10. 下列关于软件设计准则的描述,错误的是(   )。
    • A. 提高模块的独立性
    • B. 体现统一的风格
    • C. 使模块的作用域在该模块的控制域外
    • D. 结构应该尽可能满足变更的要求
  11. 软件的结构化设计方法是以(   )为依据的模块结构设计方法。
    • A. 系统数据要求
    • B. 数据结构
    • C. 数据流图
    • D. 数据流
  12. 下面不是数据库设计的阶段的是(   )。
    • A. 概念结构设计阶段
    • B. 逻辑结构设计阶段
    • C. 模块划分
    • D. 物理结构设计阶段
  13. 下面哪一项不是前端应用框架?(  
    • A. Vue
    • B. Bootstrap
    • C. Hibernate
    • D. React

5.9 练习题

一、填空题

  1. PDL 又称 (                             ),它是一种非形式化的比较灵活的语言。
  2. 软件的详细设计可采用图形、(              ) 和过程设计语言等形式的描述工具表示模块的处理过程。
  3. 软件详细设计需要设计人员对每个设计模块进行描述,确定所使用的 (                         )、接口细节和输入 / 输出数据等。
  4. 结构化设计方法与结构化分析方法一样,采用 (               ) 技术。结构化设计方法与结构化分析方法相结合,依照数据流图设计程序的结构。
  5. 软件中详细设计一般在(                 )基础上才能实施,它们一起构成了软件设计的全部内容。
  6. 在 Warnier 方法中,采用 (                 )表示数据结构和程序结构。
  7. 面向数据结构的设计方法主要包括 (                       ) 和 (                        )。
  8. 在详细设计阶段,除了对模块内的算法进行设计之外,还应对模块内的 (                  ) 进行设计。

二、判断题

  1. JSD 方法的原理与 Warnier 方法的原理类似,也是从数据结构出发设计程序,但后者的逻辑要求更严格。(  
  2. 软件详细设计要求设计人员为每一个程序模块确定所使用的算法、数据结构、接口细节和输入 / 输出数据等。(  
  3. 伪代码可以被直接编译,它体现了设计的程序的框架或者代表了一个程序流程图。(   
  4. 在详细设计阶段,一种历史最悠久、使用最广泛的描述程序逻辑结构的工具是程序流程图。(  
  5. PAD 是一种改进的图形描述方式,其优点是能够反映和描述自顶向下的历史和过程。(  
  6. 详细设计阶段的任务还不是具体地编写程序,而是要设计出程序的“蓝图”,以后程序员根据这个蓝图编写实际的代码。(  
  7. 过程设计的描述工具包括程序流程图、N-S 图、PAD、PDL 伪代码等。(  
  8. 重复是良好设计的大敌,整洁设计强调不可重复。(  

三、选择题

  1. JSD 设计方法是由 Jackson 所提出的,它是一种面向(   )的软件设计方法。
    • A. 对象
    • B. 数据流
    • C. 数据结构
    • D. 控制结构
  2. 数据元素组成数据的方式的基本类型是(   )。
    • A. 顺序的
    • B. 选择的
    • C. 循环的
    • D. 以上全部
  3. 程序流程图中的箭头代表的是(   )。
    • A. 数据流
    • B. 控制流
    • C. 调用关系
    • D. 组成关系
  4. 伪代码又称为过程设计语言(PDL),一种典型的 PDL 是仿照(   )编写的。
    • A. Fortran
    • B. 汇编语言
    • C. Pascal 语言
    • D. COBOL 语言
  5. 伪代码作为详细设计的工具,其缺点在于(   )。
    • A. 每个符号对应于源程序的一行代码,对于提高系统的可理解性作用很小
    • B. 不如其他图形工具直观,对复杂的条件组合与动作间的对应关系的描述不够明了
    • C. 容易使程序员不受任何约束,随意转移控制
    • D. 不支持逐步求精,使程序员不去考虑系统的全局结构
  6. 结构化程序流程图中一般包括 3 种基本结构,下述结构中(   )不属于其基本结构。
    • A. 顺序结构
    • B. 条件结构
    • C. 选择结构
    • D. 嵌套结构
  7. 在详细设计阶段,一种二维树形结构并可自动生成程序代码的描述工具是(   )。
    • A. PAD
    • B. PDL
    • C. IPO
    • D. 判定树
  8. 软件详细设计的主要任务是确定每个模块的(   )。
    • A. 算法和使用的数据结构
    • B. 外部接口
    • C. 功能
    • D. 编程
  9. 为了提高模块的独立性,模块之间最好是(   )。
    • A. 公共耦合
    • B. 控制耦合
    • C. 内容耦合
    • D. 数据耦合
  10. 为了提高模块的独立性,模块内部最好是(   )。
    • A. 逻辑内聚
    • B. 时间内聚
    • C. 功能内聚
    • D. 通信内聚
  11. 软件设计中,可应用于详细设计的工具有(   )。
    • A. 数据流程图、PAD、N-S 图
    • B. 业务流程图、N-S 图、伪代码
    • C. 数据流程图、PAD、N-S 图和伪代码
    • D. 顺序流程图、PAD、N-S 图和伪代码

6.10 练习题

一、填空题

  1. 编程范式主要有过程编程范式、(                   )、申明式编程范式。
  2. 在软件编程过程中,可以采用自顶向下、自底向上、自顶向下和自底向上相结合以及(                   )等几种编程策略。
  3. 可以将程序设计语言分为第一代语言、第二代语言、第三代语言、第四代语言和(                    )五类。
  4. 任何程序都可由(        )、(        )和(        )三种基本控制结构构造。这三种基本控制结构的共同点是(          )和(          )。
  5. 从“原子性提交”原则的遵从率上可以看出开发团队的(                  )。

二、判断题

  1. 在树状结构中,位于最上面的根部是顶层模块。(  
  2. 应该尽量使用机器语言编写代码,提高程序运行效率,而减少高级语言的使用。(  
  3. 在 TDD 的三定律基础上,结合重构过程,就是有名的“红 - 绿 - 蓝(重构)”。(  
  4. 敏捷重构的理念是随时进行的重构实践。(  

三、选择题

  1. 结构化程序设计要求程序由顺序、循环和(   )三种结构组成。
    • A. 分支
    • B. 单入口
    • C. 单出口
    • D. 随意跳转
  2. 软件调试的目的是(   )。
    • A. 发现错误
    • B. 改正错误
    • C. 改善软件的性能
    • D. 挖掘软件的潜能
  3. 将每个模块的控制结构转换成计算机可接受的程序代码是(   )阶段的任务。
    • A. 编程
    • B. 需求分析
    • C. 详细设计
    • D. 测试
  4. 编程高效率原则包括提高运行效率、提高存储效率和提高(   )。
    • A. 输入 / 输出效率
    • B. 开发效率
    • C. 测试效率
    • D. 维护效率
  5. 下面哪些不是敏捷化编程实践?(  
    • A. TDD
    • B. 重构
    • C. 需求规格
    • D. 结对编程
  6. 下列伪代码中,A=14,B=20,则 X 的值是(   )。
  7. START
  8. INPUT(A,B)
  9. X=0
  10. IF A>10
  11.     THEN X=10
  12. ENDIF
  13. IF B<20
  14.     THEN X=X+100
  15. ENDIF
  16. PRINT(X)
  17. STOP
    • A. 0
    • B. 10
    • C. 110
    • D. 100
  18. 下面是一段求最大值的程序,其中 datalist 是数据表,n 是数据表的长度,则其 McCabe 环路复杂性为(   )。

int GetMax(int n, int datalist[ ]) {

    int k=0;

    for ( int j=1; j<n; j++ )

        if ( datalist[j] > datalist[k] )

            k=j;

    return k;

}

  • A. 1
  • B. 2
  • C. 3
  • D. 4

7.16 练习题

一、填空题

  1. 从是否需要执行被测软件的角度来看,软件测试方法一般可分为两大类,即(                  )方法和(                  )方法。
  2. 在白盒测试方法中,对程序的语句逻辑有 6 种覆盖技术,其中发现错误能力最强的技术是(                    )。
  3. 若有一个计算类程序,它的输入量只有一个 X,其范围是[-1.0, 1.0]。现在设计一组测试用例,X 输入为-1.001、-1.0、1.0、1.001,则设计这组测试用例的方法是(                        )。
  4. 单元测试主要测试模块的 5 个基本特征是:(                  )、(                          )、重要的执行路径、错误处理和边界条件。
  5. 黑盒测试主要针对功能进行测试,等价类划分、(                    )、错误猜测、因果图等都是采用黑盒技术设计测试用例的方法。
  6. 边界值分析是将测试边界情况作为重点目标,选取正好等于、刚刚大于或刚刚小于边界值的测试数据。如果输入/输出域是一个有序集合,则集合的第一个元素和(                )元素应该作为测试用例的数据元素。
  7. 集成测试的策略主要有(                   )、(                      )、(                      )、(                         )和(                         )。
  8. 逻辑覆盖包括(                )、(                 )、(                  ) 、条件组合覆盖和路径覆盖等。

二、判断题

  1. 回归测试是纠错性维护中最常用的方法。(  
  2. 软件测试的目的是尽可能多地发现软件中存在的错误,将它作为纠错的依据。(  
  3. 回归测试是指在单元测试基础上将所有模块按照设计要求组装成一个完整的系统进行的测试。(  
  4. 白盒测试主要以程序的内部逻辑为基础设计测试用例。(  
  5. 软件测试的目的是证明软件是正确的。(  
  6. “冰激凌”模式将传统的测试工作更多被推后到了 UI 层的测试。(  
  7. 持续测试既包括测试左移,也包括测试右移。(   

三、选择题

  1. 集成测试主要是针对(   )阶段的错误。
    • A. 编程
    • B. 详细设计
    • C. 概要设计
    • D. 需求设计
  2. 以下(   )不属于白盒测试技术。
    • A. 基本路径测试
    • B. 边界值分析
    • C. 条件覆盖测试
    • D. 逻辑覆盖测试
  3.    )能够有效地检测输入条件的各种组合可能引起的错误。
    • A. 等价类划分
    • B. 边界值分析
    • C. 错误猜测
    • D. 因果图
  4.    )方法需要考察模块间的接口和各个模块之间的关系。
    • A. 单元测试
    • B. 集成测试
    • C. 确认测试
    • D. 系统测试
  5. 在测试中,下列说法错误的是(   )。
    • A. 测试是为了发现程序中的错误而执行程序的过程
    • B. 测试是为了表明程序的正确性
    • C. 好的测试方案是尽可能发现迄今为止尚未发现的错误
    • D. 成功的测试是发现了迄今为止尚未发现的错误
  6. 单元测试又称为(   ),可以用白盒法也可以采用黑盒法测试。
    • A. 集成测试
    • B. 模块测试
    • C. 系统测试
    • D. 静态测试
  7. 在软件测试中,设计测试用例主要由输入 / 输出数据和(   )两部分组成。
    • A. 测试规则
    • B. 测试计划
    • C. 预期输出结果
    • D. 以往测试记录分析
  8. 通过程序设计的控制结构导出测试用例的测试方法是(   )。
    • A. 黑盒测试
    • B. 白盒测试
    • C. 边界测试
    • D. 系统测试
  9. 下面哪项不是测试金字塔最初原型的三层之一。(  
    • A. 单元测试
    • B. API 测试
    • C. UI 自动化测试
    • D. 性能测试

8.10 练习题

一、填空题

  1. 产品交付需要完成的主要任务是(                 )和(                 )。
  2. (                 )是项目移交的前提,移交时,项目移交方和项目接收方将在项目移交报告上签字,形成项目移交报告。
  3. (                 )是交付使用前的最后一次检查,也是软件投入运行之前保证可维护性的最后机会。
  4. (                      )是由独立于软件开发者和用户的第三方所进行的测试,旨在对被测软件进行质量认证。
  5. 一个产品的使用者有两种类型:一种是用户,另一种是(                     )。
  6. (                           )是为系统管理员准备的文档资料。

二、判断题

  1. 当项目通过验收后,项目团队不需要将项目成果的所有权交给项目接收方。(  
  2. 软件项目交付时要给用户提供必要的文档。(  
  3. 需要针对使用系统的用户的特殊要求进行不同的培训。(  
  4. 用户手册不仅要提供系统的使用方法,还需提供系统功能的详细实现方法。(  
  5. CI/CD 是指持续集成,持续交付,持续部署。(  

三、选择题

下面哪一个不是交付过程的文档?(  

  • A. 验收测试报告
  • B. 用户手册
  • C. 系统管理员手册
  • D. 开发合同

9.10 练习题

一、填空题

  1. 当一个系统已经在实际环境中投入使用,可以进行正常的操作时,我们就说系统开发完成了,以后对系统变更所做的任何工作,称为(                 )。
  2. 软件的可维护性是指纠正软件系统出现的(          )以满足新的要求而进行修改、扩充或压缩的容易程度。
  3. 一个可移植的程序应该具有结构良好、灵活、(                                               )的性能。
  4. 软件维护的类型主要包括(                       )、适应性维护、完善性维护和预防性维护等。
  5. 预防性维护也称为(                             )。
  6. 软件的逆向工程是一个恢复(                         )的过程。
  7. 如果软件是可测试的、可理解的、可修改的、可移植的、可靠的、有效的、可用的,则软件一定是可(             )的。

二、判断题

  1. 可维护性、可使用性、可靠性是衡量软件质量的几个主要质量特性,其中软件的可使用性是软件各个开发阶段的关键目标。(  
  2. 可理解性表明人们通过阅读源代码和相关文档,了解程序功能及其如何运行的容易程度。(  
  3. 可测试性表明验证程序正确性的容易程度,程序越简单,验证其正确性越容易。(  
  4. 适应性维护是针对系统在运行过程中暴露的缺陷和错误而进行的,主要是修改错误。(  
  5. 完善性维护主要是为了改善系统的某一个方面而进行的变更,可能这种变更更是因为出现错误而进行的变更。(  

三、选择题

  1. 度量软件的可维护性可以包括很多方面,下列(   )不在措施之列。
    • A. 程序的无错误性
    • B. 可靠性
    • C. 可移植性
    • D. 可理解性
  2. 软件按照设计的要求,在规定时间和条件下达到不出故障、持续运行要求的质量特性称为(   )。
    • A. 可靠性
    • B. 可用性
    • C. 正确性
    • D. 完整性
  3. 为适应软件运行环境的变化而修改软件的活动称为(   )。
    • A. 纠错性维护
    • B. 适应性维护
    • C. 完善性维护
    • D. 预防性维护
  4. 在软件生存期的维护阶段,继续诊断和修正错误的过程称为(   )。
    • A. 完善性维护
    • B. 适应性维护
    • C. 预防性维护
    • D. 纠错性维护
  5. 软件维护是软件生命周期中的固有阶段,一般认为,各种不同的软件维护中以(   )维护所占的维护量最小。
    • A. 纠错性维护
    • B. 代码维护
    • C. 预防性维护
    • D. 文档维护
  6. 对于软件的(   ),有一种简单的面向时间的度量,叫作平均变更等待时间(Mean Time To Change, MTTC)。这个时间包括开始分析变更要求、设计合适的修改、实现变更并测试它以及把这种变更发送给所有的用户所需的时间。
    • A. 可靠性
    • B. 可修改性
    • C. 可测试性
    • D. 可维护性
  7. 产生软件维护的副作用,是指(   )。
    • A. 开发时的错误
    • B. 隐含的错误
    • C. 因修改软件而造成的错误
    • D. 运行时误操作
  8. 下面哪一项不是持续运维包括的三个层次?(  
    • A. 持续测试
    • B. 持续部署
    • C. 持续运行
    • D. 持续反馈与改进

相关文章:

GDPU软件工程习题(挖空版)

答案&#xff1a; GDPU软件工程24期末复习-CSDN博客 1.8 练习题 一、填空题 软件工程是一门综合性的交叉学科&#xff0c;它涉及计算机学科、( )学科、( )学科和( )学科。软件工程研究的主要内容是 ( )、( )、( ) 三个方…...

【活动邀请·深圳】深圳COC社区 深圳 AWS UG 2024 re:Invent re:Cap

re:Invent 是全球云计算领域的顶级盛会&#xff0c;每年都会吸引来自世界各地的技术领袖、创新者和实践者汇聚一堂&#xff0c;分享最新的技术成果和创新实践&#xff0c;深圳 UG 作为亚马逊云科技技术社区的重要组成部分&#xff0c;将借助 re:Invent 的东风&#xff0c;举办此…...

Hutool工具包的常用工具类的使用介绍

前言 Hutool 是一个轻量级的 Java 工具类库&#xff0c;提供了非常丰富的工具方法&#xff0c;可以大大减少开发时的重复性工作。它的目标是让 Java 开发更简单、更高效。Hutool 提供了多种常用功能&#xff0c;以下是一些常用工具类的使用介绍&#xff1a; 1. StrUtil - 字符…...

C++简明教程(文章要求学过一点C语言)(2)

一、什么是代码文件&#xff08;头文件和源文件&#xff09; 想象你在写一篇很长的故事&#xff08;这就好比是一个 C 程序&#xff09;&#xff0c;你可能会把故事分成不同的章节&#xff08;类似于 C 中的文件&#xff09;。 头文件&#xff08;.h&#xff09;&#xff1a;它…...

防火墙技术与网络安全

网络已经成为了人类所构建的最丰富多彩的虚拟世界&#xff0c;网络的迅速发展&#xff0c;给我们的工作和学习生活带来了巨大的改变。我们通过网络获得信息&#xff0c;共享资源。如今&#xff0c;Internet遍布世界任何一个角落&#xff0c;并且欢迎任何一个人加入其中&#xf…...

html 中 表格和表单的关系与区别

在 HTML 中&#xff0c;表格 (<table>) 和表单 (<form>) 是两种常用于展示数据和收集用户输入的元素。它们具有不同的功能和结构。以下是关于这两者的详细介绍&#xff1a; 1. HTML 表格&#xff08;<table>&#xff09; 表格用于展示结构化的数据&#xf…...

基于Java的购物网站毕业论文

标题:基于 Java 的购物网站 内容:1.研究背景 1.1.国内研究进展 近年来&#xff0c;随着我国电子商务市场的不断发展&#xff0c;越来越多的企业开始涉足电子商务领域。其中&#xff0c;基于 Java 的购物网站成为了众多企业的首选。Java 语言具有跨平台、安全性高、稳定性好等优…...

Redis——缓存预热+缓存雪崩+缓存击穿+缓存穿透

文章目录 1、 缓存预热2、 缓存雪崩3、 缓存击穿4、 缓存穿透总结 1、 缓存预热 什么是预热&#xff1a; mysql加入新增100条记录&#xff0c;一般默认以mysql为准作为底单数据&#xff0c;如何同步给redis&#xff08;布隆过滤器&#xff09;这100条新数据。 为什么需要预热…...

wxWidgets使用wxStyledTextCtrl(Scintilla编辑器)的正确姿势

开发CuteMySQL/CuteSqlite开源客户端的时候&#xff0c;需要使用Scintilla编辑器&#xff0c;来高亮显示SQL语句&#xff0c;作为C/C领域最成熟稳定又小巧的开源编辑器&#xff0c;Scintilla提供了强大的功能&#xff0c;wxWidgets对Scintilla进行包装后的是控件类&#xff1a;…...

【ETCD】【实操篇(二)】如何从源码编译并在window上搭建etcd集群?

要在 Windows 上编译 etcd 及 etcdctl 工具&#xff0c;并使用 bat 脚本启动 etcd 集群&#xff0c;首先需要准备好开发环境并确保依赖项正确安装。下面是从 etcd 3.5 源码开始编译和启动 etcd 集群的详细步骤&#xff1a; 目录 1. 安装 Go 环境2. 获取 etcd 源码3. 编译 etcd…...

服务器数据恢复—V7000存储中多块磁盘出现故障导致业务中断的数据恢复案例

服务器存储数据恢复环境&#xff1a; 一台V7000存储上共12块SAS机械硬盘&#xff08;其中1块是热备盘&#xff09;&#xff0c;组建了2组Mdisk&#xff0c;创建了一个pool。挂载在小型机上作为逻辑盘使用&#xff0c;小型机上安装的AIXSybase。 服务器存储故障&#xff1a; V7…...

冯诺依曼架构与哈佛架构的对比与应用

冯诺依曼架构&#xff08;Von Neumann Architecture&#xff09;&#xff0c;也称为 冯诺依曼模型&#xff0c;是由著名数学家和计算机科学家约翰冯诺依曼&#xff08;John von Neumann&#xff09;在1945年提出的。冯诺依曼架构为现代计算机奠定了基础&#xff0c;几乎所有现代…...

Hive其四,Hive的数据导出,案例展示,表类型介绍

目录 一、Hive的数据导出 1&#xff09;导出数据到本地目录 2&#xff09;导出到hdfs的目录下 3&#xff09;直接将结果导出到本地文件中 二、一个案例 三、表类型 1、表类型介绍 2、内部表和外部表转换 3、两种表的区别 4、练习 一、Hive的数据导出 数据导出的分类&…...

CMake function使用

在 CMake 中&#xff0c;function 用于定义一个可复用的代码块&#xff0c;可以在 CMake 脚本中多次调用。它类似于其他编程语言中的函数。函数内的变量默认是局部的&#xff0c;不会影响外部的变量&#xff0c;除非显式地使用 PARENT_SCOPE 来修改父级作用域中的变量。 基本语…...

【AI学习】Huggingface复刻Test-time Compute Scaling技术

OpenAI ChatGPT o1 背后的关键技术Test-time Compute Scaling&#xff0c;Huggingface实现并开源了&#xff01; Hugging Face 团队发布了一篇关于“开源模型中的推理阶段计算扩展”&#xff08;Test-time Compute Scaling&#xff09; 的研究文章。Hugging Face 团队通过复现…...

前端导出PDF的组件及方法

前端导出PDF的组件及方法 在Web应用程序中&#xff0c;导出PDF文件是一项常见的需求。无论是为了打印、分享还是存档&#xff0c;能够将网页内容转换为PDF格式都非常有用。幸运的是&#xff0c;前端开发者有多种方法和组件可以实现这一功能。在本文中&#xff0c;我们将详细介…...

Mac升级macOS 15 Sequoia后,无法ssh连接本地虚拟机

现象 macOS 15后&#xff0c;无法ssh连接本地启动的虚拟机&#xff0c;提示错误&#xff1a; No route to host&#xff0c;也ping不通。包括UTM、Parallels Desktop这两个虚拟机软件。之前都是没问题的&#xff0c;通过一些简单排查&#xff0c;目前没发现什么问题。 在虚拟…...

Pytorch | 利用MI-FGSM针对CIFAR10上的ResNet分类器进行对抗攻击

Pytorch | 利用MI-FGSM针对CIFAR10上的ResNet分类器进行对抗攻击 CIFAR数据集MI-FGSM介绍背景算法原理 MI-FGSM代码实现MI-FGSM算法实现攻击效果 代码汇总mifgsm.pytrain.pyadvtest.py 之前已经针对CIFAR10训练了多种分类器&#xff1a; Pytorch | 从零构建AlexNet对CIFAR10进行…...

linux 无网络安装mysql

下载地址 通过网盘分享的文件&#xff1a;mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz 链接: https://pan.baidu.com/s/1qm48pNfGYMqBGfoqT3hxPw?pwd0012 提取码: 0012 安装 解压 tar -zxvf mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz mv /usr/mysql-5.7.33-linux-glibc2.1…...

自毁程序密码—阿里聚安全(IDA动态调试)

App信息 包名&#xff1a;com.yaotong.crackme Java层分析 MainActivity 很容易就能看出来是在securityCheck函数里进行安全校验。securityCheck是一个native函数&#xff0c;到so中进行分析。 SO层分析 定位函数位置 在导出函数里搜索 securityCheck 数据类型修复和…...

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…...

HTML 语义化

目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案&#xff1a; 语义化标签&#xff1a; <header>&#xff1a;页头<nav>&#xff1a;导航<main>&#xff1a;主要内容<article>&#x…...

PHP和Node.js哪个更爽?

先说结论&#xff0c;rust完胜。 php&#xff1a;laravel&#xff0c;swoole&#xff0c;webman&#xff0c;最开始在苏宁的时候写了几年php&#xff0c;当时觉得php真的是世界上最好的语言&#xff0c;因为当初活在舒适圈里&#xff0c;不愿意跳出来&#xff0c;就好比当初活在…...

MongoDB学习和应用(高效的非关系型数据库)

一丶 MongoDB简介 对于社交类软件的功能&#xff0c;我们需要对它的功能特点进行分析&#xff1a; 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具&#xff1a; mysql&#xff1a;关系型数据库&am…...

Angular微前端架构:Module Federation + ngx-build-plus (Webpack)

以下是一个完整的 Angular 微前端示例&#xff0c;其中使用的是 Module Federation 和 npx-build-plus 实现了主应用&#xff08;Shell&#xff09;与子应用&#xff08;Remote&#xff09;的集成。 &#x1f6e0;️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合

在汽车智能化的汹涌浪潮中&#xff0c;车辆不再仅仅是传统的交通工具&#xff0c;而是逐步演变为高度智能的移动终端。这一转变的核心支撑&#xff0c;来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒&#xff08;T-Box&#xff09;方案&#xff1a;NXP S32K146 与…...

JVM 内存结构 详解

内存结构 运行时数据区&#xff1a; Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器&#xff1a; ​ 线程私有&#xff0c;程序控制流的指示器&#xff0c;分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 ​ 每个线程都有一个程序计数…...

排序算法总结(C++)

目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指&#xff1a;同样大小的样本 **&#xff08;同样大小的数据&#xff09;**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解

在 C/C 编程的编译和链接过程中&#xff0c;附加包含目录、附加库目录和附加依赖项是三个至关重要的设置&#xff0c;它们相互配合&#xff0c;确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中&#xff0c;这些概念容易让人混淆&#xff0c;但深入理解它们的作用和联…...

消息队列系统设计与实践全解析

文章目录 &#x1f680; 消息队列系统设计与实践全解析&#x1f50d; 一、消息队列选型1.1 业务场景匹配矩阵1.2 吞吐量/延迟/可靠性权衡&#x1f4a1; 权衡决策框架 1.3 运维复杂度评估&#x1f527; 运维成本降低策略 &#x1f3d7;️ 二、典型架构设计2.1 分布式事务最终一致…...