正确答案: A

多态性

题目:雇员类含有计算报酬的行为,利用面向对象的(),可以使得其派生类专职雇员类和兼职雇员类计算报酬的行为有相同的名称,但有不同的计算方法。

解析:本题是一个纯概念题。在面向对象技术中,多态考虑的是类与类之间的层次关系,以及类自身内部特定成员函数之间的关系问题,是解决功能和行为的再抽象问题。多态是指类中具有相似功能的不同函数用同一个名称来实现,从而可以使用相同的调用方式来调用这些具有不同功能的同名函数。这也是人类思维方式的一种直接模拟,例如,一个对象中有很多求两个数最大值的行为,虽然可以针对不同的数据类型,写很多不同名称的函数来实现,但事实上,它们的功能几乎完全相同。这时,就可以利用多态的特征,用统一的标识来完成这些功能。这样,就可以达到类的行为的再抽象,进而统一标识,减少程序中标识符的个数。

查看原题 查看所有试题

学习资料的答案和解析:

  • [单选题]复用应该是每个软件过程都不可缺少的部分。下列制品,不属于复用候选的软件制品是()
  • 用户需求

  • 解析:在软件复用的过程中,有高级的复用,如项目计划和体系结构的复用;也有低层的复用,如代码复用和界面复用等。显然,用户需求是用户自己的对软件的一些要求和目标,这是不能复用的。

  • [单选题]用例(Use Case)用来描述系统对事件做出响应时所采取的行动。用例之间是具有相关性的。在一个"订单输入子系统"中,创建新订单和更新订单都需要核查用户账号是否正确。用例"创建新订单"、"更新订单"与用例"核查客户账号"之间是()关系。
  • 包含(IncludE.

  • 解析:用例是在系统中执行的一系列动作,这些动作将生成特定参与者可见的价值结果。它确定了一个和系统参与者进行交互,并可由系统执行的动作序列。用例模型描述的是外部执行者(Actor)所理解的系统功能。用例模型用于需求分析阶段,它的建立是系统开发者和用户反复讨论的结果,表明了开发者和用户对需求规格达成的共识。两个用例之间的关系主要有两种情况:一种是用于重用的包含关系,用构造型Include表示;另一种是用于分离出不同行为的扩展,用构造型Extend表示。①包含关系:当可以从两个或两个以上的原始用例中提取公共行为,或者发现能够使用一个构件来实现某一个用例的部分功能是很重要的事时,应该使用包含关系来表示它们。②扩展关系:如果一个用例明显地混合了两种或两种以上的不同场景,即根据情况可能发生多种事情,可以断定将这个用例分为一个主用例和一个或多个辅用例描述可能更加清晰。

  • [单选题]对OO系统的技术度量的识别特征,Berard定义了导致特殊度量的特征。其中()抑制程序构件的操作细节,只有对访问构件必需的信息被提供给其他希望访问的构件。
  • 信息隐藏

  • 解析:面向对象的软件和用传统方法开发的软件有本质性不同,为此,对OO系统的技术度量必须调整以适应那些区别OO和传统软件的特征。Berard定义了5个导致特殊度量的特征,分别是局部化、封装、信息隐蔽、继承和对象抽象技术。①局部化。局部化是软件的一个特征,它指明信息在程序中被集中的方式,例如,针对功能分解的传统方法围绕功能局部化信息,它们典型地以过程模块来实现。数据驱动方法围绕特定的数据结构局部化信息。在OO语境中,信息是通过封装数据和处理在类或对象的边界内而集中的。因为传统软件强调函数为局部化机制,软件度量着重于函数的内部结构或复杂性(如模块长度、内聚性或环路复杂性等)或函数间相互连接的方式(如模块耦合)。因为类是OO系统的基本单位,所以,局部化是基于对象的,因此,度量应该应用于作为一个完全实体的类(对象)。此外,在操作(函数、方法)和类间的关系没必要是一对一的。因此,反应类协作方式的度量必须能够适应一对多和多对一的关系。②封装。Berard定义封装为"一组项的包装(或捆绑在一起),(对传统软件的)低层封装例子包括记录和数组,而子程序(例如,过程、函数、子例程和段落)是封装的中层机制。"对OO系统,封装包含了类的责任,包括其属性(和针对聚合对象的其他类)和操作,以及由特定的属性值定义的类的状态。封装通过将测度的焦点从单个模块改变到数据(属性)和处理模块(操作)包而影响度量。此外,封装鼓励在高抽象层的测度。将此层次的抽象同传统的度量相比较,传统的着重于布尔条件的计数或代码行数。③信息隐蔽。信息隐蔽隐瞒(或隐藏)程序构件的操作细节,只将对访问该构件必需的信息提供给那些希望访问它的其他构件。良好设计的OO系统应该鼓励信息隐蔽,因此,指明隐蔽所达到程度的度量应该提供了对OO设计质量的一个指标。④继承。继承是使得某对象的责任能够传播到其他对象的机制,继承出现在类层次的所有层面上,通常,传统的软件不支持该特征。因为继承是很多OO系统的关键特征,所以很多OO度量是关注于它的。⑤抽象。抽象是使得设计者能够关注程序构件(数据或过程)的本质性细节而不需考虑低层细节的机制。如Berard所说,抽象是一个相对概念,当我们移向更高的抽象级别时,我们忽略了越来越多的细节,即我们提供了对概念或项的更一般化的视图;当我们移向抽象的低层时,我们引入了更多的细节,即我们提供了概念或项的更特定的视图。因为类是一种抽象,它可以在很多不同的细节级别上并以一系列不同的方式(例如,作为一个操作列表、作为一个状态序列、作为一系列协作)来观察,所以OO度量用类的测度(例如,每个应用的每个类的实例数、每个应用的参数化类数,以及参数化类和非参数化类的比率)来表示抽象。

  • [单选题]RUP是一个二维的软件开发模型,其核心特点之一是(1)。RUP将软件开发生存周期划分为多个循环(cycle),每个循环由4个连续的阶段组成,每个阶段完成确定的任务。设计及确定系统的体系结构,制定工作计划及资源要求是在(2)阶段完成的。
  • 解析:RUP也称为UP、统一过程,其核心特点是:以架构为中心,用例驱动,迭代与增量。该开发模型分4个阶段,分别为初始、细化、构造、移交。其中题干所述的“确定系统的体系结构”是细化阶段的主要工作,所以该空应填细化。

  • [单选题]逆向工程导出的信息可以分为4个抽象层次,其中(1)可以抽象出程序的抽象语法树、符号表等信息;(2)可以抽象出反映程序段功能及程序段之间关系的信息。
  • 解析:逆向工程导出的信息可分为如下4个抽象层次:①实现级:包括程序的抽象语法树、符号表等信息。②结构级:包括反映程序分量之间相互依赖关系的信息,如调用图、结构图等。③功能级:包括反映程序段功能及程序段之间关系的信息。④领域级:包括反映程序分量或程序与应用领域概念之间对应关系的信息。

  • [单选题]面向对象的设计模型包含以(1)表示的软件体系结构图,以(2),表示的用例实现图,完整精确的类图,针对复杂对象的状态图和用以描述流程化处理的活动图等。

  • [单选题]统一软件开发过程是一种基于面向对象技术的软件开发过程,其特点是"用例驱动,以架构为核心,迭代并增量"。统一软件开发过程定义了4种通用的开发阶段,它们按照过程顺序分别是:起始阶段、(1)、构建阶段和(2),其中在构建阶段主要产生的文档有(3)。
  • 解析:统一过程适合于大、中型项目的开发,可以分为4个顺序的阶段,分别是初始阶段、细化阶段、构建阶段和移交阶段。初始阶段的任务是为系统建立业务模型并确定项目的边界。在初始阶段,必须识别所有与系统交互的外部实体,定义系统与外部实体交互的特性。在这个阶段中所关注的是整个项目的业务和需求方面的主要风险。对于建立在原有系统基础上的开发项目来说,初始阶段可能很短。细化阶段的任务是分析问题领域,建立健全的架构基础,淘汰项目中最高风险的元素。在细化阶段,必须在理解整个系统的基础上,对架构做出决策,包括其范围、主要功能和诸如性能等非功能需求,同时为项目建立支持环境。在构建阶段,要开发所有剩余的构件和应用程序功能,把这些构件集成为产品,并进行详细测试。从某种意义上说,构建阶段是一个制造过程,其重点放在管理资源及控制操作,以优化成本、进度和质量。构建阶段的主要任务是通过优化资源和避免不必要的报废和返工,使开发成本降到最低;完成所有所需功能的分析、开发和测试,快速完成可用的版本;确定软件、场地和用户是否已经为部署软件做好准备。在构建阶段,开发团队的工作可以实现某种程度的并行。即使是较小的项目,也通常包括可以相互独立开发的构件,从而使各团队之间实现并行开发。当基线已经足够完善,可以安装到最终用户实际环境中时,则进入交付阶段。交付阶段的重点是确保软件对最终用户是可用的。交付阶段的主要任务是进行β测试,制作产品发布版本;对最终用户支持文档定稿;按用户的需求确认新系统;培训用户和维护人员;获得用户对当前版本的反馈,基于反馈调整产品,如进行调试、性能或可用性的增强等。根据产品的种类,交付阶段可能非常简单,也可能非常复杂。例如,发布现有桌面产品的新发布版本可能十分简单,而替换一个国家的航空交通管制系统可能就非常复杂。交付阶段结束时也要进行技术评审,评审目标是否实现,是否应该开始演化过程,用户对交付的产品是否满意等。

  • [单选题]系统测试由若干个不同的测试类型组成,其中(1)检查系统能力的最高实际限度,即软件在一些超负荷情况下的运行情况;(2)主要是检查系统的容错能力。
  • 解析:本题考查测试的相关概念,我们只要了解每一种测试的主要工作,就能解答此题。恢复测试:恢复测试监测系统的容错能力。检测方法是采用各种方法让系统出现故障,检验系统是否按照要求能从故障中恢复过来,并在约定的时间内开始事务处理,而且不对系统造成任何伤害。如果系统的恢复是自动的(由系统自动完成),需要验证重新初始化、检查点、数据恢复等是否正确。如果恢复需要人工干预,就要对恢复的平均时间进行评估并判断它是否在允许的范围内。强度测试:是对系统在异常情况下的承受能力的测试,是检查系统在极限状态下运行时,性能下降的幅度是否在允许的范围内。因此,强度测试要求系统在非正常数量、频率或容量的情况下运行。强度测试主要是为了发现在有效的输入数据中可能引起不稳定或不正确的数据组合。例如,运行使系统处理超过设计能力的最大允许值的测试例子;使系统传输超过设计最大能力的数据,包括内存的写入和读出等。性能测试:检查系统是否满足系统设计方案说明书对性能的要求。性能测试覆盖了软件测试的各阶段,而不是等到系统的各部分所有都组装之后,才确定系统的真正性能。通常与强度测试结合起来进行,并同时对软件、硬件进行测试。软件方面主要从响应时间、处理速度、吞吐量、处理精度等方面来检测。可靠性测试:通常使用以下两个指标来衡量系统的可靠性:平均失效间隔时间(MeanTimeBetweenFailures,MTBF)是否超过了规定的时限,因故障而停机时间(MeanTimeToRepairs,MTTR)在一年中不应超过多少时间。

  • 必典考试
    推荐下载科目: 基于构件的开发题库 系统可靠性题库 系统安全性和保密性题库 分布式系统题库 知识产权与法律法规题库 专业英语题库 数据库系统题库 嵌入式系统题库 操作系统题库 系统架构设计论文题库
    @2019-2025 必典考网 www.51bdks.net 蜀ICP备2021000628号 川公网安备 51012202001360号