软件工程考试题库.docx
《软件工程考试题库.docx》由会员分享,可在线阅读,更多相关《软件工程考试题库.docx(21页珍藏版)》请在冰豆网上搜索。
软件工程考试题库
类型一:
1.软件定义时期包括两个阶段,它们是(可行性研究)和(需求分析)两个阶段。
2.数据流图有(4)种基本符号,数据流图中,箭头表示(数据流)。
3.数据流图有变换型结构和(事务)型结构两种类型。
4.4个人之间的通信量是(6)
5.评定模块的独立性的标准是耦合和内聚。
(耦合)是对软件内部块间联系的度量,
按照由弱到强的顺序,可以把它分为(7)类。
其中,最弱的是(非直接耦合),
最强的是(内容耦合)
6.程序结构的复杂性度量值V(G)取决于程序控制流的复杂程度。
顺序结构的V(G)值
为
(1),选择结构的为
(2)。
7.在模块结构图中,(扇入)是指直接调用该模块的模块数
8.模块的独立性可用耦合和内聚的高低来评定,设计较好的模块要求(内聚)高、耦合(低)。
9.语句覆盖测试技术是(白盒测试)方法的一种
10.等价类划分技术是属于(黑盒测试)方法的
11.按维护的起因,可以将维护活动分为4类:
(改正性维护)、(适应性维护)、完善性维护和预防性维护。
完善性维护占总维护量的(50%以上)。
12.软件项目的可行性研究要进行一次(简化的、压缩的)需求分析。
13、系统流程图用于可行性分析中的(当前运行系统)的描述。
14、程序的三种基本控制结构的共同特点是(只有一个入口和一个出口)
15、维护中,因误删除一个标识符而引起的错误是(编码)副作用。
16、(技术评审)是以提高软件质量为目的的技术活动。
17、面向对象方法学的出发点和基本原则是尽可能模拟人类习惯的思维方式,分析、设计和实现一个软件系统的方法和过程,尽可能接近于人类认识世界解决问题的方法和过程。
因此面向对象方法有许多特征,如软件系统是由对象组成的;(把对象划分成类,每个对象类都定义一组数据和方法);对象彼此之间仅能通过传递消息互相联系;层次结构的继承。
18、原型化方法是用户和设计者之间执行的一种交互构成,适用于(需求不确定性高的)系统。
19.在下列工具与环境中(结构的基于图形CASE)属于较早期的CASE。
20.Putnam成本估算模型是一个(动态多变量)模型。
21.在McCall软件质量度量模型中,(适应性)属于面向软件产品修改。
22.ISO的软件质量评价模型由3层组成,其中用于评价设计质量的准则是(SQDC)
23.软件复杂性度量的参数包括(规模)
24.对象实现了数据和操作的结合,使数据和操作(封装)于对象的统一体中。
25.软件调试技术包括(演绎法)
26.瀑布模型的存在问题是(缺乏灵活性)
27.软件测试方法中的静态测试方法之一为(计算机辅助静态分析)
28.软件生命周期中所花费用最多的阶段是(软件维护)
29.第一个体现结构化编程思想的程序设计语言是(PL/1语言)
30.程序的三种基本控制结构是(顺序、选择和重复)
31.在详细设计阶段,经常采用的工具有(PAD)
32.详细设计的结果基本决定了最终程序的(质量)
33.需求分析中开发人员要从用户那里了解(软件做什么)
34.结构化程序设计主要强调的是(程序易读性)
35.IDEF。
图反映系统(做什么)
36.经济可行性研究的范围包括(效益分析)
37.可行性分析是在系统开发的早期所做的一项重要的论证工作,它是决定该系统是否开发的决策依据,因必须给出(行或不行)的回答。
38.需求分析阶段的任务是确定(软件系统的功能)
39、为了提高测试的效率,应该( 选择发现错误可能性大的数据作为测试数据)。
40、使用白盒测试方法时,确定测试数据应根据(程序的内部逻辑)和指定的覆盖标准。
41、开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(软件危机)
42、软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性称为(可靠性)。
43、瀑布模型的关键不足在于(不能适应需求的动态变更)
44、软件维护的副作用主要有以下三种(.编码副作用、数据副作用、文档副作用)
45、在下面的软件开发方法中,哪一个对软件设计和开发人员的开发要求最高(原型化方法)。
46、软件工程方法学的目的是:
使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是(软件开发工具和软件开发的环境)。
47、系统流程图是描述物理模型的传统工具,用图形符号表示系统中各个元素表达了系统中各种元素之间的(信息流动)情况。
48、成本效益分析的目的是从(经济)角度评价开发一个项目是否可行。
49、自顶向下结合的渐增式测试法,在组合模块时有两种组合策略:
深度优先策略和(宽度优先策略)。
50、在JSP方法中解决结构冲突的具体办法是(中间数据结构或中间文件)。
51、详细设计的任务是确定每个模块的内部特性,即模块的算法、(使用的数据)。
52、所有软件维护申请报告要按规定方式提出,该报告也称(软件问题)报告。
53、独立路径是指包括一组以前没有处理的语句或条件的一条路径。
从程序图来看,一条独立路径是至少包含有一条(在其他独立路径中未有过)的边的路径。
54、设计任何一个人机界面,一般必须考虑(系统响应时间、用户帮助机制、错误信息处理和命令方式四个方面。
55、在软件测试中,已知产品内部工作过程,通过测试检验产品内部动作是否按照产品规格说明的规定正常进行的方法称为(白盒)测试法。
56、(耦合度)是对软件结构中模快间关联程度的一种度量。
57、软件工程中的结构化分析SA是一种面向__数据流______的分析方法。
58.软件模块独立性的两个定性度量标准是____内聚性、耦合性_________。
59.软件开发是一个自顶向下逐步细化和求精的过程,而软件测试是一个__由下而上______的过程。
60.___数据流图_____和数据字典共同构成了系统的逻辑模型
61.____等价划分_______是一种黑盒测试技术,这种技术把程序的输入域划分为若干个数据类,据此导出测试用例。
62.在软件危机中表现出来的软件质量差的问题,其原因是__没有软件质量标准_____。
63.在软件质量因素中,软件在异常条件下仍能运行的能力成为软件的__健壮性___。
64.在下列测试技术中,___逻辑覆盖___不属于黑盒测试技术。
65.软件工程方法是在实践中不断发展着的方法,而早期的软件工程方法主要是指__结构化方法____。
66.___封装___是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外界是隐蔽的,外界只能通过有限的接口与对象发生联系。
67.Jackson方法是在软件开发过程中常用的方法,使用Jackson方法时可以实现_从数据结构导出程序结构_____。
68.软件测试时为了_发现错误_______而执行程序的过程。
69.在软件系统中,一个模块应具有什么样的功能,这是由_需求分析____决定的。
70.面向对象分析是对系统进行__需求分析__的一种方法。
71.软件文档是软件工程实施中的重要部分,它不仅是软件开发各阶段的重要依据,而
且影响软件的___可维护性____。
72.模块内聚度越高,说明模块内各成分彼此结合的程序越_紧密______。
73.软件开发的瀑布模型,一般都将开发过程划分为:
分析、设计、编码、测试和维护
等阶段,一般认为可能占用人员最多的阶段是__维护阶段______。
74.常用的面向对象的软件过程模型是___喷泉模型____。
75.面向对象的分析阶段建立的系统模型不包括__数据模型______。
类型二:
1.软件生存周期模型:
是描述软件开发过程中各种活动如何执行的模型。
2.数据字典(DD).数据字典是用来定义数据流图中的各个成分的具体含义的。
它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。
3.内聚性:
内聚性是模块独立性的衡量标准之一,它是指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量
4.JSP方法:
JSP方法是面向数据结构的设计方法,其定义了一组以数据结构为指导的映射过程,它根据输入,输出的数据结构,按一定的规则映射成软件的过程描述,即程序结构。
5.多态性指相同的操作或函数、过程可作用于多种类型的对象上并获得不同结果。
或(不同的对象,收到同一消息可以产生不同的结果。
)
6.白盒测试——又叫做结构测试,把程序看成装在一个透明的白盒子里,按照程序内部的
逻辑测试程序,检测程序中的主要执行通路是否都能按预定要求正确工作。
7.模块化——把程序划分成独立运行且可以独立访问的模块,每个模块完成一个子功能,
把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。
8.对象——描述该对象属性的数据以及可以对这些数据施加的所有操作封装在一起构成
的统一体。
9.软件的可靠性:
是指在给定的时间间隔内,程序成功运行的概率。
10.内聚:
标志一个模块内各个元素被此结合的紧密程度,它是信息隐蔽和局部化概念的自然扩展。
11模块化:
把一个程序划分成若干个模块,每个模块完成一个子功能,将这些模块组装成
一个整体,即可完成该程序指定的功能。
12.改正(纠错)性维护:
为改正软件系统中潜藏的错误而进行的活动
13.对象:
对象是客观世界事物和个体的抽象表示。
是它的属性和相关操作的统一封装体。
14、瀑布模型把软件生命周期划分为8个阶段:
问题的定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。
八个阶段又可归纳为三个大的阶段:
计划阶段、开发阶段和(运行阶段)。
15、从结构化的瀑布模型看,在它的生命周期中的八个阶段中,需求分析阶段出错,对软件的影响最大。
16、在结构化的瀑布模型中,(需求分析阶段)定义的标准将成为软件测试中的系统测试阶段的目标。
17、软件工程的出现主要是由于(软件危机的出现)。
18、软件工程方法学的目的:
使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是软件开发工具和软件开发的环境。
19、软件开发常使用的两种基本方法是结构化和原型化方法,在实际的应用中,它们之间的关系表现为相互补充。
20、UML是软件开发中的一个重要工具,它主要应用于基于对象的面向对象的方法。
21、在下面的软件开发方法中,哪一个对软件设计和开发人员的开发要求最高(原型化方法)。
22、结构化分析方法是一种预先严格定义需求的方法,它在实施时强调的是分析对象的(数据流)。
23、软件开发的瀑布模型,一般都将开发过程划分为:
分析、设计、编码和测试等阶段,一般认为可能占用人员最多的阶段是(编码阶段)。
24、软件开发模型是指软件开发的全部过程、活动和任务的结构框架。
主要的开发模型有瀑布模型、演化模型、螺旋模型、喷泉模型和智能模型。
螺旋模型将瀑布模型和演化模型相结合,并增加了(风险分析),它建立在()的基础上,沿着螺线自内向外每旋转一圈,就得到(原型)的一个新版本。
喷泉模型描述了(面向对象)的开发模型,它体现了这种开发方法创建软件的过程所固有的(递归)和(开发各阶段之间无“间隙”)的特征。
25、以下不属于白盒测试技术的是(等价类划分)。
26、为改正软件系统中潜藏的错误而进行的维护活动称为(纠错性维护)。
27、保证软件质量的手段有复审、复查、管理复审和测试等。
其中复审发生在软件生命周期的(每个阶段结束之前)。
28、完整的系统设计应包括(计算机系统设计、应用软件设计、数据库设计和网络设计)。
29、在信息系统的物理模型中,表示系统各个物理组成部分之间的数据流动情况的工具是(系统流程图)
在软件开发过程中要产生大量的信息,要进行大量的修改,软件配置管理能协调软件开发,并使混乱减到最低程度。
30.规定功能的软件,在一定程度上对自身错误的作用(软件错误)具有屏蔽能力,则称此软件具有容错功能的软件。
31.McCall提出的软件质量模型包括11个软件质量特性。
32.软件可维护性度量的七个质量特性是可理解性、可测试性、可修改性、可靠性、可移植性、可使用性和效率。
33.为了便于对照检查,测试用例应由输入数据和预期的输出结果两部分组成。
34.程序设计语言的心理特性主要表现在歧义性、简洁性、传统性、局部性和顺序性。
35.软件结构是以模块为基础而组成的一种控制层次结构。
36.在结构化分析中,用于描述加工逻辑的主要工具有三种,即:
结构化语言、判定表、
判定树。
37.结构化语言是介于自然语言和形式语言之间的一种半形式语言。
38.若年利率为i,不计复利,n年后可得钱数为F,则现在的价值P=F/(1+(n*i))
类型三:
1.缺乏有力的方法学的指导和有效的开发工具的支持,这往往是产生软件危机的原因之一。
(T)
2.一个好的开发人员应具备的素质和能力不包括具有良好的书面和口头表达能力。
(F)
3.在用户需求分析时观察用户手工操作过程不是为了模拟手工操作过程,而是为了获取第一手资料,并从中提取出有价值的需求。
(T)
4.快速原型技术的适用于软件产品要求大量的用户交互、或产生大量的可视输出、或设计一些复杂的算法等场合。
(T)
5.流程图也称为程序框图是最常用的一种表示法。
T
6.面向数据设计方法一般都包括下列任务:
确定数据结构特征;用顺序、选择和重复三种基本形式表示数据等步骤。
(T)
7.理想的人机界面应针对具有典型个性的特定的一类用户设计。
(T)
8.数据输入的一般准则中包括尽量增加用户输入的动作。
(F)
9.用穷举测试是较现实的测试方法。
(F)
10、在软件维护过程中改善性维护是为适应环境的变化而修改软件的活动。
(F)
11.螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动。
(T)
12.数据字典是对数据流图中的数据流,加工、数据存储、数据的源和终点进行详细定义。
(F)
13.JAVA语言编译器是一个CASE工具。
(T)。
14.软件是指用程序设计语言(如PASCAL,C,VISUALBASIC等)编写的程序,软件开发实际上就是编写程序代码。
(F)
15.软件模块之间的耦合性越弱越好。
(T)
16.数据库设计说明书是一个软件配置项(T)
17.在面向对象的软件开发方法中,每个类都存在其相应的对象,类是对象的实例,对象是生成类的模板。
(F)
18.过程描述语言可以用于描述软件的系统结构。
(F)
19.如果通过软件测试没有发现错误,则说明软件是正确的。
(F)
20.快速原型模型可以有效地适应用户需求的动态变化。
(T)
21.模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产品。
(T)
22.集成测试主要由用户来完成。
(X)
23.确认测试计划应该在可行性研究阶段制定(X)
24、软件工程学只有理论意义,没有实际用途。
(F)
25.软件工程的方法只适用于大型软件的开发,对小型软件的开发没有帮助。
(F)
26.可行性研究进一步研究问题分析阶段所确定的问题是否有可行的解。
(T)
27.代码审查方法没有计算机测试方法好。
(F)
28.验证软件需求的方法主要靠人工审查的方法。
(T)
29.并发系统中遇到的一个主要问题是定时问题。
(T)
30.编码风格由个人喜好决定,没有固定格式。
(F)
31.面向对象建模得到的模型包含系统的3个要素,即静态结构、交互次序和数据变换。
(T)
32.软件重用是提高软件开发生产率和目标系统质量的重要途径。
(T)
33.判定覆盖不一定包含条件覆盖,条件覆盖也不一定包含判定覆盖。
(T)
34.PowerDesigner是一个CASE工具。
(T)
35.软件是指用程序设计语言(如Pascal,C,VisualBasic等)编写的程序,软件开
发实际上就是编写程序代码。
(F)
36.在进行需求分析时需同时考虑维护问题。
(F)
37.UML是一种面向对象的分析设计方法,即OOA/OOD方法。
(F)
38.在面向对象的软件开发方法中,每个类都存在其相应的对象,对象是类的实例,类
是生成对象的模板。
(T)
类型四
1.分析软件危机产生的主要原因有哪些?
答:
导致软件危机的主要原因有:
(1)软件日益复杂和庞大
(2)软件开发管理困难和复杂(3)软件开发技术落后(4)生产方式落后(5)开发工具落后(6)软件开发费用不断增加
2.说明结构化程序设计的主要思想是什么?
答:
(1)自顶向下、逐步求精的程序设计方法
(2)使用3种基本控制结构、单入口、单出口来构造程序。
3.软件测试包括哪些步骤?
说明这些步骤的测试对象是什么?
答:
(1)单元测试,测试对象对单元模块
(2)集成测试,测试对象为组装后的程序模块(3)确认测试,测试对象为可运行的目标软件系统
4.需求分析与软件设计二个阶段任务的主要区别是什么?
答:
需求分析定义软件的用户需求,即定义待开发软件能做什么
软件设计定义软件的实现细节以满足用户需求,即研究如何实现软件。
5、简述文档在软件工程中的作用。
)
.
(1)提高软件开发过程的能见度
(2)提高开发效率、便于用户了解软件功能、性能
(3)作为开发人员阶段工作成果和结束标志
(4)记录开发过程的有关信息便于使用与维护;
(5)提供软件运行、维护和培训有关资料;)
6.简述容错技术的四种主要手段,并解释。
结构冗余:
包括静态冗余、动态冗余和混合冗余。
信息冗余:
为检测或纠正信息在运算或传输中的错误,须外加一部分信息。
时间冗余:
指重复执行指令或程序来消除瞬时错误带来的影响。
冗余附加技术:
指为实现上述冗余技术所需的资源和技术。
软件测试是
(1)为了发现错误而执行程序的过程;
(2)一个好的用例能够发现至今尚未发现的错误的测试。
(3)一个成功的测试是发现至今尚未发现的错误的测试。
8.就程序设计语言的工程特性而言,对程序编码有哪些要求?
(1)可移植性
(2)开发工具的可利用性
(3)软件的可重用性
(4)可维护性
9.模块的内聚性包括哪些类型?
(1)偶然内聚
(2)逻辑内聚
(3)时间内聚
(4)通信内聚
(5)顺序内聚
(6)功能内聚
10、软件维护是软件生命周期的重要组成,而影响维护的因素较多,除了人员因素、技术因素和管理因素外,还有程序自身的因素,具体影响因素可归纳为:
a)软件系统的规模;
b)软件系统的年龄;c)软件系统的结构。
试回答以下问题:
1)给出上述三项因素的解释,阐述“规模”、“年龄”和“结构”的具体含义。
系统的规模。
指软件系统规模的大小,系统规模越大,维护困难越大。
系统的年龄。
系统运行时间越长,可能经过多次修改,从而造成维护的困难。
系统的结构。
系统结构合理与否,会给维护带来困难。
2)扼要分析影响维护工作量的因素,即分析可能增加维护工作量的因素和可能减少维护工作量的因素。
增加维护工作量的因素有:
软件系统的年龄和规模、结构合理性、程序复杂性、用户的数量、应用的变化和文档的质量。
减少维护工作量的因素有:
结构化技术的使用、自动化工具的使用、数据库技术应用、高性能软件使用、新的软件技术的应用。
3)简单传述软件可维护性度量的含义。
可维护性度量表示软件系统维护工作的强度或维护工作量的大小。
人们为了度量可维护性,常将可维护性度量问题分解为对:
可测试性、可理解性、可修改性、可移植性、可靠性、有效性和可用性的度量。
11、可行性研究报告的主要内容有哪些
(1)引言:
说明编写本文档的目的;项目的名称、背景;本文档用到的专门术语和参考资料。
(2)可行性研究前提:
可行性研究前提。
说明开发项目的功能、性能和基本要求;达到的目标;各种限制条件;可行性研究方法和决定可行性的主要因素。
(3)对现有系统的分析:
说明现有系统的处理流程和数据流程;工作负荷;各项费用支出;所需要各类专业技术人员的数量;所需要各种设备;现有系统存在什么问题。
(4)所建议系统的技术可行性分析:
所建议系统的简要说明;处理流程和数据流程;与现有的系统比较的优越性;采用所建议系统对用户的影响;对各种设备、现有软件、开发环境、运行环境的影响;对经费支出的影响;对技术可行性的评价。
(5)所建议系统的经济可行性分析:
说明所建议系统的各种支出,各种效益;收益投资比;投资回收周期。
(6)社会因素可行性分析:
说明法律因素,对合同责任、侵犯专利权、侵犯版权等问题的分析;说明用户使用可行性,是否满足用户行政管理、工作制度、人员素质的要求。
(7)其他可供选择方案:
逐一说明其他可供选择的方案,并说明未被推荐的理由。
(8)结论意见:
说明项目是否能开发;还需要什么条件才能开发;对项目目标有什么变动等。
12、系统设计的内容是什么?
(10分)
系统设计阶段先从高层入手,然后细化。
系统设计要决定整个结构及风格,这种结构为后面设计阶段的更详细策略的设计提供了基础。
(1)系统分解。
系统中主要的组成部分称为子系统,子系统既不是一个对象也不是一个功能,而是类、关联、操作、时间和约束的集合。
每次分解的各子系统数目不能太多,最底层子系统称为模块。
(2)确定并发性。
分析模型、现实世界及硬件中不少对象均是并发的。
系统设计的一个重要目标就是确定哪些是必须同时动作的对象,哪些不是同时动作的对象。
后者可以放在一起,而综合成单个控制线或任务。
(3)处理器及任务分配。
各并发子系统必须分配给单个硬件单元,要么是一个一般的处理器,要么是一个具体的功能单元,必须完成下面的工作:
估计性能要求和资源需求,选择实现子系统的硬软件,将软件子系统分配给各处理器以满足性能要求和极小化处理器之间的通信,决定实现各子系统的各物理单元的连接。
(4)数据存储管理。
系统中的内部数据和外部数据的存储管理是一项重要的任务。
通常各数据存储可以将数据结构、文件、数据库组合在一起,不同数据存储要在费用、访问时间、容量以及可靠性之间做折中考虑。
(5)全局资源的处理。
必须确定全局资源,并且制定访问全局资源的策略。
全局资源包括:
物理资源,如处理器、驱动器等;空间,如盘空间、工作站屏等;逻辑名字,如对象标识符、类名、文件名等。
如果资源是物理对象,则可以通过建立协议实现对并发系统的访问,以达到自身控制;如果资源是逻辑实体,如对象标识符,那么在共享环境中有冲突访问的可能,如独立的事务可能同时使用同一个对象标识符,则各个全局资源都必须有一个保护对象,由保护对象来控制对该资源的访问。
(6)选择软件控制机制。
分析模型中所有交互行为都表示为对象之间的事件。
系统设计必须从多种方法中选择某种方法来实现软件的控制。
(7)人机交互接口设计。
设计中的大部分工作都与稳定的状态行为有关,但必须考虑用户使用系统的交互接口。
13软件是什么?
其特点有那些?
答:
软件是计算机程序及其说明程序的各种文档,软件=程序+文档(+数据)
特点
(1)软件开发更依赖于