当前位置:文档之家› 软件工程模拟题

软件工程模拟题

[模拟] 软件工程选择题第1题:软件工程方法学的三要素是______。

①方法②项目管理③过程④开发语言⑤工具A.①②③B.①②⑤C.②③④D.①③⑤参考答案:D软件工程方法学包含三个要素:方法、工具和过程。

方法是指完成软件开发的各项任务的技术方法;工具是指为运用方法而提供的软件工程支撑环境;过程是指为获得高质量的软件所需要完成的一系列任务的框架。

第2题:螺旋模型的开发实施和______基本相吻合。

A.智能模型B.快速原型模型C.喷泉模型D.V模型参考答案:B第3题:软件设计一般分为外部设计和内部设计,它们之间的关系是______。

A.全局和局部B.抽象和具体C.总体和层次D.没有关系参考答案:A这里所说的外部设计实际上是指概要设计,内部设计就是详细设计。

概要设计的工作是:·采用某种设计方法,将一个复杂的系统按功能划分成模块;·确定每个模块的功能;·确定模块之间的调用关系;·确定模块之间的接口,即模块之间传递的信息;·评价模块结构的质量。

而详细设计的工作是:·为每个模块进行详细的算法设计。

用某种图形、表格、语言等工具将每个模块处理过程的详细算法描述出来。

·为模块内的数据结构进行设计。

对于需求分析、概要设计确定的概念性的数据类型进行确切的定义。

·对数据结构进行物理设计,即确定数据库的物理结构。

物理结构主要指数据库的存储记录格式、存储记录安排和存储方法,这些都依赖于具体所使用的数据库系统。

可见,这是一个全局和局部的关系,概要设计划分好模块,而详细设计定义每个模块如何工作。

第4题:瀑布模型把软件生命周期划分为三个阶段,它们分别是:计划阶段、开发阶段和______。

A.可行性分析阶段B.运行阶段C.详细计划阶段D.测试与排错阶段参考答案:B瀑布模型的软件生命周期分为计划阶段、开发阶段和运行阶段(即维护阶段)三个大的阶段,这三个阶段又可细分为:可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试、运行维护几个小的阶段。

第5题:瀑布模型(Waterfall Model)突出的缺点是不能适应______的变动。

A.算法B.开发或应用平台C.程序语言D.用户需求参考答案:D瀑布模型有许多优点:可强迫开发人员采用规范的方法;严格规定了各阶段必须提交的文档;要求每个阶段结束后,都要进行严格的评审。

但瀑布模型过于理想化,而且缺乏灵活性,无法在开发过程中逐渐明确用户难以确切表达或一时难以想到的需求,有时可能直到软件开发完成之后才发现与用户需求有很大距离,此时必须付出高额的代价才能纠正这一偏差。

第6题:如果一个模块内各功能部分都使用了相同的输入数据,或产生了相同的输出数据,则称为______模块。

A.功能内聚B.顺序内聚C.通信内聚D.过程内聚参考答案:C第7题:项目管理工具中,将网络方法用于工作计划安排的评审和检查的是______。

A.Gantt图B.PERT网图C.因果分析图D.流程图参考答案:BGantt图:以水平线段表示任务的工作阶段。

线段的起点和终点分别对应着任务的开工时间和完成时间;线段的长度表示完成任务所需的时间。

从甘特图上可以很清楚地看出各子任务在时间上的对比关系,并以文档编制与评审作为软件开发进度的里程碑。

甘特图的优点是标明了各任务的计划进度和当前进度,能动态地反映软件开发进展情况。

缺点是难以反映多个任务之间存在的复杂的逻辑关系。

PERT网图:也叫做计划评审技术。

它采用网络图来描述一个项目的任务网络,不仅可以表达子任务的计划安排,还可以在任务计划执行过程中估计任务完成的情况,分析某些子任务的完成情况对全局的影响,找出影响全局的区域和关键子任务,以便及时采取措施,确保整个项目的完成。

因果分析图:又叫特性要素图、树枝图和鱼刺图等,是质量管理常用工具之一。

流程图:流程图是以图解方式来说明实现一个解决方案所需完成的一系列操作。

第8题:下述任务中,不属于软件工程需求分析阶段的是______。

A.分析软件系统的数据要求B.确定软件系统的功能需求C.确定软件系统的性能要求D.确定软件系统的运行平台参考答案:D需求分析的任务主要有: (1)确定软件的综合要求:系统界面,系统功能,系统性能,安全性、保密性和可靠性方面的要求,系统的运行要求,异常处理,将来的扩充和修改等。

(2)分析软件系统的数据要求:基本数据元素,数据元素之间的逻辑关系,数据量,峰值等。

(3)导出系统的逻辑模型。

(4)修正项目开发计划。

第9题:进行软件测试的目的是______。

A.尽可能多地找出软件中的缺陷B.缩短软件的开发时间C.减少软件的维护成本D.证明程序没有缺陷参考答案:A进行软件测试的目的是想以最少的时间和人力找出软件中潜在的各种错误和缺陷,而不是证明程序没有缺陷。

第10题:软件的测试通常分单元测试、组装测试、确认测试、系统测试四个阶段进行。

______属于确认测试阶段的活动。

A.设计评审B.代码审查C.结构测试D.可靠性测试参考答案:D第11题:一个故障已经被发现,而且也被排除了,为了检查修改是否引起了其它故障,这时应该进行______。

A.程序走查B.退化测试C.软件评审D.接收测试参考答案:B在维护过程中,当修正一个故障以后要进行回归测试,但此处没有这个选项,所以我们要考查哪个选项是回归测试的意思。

这里可以直接把A和C排除,而D选项的接收测试就是确认测试,所以我们选B。

其实退化测试就是回归测试,只是翻译不同而已。

第12题:代码走查(code walkthrough)和代码审查(code inspection)是两种不同的代码评审方法,这两种方法的主要区别是______。

A.在代码审查中由编写代码的程序员来组织讨论,而在代码走查中由高级管理人员来领导评审小组的活动B.在代码审查中只检查代码中是否有错误,而在代码走查中还要检查程序与设计文档的一致性C.在代码走查中只检查程序的正确性,而在代码审查中还要评审程序员的编程能力和工作业绩D.代码审查是一种正式的评审活动,而代码走查的讨论过程是非正式的参考答案:D静态分析中进行人工测试的主要方法有桌前检查、代码审查(会审)和走查。

经验表明,使用这种方法能够有效地发现30%到70%的逻辑设计和编码错误。

①桌前检查(Desk Checking):由程序员自己检查自己编写的程序。

程序员在程序通过编译之后,进行单元测试设计之前,对源程序代码进行分析、检验,并补充相关的文档,目的是发现程序中的错误。

检查项目有:·检查变量的交叉引用表:重点是检查未说明的变量和违反了类型规定的变量;还要对照源程序,逐个检查变量的引用、变量的使用序列;临时变量在某条路径上的重写情况;局部变量、全局变量与特权变量的使用;·检查标号的交叉引用表:验证所有标号的正确性:检查所有标号的命名是否正确;检查转向指定位置的标号是否正确。

·检查子程序、宏、函数:验证每次调用与被调用位置是否正确;确认每次被调用的子程序、宏、函数是否存在;检验调用序列中调用方式与参数顺序、个数、类型上的一致性。

·等值性检查:检查全部等价变量的类型的一致性,解释所包含的类型差异。

·常量检查:确认每个常量的取值和数制、数据类型;检查常量每次引用同它的取值、数制和类型的一致性;·标准检查:用标准检查程序或手工检查程序中违反标准的问题。

·风格检查:检查在程序设计风格方面发现的问题。

·比较控制流:比较由程序员设计的控制流图和由实际程序生成的控制流图,寻找和解释每个差异,修改文档和校正错误。

·选择、激活路径:在程序员设计的控制流图上选择路径,再到实际的控制流图上激活这条路径。

如果选择的路径在实际控制流图上不能激活,则源程序可能有错。

用这种方法激活的路径集合应保证源程序模块的每行代码都被检查,即桌前检查应至少是语句覆盖。

·对照程序的规格说明,详细阅读源代码:程序员对照程序的规格说明书、规定的算法和程序设计语言的语法规则,仔细地阅读源代码,逐字逐句进行分析和思考,比较实际的代码和期望的代码,从它们的差异中发现程序的问题和错误。

·补充文档:桌前检查的文档是一种过渡性的文档,不是公开的正式文档,通过编写文档,也是对程序的一种下意识的检查和测试,可以帮助程序员发现和抓住更多的错误。

这种桌前检查,由于程序员熟悉自己的程序和自身的程序设计风格,可以节省很多的检查时间,但应避免主观片面性。

②代码会审(Code Reading Review):是由若干高级管理人员、程序员和测试员组成一个会审小组,通过阅读、讨论和争议,对程序进行静态分析的过程。

高级管理人员领导整个会审小组。

代码会审分两步。

第一步,小组负责人提前把设计规格说明书、控制流程图、程序文本及有关要求、规范等分发给小组成员,作为评审的依据。

小组成员在充分阅读这些材料之后,进入审查的第二步:召开程序审查会。

在会上,首先由程序员逐句讲解程序的逻辑。

在此过程中,程序员或其他小组成员可以提出问题,展开讨论,审查错误是否存在。

实践表明,程序员在讲解过程中能发现许多原来自己没有发现的错误,而讨论和争议则促进了问题的暴露。

在会前,应当给会审小组每个成员准备一份常见错误的清单,把以往所有可能发生的常见错误罗列出来,供与会者对照检查,以提高会审的实效。

这个常见错误清单也叫做检查表,它把程序中可能发生的各种错误进行分类,对每一类列举出尽可能多的典型错误,然后把它们制成表格,供会审时使用。

这种检查表类似于本章单元测试中给出的检查表。

③走查(Walkthroughs):与代码会审基本相同,一般由编写代码的程序员来组织讨论,其过程分为两步。

第一步也把材料先发给走查小组每个成员,让他们认真研究程序,然后再开会。

开会的程序与代码会审不同,不是简单地读程序和对照错误检查表进行检查,而是让与会者“充当”计算机。

即首先由测试组成员为被测程序准备一批有代表性的测试用例,提交给走查小组。

走查小组开会,集体扮演计算机角色,让测试用例沿程序的逻辑运行一遍,随时记录程序的踪迹,供分析和讨论用。

代码审查是一种正式的评审活动,而代码走查的讨论过程是非正式的。

人们借助于测试用例的媒介作用,对程序的逻辑和功能提出各种疑问,结合问题开展热烈的讨论和争议,能够发现更多的问题。

第13题:参考答案:C首先要搞清楚什么是条件,什么是判定,以“A OR B”为例,单个的A或者B是一个条件,而“A OR B”才是判定。

所谓判定覆盖,就是指设计的测试用例能使得程序中的每个判定的真值分支和假值分支至少经过一次,因此,判定覆盖亦称分支覆盖。

A、B、D选项中测试用例显然只覆盖了“A OR B”真值分支。

相关主题