试卷详情

2014年上半年(上午)《软件设计师》真题

开始做题

试卷预览

单选题

某双端队列如下所示,要求元素进出队列必须在同一端口,即从A端进入的元素必须从A端出、从B端进入的元素必须从B端出,则对于4个元素的序列e1、e2、e3、e4,若要求从前2个元素(e1、e2)从A端口按次序全部进入队列,后两个元素(e3、e4)从B端口按次序全部进入队列,则可能得到的出队序列是(  )。

中级软件设计师,历年真题,2014年上半年(上午)《软件设计师》真题

查看答案开始考试

正确答案:D

本题解析:

e1、e2从A端口进入,e3、e4从B端口进入,如下图所示:

中级软件设计师,历年真题,2014年上半年(上午)《软件设计师》真题

根据题意:从A端进入的元素必须从A端出、从B端进入的元素必须从B端出;则出队顺序中e2在e1前面,e4在e3前面。

只有答案D满足。

单选题

在C/C++程序中,整型变量a的值为0且应用在表达式“c=b/a”中,则最可能发生的情形是(  )。

查看答案开始考试

正确答案:D

本题解析:

检查语法错误是在编译时,表达式“c=b/a”符合语法逻辑,编译时不会报语法错误;由于编译时a的值无法确定,需要到运行时,实际传入值时才能确定,因此在运行时,若分母为0,将产生异常。

单选题

大多数程序设计语言的语法规则用(  )描述即可。

查看答案开始考试

正确答案:B

本题解析:

上下文无关文法重要的原因在于它们拥有足够强的表达力来表示大多数程序设计语言的语法;实际上,几乎所有程序设计语言都是通过上下文无关文法来定义的。另一方面,上下文无关文法又足够简单,使得我们可以构造有效的分析算法来检验一个给定字串是否是由某个上下文无关文法产生的。

单选题

对一个复杂用例中的业务处理流程进行进一步建模的最佳工具是UML(  )。

查看答案开始考试

正确答案:D

本题解析:

(1)类图(classdiagram)。类图描述一组类、接口、协作和它们之间的关系。在OO系统的建模中,最常见的图就是类图。类图给出了系统的静态设计视图,活动类的类图给出了系统的静态进程视图。

(2)对象图(objectdiagram)。对象图描述一组对象及它们之间的关系。对象图描述了在类图中所建立的事物实例的静态快照。和类图一样,这些图给出系统的静态设计视图或静态进程视图,但它们是从真实案例或原型案例的角度建立的。

(3)构件图(componentdiagram)。构件图描述一个封装的类和它的接口、端口,以及由内嵌的构件和连接件构成的内部结构。构件图用于表示系统的静态设计实现视图。对于由小的部件构建大的系统来说,构件图是很重要的。构件图是类图的变体。

(4)组合结构图(compositestructurediagram)。组合结构图描述结构化类(例如,构件或类)的内部结构,包括结构化类与系统其余部分的交互点。组合结构图用于画出结构化类的内部内容。

(5)用例图(usecasediagram)。用例图描述一组用例、参与者及它们之间的关系。用例图给出系统的静态用例视图。这些图在对系统的行为进行组织和建模时是非常重要的。

(6)顺序图(sequencediagram,序列图)。顺序图是一种交互图(interactiondiagram),交互图展现了一种交互,它由一组对象或参与者以及它们之间可能发送的消息构成。交互图专注于系统的动态视图。顺序图是强调消息的时间次序的交互图。

(7)通信图(communicationdiagram)。通信图也是一种交互图,它强调收发消息的对象或参与者的结构组织。顺序图和通信图表达了类似的基本概念,但它们所强调的概念不同,顺序图强调的是时序,通信图强调的是对象之间的组织结构(关系)。在UML1.X版本中,通信图称为协作图(collaborationdiagram)。

(8)定时图(timingdiagram,计时图)。定时图也是一种交互图,它强调消息跨越不同对象或参与者的实际时间,而不仅仅只是关心消息的相对顺序。

(9)状态图(statediagram)。状态图描述一个状态机,它由状态、转移、事件和活动组成。状态图给出了对象的动态视图。它对于接口、类或协作的行为建模尤为重要,而且它强调事件导致的对象行为,这非常有助于对反应式系统建模。

(10)活动图(activitydiagram)。活动图将进程或其他计算结构展示为计算内部一步步的控制流和数据流。活动图专注于系统的动态视图。它对系统的功能建模和业务流程建模特别重要,并强调对象间的控制流程。

(11)部署图(deploymentdiagram)。部署图描述对运行时的处理节点及在其中生存的构件的配置。部署图给出了架构的静态部署视图,通常一个节点包含一个或多个部署图。

(12)制品图(artifactdiagram)。制品图描述计算机中一个系统的物理结构。制品包括文件、数据库和类似的物理比特集合。制品图通常与部署图一起使用。制品也给出了它们实现的类和构件。

(13)包图(packagediagram)。包图描述由模型本身分解而成的组织单元,以及它们之间的依赖关系。

(14)交互概览图(interactionoverviewdiagram)。交互概览图是活动图和顺序图的混合物。

单选题

(  )是一个类与它的一个或多个细化类之间的关系,即一般与特殊的关系。

查看答案开始考试

正确答案:A

本题解析:

泛化(generalization)关系是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系。

关联(association)关系:表示类与类之间的联接,它使一个类知道另一个类的属性和方法。

聚合(aggregation)关系:关联关系的一种特例,是强的关联关系.聚合是整体和个体之间的关系,即has-a的关系,此时整体与部分之间是可分离的,他们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享。

组合(合成)关系(composition):也是关联关系的一种特例,他体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合;他同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束。

单选题

某搜索引擎在使用过程中,若要增加接受语音输入的功能,使得用户可以通过语音输入来进行搜索,此时应对系统进行(  )维护。

查看答案开始考试

正确答案:C

本题解析:

在系统运行过程中,软件需要维护的原因是多样的,根据维护的原因不同,可以将软件维护分为以下四种:

(1)改正性维护。为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程就称为改正性维护。

(2)适应性维护。在使用过程中,外部环境(新的硬、软件配置)、数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)可能发生变化。为使软件适应这种变化,而去修改软件的过程就称为适应性维护。

(3)完善性维护。在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。这种情况下进行的维护活动称为完善性维护。

(4)预防性维护。这是指预先提高软件的可维护性、可靠性等,为以后进一步改进软件打下良好基础。通常,预防性维护可定义为“把今天的方法学用于昨天的系统以满足明天的需要”。也就是说,采用先进的软件工程方法对需要维护的软件或软件中的某一部分(重新)进行设计、编码和测试。

单选题

以下关于文档的叙述中,不正确的是(  )。

查看答案开始考试

正确答案:A

本题解析:

软件文档的作用

在软件生产过程中,总是产生和使用大量的信息。软件文档在产品的开发过程中起着重要的作用。提高软件开发过程的能见度。把开发过程中发生的事件以某种可阅读的形式记录在文档中。

管理人员可把这些记载下来的材料作为检查软件开发进度和开发质量的依据,实现对软件开发的工程管理,提高开发效率。软件文档的编制,使得开发人员对各个阶段的工作都进行周密思考、全盘权衡、减少返工。并且可在开发早期发现错误和不一致性,便于及时加以纠正。开发文档可以作为开发人员在一定阶段的工作成果和结束标志,记录开发过程中有关信息,便于协调以后的软件开发、使用和维护。

提供对软件的运行、维护和培训的有关信息,便于管理人员、开发人员、操作人员、用户之间的协作、交流和了解。使软件开发活动更科学、更有成效。

便于潜在用户了解软件的功能、性能等各项指标,为他们选购符合自己需要的软件提供依据。

从某种意义上来说,文档是软件开发规范的体现和指南。按规范要求生成一整套文档的过程,就是按照软件开发规范完成一个软件开发的过程。

所以,在使用工程化的原理和方法来指导软件的开发和维护时,应当充分注意软件文档的编制和管理。

单选题

以下关于统一过程UP的叙述中,不正确的是(  )。

查看答案开始考试

正确答案:B

本题解析:

什么是Rational统一过程(RationalUnifiedProcess)?

RationalUnifiedProcess是软件工程的过程。它提供了在开发组织中分派任务和责任的纪律化方法。它的目标是在可预见的日程和预算前提下,确保满足最终用户需求的高质量产品。

统一过程模型是一种“用例驱动,以体系结构为核心,迭代及增量”的软件过程框架,由UML方法和工具支持。

RUP把一个项目分为四个不同的阶段:

构思阶段:包括用户沟通和计划活动两个方面,强调定义和细化用例,并将其作为主要模型。

细化阶段:包括用户沟通和建模活动,重点是创建分析和设计模型,强调类的定义和体系结构的表示。

构建阶段:将设计转化为实现,并进行集成和测试。

移交阶段:将产品发布给用户进行测试评价,并收集用户的意见,之后再次进行迭代修改产品使之完善。

没有确认阶段,因此B选项错误。

每个迭代有五个核心工作流:(1)捕获系统应该做什么的需求工作流;(2)精化和结构化需求的分析工作流;(3)在系统结构内实现需求的设计工作流;(4)构造软件的实习工作流;(5)验证是否如期那样工作的测试工作流。

单选题

编译程序对高级语言源程序进行编译的过程中,要不断收集、记录和使用源程序中一些相关符号的类型和特征等信息,并将其存入(  )中。

查看答案开始考试

正确答案:A

本题解析:

符号表:符号表是一种用于语言翻译器(例如编译器和解释器)中的数据结构。在符号表中,程序源代码中的每个标识符都和它的声明或使用信息绑定在一起,比如其数据类型、作用域以及内存地址。

哈希表:也叫散列表,是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。

动态查找表:动态查找表的表结构本身是在查找过程中动态生成的,即对于给定值key,若表中存在其关键字等于key的记录,则查找成功返回,否则插入关键字等于key的记录。

栈和队列:基本的数据结构。栈的基本特点是“后进先出”,而队列的基本特点是“先进先出”。

单选题

以下关于进度管理工具Gantt图的叙述中,不正确的是(  )。

查看答案开始考试

正确答案:D

本题解析:

Gantt图是一种简单的水平条形图,以日历为基准描述项目任务。水平轴表示日历时间线(如时、天、周、月和年等),每个条形表示一个任务,任务名称垂直地列在左边的列中,图中水平条的起点和终点对应水平轴上的时间,分别表示该任务的开始时间和结束时间,水平条的长度表示完成该任务所持续的时间。当日历中同一时段存在多个水平条时,表示任务之间的并发。

Gantt图能清晰地描述每个任务从何时开始,到何时结束,任务的进展情况以及各个任务之间的并行性。但是其缺点是不能清晰地反映出各个任务之间的依赖关系,难以确定整个项目的关键所在,也不能反映计划中有潜力的部分。

其他考生还关注了更多 +