软件工程期末复习题

软件工程期末复习题

选择题

与需求相关的:

非功能需求又叫做( )

A、质量属性

B、系统需求

C、用户需求

D、用例

性能测试对应的是哪一类需求( )

A、非功能需求

B、用户需求

C、功能需求

D、业务需求

允许10万个用户同时登录描述的是哪一类需求。( )

A、业务需求

B、功能需求

C、维护需求

D、非功能需求

需求分析阶段最重要的技术文档是( )(2.0分)

A、用户手册

B、可行性分析报告

C、需求规格说明书

D、设计说明书

验收测试对应的是哪一类需求( )

A、非功能需求

B、用户需求

C、功能需求

D、业务需求

用户需求描述通常不具有( )

A、二义性

B、可靠性

C、模糊性

D、主观性

业务需求描述的是( )。

A、用户需求

B、功能需求

C、软件的目标、规模和范围

D、用户的具体业务流程

下列哪一项不属于需求获取的途径( )

A、用户代表访谈

B、调查问卷

C、用用例图进行分析

D、行业标准

下列哪一项需求状态表明该项需求可以进行设计了( )

A、被批准

B、被实现

C、被交付

D、被拒绝

几种模型:

1·下列关于瀑布模型的说法正确的是( )(3.8分)

A、瀑布模型仅能依次经过需求、设计、编码、测试、继承和维护这一路径进行项目开发,不能从后一阶段返回到前一阶段。

B、瀑布模型在每一个阶段不一定都会生成文档

C、瀑布模型只有在需求阶段和运行阶段才会有获取方和用户的参与,其他阶段都只有开发团队参加

D、瀑布模型要求需求在最初阶段就要明确和完整。

2·针对需求不确定的软件开发,比较好的模型是

A、快速原型化模型

B、系统化模型

C、软件成熟度模型

D、瀑布模型

3·关于螺旋模型的说法,下列说法错误的是( )(3.8分)

A、原型的进化贯穿整个软件生存周期,具有原型模型的特点

B、适用于大型复杂的软件项目

C、开发过程分为若干次迭代,每次迭代产生一个软件发布

D、把开发活动和风险管理结合起来控制风险

软件的生存周期:

下列关于软件开发过程说法正确的是( )(3.8分)

A、软件生存周期过程就是软件开发过程

B、软件开发过程是软件开发者所从事的一系列活动

C、软件开发过程中还包括了系统需求分析、系统结构设计以及维护等系统层面的活动

D、软件开发过程还包含了软件升级和软件演化的过程

软件维护阶段是软件生存周期中持续时间最长的阶段,它从( )时算起。(3.0分)

A、组装测试通过

B、用户提出第一份维护报告

C、产生可执行程序

D、软件交付使用

软件开发中实现映射的基本手段是( )(3.0分)

A、抽象

B、分层

C、建模

D、隔离

软件设计包括( )两个阶段。

A、结构设计和过程设计

B、数据设计和概要设计

C、接口设计和结构设计

D、概要设计和详细设计

软件产品与物质产品有很大的区别,软件产品是一种( )产品2.0分)

A、消耗

B、逻辑

C、有形

D、文档

软件调研报告是在( )提交的。

A、签合同之前

B、设计的时候

C、可行性分析之前

D、需求分析之前

软件开发活动的顺序应该是

A、需求分析、编码和测试、试运行。

B、问题定义、设计、可行性研究、编码和测试。

C、问题定义、可行性研究、需求分析、设计、编码和测试。

D、需求分析、设计、编码和测试。

一个软件项目大约( )的工作量在开发阶段,( )的工作量在测试维护阶段。下面哪个比例描述是正确的/p>

A、70%,70%

B、30%,70%

C、30%,30%

D、70%,30%

软件质量三因素包括( )。(2.0分)

A、需求、设备、过程

B、人员、范围、过程

C、人员、成本、技术

D、人员、技术、过程

按照( ),可以将软件生存周期过程分为基本过程、支持过程和组织过程。(2.0分)

A、软件开发项目的结构

B、软件开发工作的主体

C、软件开发活动的层次关系

D、软件开发任务的重要程度

在软件生命周期中,能准确确定软件系统的体系结构的功能阶段是

A、详细设计

B、概要设计

C、需求分析

D、可行性分析

敏捷开发相关的:

下列关于敏捷联盟宣言的理解错误的是(
)(3.8分)

A、个体和交互胜过过程和工具,表明团队的构建比开发环境的构建重要得多。

B、可以工作的软件胜过面面俱到的文档,表明过多的文档比过少的文档更糟糕。

C、客户合作胜过合同谈判,表明成功的项目需要客户配合开发团队详细明确地制定合同,避免开发时关于工作内容的过多交互。

D、响应变化胜过遵循计划,表明项目计划不能考虑过远,只需要为下两周做详细计划即可,再远的时间可制定简略的规划。

敏捷开发认为( )

A、软件开发的目标是可工作的软件,因此不需要写工作文档

B、客户和开发方应该严格按照既定合同进行软件开发

C、有能力的个体和良好的交互比不上现代软件过程和先进工具

D、采用增量式开发和短周期交付,以便及时响应变化

下列关于敏捷软件开发说法错误的是( )(4.6分)

A、敏捷软件开发是一种应对快速变化的需求的一种开发方法

B、敏捷软件开发强调文档的重要性

C、敏捷软件开发注重程序员团队与业务专家的密切协作

D、敏捷软件开发希望频繁的交付新的软件版本

UML相关:

以下哪个不是UML的静态视图( )。(3.8分)

A、类图

B、对象图

C、顺序图

D、用例图

以下哪一项不属于UML的作用( )。

A、提供了跨越问题空间到目前“运行平台”之间丰富的建模元素。

B、体现了软件设计的不同原理

C、提供了相应的模型表示工具。

D、提供了表达系统结构模型和行为模型的图形化工具。

与用例相关的:

下列哪一项不是用例之间的关系( )

A、扩展

B、泛化

C、实现

D、包含

下面说法错误的是( )

A、参与者是与所建立系统交互的人或物

B、用例图中可以有多个参与者

C、参与者可以是人,也可以是其他系统

D、用例图中可以不画参与者

下面说法错误的是( )

A、参与者是用例图的重要组成部分,所以它是系统的一部分

B、参与者是与所建立系统交互的人或物

C、参与者可以是人,也可以是其他系统

D、参与者之间存在泛化关系

下面说法错误的是( )

A、泛化表示一般和特殊的关系

B、类之间存在泛化关系

C、顺序图可以用来表达泛化关系

D、 用例之间存在泛化关系

下列哪一项不是用例之间的关系( )

A、扩展

B、包含

C、聚合

D、泛化

可视化地表达系统的静态结构模型的是( )。(3.0分)

A、用例图

B、顺序图

C、状态图

D、类图

以下哪个不属于用例图中的关系( )。(2.0分)

A、关联

B、泛化

C、扩展

D、依赖

功能模型用于表达系统的需求,为软件的进一步分析和设计打下基础。在面向对象方法中,由( )实现。

A、交互图和场景描述

B、场景描述

C、活动图和场景描述

D、用例图和场景描述

动态模型描述系统的动态结构和对象之间的交互,表示瞬时的、行为化的系统“控制”特性。面向对象方法中,常用( )实现。

A、状态图

B、以上全部

C、活动图

D、时序图

顺序图:

顺序图由类角色,生命线,激活期和( )组成。(2.0分)

A、实体

B、消息

C、用例

D、关系

依据顺序图的表示规范,同步消息的回复应当使用以下哪种表示方法( )。(2.0分)

A、实线实心三角箭头

B、虚线枝形箭头

C、实线三角箭头

D、实线枝形箭头

CMM:

CMM分为等级/p>

A、8

B、5

C、2

D、6

下列关于CMM(能力成熟度模型)说法错误的是( )(3.0分)

A、CMM体现了软件工程和软件管理的优秀实践

B、CMM给出了从混乱、个人的过程到成熟的规范化过程的一个框架

C、CMM中涉及了项目是否成功的所有要素

D、软件组织可以通过CMM去定义、实施、度量、控制和改进自己的软件过程

面对对象设计:

( )是描述类的所有对象的共同特征的一个数据项。

A、对象属性

B、实例属性

C、类属性

D、方法属性

下列说法错误的是( )

A、类可以看做生成对象的模板

B、聚合是类与类之间的关系

C、对象是类的实例

D、类都能被实例化

关于封装下列说法错误的是( )

A、封装是为了保护对象

B、封装分为接口和实现部分

C、封装是为了省事

D、封装是为了防止细节的变化影响客户

下列说法错误的是( )

A、类都能被实例化

B、泛化可以是类与类之间的关系

C、一个类可以有多个对象

D、对象是类的实例

以下说法错误的是( )。(2.0分)

A、班主任只有一个属性姓名,所以可以取消该类,将属性”班主任姓名”添加至相关的其他类。

B、轿车和货车都是车,所以可以直接以一个类”车”代替两个类。

C、吸尘器和电子琴同时作为商品销售,所以可以通过抽象合并为同一类。

D、轿车和货车都是车,所以可以提取出一个一般类“车”作为他们的父类。

早期曾经有多种面向对象开发方法,每种方法都有一套自己的描述符号和实现过程,每种方法支持三种基本的活动,下面哪项不属于这三项活动( )

A、识别对象和类

B、描述子模块之间的关系。

C、通过描述每个类的功能定义对象的行为

D、描述对象和类之间的关系

信息隐藏的核心内容是( )。

A、把数据都放在公共的区域

B、一个模块的内部信息不允许其他模块直接访问

C、数据不能被其他模块访问

D、把信息加密,只能让有密钥的模块访问

下列开发环境不适用于C/C++开发的是( )。(2.0分)

A、Android Studio

B、Dev C++

C、Visual Studio

D、GCC

面向对象设计强调定义( ),并且使它们相互协作来满足用户需求。

A、软件对象

B、接口

C、物理模型

D、E-R模型

在类的属性定义中引入可见性,主要是为了支持( )这一软件设计原则。(2.0分)

A、信息隐蔽

B、模块化

C、抽象

D、自底向上

UML中的类没有体现下列哪一项软件设计原理( )。(2.0分)

A、数据抽象

B、过程抽象

C、功能抽象

D、信息隐蔽

设计原则:

某模块的功能是打印录取通知书或不录取通知书,调用模块可通过向此模块传递布尔标志信息决定本次调用哪种通知书的打印,这种模块之间的耦合称为(
)。

A、控制耦合

B、公共耦合

C、数据耦合

D、混合耦合

软件设计模块化的目的是( )

A、低耦合性

B、增加内聚性

C、降低复杂性

D、提高易读性

对类进行详细设计,主要是设计类的( ),优化类之间的关系。

A、数据结构

B、处理流程

C、算法

D、属性和方法

下列说法错误的是( )

A、在组合关联中,整体和部分同时存在同时消亡

B、聚合关联是整体和部分的关系

C、以上说法都不对

D、组合比聚合的关联程度更强

填空题:

  1. 软件生命周期(Software Development life cycle):从提出软件到软件退役的过程,软件生命周期分为哪七个阶段: 问题定义 、 可行性研究、_需求分析、 设计 、_实现、 集成与测试 、运维等。

  2. 需求工程活动包括 需求开发 和 需求管理 两个方面

  3. 软件开发存在诸多风险,而螺旋模型把开发活动和( 风险管理 )结合起来控制风险。

常用的需求获取方法有 用户代表访谈 、客户访谈、设计一个收集系统、行业标准、竞争对手资料、调查问卷。

需求开发是因为需求工程的“需求”特性而存在的,它们是专门用来处理需求的软件技术,包括 需求获取 、需求分析、 需求文档化 、需求验证4个具体的活动。

  1. 需求有三个不同的抽象层次,分别是: 业务需求、用户需求、功能和非功能需求 。

系统需求=功能需求和非功能需求

  1. 软件工程三要素是_ 软件工具___、软件方法软件过程_

  2. RUP统一过程分为 初始化、 详细化、构造、 提交 这几个阶段

RUP包含商业建模、需求收集 、 分析和设计 、 实现 、 测试 、 发布 等核心工作流以及配置管理等其他支持工作流

  1. 用例图是以用例、参与者(Actor)为基本元素,描述系统功能的静态视图。用例图中用到的四种关系有哪些: 包含 关系, 扩展 关系, 泛化 关系、 关联 关系。

  2. 类图中主要包含5种关系,分别是关联关系、( 泛化关系 )、( 聚合关系
    )、组合关系以及依赖关系。

  3. 对象与对象之间通过 消息 进行通信

  4. 用例图的三大基本元素:( 用例 )、角色和关系

  5. 在类中, 属性 名必须是唯一的。

  6. 面向对象开发是“先”确定动作的主体,“后”执行动作;以(
    对象 )主体作为核心。

面面向对象设计的四大原则包括强内聚、( 弱耦合)、( 可重用性 )、框架。

  1. 用例图中四大关系包括:(
    关联 )、包含关系、扩展关系以及( 泛化 )。

现实世界中的实体可以映射为计算机世界中的
对象 。

面向对象程序设计具有以下三大基本特征:( 封装性 )、( 继承性 )、多态性。

运用UML进行面向对象分析设计,通常都要经过下述三个步骤: 需求分析 识别系统的用例和角色,勾画系统的概念层次模型,借助UML建模工具描述概念层的类和活动图;系统分析,进行系统分析并抽象出类,从实际需求抽象出类,并描述各个类之间的关系; 系统设计 ,设计系统中的类及其行为,使用UML的动态模型描述在特定环境下这些类的实例的行为。

  1. 用例图通常用来定义系统的高层次草图,它从用户角度描述了应用的系统功能,指出了各个功能的外部操作者; 顺序图描述系统如何实现完成在User Case图中定义的功能,可以画出对象(类的实例)之间交互时产生的时序关系; 类图描述类与类之间的静态关系。

  2. UML中的交互图有: 顺序图;序列图;时序图 和 协作图 。

  3. 面向对象设计的基本原则是高
    内聚 低 耦合 。

  4. 面向对象分析的三个主要模型是(功能模型)、(对象模型)和(动态模型)。

  5. 瀑布模型是以(
    文档 )作为驱动的软件过程模型。

  6. 软件设计阶段包括( 概要设计 ) 和( 详细设计 )两个阶段。

  7. 面向对象设计中,其中有一条原则是多用组合 少用继承 ,从而降低对象的耦合度。

  8. 里氏替换原则是指在 父类 出现的地方都可用 子类 去替换。

面向对象分析中,分析类一般分为(边界)、(控制)和(实体)。

  1. 软件工程概念的提出是为了解决( 软件危机)问题。

判断题:

大多数的生命周期模型都是在瀑布模型的基础上改进的。 √

用户需求是最重要的需求,也是出现问题最多的。 √

业务需求一般由用户高层领导机构决定,描述简洁。√

需求数据库不仅可以用来需求,还能对需求进行追踪。 √

需求管理就是进行需求收集 ×

每一个类都有一个唯一的标识 ×

老师是一个类,锦城学院的老师是一个对象 ×

类是静态概念,对象是动态概念。 √

类是对象的实例。 ×

用例分析的步骤之一就是确定系统的边界,找出系统外部的参与者和外部系统; √

用例可以简单理解为系统的某个功能。 √

画用例图的核心步骤包括:找到活动者、找到用例、找到包含关系、找到扩展关系。 √

画用例图时,一般先分析出参与者,然后根据参与者来分析出用例。 √

CMM是用来评估软件质量等级的 ×

用例图中的用例必须有人来启动。 ×

每个用例都能分析出边界类、控制类和实体类来。 ×

在一个类的定义中方法名必须是唯一的。 ×

在继承中凡是父类出现的地方都可以用子类去替换。 √

子类可以继承父类的所有方法和属性。 √

在一个类的定义中,必须包含方法和属性,缺一不可。×

面向对象方法中,属性封装的是对象的数据,方法封装的是对象的行为。 √

在我们的软件系统中,需要使用到鼠标键盘,所以鼠标键盘是软件系统的参与者。 ×

  1. 重载是用是同一个类中有多个同名的方法,但方法的参数不同。 √

在面向对象编程中,能执行功能的都是具体的对象。√

面向对象方法中,属性封装的是对象的行为,方法封装的是对象的数据。 ×

电器是一个类,电视机是电器中的一个对象。 ×

非功能性需求又叫质量属性,所以非功能需求比功能需求更重要。 ×

  1. 在面向对象编程中,能执行功能的都是某个类。 √

  2. 一个用例图用一张序列图来描述用例的行为。 ×

  3. 每一个类都能被实例化。
    ×

  4. 耦合与内聚都是模块独立性的定性标准,但耦合是独立性的直接主导因素。 √

  5. 在面向对象设计时必须遵循面向对象设计六大原则。 ×

  6. 在面向对象设计中,我们一般采用高耦合低内聚的原则来设计类。 ×

  7. 消息传递是对象间交互的唯一方式。 √

  8. 序列图的活动者就是对应用例的参与者。 √

  9. 一个序列图只能表达一个用例的交互情况。 √

  10. 学生是一个类,小学生是学生中的一个对象。 ×

  11. 用户需求是最重要的需求,也是出现问题最多的。 √

  12. 易用性是界面设计的核心。 √

  13. 大多数的生命周期模型都是在瀑布模型的基础上改进的。 √

  14. 类图只能表达一个用例中类之间的关系。 ×

  15. 面向对象设计原则和设计模式本质上都一样,都是指导如何对类进行设计。 ×

  16. 对象在任何时候都会处于某种状态中,所有对象都有状态。 √

来源:Cen.c

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

上一篇 2020年11月17日
下一篇 2020年11月17日

相关推荐