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

您所在的位置:网站首页 软件工程考试选择题 【软件工程期末复习】课后部分习题

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

2023-08-07 04:34| 来源: 网络整理| 查看: 265

第一章

选择题

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

判断题

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

简答题

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

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

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

第二章

选择题

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

判断题

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

简答题

在统一软件开发过程模型中,核心工作流包含哪些?

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

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

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

第三章

选择题

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

判断题

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

简答题

如何估算软件的成本?

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

简述可行性研究的步骤。

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

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

第四章

选择题

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

程序设计可行性研究E-R分析行为建模

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

概念工具方法过程

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

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

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

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

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

数据流图PAD图状态转换图数据词典

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

输入、输出、外部实体和加工变换、加工、数据流和存储加工、数据流、数据存储和外部实体变换、数据存储、加工和数据流

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

自底向上逐步分解自顶向下逐步分解自底向上逐步抽象自顶向下逐步抽象

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

数据、对象、实体控制、关系、对象实体、关系、控制实体、属性、关系

判断题

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

简答题

简述数据流图的作用。

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

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

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

第五章

选择题

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

控制结构模块数据流事务流

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

模块间的联系程度信息隐藏程度模块的功能强度接口的负责程度

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

数据流图数据间的控制结构数据结构IPO图

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

公共环境耦合控制耦合数据耦合特征耦合

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

数据流和控制流变换流和控制流事务流和控制流变换流和事务流

判断题

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

简答题

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

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

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

什么是模块、模块化?软件设计为什么要模块化?

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

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

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

简述结构化设计的优点。

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

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

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

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

第六章

选择题

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

判断题

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

简答题

什么是面向对象技术?面向对象方法的特点有哪些?

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

特点:继承、封装、多态

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

通俗来说:

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

第七章

选择题

面向对象模型主要由以下哪些模型组成?(A) 对象模型、动态模型、功能模型对象模型、数据模型、功能模型数据模型、动态模型、功能模型对象模型、动态模型、数据模型 面向对象分析的首要工作是建立(D) 系统的动态模型系统的功能模型基本的E-R图问题的对象模型 面向对象的分析方法主要是建立3类模型,即(B) 系统模型、E-R模型、应用模型对象模型、动态模型、功能模型E-R模型、对象模型、功能模型对象模型、动态模型、应用模型 在面向对象分析阶段建立的3个模型中,核心的模型是(C)模型 功能动态对象分析 在面向对象的动态模型中,每张状态图表示(A)的动态行为 某一个类有关联的若干类一系列事件一系列状态 在考察系统一些涉及时序和改变的状况时,要用动态模型来表示。动态模型着重与系统的控制逻辑,它包括两个图:事件追踪图和(B) 顺序图状态图系统结构图数据流图 对象模型的描述工具是(D) 状态图数据流图结构图对象图 功能模型中所有的(D)往往形成一个层次结构,在这个层次结构中,一个数据流图的过程可以由下一层数据流图做进一步说明。 事件追踪图物理模型图状态迁移图数据流图

判断题

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

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

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

对象模型的描述工具是状态图。×(对象图)

简答题

对比面向对象需求分析方法和结构化需求分析方法。

结构化分析是一种基于功能分解的分析方法,在分析过程中使用了各种工具,例如数据流图等,这些工具本质上是一个对用户需求的解读,也是面向用户展示的一个“说明书”,目的在于使软件真正符合用户的需求。

面向对象分析是以面向对象思想为指导进行系统开发的一类方法的总称。这类方法以对象为中心,以类和继承为构造机制来抽象现实世界,并构建相应的软件系统。有几个需要遵循的基本原则:即抽象、封装、继承、多态。

什么是动态模型?

描述系统控制结构。动态模型具体是表示系统瞬时的控制性质。

什么是对象模型?

它将整个地理空间视为一个空域,将地理现象和空间实体作为独立的对象分布在空域中。

什么是功能模型?

其描述了系统的所有计算。功能模型指出发生了什么,动态模型确定是什么时候发生的,而对象模型确定发生的客体。其表明一个计算如何从输入值得到输出值,它不考虑计算的次序。

第九章

选择题

面向对象设计阶段的主要任务是系统设计和(D) 结构化设计数据设计面向对象程序设计对象设计 只有类的共有界面的成员才能成为使用类的操作,这是软件设计的(B)原则 过程抽象信息隐藏功能抽象共享性 (B)是表达系统类及其相互联系的图示,它是面向对象设计的核心,是建立在状态图、协作图和其他图的基础 部署图类图组件图配置图 下面所列的性质中,(D)不属于面向对象设计的特性 继承性重用性封装类可视化 下列是面向对象设计方法中有关对象的叙述,其中(B)是正确的 对象在内存中没有它的存储区对象的属性集合是它的特征表示对象的定义与程序中类型的概念相当对象之间不能相互通信 在面向对象设计中,基于父类创建的子类具有父类的所有特性(属性和方法),这一特点称为类的(C) 多态性封装性继承性重用性

判断题

在面向对象的设计中,应遵循的设计准则除了模块化、抽象、低耦合、高内聚以外,还有信息隐藏。√面向对象分析和设计活动是多次反复迭代的过程。√关系数据库可以完全支持面向对象的概念,面向对象设计中的类可以直接对应到关系数据库中的表。×面向对象设计是在分析模型的基础上,运用面向对象技术生成软件实现环境下的设计模型。√

简答题

比较结构化软件设计方法和面向对象软件设计方法。

结构化设计从系统功能入手,按照工程标准和严格规范将系统分解为若干功能模块。

面向对象设计则从所处理的数据入手,以数据为中心来描述系统,数据相对于功能而言,具有更强的稳定性,这样设计的系统模型往往能更好地映射问题域模型。

第十章

选择题

软件实现是软件产品由概念到实体的关键过程,它将(B)的结果翻译成用某种程序设计语言编写的并且最终可以运行的程序代码。虽然软件的质量取决于软件设计,但是规范的程序设计将会给后期的软件维护带来不可忽视的影响。 软件设计详细设计架构设计总体设计 (C)是一种纯面向对象语言 CPascalEiffelLISP 第一个体现结构化编程思想的程序设计语言是(C) FORTRANCPascalCobol 面向对象设计的结果,实现时(A) 只能使用面向对象语言只能使用非面向对象语言可以使用第四代语言既可使用面向对象语言,也可使用非面向对象语言

判断题

C语言是一种纯面向对象语言。×选择程序设计语言时,首先考虑的是应用领域。√良好的个人编程风格是优秀的程序员应具备的素质。√项目的应用领域是选择程序设计语言的关键因素。√FORTRAN、Pascal、C语言和汇编语言都是科学工程计算可选用的语言。×

简答题

简述编程风格的重要性。要形成良好的编程风格可以从哪些方面做起?

重要性:具有良好的编程风格的源程序具有较强的可读性、可维护性,还能提高团队开发效率。

以下方面做起:源程序文档、数据说明、语句构造、输入输出、效率。

部分应用题(题目由于书本不在身边没法一一写入,但是根据下列的描述相信大佬们也能猜到题目意义)

 

 

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3