软件工程期末考试题库(超全)_软件工程题库 - CSDN 博客
软件工程期末考试题库¶
选择题¶
- 具有风险分析的软件生命周期模型是( C )。
A. 瀑布模型 B. 喷泉模型 C. 螺旋模型 D. 增量模型
- 软件工程的基本要素包括方法、工具和( A )。
A. 过程 B. 软件系统 C. 硬件环境 D. 人员
- 软件的复杂性是( A ),它引起人员通信困难、开发费用超支、开发时间超时等问题。
A. 固有的 B. 人为的 C. 可消除的 D. 不可降低的
- 在结构化分析方法中,( C )表达系统内部数据运动的图形化技术。
A. 数据字典 B. 实体关系图 C. 数据流图 D. 状态转换图
- “软件危机” 是指( C )。
A. 计算机病毒的出现 B.利用计算机进行经济犯罪活动
C.软件开发和维护中出现的一系列问题 D.人们过分迷恋计算机系统
- 随着软硬件环境变化而修改软件的过程是( B )。
A.校正性维护 B.适应性维护 C.完善性维护 D.预防性维护
- 需求分析中开发人员要从用户那里了解( A )。
A.软件做什么 B.用户使用界面 C.输入的信息 D.软件的规模
- 软件详细设计的主要任务是确定每个模块的( A )。
A.算法和使用的数据结构 B.外部接口 C.功能 D.编程
- 为了提高模块的独立性,模块内部最好是( C )。// 外部耦合,功能内聚
A.逻辑内聚 B.时间内聚 C.功能内聚 D.通信内聚
- 一个模块的( C )太大一般是因为缺乏中间层次,应当适当增加中间层次的控制模块。
A.深度 B. 宽度 C. 扇出 D. 扇入
- 模块的内聚性最高的是( D )。
A.逻辑内聚 B.时间内聚 C. 偶然内聚 D.功能内聚
- 需求分析是( A )。
A. 软件开发工作的基础 B. 软件生存周期的开始
C. 由系统分析员单独完成的 D. 由用户自己单独完成的
- 在白盒测试技术测试用例的设计中,( B )是最强的覆盖标准。
A.语句覆盖 B.路径覆盖 C. 条件组合覆盖 D.判定覆盖
-
软件维护时,对测试阶段未发现的错误进行测试、诊断、定位、纠错,直至修改的回归测试过程称( A )。 A. 改正性维护 B. 适应性维护 C. 完善性维护 D. 预防性维护
-
(C) 是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外界是隐蔽的,外界只能通过有限的接口与对象发生联系。
A. 多态性 B. 继承 C. 封装 D. 消息
- 对象实现了数据和操作的结合,使数据和操作( C )于对象的统一体中。
A.结合 B.隐藏 C.封装 D.抽象
- 面向对象的开发方法中,( C )将是面向对象技术领域内占主导地位的标准建模语言。
A.Booch 方法 B.Coad 方法 C.UML 语言 D.OMT 方法
- ( A )意味着一个操作在不同的类中可以有不同的实现方式。
A.多态性 B.多继承 C.类的可复用 D.信息隐藏
- 单元测试的测试用例主要根据( D )的结果来设计。
A.需求分析 B.源程序 C.概要设计 D.详细设计
- 软件测试是为了( B )而执行程序的过程。
A. 纠正错误 B. 发现错误 C. 避免错误 D. 证明正确
21.类构件的重用方式有多态重用、继承重用和( A )
A.实例重用 B. 重载重用 C. 代码重用 D. 方法重用
- 支持面向对象技术的软件生存周期模型是( A )。
A. 喷泉模型 B. 螺旋模型 C. 增量模型 D. 瀑布模型
- 在白盒测试技术测试用例的设计中,( A )是最弱的覆盖标准。
A.语句覆盖 B.路径覆盖 C.条件组合覆盖 D.判定覆盖
- 下面哪些测试方法属于白盒测试( A E )。//BCD 是黑盒测试
A、基本路径测试 B、等价类划分 C、边界值分析 D、错误推测 E、逻辑覆盖测试
- 瀑布模型把软件生命周期划分为八个阶段:问题的定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。八个阶段又可归纳为三个大的阶段:计划阶段、开发阶段和 (C)。
A、详细计划 B、可行性分析 C、运行阶段 D、测试与排错
- 从结构化的瀑布模型看,在它的生命周期中的八个阶段中,下面的几个选项中哪个环节出错,对软件的影响最大 (C)。
A、详细设计阶段 B、概要设计阶段 C、需求分析阶段 D、测试和运行阶段
- 在结构化的瀑布模型中,哪一个阶段定义的标准将成为软件测试中的系统测试阶段的目标 (A)。
A、需求分析阶段 B、详细设计阶段 C、概要设计阶段 D、可行性研究阶段
- 软件工程的出现主要是由于 (C)。
A. 程序设计方法学的影响 B. 其它工程科学的影响 C. 软件危机的出现 D. 计算机的发展
- 软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是 (C)
A、硬件环境 B、软件开发的环境 C、软件开发工具和软件开发的环境 D、开发人员的素质
- 软件开发常使用的两种基本方法是结构化和原型化方法,在实际的应用中,它们之间的关系表现为 (B)
A、相互排斥 B、相互补充 C、独立使用 D、交替使用
- UML 是软件开发中的一个重要工具,它主要应用于哪种软件开发方法 (C)
A、基于瀑布模型的结构化方法 B、基于需求动态定义的原型化方法
C、基于对象的面向对象的方法 D、基于数据的数据流开发方法
- 软件测试基本方法中,下列 (D) 不用测试实例。
A). 白盒测试法 B). 动态测试法 C). 黑盒测试法 D). 静态测试法
- 结构化分析方法是一种预先严格定义需求的方法,它在实施时强调的是分析对象的 (B)
A、控制流 B、数据流 C、程序流 D、指令流
- 软件开发的结构化生命周期方法将软件生命周期划分成 (A)
A、 计划阶段、开发阶段、运行阶段 B、 计划阶段、编程阶段、测试阶段
C、 总体设计、详细设计、编程调试 D、需求分析、功能定义、系统设计
- 可行性研究主要从以下几个方面进行研究:( A )
A) 技术可行性,经济可行性,操作可行性 B) 技术可行性,经济可行性,系统可行性
C) 经济可行性,系统可行性,操作可行性 D) 经济可行性,系统可行性,时间可行性
- 耦合是对软件不同模块之间互连程度的度量。各种耦合按从强到弱排列如下: ( C )
A) 内容耦合,控制耦合,数据耦合,公共环境耦合。 B) 内容耦合,控制耦合,公共环境耦合,数据耦合。
C) 内容耦合,公共环境耦合,控制耦合,数据耦合。 D) 控制耦合,内容耦合,数据耦合,公共环境耦合。
- 可行性分析研究的目的( B )
A 争取项目 B 项目值得开发否 C 开发项目 D 规划项目
- 数据字典是用来定义( D )中的各个成分的具体含义
A 流程图 B 功能结构图 C 系统结构图 D 数据流图
- 程序的三种基本控制结构的共同特点是( C )
A 只能用来描述简单程序 B 不能嵌套使用 C 单入口,单出口 D 仅用于自动控制系统
- 为高质量的开发软件项目,在软件结构设计时,必须遵循( A )原则
A 信息隐蔽 B 质量控制 C 程序优化 D 数据共享
- 黑盒测试在设计测试用例时,主要研究( A )
A 需求规格说明于概要设计说明 B 详细设计说明 C 项目开发计划 D 概要设计说明与详细设计说明
- 通过 (B) 可以完成数据流图的细化。
A). 结构分解 B). 功能分解 C). 数据分解 D). 系统分解
- 程序流程图 (PDF) 中的箭头代表的是 ( B )
A). 数据流 B). 控制流 C). 调用关系 D). 组成关系
- 软件定义期问题定义阶段涉及的人员有 (D)
A). 用户、使用部门负责人 B). 软件开发人员、用户、使用部门负责人
C). 系统分析员、软件开发人员 D). 系统分析员、软件开发人员、用户、使用部门负责人
- (C) 应考虑对模块相联和资源共享问题进行描述和制约。
A). 系统设计 B). 详细设计 C). 接口控制 D). 结构化编辑工具
- 业界存在三种需求分析方法:面向功能分析、面向对象分析和 B 。
A.面向算法分析 B.面向数据分析 C.面向程序分析 D.面向硬件分析
- 软件可维护性的特性中相互矛盾的是 C 。
A.可修改性和可理解性 B.可测试性和可理解性 C.效率和可修改性 D.可理解性和可读性
- 软件测试方法中的 D 属于静态测试方法。
A. 黑盒法 B.路径覆盖 C.错误推测 D.人工检测
- 结构化分析方法采用的基本手段是 A 。
A. 分解与抽象 B.分解与综合 C.归纳与推导 D.试探与回溯
- 可行性研究要进行一次(D)需求分析。
A.深入的 B.详尽的 C.彻底的 D.简化的、压缩了的
- 可维护性的特性中相互促进的是(A)
A.可理解性和可测试性 B.效率和可移植性 C.效率和可修改性 D.效率和结构好
- (D)是以提高软件质量为目的的技术活动。
A.技术创新 B.测试 C.技术创造 D.技术评审
- 软件测试可能发现软件中的( B ),但不能证明软件 ( )。
A.所有错误,没有错误 B.错误,没有错误 C.逻辑错误,没有错误 D. 设计错误,没有错误
- 以下不属于软件维护困难表现的是 ©。
A.读懂别人的程序是困难的。
B.文档的不一致性。
C.源程序及相关文档的错误或丢失。
D.软件开发和软件维护在人员和时间上的差异。E. 软件维护不是一项吸引人的工作。
- 软件设计一般分为总体设计和详细设计,它们之间的关系是 (A)。
A.全局和局部 B.抽象和具体 C.总体和层次 D.功能和结构
- 一组语句在程序多处出现,为了节省空间,把这些语句放在一个模块中,该模块的内聚度是( C )的。
A.逻辑性 B.瞬时性 C.偶然性 D.通信性
- 在一个课程注册系统中,定义了类 CourseSchedule 和类 Course , 并在类 CourseSchedule 中定义了方法 add (c:Course) 和方法 remove (c:Course),则类 CourseSchedule 和类 Course 之间的关系是( C )。
A.泛化关系 B.组合关系 C.依赖关系 D.包含关系
- 软件策划的上游是( A ),下游是( B )
A)需求分析 B)软件设计 C)软件测试 D)可行性分析
- 概要设计的结果是提供一份 (A)。
A). 模块说明书 B). 框图 C). 程序 D). 数据流图
- 面向数据流软件设计方法一般是把数据流图中的数据流化分为 (B) 两种流,再将数据流图映射为软件结构。
A). 数据流与事务流 B). 交换流和事务流
C). 信息流与控制流 D). 交换流和数据流
填空题¶
-
一般来说,可以从 一致性 、完整性__、现实性____和有效性___四个方面验证软件需求的正确性。
-
IPO 图是 _输入、处理和输出图 _ 的简称,它是美国 IBM 公司发展完善起来的一种图形工具。
-
系统流程图是描述__物理模型__的传统工具,用图形符号表达了系统中各种元素之间的__信息流动_____情况。
-
数据流图中的箭头表示数据流,椭圆或圆形表示数据处理,矩形表示数据的源点 / 终点。
-
集成测试的方法主要有 渐增式和非渐增式 。
-
软件生命周期一般可分为 ** 问题定义、可行性研究、需求分析、设计编码、测试、运行与维护 ** 阶段。
-
可行性研究主要集中在以下四个方面 ** 经济可行性 、技术可行性**__、__法律可行性___和抉择。
-
在结构化设计中,HIPO 图应用在总体设计阶段,由 IPO 图和_层次图_两部分组成。
-
实施精化设计的目标是基于模块的 “高内聚低耦合” 的原则,提高模块的_独立性。
-
按软件的功能进行划分,软件可以划分为 系统软件 , 支撑软件 , 应用软件
-
单元测试一般以 ** 白盒 ** 测试为主,__黑盒__测试为辅。
-
面向对象的数据存储管理模式分为__文件__、关系数据库和面向对象数据库三种。
-
通用体系结构模式有:分层模式、管道与过滤器模式和黑板模式。
-
成本效益分析的目的是从 ( 经济 ) 角度评价开发一个项目是否可行。
-
自顶向下结合的渐增式测试法,在组合模块时有两种组合策略:深度优先策略和 ( 宽度优先策略 ) 。
-
汇编语言是面向 ( 机器 ) 的,可以完成高级语言无法完成的特殊功能,如与外部设备之间的一些接口工作。
-
详细设计的任务是确定每个模块的内部特性,即模块的算法、( 使用的数据 )。
-
所有软件维护申请报告要按规定方式提出,该报告也称 ( 软件问题 ) 报告。
-
有两类维护技术:在开发阶段使用来减少错误、提高软件可维护性的面向维护的技术;在维护阶段用来提高维护的效率和质量的 ( 维护支援 ) 技术。
-
科学工程计算需要大量的标准库函数,以便处理复杂的数值计算,可供选择的语言有:( FORTRAN 语言)、PASCAL 语言、C 语言和 PL/1 语言。
-
用户界面的 可使用性 是用户界面设计最重要的也是最基本的目标
-
数据流图 和 数据字典 共同构成系统的逻辑模型
-
软件测试的方法有 分析方法 和 非分析方法(即黑盒法)
-
成本估计方法主要有 自底向上估计 、 自顶向下估计 和算法模型估计三种类型
-
常见的软件概要设计方法有三大类:以数据流图为基础构造模块结构的 结构化设计方法 ,以数据结构为基础构造模块的 Jackson 方法 ,以对象、类、继承和通信为基础的 面向对象设计方法。
-
实用的白盒测试覆盖技术有 4 种:语句覆盖、条件覆盖、分支 (或判定) 覆盖和组合覆盖。
-
传统软件维护一般分为 4 大类,分别是纠错性维护、适应性维护、完善性维护和预防性维护。
-
在 V 测试模型中,编码结束后,首先作单元测试,然后是集成测试、系统测试和验收测试。
-
传统软件维护一般分为 4 大类,分别是纠错性维护、适应性维护、完善性维护和预防性维护。
-
需求建模的基本方法包括抽象、分解与多视点分析 3 种。
-
用例之间的关系主要有三种:包含(include)、扩展(extend)和继承。
-
用于表示分析模型的 UML 图形机制主要是类图、活动图、交互图与状态图。
-
软件设计基本原则包括抽象与逐步求精、强内聚及松耦合、信息隐藏及关注点分离。
-
内聚性有 6 种类型 偶然内聚、逻辑内聚、时间内聚、通信内聚、顺序内聚、功能内聚。
-
一般而言,在面向对象建模过程中,人们最常用的是建立系统的用例图、类图和顺序图。
-
常用的软件开发方法有结构化方法、面向对象方法和形式化开发方法
-
内聚性 是模块独立性的衡量标准之一,它是指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。
-
在结构化分析中,用于描述加工逻辑的主要工具有三种,即:结构化语言、判定表、 判定树
-
结构化语言是介于自然语言和形式语言之间的一种半形式语言
-
软件概要设计的主要任务就是软件体系结构的设计
判断题¶
-
向滞后的项目中增加人手会使得项目更加滞后。(T)
-
过程描述语言可以用于描述软件的系统结构。(F)
-
按照瀑布模型开发软件的一条指导思想是清楚地区分逻辑设计与物理设计,以便尽早开始程序的物理实现。( F )
-
只有质量差的软件产品才需要维护。( F )
-
层次图用来描述软件的层次结构。层次图中的一个矩形框代表一个模块,方框间的连线表示模块的组成关系。在层次图中除最顶层的方框之外,给每个方框都加编号,即成为带有编号的层次图。( F )
-
建立动态模型的第一步,是编写典型交互行为的脚本。( T )
-
软件错误可能出现在开发过程的早期,越早修改越好。(T)
-
软件模块的耦合是越低越好。( T )
-
一个好的测试用例在于能发现至今未发现的错误。( T )
-
面向对象设计的结果只能采用面向对象语言来实现( F )
-
一个成功的项目唯一提交的就是运行程序。( F )
-
用例之间的关系有 3 种。( T )
-
面向对象设计准则也要遵循弱耦合的原则,但是继承耦合则应该提高,紧密地继承耦合与高度的一般 - 特殊内聚是一致的。 ( T )
-
软件工作的考虑范围主要是程序设计和实现。( F )
-
环形复杂度定量度量程序的逻辑复杂度,可以用这个公式来计算环形复杂度:流图 G 的环形复杂度 V(G) = N– E + 2。(改成 E-N+2)( F )
-
等价类划分方法将所有可能的输入数据划分成若干部分,然后从每一部分中选取少数有代表性的数据作为测试用例。( T )
-
在进行总体 (改成概要) 设计时应加强模块间的联系。( F )
-
系统结构图是精确表达程序结构的图形表示法。因此,有时也可以将系统结构图当作系统流程图使用。( T )
-
建立动态模型的第一步,是编写典型交互行为的脚本。( T )
-
在程序调试时,找出错误的位置和性质比改正该错误更难。( F )
-
如果通过软件测试没有发现错误,则说明软件是正确的。( F )
-
快速原型模型可以有效地适应用户需求的动态变化。( T )
-
模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产品。( T )
-
集成测试主要由用户来完成。( F )
-
面向对象 = 对象 + 类 + 继承 + 消息传递。( T )
-
面向对象的分析是面向计算机系统建立软件系统的对象模型。( F )
-
软件的开发与运行经常受到硬件的限制和制约。(T)
-
模块内的高内聚往往意味着模块间的松耦合。(T)
-
Jackson 图只能表达程序结构,不能表达数据结构。(F)
-
软件测试的目的是为了无一遗漏的找出所有的错误。(F)
-
软件的质量好坏主要由验收人员负责,其他开发人员不必关心。(F)
-
判定覆盖不一定包含条件覆盖,条件覆盖也不一定包含判定覆盖。(T)
-
应该尽量使用机器语言编写代码,提高程序运行效率,而减少高级语言的使用。(F)
-
UML 只能应用于软件系统模型的建立。(F)
-
容错就是每个程序采用两种不同的算法编写。(F)