软件工程习题.docx

上传人:b****6 文档编号:8666767 上传时间:2023-02-01 格式:DOCX 页数:16 大小:24.33KB
下载 相关 举报
软件工程习题.docx_第1页
第1页 / 共16页
软件工程习题.docx_第2页
第2页 / 共16页
软件工程习题.docx_第3页
第3页 / 共16页
软件工程习题.docx_第4页
第4页 / 共16页
软件工程习题.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

软件工程习题.docx

《软件工程习题.docx》由会员分享,可在线阅读,更多相关《软件工程习题.docx(16页珍藏版)》请在冰豆网上搜索。

软件工程习题.docx

软件工程习题

一.软件工程基本概念

【例1】在软件生命周期中,能准确确定软件系统的体系结构的功能

阶段是()。

(A)概要设计(B)详细设计

(C)需求分析(D)可行性分析

【答案】A

【例2】下面不是软件工程的3个要素的是()。

(A)过程(B)方法

(C)环境(D)工具

【答案】C

【考点解析】软件工程包括3个要素,即方法、工具和过程。

【例3】下面不属于软件工程的基本原则的是()。

(A)模块化(B)抽象

(C)局部化(D)自顶向上

【答案】D

【考点解析】软件工程原则包括抽象、模块化、信息隐蔽、局部化、确定性、一致性、完备性和可验证性。

而自顶向上是软件测试的内容,在后面章节将讨论到。

【例4】在软件工程原则中,要求在一个物理模块内集中逻辑上相互关联的计算机资源的是()。

(A)模块化(B)抽象

(C)局部化(D)一致性

【答案】C

【考点解析】软件工程原则包括抽象、模块化、信息隐蔽、局部化、确定性、一致性、完备性和可验证性。

模块化是把一个问题分解成若干个较小、较易解决的模块。

抽象是采用自顶向下,逐层细化的办法控制软件开发过程的复杂性。

局部化,要求在一个物理模块内集中逻辑上相互关联的计算机资源。

一致性。

整个软件系统的各个模块均使用一致的概念、符合和术语,系统规格说明与系统行为一致性,用于形式化规格说明的公理系统的一致性。

 

【例5】下面不属于软件的组成的是()。

(A)程序(B)记录

(C)文档(D)数据

【答案】B

【考点解析】软件:

计算机程序+数据+文档。

软件是与计算机系统操作相关的程序、规程、规则及任何与之相关的文档和数据。

【例6】在瀑布模型中,将软件划分为若干个时期,软件项目的可行性研究一般归属于()。

(A)维护时期(B)运行时期

(C)计划时期(D)开发时期

【答案】C

【考点解析】软件生命周期分为计划、开发、运行3个时期,每个时期又分成若干阶段。

      计划期有:

问题定义和可行性研究;

开发期有:

需求分析、概要设计、详细设计、编码和测试;

      运行期有:

运行和维护。

【例7】在瀑布模型中,下面哪个是其突出的缺点。

()

(A)不适应平台的变动

(B)不适应算法的变动

(C)不适应用户需求的变动

(D)不适应程序语言的变动

【答案】C

【例8】软件开发环境由软件工具集和环境集成机制构成。

下面不属环境集成机制的是()。

(A)控制集成(B)功能集成

(C)数据集成(D)界面集成

【答案】A

【考点解析】工具集包括支持软件开发相关过程、活动、任务的软件工具,以便对软件开发提供全面的支持。

环境集成机制为工具集成和软件开发、维护与管理提供统一的支持,它通常包括数据集成、控制集成和界面集成3个部分。

【例9】软件工程的原则包括抽象、________、信息隐蔽、局部化、一致性、________、完备性和可验证性。

【答案】模块化确定性

【考点解析】软件工程的原则包括抽象、模块化、信息隐蔽、局部化、一致性、确定性、完备性和可验证性。

【例10】软件可分为应用软件、________和支撑软件3类。

其中________是特定应用领域内专用的软件。

【答案】系统软件应用软件

【考点解析】应用软件是特定应用领域内专用的软件;系统软件居于计算机系统中最靠近硬件的一层,是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务大软件;支撑软件介于系统软件和应用软件之间,是支援其他软件的开发与维护的软件。

【例11】从形成概念(构思)开始,经过________、开发、使用和________,直到最后被废弃(不能再使用)为止的全过程称为软件生命周期。

【答案】定义维护

【考点解析】把软件生命周期划分为8个阶段:

(1)问题定义

(2)可行性研究与计划(3)需求分析(4)概要设计(5)详细设计(6)实现(编码和单元测试)(7)测试(集成测试、确认测试)(8)使用和维护。

【例12】软件工程学研究的内容是软件开发技术和________。

【答案】软件工程管理

【考点解析】软件工程是指导计算机软件开发和维护的工程学科,采用工程上熟悉的概念、原理、技术、方法来开发和维护以及管理软件。

二.结构化分析方法

【例1】以下哪个不是结构化分析方法常用的工具()。

(A)数据流图(B)数据字典

(C)程序流程图(D)判定树

【答案】C

【考点解析】结构化分析方法常用的工具有数据流图、数据字典、判定树和判定表。

而程序流程图是详细设计时常用的工具。

【例2】软件可行性分析是着重确定系统的目标和规模。

对成本—效益进行发现应属于下列之中的()。

(A)经济可行性(B)操作可行性

(C)技术可行性(D)社会可行性

【答案】A

【考点解析】软件可行性分析主要包括3个方面,即经济可行性研究、技术可行性研究、社会可行性研究和开发方案的选择性研究。

其中经济可行性就是通过成本—效益分析,评估系统的经济效益是否超过它的开发成本;技术可行性是根据客户提出的系统功能、性能以及实现系统的各项约束条件,从技术的角度研究实现系统的可行性;社会可行性是研究在系统开发过程中可能涉及人力资源、各种合同、知识产权纠纷、责任以及各种与法律相抵触的问题;开发方案的选择性研究,是提出并评价实现系统的各种开发方案,并从中选出一种最适宜项目的开发方案。

【例3】在数据流图中,用圆或者椭圆来表示()。

(A)数据流(B)加工

(C)数据存储(D)数据源点或终点

【答案】B

【考点解析】数据流图由数据流、加工(又称为数据处理)、数据存储(又称文件)、数据源点或终点四种基本成分组成。

其中箭头表示数据流,圆或椭圆表示数据处理(加工),双杠表示数据存储,方框表示数据源点或终点。

【例4】数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。

以下图符名标识的图符不属于数据流图合法图符的是()。

(A)加工(B)控制流

(C)数据存储(D)源点或终点

【答案】B

【考点解析】数据流图由数据流、加工(又称为数据处理)、数据存储(又称文件)、数据源点或终点四种基本成分组成。

【例5】.软件需求分析阶段的工作,有四个方面,分别为需求评审,需求分析,编写需求规格说明书,以及()。

(A)需求获取(B)阶段性报告

(C)总结(D)都不正确

【答案】A

【考点解析】软件需求分析阶段的工作有四个方面,分别为需求获取,需求分析,编写需求规格说明书,需求评审。

【例6】结构化分析方法的核心是()。

(A)数据流图(B)数据字典

(C)需求分析(D)结构化语言

【答案】C

【考点解析】结构化分析方法是面向数据流进行需求分析的方法。

也是一种建模活动,该方法使用简单易读的符号,运用抽象的概念模型,根据软件内部数据传递、变换的关系,自顶向下逐层分解,描绘出满足功能要求的软件模型。

结构化分析使用的工具有:

数据流图、数据字典、结构化语言,判定表和判定树。

其核心是数据字典。

【例7】下面不是软件需求规格说明书的特点的是()。

(A)正确性

(B)无歧义性

(C)完整性

(D)不可修改性

【答案】D

【考点解析】软件需求规格说明书的特点:

(1)正确性

(2)无歧义性(3)完整性(4)可验证性(5)一致性(6)可理解性(7)可修改性(8)可追踪性

【例8】需求分析阶段的任务是确定()。

(A)软件开发方法(B)软件开发费用

(C)软件系统功能(D)软件开发工具

【答案】C

【考点解析】需求分析的基本任务一般包括:

(1)收集来自用户各个方面对软件功能的需求。

(2)对得到的需求进行补充、完善和加工。

(3)利用分析与综合的思想进行进一步的整理,形成软件需求说明、数据描述、运行环境等,以及其他相关的软件开发文档。

经过需求分析最终确定软件系统的功能。

【例9】软件可行性研究的目的就是用最小的代价在尽可能短的时间内确定该软件项目的________。

【答案】可行性

【考点解析】可行性研究的目的不是去开发一个软件项目,而是研究这个软件项目是否值得去开发,其中的问题能否解决。

【例10】结构化分析(StructuredAnalysis,简称SA),是面向________进行需求分析的方法。

【答案】数据流

【考点解析】结构化分析(StructuredAnalysis,简称SA),是面向数据流进行需求分析的方法。

SA也是一种建模活动,该方法使用简单易读的符号,运用抽象的概念模型,根据软件内部数据传递、变换的关系,自顶向下逐层分解,描绘出满足功能要求的软件模型。

结构化分析使用的工具有:

数据流图、数据字典、结构化语言,判定表和判定树。

【例11】________是用于描述软件系统中使用或者产生的每一个数据元素,是系统数据信息定义的集合。

【答案】数据字典

【考点解析】数据字典是以一种准确的和无二义的方式对数据流图中的所有名字进行定义的汇总。

它详细地描述了数据的组成情况和加工规程。

【例12】结构化方法将软件生命周期分为________3个时期,每个时期又分为若干个阶段。

【答案】计划开发运行

【考点解析】结构化方法将软件生命周期分为计划、开发、运行3个时期。

1、计划时期:

软件计划的任务是确定软件开发过程必须完成的总目标。

具体可分成问题定义、可行性研究。

2、开发时期:

软件开发就是软件的分析、设计与实现,其中分析、设计包括需求分析、总体设计、详细设计3个阶段,实现则包括编码和测试。

3、运行期的主要任务是软件维护。

三.结构化设计方法

【例1】以下哪个不是详细设计中常用的图形描述工具。

()

(A)数据流图(B)程序流图

(C)盒图(N-S)(D)问题分析图(PAD)

【答案】A

【考点解析】图形描述工具是把过程细节用图形来表示,详细设计中常用的图形描述工具有程序流图、盒图(N-S)、问题分析图(PAD)等。

而结构化分析方法常用的工具有数据流图、数据字典、判定树和判定表。

【例2】在程序流程图的各元素中,用方框来表示()。

(A)逻辑条件(B)控制流

(C)加工任务(D)数据流

【答案】C

【考点解析】程序流程图主要的元素有:

用方框表示加工任务;用菱形表示逻辑条件;用箭头表示控制流。

【例3】耦合度是对软件结构中各个不同模块之间互相关联程度的度量。

一模块直接访问另一模块的内部信息应属于()方式。

(A)内容耦合(B)控制耦合

(C)数据耦合(D)外部耦合

【答案】A

【考点解析】模块耦合性是对软件结构中各个不同模块之间互相关联程度的度量。

内容耦合是指一模块直接访问另一模块的内部信息,是最不好的耦合形式;控制耦合是指一模块向下属模块传递的信息控制了被调用模块的内部逻辑;数据耦合是指一模块调用另一模块时,被调用模块的输入、输出都是简单的数据,属松散耦合;外部耦合是指一组模块均与同一外部环境关联。

【例4】内聚性是指一个模块内部元素在功能上相互关联的强度。

若模块内各处理成分相关,且必须以特定次序执行,则这应属于()方式。

(A)偶然内聚(B)过程内聚

(C)时间内聚(D)通信内聚

【答案】B

【考点解析】模块内聚性是指一个模块内部元素在功能上相互关联的强度。

  偶然内聚:

是指模块内各部分间无联系。

  过程内聚:

是指模块内各处理成分相关,且必须以特定次序执行。

时间内聚:

是指模块完成的功能必须在同一时间内执行,这些功能只因时间因素关联在一起。

通信内聚:

是指模块内各部分使用相同的输入数据,或产生相同的输出结果。

【例5】.在结构图的有关术语中,用于表示软件结构中控制的层数的是()。

(A)扇出(B)扇入

(C)深度(D)宽度

【答案】C

【考点解析】结构图有关术语有:

深度、宽度、扇出和扇入。

深度:

表示软件结构中控制的层数。

宽度:

表示控制的总分布。

扇出:

表示直接由一个模块控制的模块的数目。

扇入:

表明直接控制一个给定模块的数目。

【例6】模块的独立程度是评价设计好坏的重要标准。

()是衡量软件的模块独立性的两个定性度量标准。

(A)耦合性和内聚性(B)内聚性和可靠性

(C)耦合性和独立性(D)可靠性和独立性

【答案】A

【考点解析】耦合性和内聚性是衡量软件的模块独立性的两个定性度量标准。

软件设计的目标:

力争强内聚、弱耦合。

【例7】下述中属于软件结构设计的优化准则是()。

①划分模块时,尽量做到高内聚,低耦合,保持模块相对独立性,并以此原则优化初始的软件结构。

②软件结构的深度、宽度、扇入、扇出应适当。

③模块的大小要适中。

④模块的接口要简单、清晰、含义明确,便于理解,易于实现、测试与维护。

(A)①、②和③(B)①、③和④

(C)②、③和④(D)全部

【答案】D

【考点解析】软件结构的设计优化准则:

(1)划分模块时,尽量做到高内聚,低耦合,保持模块相对独立性,并以此原则优化初始的软件结构。

(2)一个模块的作用域应在其控制范围之内,且判定所在的模块应与受其影响的模块在层次上应尽量靠近。

(3)软件结构的深度、宽度、扇入、扇出应适当。

(4)模块的大小要适中。

(5)模块的接口要简单、清晰、含义明确,便于理解,易于实现、测试与维护。

【例8】软件设计包括()两个阶段。

(A)接口设计和结构设计(B)概要设计和详细设计

(C)数据设计和概要设计(D)结构设计和过程设计

【答案】B

【考点解析】软件设计分为概要设计和详细设计两个阶段。

其中概要设计又称总体设计,而详细设计又称过程设计。

【例9】经常使用的结构图有4种模块类型:

传入模块、传出模块、变换模块和_______。

【答案】协调模块

【考点解析】结构图有4种模块类型:

传入模块、传出模块、变换模块和协调模块。

传入模块:

从下属模块取数据,经处理再将其传送给上级模块。

传出模块:

从上级模块取得数据,经处理再将其传送给下属模块。

变换模块:

从上级模块取得数据,进行特定的处理,转换成其他形式,再传送给上级模块。

协调模块:

对所有下属模块进行协调和管理的模块。

【例10】软件设计是一系列设计迭代的过程,软件设计包括软件________、数据设计、接口设计、________。

【答案】结构设计过程设计

【考点解析】件设计包括软件结构设计、数据设计、接口、过程设计。

其中,结构设计定义了软件的主要结构元素;数据设计是将系统分析时创建的信息模型变换成软件所需的数据结构;接口设计描述了软件内部、软件与协作系统、软件与使用者之间的通信方式;过程设计则是把系统结构部件转换成软件的过程性描述。

【例11】________是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。

【答案】模块独立性

【考点解析】模块独立性是指,每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。

模块的独立程度是评价设计好坏的重要标准。

耦合性和内聚性是衡量软件的模块独立性的两个定性度量标准。

【例12】N-S图是一种________设计工具。

【答案】详细

【考点解析】盒图又称N-S图,它的目标是构造一种不允许破坏结构化程序设计的图形。

用盒图可以更好地控制结构化程序设计的思想。

四.软件的测试

【例1】软件测试按照功能划分可以分为()。

(A)黑盒测试和单元测试(B)白盒测试和黑盒测试

(C)集成测试和单元测试(D)白盒测试和静态测试

【答案】B

【考点解析】图形描述工具是把过程细节用图形来表示,详细设计中常用的图形描述工具有程序流图、盒图(N-S)、问题分析图(PAD)等。

而结构化分析方法常用的工具有数据流图、数据字典、判定树和判定表。

【例2】在白盒测试法中的逻辑覆盖技术中,其中发现错误能力最弱的覆盖技术是()。

(A)语句覆盖(B)判定覆盖

(C)条件覆盖(D)数据流

【答案】A

【考点解析】逻辑覆盖是一组覆盖方法的总称,它以程序的内部逻辑结构为基础设计测试用例。

以下由弱到强排列:

①语句覆盖。

语句覆盖是选择足够的测试用例,使得被测程序的每条语句至少执行一次。

②判定覆盖,又称分支覆盖,它是选择足够的测试用例,使得程序中每个判定至少获得一次真,获得一次假,从而使得每个判定框的每一个分支至少执行一次。

③条件覆盖。

条件覆盖是选择足够的测试用例,使程序判定中的每一个条件能获得各种不同的结果。

④判定-条件覆盖。

选用足够的测试用例,使得判定表达式中每个条件都取得各种可能的值,并且每个判定表达式也都取得各种可能的结果。

⑤条件组合覆盖。

条件组合覆盖是选择足够的测试用例,使得每个判定表达式中条件的各种可能组合都至少出现一次。

【例3】若有一个计算类型程序,它的输入量只有一个A,其范围是[-2.0,2.0]。

现在输入的角度考虑设计一组测试该程序的测试用例为-2.001,-2.0,2.0,2.001,设计这组测试用例的方法是()。

(A)边界值分析法(B)等价类划分法

(C)逻辑覆盖法(D)错误猜测法

【答案】A

【考点解析】测试用例的方法包括以下几种。

(1)逻辑覆盖法:

逻辑覆盖是一组覆盖方法的总称,它以程序的内部逻辑结构为基础设计测试用例。

(2)等价类划分法:

把所有可能的输入数据(有效的和无效的)划分成若干个等价的子集(称为等价类),使得每个子集中的一个典型值在测试中的作用与这一子集中所有其它值的作用相同。

(3)边界值分析法:

边界值分析法是对各种输入、输出范围的边界情况设计测试用例的方法。

(4)错误猜测法实际上是一种猜错。

所谓猜错也就是凭实践经验和感觉,猜测被测试程序哪些地方最容易出错,并且以此设计测试用例。

【例4】下述不属于单元测试的内容的是()。

(A)模块接口测试(B)局部数据结构测试

(C)路径测试(D)数据测试

【答案】D

【考点解析】单元测试又称为模块测试,是对软件系统的模块或构件进行正确性检查的测试。

   单元测试的内容:

   

(1)模块接口测试;

   

(2)局部数据结构测试;

   (3)路径测试;

   (4)边界测试;

   (5)出错处理测试

【例5】.集成测试方法有非增量方式组装和增量方式组装,下述中不属于增量方式的方法的是()。

(A)自顶向下增量方法

(B)中间向两边增量方法

(C)自底向上增量方法

(D)自顶向下与自底向上相结合的混合增量方法

【答案】B

【考点解析】增量方式包括自顶向下、自底向上、自顶向下与自底向上相结合的混合增量方法。

(1)自顶向下的增量方式:

从主控制模块开始,沿着软件系统的控制层次向下移动,从而逐渐把各个模块结合起来。

(2)自底向上的增量方式:

从系统体系结构最低层模块开始,自底向上组装并进行测试。

(3)混合增量方式:

自顶向下与自底向上相结合、从两头向中间逼近的混合式组装方法。

【例6】在软件测试过程的4个步骤中,测试依据是需求规格说明的是()。

(A)单元测试(B)集成测试

(C)确认测试(D)系统测试

【答案】C

【考点解析】确认测试又称为有效性测试,它的测试依据是需求规格说明,检查软件完成的功能和性能是否符合需求规格说明确定的指标要求。

【例7】软件测试用例是指为了测试软件而设计的一组数据,它应该包括输入的数据和()两部分。

(A)测试计划(B)测试规则

(C)以往测试记录(D)预期输出结果

【答案】D

【考点解析】所谓测试用例是指为了测试软件而设计的一组数据,它应该包括输入的数据和预期输出的结果两部分。

因为,测试用例主要用于检验程序,它不但需要测试输入的数据,而且需要针对这些输入数据预期输出结果。

预期输出结果的作用是与程序执行后的实际输出结果作比较。

如果没有预期输出结果,就没有了检验实际结果的基准。

【例8】软件测试方法中,白盒测试法和黑盒测试法是常用的方法,其中白盒测试法主要用于测试()。

(A)结构合理性(B)软件外部功能

(C)程序正确性(D)程序内部逻辑

【答案】D

【考点解析】白盒测试法简称白盒法。

白盒测试法测试者完全了解程序的内部结构和处理过程,从程序的逻辑结构入手,按照程序的内部逻辑结构测试、检验程序。

如果想用白盒测试法发现程序中的所有错误,则至少必须使程序中的每种可能的路径都执行一次。

  白盒测试法主要有逻辑覆盖测试、循环测试、基本路径测试等。

【例9】软件测试过程可以分成4个步骤进行,即________、集成测试、________和系统测试。

【答案】单元测试确认测试

【考点解析】软件测试过程可以分成4个步骤进行,即单元测试、集成测试、确认测试和系统测试。

单元测试:

又称为模块测试,是对软件系统的模块或构件进行正确性检查的测试。

集成测试:

又称组装测试或者联合测试。

确认测试:

又称为有效性测试,它的测试依据是需求规格说明,检查软件完成的功能和性能是否符合需求规格说明确定的指标要求。

系统测试:

软件只是计算机系统的一个元素,软件最终要与其他系统元素(如新硬件、信息等)相结合,进行各种集成测试和确认测试。

【例10】软件测试方法中,黑盒测试主要是依据程序的________。

【答案】功能

【考点解析】黑盒测试法,它注重测试软件的功能需求,所以,黑盒测试又称为功能测试。

它很少涉及软件的内部逻辑结构,以程序的功能作为测试的依据对程序进行测试。

黑盒测试法分等价类划分法、边界值分析法和错误猜测法。

【例11】静态测试一般是指人工评审软件文档或________借以发现其中的错误。

【答案】程序

【考点解析】静态测试实际上是确认在给定的外部环境中软件的逻辑正确性,它包括需求规格说明和程序等的确认。

静态测试一般不在计算机上实际执行程序,可以通过人工分析或计算机辅助分析以及程序正确性证明来确认软件的正确性。

【例12】通过分析由控制构造的环路的复杂性,导出基本路径集合,从而设计测试用例,保证这些路径至少通过一次,这种测试方法叫做________。

【答案】基本路径测试

【考点解析】通过分析由控制构造的环路的复杂性,导出基本路径集合,从而设计测试用例,保证这些路径至少通过一次。

   基本路径测试步骤:

   ①导出程序流程图的拓扑结构-流图(程序图)

   ②计算流图G的环路复杂度V(G)

   ③确定只包含独立路径的基本路径集

④设计测试用例

五.程序的调试与软件的维护

【例1】下面有关软件调试的目的正确的是()。

(A)尽可能多的找出软件中的错误

(B)找出产生错误的原因和产生错误的准确位置,并进行改正、排除错误

(C)证明软件是正确的

(D)找出软件中的全部错误

【答案】B

【考点解析】测试的目的是尽可能多的找出软件中的错误。

成功的测试后,软件需要调试。

调试又称为纠错,调试的目的是找出产生错误的原因和产生错误的准确位置,并进行改正、排除错误。

【例2】下面叙述的是程序修改过程应注意的地方,其中错误的是()。

(A)在出现错误的地方很不会有别的错误

(B)不要只修改错误的征兆和表现,要找到产生错误的真正原因,修改错误的本质

(C)当心修改一个错误时可能引入新的错误

(D)不要试图直接修改目标代码来修改错误,应当修改源程序

【答案】A

【考点解析】程序修改过程注意到:

(1)在出现错误的地方很可能还有别的错误;

(2)不要只修改错误的征兆和表现,要找到产生错误的真正原因,修改错误的本质;

(3)当心修改一个错误时可能引入新的错误;

(4)不要试图直接修改目标代码来修改错误,应当修改源程序。

因为,当程序

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1