完整版软件工程习题及参考答案可编辑修改word版.docx
《完整版软件工程习题及参考答案可编辑修改word版.docx》由会员分享,可在线阅读,更多相关《完整版软件工程习题及参考答案可编辑修改word版.docx(54页珍藏版)》请在冰豆网上搜索。
完整版软件工程习题及参考答案可编辑修改word版
软件工程习题及部分参考答案
判断题
Ø软件也会磨损和老化。
(X)
Ø完善性维护是提高或完善软件的性能。
(√)
Ø数据字典是对数据流图中的数据流,加工、数据存储、数据的源和终点进行详细定义。
(X)
Ø软件是指用程序设计语言(如PASCAL,C,VISUALBASIC等)编写的程序,软件开发实际上就是编写程序代码。
(X)
Ø软件模块之间的耦合性越弱越好。
(√)
Ø如果通过软件测试没有发现错误,则说明软件是正确的。
(X)
Ø快速原型模型可以有效地适应用户需求的动态变化。
(√)
Ø模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产品。
(√)
Ø集成测试主要由用户来完成。
(X)
Ø确认测试计划应该在可行性研究阶段制定(X)
Ø白盒测试无需考虑模块内部的执行过程和程序结构,只要了解模块的功能即可。
(X)
Ø软件概要设计包括软件系统结构设计以及数据结构和数据库设计。
(√)
Ø软件工程采用的生存周期方法就是从时间角度对软件的开发和维护这个复杂问题进行分解,将软件生存的时期分为若干阶段。
(√)
Ø系统流程图表达的是部件的信息流程,还表示对信息进行加工处理的控制过程。
(╳)
Ø模块越多,开发成本越小。
(╳)
Ø软件测试的目的就是证明软件没有错。
(╳)
ØPAD图在设置了五种基本的控制结构后,还允许递归使用。
(√)
Ø在进行了可行性分析后,需求分析就只需要解决目标系统的设计方案。
(×)
ØSA法是面向数据流,建立在数据封闭原则上的需求分析方法。
(√)
ØHIPO法既是需求分析方法,又是软件设计方法。
(√)
Ø在面向对象的需求分析方法中,建立动态模型是最主要的任务。
(×)
Ø加工小说明是对系统流程图中的加工进行说明。
(×)
Ø判定表的优点是容易转换为计算机实现,缺点是不能够描述组合条件。
(×)
Ø需求分析的主要方法有SD法、OOA法及HIPO法等。
(×)
Ø分层的DFD图可以用于可行性分析阶段,描述系统的物理结构。
(×)
Ø信息建模方法是从数据的角度来建立信息模型的,最常用的描述信息模型的方法是
E-R图。
(√)
Ø用于需求分析的软件工具,应该能够保证需求的正确性,即验证需求的一致性、完整性、现实性和有效性。
(√)
ØPDL经常表现为一种"混杂"的形式,他不允许自然语言如英语的词汇与某种结构化程序设计语言(如Pascal,C,Ada等)的语法结构交织在一起.(X)
Ø设计阶段的输出是编码阶段的输入.(√)
Ø通过软件测试,可以发现软件中所有潜伏的错误.(X)
Ø非结构化维护用于软件的配置中只有源代码维护.(√)
Ø系统规格说明是系统分析和定义阶段生成的一种文档.(√)
Ø数据流图的分解速度应保持较高.通常一个加工每次可分解为10~20个子加工.(X)
Ø内聚度标志一个模块内部各成分彼此结合的紧密程度,按其高低程度可分为七级,内聚度越低越好.(X)
Ø文档记录软件开发活动和阶段成果,具有永久性,可供人或机器阅读.(√)
Ø生产高质量的软件产品是软件工程的首要目标.(√)
Ø软件开发人员对用户需求的理解有偏差,这将导致软件产品与用户的需求不一致,是产生软件危机的唯一原因.(X)
Ø开发一个软件项目总存在某些不确定性,即存在风险.有些风险如果控制得不好,可能导致灾难性的后果.(√)
Ø结构化维护用于待维护的软件的配置是完整的维护.(√)
Ø用户本身的技能,个性上的差异,行为方式的不同,不会对人机界面使用造成影响.(X
Ø程序的可靠性,可维护性和效率通常由程序设计语言,源代码的质量,和语言的实现机制决定的.(√)
Ø程序文档一般指以注释的形式嵌入程序中的代码描述.(√)
Ø为提高可交互性一般应提高用户对话,移动和思考的效率,即最大可能地减少击键次数,缩短鼠标移动的距离,避免使用户产生无所适从的感觉.(√)
Ø一般单元测试不可以并行进行.(X)
Ø螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动。
(√)
Ø数据字典是对数据流图中的数据流,加工、数据存储、数据的源和终点进行详细定义。
(X)
Ø软件模块之间的耦合性越弱越好。
(√)
Ø如果通过软件测试没有发现错误,则说明软件是正确的。
(X)
Ø快速原型模型可以有效地适应用户需求的动态变化。
(√)
Ø模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产品。
(√)
Ø集成测试主要由用户来完成。
(X)
Ø确认测试计划应该在可行性研究阶段制定(X)
Ø白盒测试无需考虑模块内部的执行过程和程序结构,只要了解模块的功能即可。
(X)
Ø软件概要设计包括软件系统结构设计以及数据结构和数据库设计。
(√)
Ø一个好的开发人员应具备的素质和能力包括善于与周围人员团结协作,建立良好的人际关系,善于听取别人的意见。
(√)
Ø目前的绝大多数软件都不适合于快速原型技术。
(X)
Ø缺乏处理大型软件项目的经验。
是产生软件危机的唯一原因。
(X)
Ø通常紧致性好的语言一致性就好。
(X)
Ø测试计划、测试用例、出错统计和有关的分析报告一般不用长期保存。
(X)
Ø理想的人机界面应针对具有典型个性的特定的一类用户设计。
(√)
Ø数据输入的一般准则中包括尽量(增加)用户输入的动作。
(X)
Ø用穷举测试是较现实的测试方法。
(X)
Ø编码时应尽可能使用全局变量(X)
Ø重视程序结构的设计,能使程序具有较好的层次结构(√)
Ø程序中的注解越少越好(X)。
Ø缺乏有力的方法学的指导和有效的开发工具的支持,这往往是产生软件危机的原因之一。
(√)
Ø一个好的开发人员应具备的素质和能力不包括具有良好的书面和口头表达能力。
(X)
Ø在用户需求分析时观察用户手工操作过程不是为了模拟手工操作过程,而是为了获取第一手资料,并从中提取出有价值的需求。
(√)
Ø快速原型技术适用于软件产品要求大量的用户交互、或产生大量的可视输出、或设计一些复杂的算法等场合。
(√)
Ø流程图也称为程序(框图)是最常用的一种表示法。
(√)
Ø文档可用于专业人员和用户之间的通信和交流;软件开发过程的管理;运行阶段的维护。
(√)
Ø软件开发、设计几乎都是从头开始,成本和进度很难估计。
(√)
Ø适应性维护是改进软件未来的可维护性和可靠性。
(X)
Ø由于软件是逻辑产品,软件质量较容易直接度量。
(X)
Ø目前我国还没有颁布软件开发标准。
(X)
Ø按照功能,软部件可划分为系统软件和应用软件两类。
(√)
Ø如果某子功能可以用一段简洁、精确的文字描述清楚,就无需进一步分解,是创建用户需求的数据流模型应遵循的规则。
(√)
Ø耦合度是对软件结构中模块间关联程度的一种度量。
在设计软件时应追求尽可能紧密的耦合的系统。
(X)
Ø随着软件复杂性的不断提高,软件的维护难度越来越大。
(√)
Ø软件的可维护性差是软件维护工作量和费用激增的直接原因。
(√)
Ø纠错性维护是改正运行期间发现的潜伏错误。
(√)
Ø软件复杂性不能反映出软件的可理解性、模块化、简单性等属性。
(X)
Ø一般来说,设计软件时应尽量使用数据耦合,减少控制耦合,限制外部环境耦合和公共数据耦合,杜绝内容耦合。
(√)
Ø不同程序设计语言在程序的效率上的差异不大。
(X)
Ø编码的依据是详细设计说明书。
(√)
Ø程序文档应该包括代码的功能、代码的完成者等内容。
(√)
Ø软件项目定义部分由制定软件项目开发计划、需求分析2个阶段组成。
(√)
Ø预防性维护是修改软件,以适应软硬件环境的变化。
(X)
Ø开发大型软件易产生疏漏和错误,往往是产生软件危机的原因之一。
(√)
Ø数据流图中各构成元素的名称不一定必须具有明确的含义以代表对应元素的内容或功能。
(X)
Ø编程中应采用统一的标准和约定,降低程序的复杂性。
(√)
Ø对于软件项目,投资回收期越长,越快获得利润。
(X)
Ø一个实时系统必须在严格的时间范围内响应。
如果响应时间被过分延迟,将带来灾难性的后果。
(√)
Ø模块接口简单是软件发生错误的一个主要原因。
(X)
Ø软件的质量保证工作一般在编码工作结束后才开始。
(X)
Ø现在人们普遍认为优秀的程序除了功能正确,性能优良之外,还应该容易看懂、容易使用、容易修改和扩充。
(√)
单项选择题
1、瀑布模型的存在问题是(B)
A、用户容易参与开发B、缺乏灵活性C、用户与开发者易沟通D、适用可变需求
2、软件测试方法中的静态测试方法之一为(A)
A、计算机辅助静态分析B、黑盒法
C、路径覆盖D、边界值分析
3、开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(C)A、软件工程B、软件周期
C、软件危机D、软件产生
4、研究开发所需要的成本和资源是属于可行性研究中的(B)研究的一方面。
A、技术可行性B、经济可行性
C、社会可行性D、法律可行性
5、模块的内聚性最高的是(D)
A、逻辑内聚B、时间内聚
C、偶然内聚D、功能内聚
6、在SD方法中全面指导模块划分的最重要的原则是(D)
A、程序模块化B、模块高内聚
C、模块低耦合D、模块独立性
7、程序的三种基本控制结构是(B)
A、过程、子程序和分程序B、顺序、选择和重复
C、递归、堆栈和队列D、调用、返回和转移
6、黑盒测试在设计测试用例时,主要需要研究(D)
A、需求规格说明与概要设计说明B、详细设计说明
C、项目开发计划D、概要设计说明与详细设计说明
7、若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:
-1.001,-1.0,1.0,1.001。
设计这组测试用例的方法是(C)
A、条件覆盖法B、等价分类法
C、边界值分析法D、错误推测法8、软件生命周期中所花费用最多的阶段是(D)
A、详细设计B、软件编码
C、软件测试D、软件维护9、下列属于维护阶段的文档是(C)
A、软件规格说明B、用户操作手册
C、软件问题报告D、软件测试分析报告10、下列文档与维护人员有关的有(C)
A、软件需求说明书B、项目开发计划
C、概要设计说明书D、操作手册11、维护中,因误删除一个标识符而引起的错误是(C)副作用。
A、文档B、数据C、编码D、设计12、产生软件维护的副作用,是指(C)
A、开发时的错误B、隐含的错误
C、因修改软件而造成的错误D、运行时误操作13、程序的三种基本控制结构是(B)
A、过程、子程序和分程序B、顺序、选择和重复C、递归、堆栈和队列D、调用、返回和转移
14、系统流程图是描述(C)的工具。
A、逻辑系统B、程序系统
C、体系结构D、物理系统
15、可维护性的特性中相互促进的是(A)
A、可理解性和可测试性B、效率和可移植性C、效率和可修改性D、效率和结构好
16、提高软件质量和可靠的技术大致可分为两大类:
其中一类就是避开错误技术,但避开错误技术无法做到完美无缺和绝无错误,这就需要(D)
A、消除错误B、检测错误C、避开错误D、容错
15、(D)是以提高软件质量为目的的技术活动。
A、技术创新B、测试
C、技术创造D、技术评审
16、原型化方法是一种(A)型的设计过程。
A、自外向内B、自顶向下
C、自内向外D、自底向上
17、为了提高测试的效率,应该(D)A、随机地选取测试数据
B、取一切可能的输入数据作为测试数据C、在完成编码以后制定软件的测试计划
D、选择发现错误可能性大的数据作为测试数据
18、使用白盒测试方法时,确定测试数据应根据(A)和指定的覆盖标准。
A、程序的内部逻辑B、程序的复杂结构
C、使用说明书D、程序的功能
19、瀑布模型本质上是一种(A)。
A、线性顺序模型B、顺序迭代模型
C、线性迭代模型D、及早见产品模型
20、在SD方法中全面指导模块划分的最重要的原则是(D)。
A、程序模块化B、模块高内聚
C、模块低耦合D、模块独立性
21、软件可维护性的特性中相互矛盾的是(C)。
A、可修改性和可理解性B、可测试性和可理解性C、效率和可修改性D、可理解性和可读性22、软件维护产生的副作用,是指(C)。
A、开发时的错误B、隐含的错误C、因修改软件而造成的错误D、运行时误操作23、用黑盒技术设计测试用例的方法之一为(A)。
A、边界值分析B、逻辑覆盖C、循环覆盖D、基本路径测试
24、软件测试方法中的(D)属于静态测试方法。
A、黑盒法B、路径覆盖C、错误推测D、人工检测
25、Ada语言是在Pascal语言基础上开发出来的,适用于(C)项目的应用领域。
A、科学工程计算B、数据库应用C、实时处理D、人工智能
26、程序设计语言的工程特性之一为(A)。
A、软件的可重用性B、数据结构的描述性C、抽象类型的描述性D、数据库的易操作性27、软件详细设计的主要任务是确定每个模块的(A)。
A、算法和使用的数据结构B、外部接口C、功能D、编程
28、PAD图为(B)提供了有力的工具。
A、系统分析B、软件的自动化生成C、自动分析数据D、测试软件
29、软件结构图的形态特征能反映程序复用率的是(C)。
A、深度B、宽度C、扇入D、扇出
30、软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性称为(B)。
A、可用性B、可靠性C、正确性D、完整性
31、为了提高模块的独立性,模块内部最好是(C)。
A、逻辑内聚B、时间内聚C、功能内聚D、通信内聚32、软件结构图中,模块框之间若有直线连接,表示它们之间存在(A)。
A、调用关系B、组成关系C、链接关系D、顺序执行关系
33、需求分析最终结果是产生(B)。
A、项目开发计划B、需求规格说明书
C、设计说明书D、可行性分析报告
34、可行性研究要进行一次(D)需求分析。
A、深入的B、详尽的
C、彻底的D、简化的、压缩了的
35、软件是一种(C)。
A、程序B、数据
C、逻辑产品D、物理产品
36、单元测试的测试对象是(B).
A.系统
B.程序模块.
C.模块接口
D.系统功能
37、软件总体设计是指软件总体结构设计和数据设计,该阶段的主要任务不包括(D).
A、设计软件的模块结构B、定义接口并建立数据结构C、生成概要设计规格说明和组装测试计划D、模块设计
38、软件工程的原则有抽象,信息隐藏,模块化和其他那些内容A、局部化B、一致性
C、完全性D、可验证性
39、常用的软件项目的估算方法主要有哪4种
A、自顶向下的估算方法B、自底向上的估算方法C、差别估算法D、根据经验估算公式40、软件可行性研究一般不考虑(D)
A、是否有足够的人员和相关的技术来支持系统开发B、是否有足够的工具和相关的技术来支持系统开发C、待开发软件是否有市场、经济上是否合算
D、待开发的软件是否会有质量问题
41、软件维护的副作用主要有以下哪几种(C)A、编码副作用、数据副作用、测试副作用
B、编码副作用、数据副作用、调试副作用C、编码副作用、数据副作用、文档副作用D、编码副作用、文档副作用、测试副作用
42、软件项目计划一般不包括以下哪项内容(D)A、培训计划B、人员安排
C、进度安排D、软件开发标准的选择和制定
43、以下哪种测试方法不属于白盒测试技术(B)A、基本路径测试B、边界值分析测试
C、循环覆盖测试D、逻辑覆盖测试
43、(D)是以提高软件质量为目的的技术活动。
A、技术创新B、测试
C、技术创造D、技术评审
44、使用白盒测试方法时,确定测试数据应根据(A)和指定的覆盖标准。
A、程序的内部逻辑B、程序的复杂结构C、使用说明书D、程序的功能
45、对在数据流图中每一个命令的图形元素均给以定义是(B)A、条目定义B、数据字典
C、数据定义D、数据说明
46、软件的可行性研究中不包括(D)A、法律可行性B、技术可行性C、经济可行性D、政治可行性
47、根据用户在软件使用过程中提出的建设性意见而进行的维护活动称为(C)。
A、纠错性维护B、适应性维护
C、改善性维护D、预防性维护
48、人机界面的风格大致经过了(B)代的演变。
A、三B、四C、五D、六
49、以下不属于白盒测试技术的是(D)A、逻辑覆盖B、基本路径测试C、循环覆盖测试D、等价类划分
50、为改正软件系统中潜藏的错误而进行的维护活动称为(A)。
A、纠错性维护B、适应性维护
C、改善性维护D、预防性维护
51、在设计测试用例时,应当包括(C)A、合理的输入条件B、不合理的输入条件C、合理的和不合理的输入条件D、部分条件
52、下列各项中不属于逻辑覆盖的是(D)A、语句覆盖B、判定覆盖C、判定——条件覆盖D、全部覆盖
53、高级语言通常被分成三类,其中不包括(D)A、通用高级语言B、面向对象的语言
C、专用语言D、自然语言
54、耦合度也可以分为七级:
其中最松散的耦合是(A)。
A、非直接耦合B、数据耦合
C、特征耦合D、控制耦合
55、判定表由四部分组成:
左上部列出(B)。
A、条件组合与动作之间的对应关系B、所有条件
C、所有可能的动作D、可能的条件组合
填空题
Ø软件=(程序)+(文档)。
Ø软件工程的基本原则包括(分解)、(独立性)、一致性和(确定性)。
Ø需求分析的基本任务是准确的回答(系统必须做什么)。
Ø数据字典的内容包括六项:
数据流、(数据项)、数据结构、(数据存储)、(处理逻辑)、外部实体。
Ø模块独立的概念是(模块化)、(抽象)、(信息隐蔽)和局部化概念的直接结果。
Ø设计出软件的初步结构以后,应该进一步分解或合并模块,力求降低(耦
合
)提高(
内聚
)。
Ø软件的维护一般经过(
分析和理解程序
)、(
修改程
序)、(
重新验证程序)三个步骤。
Ø假设使用代码行技术进行费用估计,某软件中共3000行程序,每行平均成本25元,则该软件的成本为(75000元)。
Ø软件开发需要的资源包括(软件工具)、(硬件工具)和(人),其中(人)是最基本的资源。
Ø程序的效率是指(程序的执行速度)和(程序占用的存储空间)。
Ø软件定义的基本任务是确定软件系统的工程(需求),也就是要搞清"做什么
Ø成本效益分析的目的是从(经济)角度评价开发一个项目是否可行。
Ø汇编语言是面向(机器)的,可以完成高级语言无法完成的特殊功能,如与外部设备之间的一些接口工作。
Ø详细设计的任务是确定每个模块的内部特性,即模块的算法、(使用的数据)。
Ø软件工程由(方法),工具和过程三部分组成,称软件工程的三要素.
Ø基于计算机系统的软件要素中的软部件由程序,数据和(文档)组成.
Ø数据流图就是用来刻画数据流和转换的信息系统建模技术.它用简单的图形记号分别表示数据流,转换,(数据源)以及外部实体.
Ø流程图也称为程序框图是最常用的一种表示法,它有顺序,分支和(循环)三个基本控制构件.
Ø机器语言和汇编语言,也称为(低级语)言.
Ø软件测试是执行程序发现并排除程序中潜伏的(错误)的过程.
Ø动态测试有两种测试方法:
黑盒测试和(白盒)测试.
Ø软件可维护性,是指软件产品交付使用后,在实现改正潜伏的错误,改进性能等属性,适应环境变化等方面工作的(难易)程度
Ø第三代语言也称为(高级)语言。
Ø软件测试是软件投入运行(前),对软件需求分析、设计、实现的强有力的最终审查。
Ø黑盒测试主要是测试软件是否满足(功能)需求。
Ø(调试)的目的是确定错误的位置和引起错误的原因,并加以改正。
因此,又称为排错或纠错。
Ø软件工程由方法、工具和(过程)三部分组成,称软件工程的三要素。
Ø可行性研究的目的是用最小的代价,在尽可能短的时间内,确定该项目是否能够开发。
Ø程序设计时代的生产方式是个体手工,程序系统时代的生产方式是作坊式小团体,软件工程时代的生产方式是工程化。
Ø喷泉模型是一种以需求分析为动力,以对象为驱动的模型。
Ø需求分析阶段,分析人员要确定对问题的综合需求,其中最主要的是功能需求。
Ø可行性研究需要从以下三个方面分析研究每种解决方法的可行性:
技术可行性、经济可行性、社会可行性。
Ø可行性研究的目的不是去开发一个软件项目,而是研究这个软件项目是否值得开发,其中的问题能否解决。
Ø判定树较判定表直观易读,判定表进行逻辑验证较严格,能把所有的可能性全部都考虑到。
可将两种工具结合起来,先用判定表做底稿,在此基础上产生判定树。
Ø环境集成主要有数据集成、界面集成、控制集成、平台集成、过程集成。
Ø可行性研究实质上是进行一项简化、压缩了的需求分析、设计过程。
Ø结构化方法有结构化分析、结构化设计、结构化程序设计构成,它是一种面向数据流的开发方法。
Ø投资回收期就是累计的经济效益等于最初的项目投资所需的时间。
Ø详细描述处理过程常用三种描述工具:
图形、表格和语言。
Ø数据流图中,每个加工至少有一个输入流和一个输出流。
Ø结构化设计以数据流为基础映射成软件结构。
Ø当数据流图中某个加工的一组动作存在着多个条件复杂组合的判断时,使用判定表或判定树较好。
Ø由于运用原型的目的和方式不同,在使用原型时也采取不同的策略,有抛弃策略和附加策略。
Ø有两类维护技术:
在开发阶段是用来减少错误、提高软件可维护性面向维护的技术,在维护阶段用来提高维护的效率和质量的维护支援技术。
Ø软件开发中原型是软件的一个早期可运行的版本,它反映了最终系统的重要特性。
Ø产品管理包括版本管理和配置管理。
Ø任何程序都可由顺序、选择、重复三种基本控制结构构造。
Ø测试用例应有输入数据和预期的输出数据两部分组成。
这样便于对照检查。
Ø需求分析阶段产生的最重要的文档之一是需求规格说明书。
Ø项目开发计划是一个管理性文档。
Ø软件配置管理,简称SCM,软件配置项简称SCI。
Ø在算法描述工具中,PAD图可自动生成程序。
由机器自动通过走树的办法生成相应的源代码,大大提高软件的生产率。
Ø在CASE集成中,控制集成支持工作台或环境中一个工具对系统中其它工具的访问。
过程集成是指CASE系统嵌入了关于过程活动、阶段、约束和支持这些活动所需的工具的知识。
Ø解决一个复杂问题,往往采取的策略是分解。
Ø效益分析有有形效益和无形效益两种。
Ø两个模块都是用同一张表,这种耦合称为公共耦合。
Ø一个模块把数值作为参数传送给另一个模块,这种耦合方式称为数据耦合。
Ø一个模块内部各程序段都在同一张表上操作,这个模块的内聚性称为通信内聚。
Ø在SA方法的需求描述工具中,数据流图描述系统的分解,即描述系统有哪几部分组成,各部分之间有什么联系等等。
数据字典定义了数据流图中每一个图形元素;结构化语言、判定表或判定树则详细描述数据流图中不能被再分解的每一个加工。
ØIDEF图是一种功能模型,表示系统功能的图形称为活动图形,连方框上的箭头有四种类型,他们分别是输