软件工程复习题.docx
《软件工程复习题.docx》由会员分享,可在线阅读,更多相关《软件工程复习题.docx(16页珍藏版)》请在冰豆网上搜索。
![软件工程复习题.docx](https://file1.bdocx.com/fileroot1/2023-1/11/1e0a0c55-4699-458f-8cdd-b70c7a55fce0/1e0a0c55-4699-458f-8cdd-b70c7a55fce01.gif)
软件工程复习题
本页仅作为文档页封面,使用时可以删除Thisdocumentisforreferenceonly-rar21year.March
软件工程复习题
软件工程期末考试复习题
时间:
2019年7月5日考
练习题
—、填空题
1.软件工程是一门综合性的交叉学科,它涉及计算机学科、工程学科、管理学科和数学学科。
2.软件工程研究的主要内容是方法、过程和工具三个货面。
3.由于软件生产的复杂性和高成本,使大型软件生产出现了很多问题,即出现软件危机,软件工程正是为了克服它而提出的一种概念及相关方法和技术。
V3中,软件工程知识体系分为软件工程教育需求和软件工程实践两大类。
5.增量式模型假设需求可以分段,成为一系列增量产品,每一增量可以分别开发。
6.喷泉模型比较适用于面向对象的开发方法。
7.软件工程是用工程科学的知识和技术原理来定义、开发和维护软件的一门学科。
二、判断题
V3分两大类,共有15个知识域。
(✓)
2.软件工程的提出起源于软件危机,其目的是最终解决软件的生产工程化。
(✓)
3.软件工程学一般包含软件开发技术和软件工程管理两方面的内容,软件开发方法学和软件工程环境属于软件开发技术的内容,软件工程经济学属于软件工程管理。
(✓)
4.软件开发中的最大的问题不是管理问题,而是技术问题。
(×)
5.XP(eXtremeProgramming,极限编程)是由KentBeck提出的一套针对业务需求和软件开发实践的规则,包括13个核心实践。
(✓)
三、选择题
1.下列所述不是敏捷生存期模型的是(C)。
A.ScrumB.XPC.V模型UP
2.软件工程的出现主要是由于(C)。
A.程序设计方法学的影响B.其他工程学科的影响C.软件危机的出现D.计算机的发展
3.以下(C)不是软件危机的表现形式。
A.开发的软件不满足用户的需要B.开发的软件可维护性差C.开发的软件价格便宜D.开发的软件可靠性差
4.以下不是SWEBOKV3的软件工程实践中的知识域的是(B)。
A.软件需求B.工程基础C.软件构造D.软件设计
5.下列所述不是软件组成的是(C)。
A.程序B,数据C.界面D.文档
6.下列对“计算机软件”描述正确的是(A)
A.是计算机系统的组成部分B.不能作为商品参与交易C.是在计算机硬件设备生产过程中生产出来的D.只存在于计算机系统工作时
7.软件工程方法的提出起源于软件危机,其目的应该是最终解决软件的(D)问题。
A.软件危机B.质量保证C.开发效率D.生产工程化
8.软件工程学涉及软件开发技术和项目管理等方面的内容,下述内容中(D)不属于开发技术的范畴。
A.软件开发方法B.软件开发工具C.软件工程环境D.软件工程经济
练习题
—、填空题
的三个基本构造块是事务、关系和图。
2.在软件开发的结构化方法中,采用的主要技术是SA,即结构化分析和SD,即结构化设计。
3.数据流图描述数据在软件中的流动和处理过程,是软件模型的一种图示,它一般包括4种图形符号:
变换/加工、外部实体、数据流向和数据存储。
4.面向对象方法将数据和对数据的操作紧密地结合起来的方法,这是其与传统结构化方法的主要区别。
5.软件代理一般具有自治性、开放性、反应能力特性。
二、判断题
1.面向对象开发过程是多次重复和迭代的演化过程,在概念和表示方法上的一致性保证了各项开发活动之间的平滑过渡。
(√)
2.基于构件软件工程开发的整个过程从需求开始,在完成体系结构设计后,并不立即开始详细设计,而是确定哪些部分可由构件组装而成。
(√)
3.软件逆向工程是根据对软件需求的分析恢复其设计和软件代码的过程。
(×)
三、选择题
1.结构化分析方法是面向(B)的自顶向下逐步求精的分析方法。
A.目标B.数据流C.功能D.对象
2.结构化的概要设计是以(B)技术为基础的软件设计方法。
A.抽象B.模块化C.自下而上D.信息隐蔽
3.在结构化分析方法中,常用的描述软件功能需求的工具是(C)。
A.业务流程图、处理说明B.软件流程图、模块说明
C.数据流程图、数据字典D.系统流程图、程序编码
4.(A)不是UML的图示。
A.流程图B.用例图C.活动图D.序列图
练习题
—、填空题
1.分析模型在系统级描述和软件设计之间建立了桥梁描述。
2.最常见的实体关系图的表示法是PeterChen表示法和JamesMartin表示法。
3.结构化分析方法是面向数据流进行需求分析的方法。
结构化分析方法使用数据流图、数据字典和系统流程图等来描述。
4.在需求分析中,可从有关问题的简述中提取组成数据流图的基本成分。
通常问题简述中的动词短语将成为数据流图中的加工、处理成分。
5.面向对象的需求分析中常用的UML图示有用例图、顺序图、状态图、协作图和活动图等。
二、判断题
1.系统流程图表达了系统中各个元素之间信息的流动情况。
(√)
2.用例,求兮析气法采用的是一种结构化的情景分析方法,即一种基于场景痤模的方法。
(×)
3.纪面向对象分析方法认为系统是对象的集合,是以功能和数据为基础的。
(×)
4.结构化分析方法适合于数据处理类型软件的需求分析。
(√)
5.需求变更管理是需求管理过程中很重要的过程。
(√)
6.软件需求规格内£^包括算法的详细描述。
(×)
三、选择题
1.软件开发过程中,需求活动的主要任务是(B)。
A.给出软件解决方案B.定义需求并建立系统模型C.定义模块算法D.给出系统模块结构
2.软件需求规格说明文档中包括多方面的内容,下述(D)不是软件需求规格说明文档中应包括的内容。
A.安全描述B.功能描述C.性能描述D.软件代码
3.软件需求分析一般应确定的是用户对软件的(D)。
A.功能需求B.非功能需求C.性能需求D.功能需求和非功能需求
4.结构化分析方法中,描述软件功能需求的常用工具有(A)。
A.业务图,数据字典B.软件流程图、模块说明C.用例图、数据字典D.系统流程图、程序编码
5.软件需求分析阶段建立原型的主要目的是(C)。
A.确定系统的功能和性能要求B.确定系统的性能要求C.确定系统是否满足用户要求D.确定系统是否满足开发人员需要
6.在需求分析阶段,需求分析人员需要了解用户的需求,认真仔细地调研、分析,最终应建立目标系统的逻辑模型并写出(B)。
A.模块说明书B.需求规格说明C.项目开发设计D.合同文档
7.软件需求阶段要解决的问题是(A)。
A.软件做什么B.软件提供哪些信息C.软件采用什么结构D.软件怎样做
8.软件需求管理过程包括需求获取、需求分析、需求规格说明编写、需求验证以及(B)。
A.用户参与B.需求变更C.总结D.都不正确
9.在原型法中开发人员根据(A)需求不断修改原型,直到满足用户要求为止。
A.用户B.开发人员C.系统分析员D.程序员
10.结构化分折方法以数据流图、(D)和加工说明等描述工具,卽用直观的图和简介的语
言来描述软件系统模型。
A.DFD图B.PAD图图D.数据字典
练习题
一、填空题
S、B/S、SOA、BMP等都是不同的体系结构。
2.数据字典包括数据流、数据项、数据储存和基本加工。
3.高内聚,松耦合是模块设计的基本原则。
4.软件设计把已确定的软件需求转换成特定形式的设计表示,使其得以实现。
5.设计模型是从分析模型转化而来的,主要包括四类模型:
体系结构设计模型、数据设计模型、接口设计模型、构件设计模型。
6.面向对象设计的主要特点是建立了要个非常重要的软件设计概念:
抽象性、信息隐藏性、功能独立性和模块化。
7.模块层次图和模块结构图是模块划分的重要方法。
设计中主要采用的图示有类图、对象图、包图等。
9.软件模块设计,包括模块划分、分配任务、模块的调用关系、每个模块的功能等,
10.数据库的设计一般要进行三个方面的设计:
概念结构设计、逻辑结构设计和物理结构设计。
11.结构化程序设计方法的主要原则可以概括为复用原则。
二、判断题
1.软件设计是软件工程的重要阶段,是一个把软件需求转换为软件代码的过程。
(×)
2.软件设计说明书是软件概要设计的主要成果。
(√)
3.软件设计中设计复审和设计本身一样重要,其主要作用是避免后期付出高代价。
(√)
4.应用程序框架结构是一个可以重复使用的、大致完成的应用程序,可以通过对其进行定制,开发成一个客户需要的真正的应用程序。
(√)
5.面向对象的设计(OOD)是将面向对象分析(OOA)的模型转换为设计模型的过程。
(√)
6.在进行概要设计时应加强模块间的联系。
(×)
7.复用原则也是软件设计的一个重要原则。
(√)
8.以对象、类、继承和通信为基础的面向对象设计方法也是常见的软件概要设计方法之一。
(√)
三、选择题
1.内聚是从功能角度来度量模块内的联系,按照特定次序执行元素的模块属于(C)
卞式。
A.逻辑内聚B.时间内聚C.过程内聚D.顺序内聚
2.概要设计是软件工程中很重要的技术活动,下列不是概要设计任务的是(B)。
A.设计软件系统结构B.编写测试报告C.数据结构和数裾库设计D.编写概要设计文档
3.数据字典是定义(A)中的数据的工具。
A.数据流图B.系统流程图C.程序流程图D.软件结构图
4.耦合是软件各个模块间连接的一种度量。
一组模块都访问同一数据结构应厲于(B)方式。
A.内容耦合B.公共耦合C.外部耦合D.控制耦合
5.面向数据流的软件设计方法中,一般把数据流图中的数据流分为(B)两种流,再将数据流图映射为软件结构。
A.数据流与事务流B.交换流和事务流C.信息流与控制流D.交换流与数据流
6.软件设计是一种将(B)转换为软件表示的过程。
A.代码设计B.软件需求C.详细设计D.系统分析
7.数据存储和数据流都是(D),仅仅是所处的状态不同。
A.分析结果B.事件C.动作D.数据
8.模块本身的内聚是模块独立性的重要度量因素之一,在7类内聚中,具有最强内聚的一类
是(D)。
A.顺性内聚B.过程性内聚C.逻辑性内聚D,功能性内聚
9.面向数据流的设计方法把(A)映射成软件结构。
A.数据流B.系统结构C.控制结构D.信息流
10.下列关于软件设计准则的描述,错误的是(C)。
A.提高模块的独立性B.体现统一的风格
C.使模块的作用域在该模块的控制域外D.结构应该尽可能满足变更的要求
11.软件的结构化设计方法是以(C)为依据的模块结构设计方法。
A.系统数据要求B.数据结构C.数据流图D.数据流
12.下面不是数据库设计的阶段的是(C)。
A.概念结构设计阶段B.逻辑结构设计阶段
C.模块划分D.物理结构设计阶段
练习题
一、填空题
又称结构化英语,它是—种非式化的比较灵活的语言。
2.软件的详细设计可采用图形、表格和过程设计语言等形式的描述工具表示模块的处理过程。
3.软件详细设计需要设计人员对每个设计模块进行描述,确定所使用的算法和数据结构、接口细节和输入、输出数据等。
4.结构化设计方法与结构化分析方法一样,采用自顶向下,逐步细化技术。
结构化设计方法与结构化分析方法相结合,依数据流图设计程序的结构。
5.软件中详细设计一般在概要设计基础上才能实施,它们一起构成了软件设计的全部内容。
6.在Warnier方法中,采用Warnier图表示数据结构和程序结构。
7.面向数据结构的设计方法主要包括JSD方法和Warnier方法。
8.在详细设计阶段,除了对模块内的算法进行设计,还应对模块内的数据结构进行设计。
二、判断题
(Jackson)方法的原理与Warnier方法的原理类似,也是从数据结构出发设计程序,但后者的逻辑要求更严格。
(√)
2.软件详细设计要求设计人员为每一个程序模块确定所使用的算法、数据结构、接口细节和输入/输出数据等。
(×)
3.伪代码可以被直接编译,它体现了设计的程序的框架或者代表了一个程序流程图。
(×)
4.在详细设计阶段,一种历史最悠久、使用最广泛的描述程序逻辑结构的工具是程序流程图。
(√)
是一种改进的图形描述方式,优点是能够反映和描述自顶向下的历史和过程。
(×)
6.详细设计阶段的任务还不是具体地编写程序,而是要设计出程序的“蓝图”,以后程序员根据这个蓝图编写实际的代码。
(√)
7.过程设计的描述工具包括程序流程图、N-S图、PAD图、PDL伪代码等。
(√)
三、选择题
设计方法是由Jackson所提出的,它是一种面向(C)的软件设计方法。
A.对象B.数据流C.数据结构D.控制结构
2.数据元素组成数据的方式的基本类型是(D)。
A.顺序的B.选择的C.循环的D.以上全部
3.程序流程图中的箭头代表(B)。
A.数据流B.控制流C.调用关系D.组成关系
4.伪码又称为过程设计语言(PDL),一种典型的PDL是仿照(D)编写的。
A.Fortran(工程语言)B.汇编语言语言语言
5.伪码作为详细设计的工具,缺点在于(B)。
A.每个符号对应于源程序的一行代码,对于提高系统的可理解性作用很小B.不如其他图形工具直观,描述复杂的条件组合与动作间的对应关系不够明了
C.容易使程序员不受任何约束,随意转移控制
D.不支持逐步求精,使程序员不去考虑系统的全局结构
6.结构化程序流程图中一般包括3种基本结构,下述结构中(D)不属于基本结构。
A.顺序结构B.条件结构C.选择结构D.嵌套结构
7.在详细设计阶段,一种二维树形结构并可自动生成程序代码的描述工具是(A)。
A.PADD.判定树
8.软件详细设计的主要任务是确定每个模块的(A)。
A.算法和使用的数据结构B.外部接口C.功能D.编程
9.为了提髙模块的独立性,模块之间最好是(D)
A.公共耦合B.控制耦合C.内容耦合D.数据耦合
10.为了提高模块的独立性,模块内部最好是(C)
A.逻辑内聚B.时间内聚C.功能内聚D.通信内聚
11.软件设计中,可应用于详细设计的工具有(D)。
A.数据流程图、PAD图、N-S图
B.业务流程图、N-S图、伪码
C.数据流程图、PAD图、N-S图和伪代码
D.顺序流程图、PAD图、N-S图和伪代码
练习题
一、填空题
1.在软件编码过程中,可以采用自顶向下、自底向上、自顶向下和自底向上相结合以及线程模式等几种编码策略。
2.可以将程序设计语言分为第一代语言、第二代语言、第三代语言、第四代语言和智能化语言五类。
3.任何程序都可由顺序、循环和选择三种基本控制结构构造。
这三种基本控制结构的共同点是自上而下和从左到右。
二、判断题
1.在树状结构中,位于最上面的根部是顶层模块。
(√)
2.应该尽量使用机器语言编写代码,提髙程序运行效率,而减少高级语言的使用。
(×)
三、选择题
1.结构化程序设计要求程序由顺序、循环和(^A)三种结构组成。
A.分支B.单入口C.单出口D.随意跳转
2.软件调试的目的是(A)。
A.发现错误B.改正错误C.改善软件的性能D.挖掘软件的潜能
3.将每个模块的控制结构转换成计算机可接受的程序代码是(A)阶段的任务。
A.编码B.需求分析C.详细设计D.测试
4.编码高效率原则包括提高运行效率、提高储存效率和提高(A)。
A.输入/输出效率B.开发效率C.测试效率D.维护效率
5.下列伪代码中,A=14,B=20,则X的值是(B)。
START
INPUT(A,B)
X=0
IFA>10
THENX=10
ENDIF
IFB<20
THENX=X+100
ENDIF
PRINT(X)
STOP
A.0B.10C.110D.100
6.下面是一段求最大值的程序,其中datalist是数据表,n是数据表的长度,则其McCabe环路复杂性为(C)。
intGetMax(intn,intdatalist[]){
intk=0;
for(intj=1;jif(datalist[j]>datalist[k])
k=j;
returnk;
}
A.1B.2D.4
练习题
一、填空题
1.从是否需要执行被测软件的角度,软件测试方法一般可分为两大类,即静态测试方法和动态测试方法。
2.在白盒测试方法中,对程序的语句逻辑有6种覆盖技术,其中发现错误能力最强的技术是路径覆盖。
3.若有一个计算类程序,它的输入量只有一个X,其范围是[,]。
现在设计一组测试用例,X输入为、、、,则设计这组测试用例的方法是黑盒测试。
4.单元测试主要测试模块的5个基本特征是模块接口、模块局部数据结构、重要的执行路径、错误处理和边界条件。
5.黑盒测试主要针对功能进行测试,等价类划分、规范导出法、错误猜测和因果图法等都是采用黑盒技术设计测试用例的方法。
6.边界值分析是将测试边界情况作为重点目标,选取正好等于、刚刚大于或刚刚小于边界值的测试数据。
如果输入/输出域是一个有序集合,则集合的第一个元素和最后一个元素应该作为测试用例的数据元素。
7.集成测试的策略主要有大爆炸、自顶向下、自底向上、三明治和冒烟。
8.逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖等。
二、判断题
1.回归测试是多纠错性维护中最常运用的方法。
(×)
2.软件测试的目的是尽可能多地发现软件中存在的错误,将它作为纠错的依据。
(√)
3.回归测试是指在单元测试基础上将所有模块按照设计要求组装成一个完整的系统进行的测试。
(×)
4.白盒测试主要以程序的内部逻辑为基础设计测试用例。
(√)
5.软件测试的目的是证明软件是正确的。
(×)
三、选择题
1.集成测试主要是针对(A)阶段的错误。
A.编码B.详细设计C.概要设计D.需求设计
2.以下(B)不属于白盒测试技术。
A.基本路径测试B.边界值分析C.条件覆盖测试D.逻辑覆盖测试
3.(D)能够有效地检测输入条件的各种组合可能引起的错误。
A.等价类划分B.边界值分析C.错误猜测D.因果图
4.(A)方法需要考察模块间的接口和各个模块之间的关系。
A.单元测试B.集成测试C.确认测试D.系统测试
5.在测试中,下列说法错误的是(B)。
A.测试是为了发现程序中的错误而执行程序的过程
B.测试是为了表明程序的正确性
C.好的测试方案是尽可能发现迄今为止尚未发现的错误
D.成功的测试是发现了至今为止尚未发现的错误
6.单元测试又称为(B),可以用白盒法也可以采用黑盒法测试。
A.集成测试B.模块测试C.系统测试D.静态测试
7.在软件测试中,设计测试用例主要由输入/输出数据和(C)两部分组成。
A.测试规则B.测试计划C.预期输出结果D.以往测试记录分析
8.通过程序设计的控制结构导出测试用例的测试方法是(B)。
A.黑盒测试B.白盒测试C.边界测试D.系统测试:
练习题
一、瑱空题
1.产品交付需要完成的主要任务是安装部署和培训文档。
2.项目验收是项目移交的前提,移交时,项目移交方和项目接收方将在项目移交报告上签字,形成项目移交报告。
3.验收测试是交付使用前的最后一次检查,也是软件投入运行之前保证可维护性的最后机会。
4.第三方测试是由独立于软件开发者和用户的第三方所进行的测试,旨在对被测软件进行质量认证。
5.一个产品的使用者有两种类型:
一种是用户,另一种是系统管理员。
6.系统管理员手册是为系统管理员准备的文档资料。
二、判断题
1.当项目通过验收后,项目团队不需要将项目成果的所有权交给项目接收方。
(×)
2.软件项目交付时要给用户提供必要的文档。
(√)
3.需要针对使用系统的用户的特殊要求进行不同的培训。
(√)
4.用户手册不仅要提供系统的使用方法,还需提供系统功能的详细实现方法。
(×)
三、选择题
下面哪个不是交付过程的文档(D)。
A.验收测试报告B.用户手册C.系统管理员手册D.开发合同
练习题
一、填空题
1.当一个系统已经在实际环境中投入使用了,可以进行正常的操作,我们就说系统开发完成了,而以后对系统变更所做的任何工作,称为维护。
2.软件的可维护性是指纠正软件系统出现的错误或者缺陷,以满足新的要求而进行修改、扩充或压缩的容易程度。
3.—个可移植的程序应该具有结构良好、灵活、不依赖的性能。
4.软件维护的类型主要包括纠错性维护、适应性维护、完善性维护和预防性维护等。
5.预防性维护也称为软件再工程。
6.软件的逆向工程是一个恢复设计结果的过程
7.如果软件是可测试的、可理解的、可修改的、可移植的、可靠的、有效的、可用的,则软件一定是可维护的。
二、判断题
1.可维护性、可使用性、可靠性是衡量软件质量的几个主要质量特性,其中软件的可使用性是软件各个开发阶段的关键目标。
(×)
2.可理解性表明人们通过阅读源代码和相关文档,了解程序功能及其如何运行的容易程度。
(√)
3.可测试性表明验证程序正确性的容易程度,程序越简单,验证其正确性越容易。
(√)
4.适应性维护是针对系统在运行过程中暴露出来的缺陷和错误而进行的,主要是修改错误。
(×)
5.完善性维护主要是为了改善系统的某一方面而进行的变更,可能这种变更是因为出现错误而进行的变更。
(×)
三、选择题
1.度量软件的可维护性可以包括很多方面,下列(A)不在措施之列。
A.程序的无错误性B.可靠性C.可移植性D.可理解性
2.软件按照设计的要求,在规定时间和条件下达到不出故障、持续运行要求的质量特性称为(A)。
A.可靠性B.可用性C.正确性D.完整性
3.为适应软件运行环境的变化而修改软件的活动称为(B)。
A.纠错性维护B.适应性维护C.完善性维护D.预防性维护
4.在软件生存期的维护阶段,继续诊断和修正错误的过程称为(D)。
A.完善性维护B.适应性维护C.预防性维护D.纠错性维护
5.软件维护是软件生命周期中的固有阶段,一般认为,各种不同的软件维护中以(C)维护所占的维护量最小。
A.纠错性维护B.代码维护C.预防性维护D.文档维护
6.对于软件的(D),有一种简单的面向时间的度量,叫做平均变更等待时间(MeanTimeToChange,MTTC)。
这个时间包括开始分析变更要求、设计合适的修改、实现变更并测试它以及把这种变更发送给所有的用户所需的时间。
A.可靠性B.可修改性C.可测试性D.可维护性
7.产生软件维护的副作用,是指(C)。
A.开发时的错误B.隐含的错误C.因修改软件而造成的错误D.运行时误操作
简答题
1、软件危机的原因:
(1)软件的规模越来越大,结构越来越复杂。
(2)软件开发管理困难而复杂。
(3)软件开发费用