软件工程习题及部分参考答案
判断题
? 软件也会磨损和老化。(X)
? 完善性维护是提高或完善软件的性能。(√)
? 数据字典是对数据流图中的数据流,加工、数据存储、数据的源和终点进行详细定义。
(X)
? 软件是指用程序设计语言(如PASCAL ,C,VISUAL BASIC 等)编写的程序,软件开发实
际上就是编写程序代码。(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、 模块高内聚