1、系统分析师-面向对象技术及答案解析(总分:61.00,做题时间:90 分钟)1.在某信息管理系统中存在两个类:类“客户”和类“订单”。它们之间的业务关系是:一个客户提交零个或多个订单;一个订单由一个且仅由一个客户提交。能够正确表示这个业务关系的 UML 类图是_。 *(分数:1.00)A.B.C.D.UML 提供了 4 种结构图用于对系统的静态方面进行可视化、详述、构造和文档化。其中 (17) 是面向对象系统建模中最常用的图,用于说明系统的静态设计视图;当需要说明系统的静态实现视图时,应该选择 (18) ;当需要说明体系结构的静态实施视图时,应该选择 (19) 。(分数:3.00)A.构件图B
2、.类图C.对象图D.部署图A.构件图B.协作图C.状态图 D。部署图A.协作图B.对象图C.活动图D.部署图2.以下与“模式”相关的叙述中,正确的是_。(分数:1.00)A.采用设计模式允许在非面向对象程序设计语言中使用面向对象的概念B.单身模式(Singleton)描述了只有一个方法和属性的类的集合C.在 MVC(模型/视图/控制器)模式中,1 个模型可以用于多个视图D.在 MVC 模式中,控制器是将应用问题域中包含的抽象领域知识呈现给用户的方式3.面向对象程序设计语言的_机制,实现了方法的定义与具体的对象无关,而对方法的调用则可以关联于具体的对象。(分数:1.00)A.模板B.多态C.动态
3、绑定D.多重绑定在一个客户信息系统中存在两种类型的客户:个人客户和集团客户。对于个人客户,系统中保存了其客户标识和基本信息(包括姓名、住宅电话和 emil);对于集团客户,系统中保存了其客户标识,以及与该集团客户相关的若干个联系人的信息(联系人的信息包括姓名、住宅电话、email、办公电话和职位)。 根据上述描述,得到了如图 1-5 所示的 UML 类图,其中类“客户”的属性有 (33) :类“人”的属性有 (34) 。 *(分数:2.00)A.客户标识B.姓名、住宅电话、emailC.姓名、住宅电户、办公电话、email、职位D.客户标识、办公电话、职位A.客户标识B.姓名、住宅电话、ema
4、ilC.姓名、住宅电户、办公电话、email、职位D.客户标识、办公电话、职位4.在以下关于类的相关描述中,不正确的是_。(分数:1.00)A.同一个类的对象具有不同的对象自身引用值B.同一个类的对象具有不同的静态数据成员值C.一个类的静态方法只能访问该类的静态成员变量D.一个类的静态成员变量可被该类的所有方法访问5.UML 用例图展示了各类 actor 与系统所提供的用例之间的连接。在银行储蓄管理信息系统中,不属于外部 actor 的是_。(分数:1.00)A.存折和存取款单B.银行工作人员C.储蓄客户D.储蓄机6.重置(over riding)的基本思想是通过_机制的支持,使得子类在继承父
5、类界面定义的前提下,用适合于自己要求的实现去置换父类中的相应实现。(分数:1.00)A.对象引用B.动态绑定C.多态迁移D.类型匹配7.现有两个用例 UC1 和 UC2。其中 UC2 是一个完整的用例,可被实例化,而 UC1 需要 UC2 中的事件流才可被实例化,且 UC1 指定了使用 UC2 的精确位置,则 UC1 和 UC2 间的关系是“_”。(分数:1.00)A.includeB.extendC.generalizeD.call8.用 UML 建立业务模型是理解企业业务过程的第一步。使用活动图(activity diagram)可显示业务工作流的步骤、决策点,以及完成每一步骤的角色和对象
6、。它强调_。(分数:1.00)A.上下层次关系B.时问和顺序C.对象间的迁移D.对象间的控制流9.对于如图 1-4 所示的 UML 类图,正确的描述是_。 *(分数:1.00)A.类 O 的实例中包含了对类 P 的实例的引用B.类 O 的实例中包含了对类 Q 的实例的引用C.类 P 的实例中包含了对类 O 的实例的引用D.类 P 的实例中包含了对类 Q 的实例的引用在面向对象技术中,一个子类的对象同时又属于父类,它继承了父类的一切属性,这种多态性称为 (39) 。同一个算子在不同的表达式中可能有不同的操作意义,这种多态性称为 (40) 。编译程序根据上下文判定算子的操作意义,这称为 (41)
7、。(分数:3.00)A.参数多态B.过载多态C.包含多态D.隐含多态A.参数多态B.过载多态C.包含多态D.隐含多态A.算子鉴别B.算子操作C.算子定义D.算子运算10.在 UML 建模过程中,对象行为是对象问为完成某一目的而进行的一系列消息交换。若需要描述跨越多个用例的单个对象的行为,使用_是最为合适的。(分数:1.00)A.Statechart DiagramB.Interactive DiagramC.Activity DiagramD.Collaboration Diagram11.根据如图 1-7 所示的 UML 类图可知,类 Car 和类 Boat 中的 move()方法_。 *(
8、分数:1.00)A.引用了类 Transport 的 move()方法B.重置了类 Transport 的 move()方法C.是类 Transport 的 move()方法的聚集D.是类 Transport 的 move()方法的泛化12.采用 UML 分析用户需求时,用例 UC1 可以出现在用例 UC2 出现的任何位置,那么 UC1 和 UC2 之间的关系是_。(分数:1.00)A.includeB.extendC.generalizeD.call13.在使用 UML 建模时,序列图展现了一组对象和由这组对象收发的消息,该图的特点是_。(分数:1.00)A.强调对象行为的事件顺序,常用于对
9、反应式系统建模B.本质上是一个状态图,显示从活动到活动的信息流的状态迁移C.为每个路径标上顺序号,为标明每个消息的时间顺序而给消息加数字前缀D.有生命线及控制焦点,用于按时间顺序对控制流建模在 UML 的通用机制中, (7) 用于把元素组织成组; (8) 是系统中遵从一组接口规范且付诸实现的物理的、可替换的软件模块。(分数:2.00)A.包B.类C.接口D.构件A.包B.类C.接口D.构件14.在 UML 中,_把活动图中的活动划分为若干组,并将划分的组指定给对象,这些对象必须履行该组所包括的活动,它能够明确地表示哪些活动是由哪些对象完成的。(分数:1.00)A.组合活动B.同步条C.活动D.
10、泳道15.以下关于 UML 文档的叙述中,正确的是_。(分数:1.00)A.描述了面向对象分析与设计的结果B.指导开发人员如何进行面向对象设计C.给出了软件的开发过程和设计流程D.指导开发人员如何进行面向对象分析16.下列有关面向对象的叙述不正确的是_。(分数:1.00)A.面向对象设计最根本的意图是适应需求变化B.应尽量针对接口编程,而不要针对实现编程C.尽量使用继承而不是聚合,因为继承使得类间的耦合性最小D.尽量使用已有的类库17.下列关于面向对象的分析与设计的描述,正确的是_。(分数:1.00)A.面向对象设计描述软件要做什么B.面向对象分析不需要考虑技术和实现层面的细节C.面向对象分析
11、的输入是面向对象设计的结果D.面向对象设计的结果是简单的分析模型18.以下关于静态多态方法(函数)的重载描述中,正确的是_。(分数:1.00)A.其方法名(函数名)可以不同B.必须在参数顺序或参数类型上有所不同C.只需在返回值类型上有所不同D.必须在返回值类型以及参数类型上有所不同19.用 UML 建立业务模型是理解企业业务过程的第一步。业务人员扮演业务中的角色及其交互方式,例如长途汽车站的售票员是业务人员,大型商场的销售员也是业务人员,他们之间的关系是_。(分数:1.00)A.AggregationB.CompositionC.GeneralizationD.Association20.面向
12、对象技术中,_的基本功能,是将一个对象的工作分配到与之相关的更为特殊的对象上,它既可静态定义也可动态定义。(分数:1.00)A.继承B.分类C.多态D.委托21.类的实例化过程不仅仅是根据单个类进行的空问分配、初始化和绑定,它是一种实例的合成过程。指导编译程序进行这种合成的是_。(分数:1.00)A.每个实例的初始状态B.实例的个数C.类层次结构D.多态的种类回调(Callback)函数是面向过程的程序设计语言中常用的一种机制,而设计模式中的 (45) 模式就是回调机制的一个面向对象的替代品。该模式的意图是 (46) 。(分数:2.00)A.Strategy(策略)B.Adapter(适配器)
13、C.Command(命令)D.Observer(观察者)A.使原本由于接口不兼容而不能一起工作的那些类可以一起工作B.将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化,将请求排队或记录请求日志,支持可撤销的操作C.定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新D.使算法可独立于使用它的客户而变化22.在使用 UML 建模时,通常采用“描述需求构造系统结构描述系统行为”的设计步骤。其中,UML 结构包括了基本构造块、公共机制和_。(分数:1.00)A.把这些构造块放在一起的规则B.类与对象的划分、接口与实现的分离C.描述系统细节
14、的规格说明D.构造块的特性描述23.协作图主要描述对象间的交互与连接,它_。(分数:1.00)A.能够表示消息的顺序和嵌套关系B.能够表示消息的顺序关系,但不能表示消息的嵌套关系C.能够表示消息的嵌套关系,但不能表示消息的顺序关系D.既不能表示消息的顺序关系,也不能表示消息的嵌套关系24.下列关于 UML 叙述正确的是_。(分数:1.00)A.UML 是一种语言,语言的使用者不能对其扩展B.UML 仅是一组图形的集合C.UML 仅适用于系统的分析与设计阶段D.UML 是独立于软件开发过程的在面向对象分析过程中,用概念模型来详细描述系统的问题域,用 (13) 来表示概念模型;用 (14) 来描述
15、对象行为。(分数:2.00)A.序列图B.类图C.协作图D.用例图A.序列图和协作图B.用例图和活动图C.状态图和活动图D.用例图和构件图25.面向对象系统中有两种基本的复用方式:框架复用和类库复用。下列关于框架和类库的描述不正确的是_。(分数:1.00)A.框架是一个“半成品”的应用程序B.类库只包含一系列可被应用程序调用的类C.框架会为一个特定的目的实现一个基本的、可执行的架构D.类库是框架的一种扩展形式26.在 UML 所提供的扩展机制中,标记值(Tagged values)扩展了 UML_。(分数:1.00)A.语境,允许创建新的构造块B.词汇,允许创建新的构造块C.构造块的特性,允许
16、创建详述元素的新信息D.构造块的语义,允许增加新的规则或修改现有的规则27.图 1-8 描述了一种设计模式,该设计模式不可以_。 *(分数:1.00)A.将对象连成一条链,并沿着该链传递请求B.动态决定由一组对象中某个对象处理该请求C.使多个对象都有机会处理请求,避免请求的发送者和接收者间的耦合关系D.动态指定处理一个请求的对象集合,并高效率地处理一个请求28.用例从用户角度描述系统的行为。用例之间可以存在一定的关系。在“某图书馆管理系统”用例模型中,所有用户使用系统之前必须通过“身份验证”。“身份验证”可以有“密码验证”和“智能卡验证”两种方式。“身份验证”、“密码验证”和“智能卡验证”之间
17、是_关系。(分数:1.00)A.关联B.包含C.扩展D.泛化29.面向对象程序设计的基本思想是,通过建立和客观实际相对应的对象,并通过这些对象的组合来创建具体的应用。面向对象的程序设计语言必须具备_特征。(分数:1.00)A.继承性、封装性、可重用性B.封装性、继承性、多态性C.封装性、多态性、可移植性D.继承性、多态性、可重用性30.所有对象可以分成为各种对象类,有一种特殊的类称为抽象类,其主要特征是_。(分数:1.00)A.没有方法B.没有实例C.没有操作D.没有属性31.在 UML 的动态建模机制中,_描述了对象之间动态的交互关系,还描述了交互的对象之间的静态链接关系,即同时反映系统的动
18、态和静态特征。(分数:1.00)A.状态图(State Diagram)B.序列图(Sequence Diagram)C.协作图(Collaboration Diagram)D.活动图(Activity Diagram)己知 3 个类 O、P 和 Q,类 O 中定义了一个私有方法 F1、一个公有方法 F2 和一个受保护的方法 F3:类 P和类 Q 是类 O 的派生类,其继承方式如下所示: class P:protected O ; class Q:public O ; 关于方法 F1 的描述中正确的是 (58) ;关于方法 F2 韵描述中正确的是 (59) ;在关于方法 F3 的描述中正确的是
19、 (60) 。(分数:3.00)A.方法 F1 无法被访问B.只有在类。内才能访问方法 F1C.只有在类 P 内才能访问方法 FlD.只有在类 Q 内才能访问方法 F1A.类 O、P 和 Q 的对象都可以访问方法 F2B.类 P 和 Q 的对象都可以访问方法 F2C.类 O 和 Q 的对象都可以访问方法 F2D.只有在类 P 内才能访问方法 F2A.类 O、P 和 Q 的对象都可以访问方法 F3B.类 O、P 和 Q 的对象都不可以访问方法 F3C.类 O 和 Q 的对象都可以访问方法 F3,但类 P 的对象不能访问方法 F3D.类 P 和 Q 的对象都可以访问方法 F3,但类 Q 的对象不能
20、访问方法 F332.已知 3 个类 O、P 和 Q,其中类 O 由类 P 的一个实例和类 Q 的 1 个或多个实例构成。能够正确表示类O、P 和 Q 之间关系的 UML 类图是_。 *(分数:1.00)A.B.C.D.33.对象及其类型之间的关系称为分类(classification)。_的对象可以改变自身类型或角色。(分数:1.00)A.动态分类B.多态分类C.逻辑分类D.多重分类34.UML 的状态图展示了一个特定对象的所有可能状态,以及由于各种事件的发生而引起的状态间的转移(transition)。如果一个并发的状态由 m 个并发的子状态图组成,那么该并发状态在某时刻的状态由_个子状态图
21、中各取一个状态组合而成。(分数:1.00)A.任意一B.任意两C.每一D.任意 n(nm)35.在较高的抽象层次上,传统的程序流程图与 UML 中活动图最根本的区别在于_。(分数:1.00)A.程序流程图明确地指定了每个活动的先后顺序,而活动图仅描述了活动和必要的工作顺序B.活动图不提供循环控制结构,而程序流程图提供C.活动图不能表示并发活动,而程序流程图可以表示并发活动D.两者采用不同的图形符号系统在用例建模的过程中,若几个用例执行了同样的功能步骤,这时可以把这些公共步骤提取成独立的用例。这种用例称为 (2) 。在 UML 的用例图上,将用例之间的这种关系标记为 (3) 。(分数:2.00)
22、A.扩展用例B.抽象用例C.公共用例D.参与用例A.associationB.extendsC.usesD.inheritances36.以下叙述中正确的是_。(分数:1.00)A.若对象 A 可以给对象 B 发送消息,那么对象 A、B 相互可见B.对象间不能共享类定义的变量,但可通过类名访问静态变量(类变量)C.封装反映了类问的一种层次关系,而组合反映了一种整体与部分的关系D.单身模式能够保证一个类仅有一个实例37.在关于用例(use case)的描述中,错误的是_。(分数:1.00)A.用例将系统的功能范围分解成许多小的系统功能陈述B.一个用例代表了系统的一个单一的目标C.用例是一个行为上
23、相关的步骤序列D.用例描述了系统与用户的交互UML 提供了 5 种对系统动态方面建模的图,其中 (23) 对系统行为组织和建模; (24) 对系统功能建模,它强调对象之间的控制流; (25) 之间是同构的。(分数:3.00)A.用例图B.序列图C.协作图 D。状态图A.用例图B.活动图C.状态图D.序列图A.状态图和活动图B.用例图和活动图C.序列图和仂、作图D.活动图和协作图38.当_时,用例是捕获系统需求最好的选择。(分数:1.00)A.系统具有很少的用户B.系统具有很少的接口C.系统算法复杂,功能单一D.系统有很多参与者39.在 UML 中的状态图和活动图的叙述中,_是错误的。(分数:1
24、.00)A.状态图和活动图都是对系统的动态方面进行建模的图B.活动图是状态图的一种特殊情况,其中所有或大多数状态是活动状态C.状态图显示从状态到状态的控制流,活动图显示的是从活动到活动的控制流D.在对一个对象的生存期建模时,只能使用状态图系统分析师-面向对象技术答案解析(总分:61.00,做题时间:90 分钟)1.在某信息管理系统中存在两个类:类“客户”和类“订单”。它们之间的业务关系是:一个客户提交零个或多个订单;一个订单由一个且仅由一个客户提交。能够正确表示这个业务关系的 UML 类图是_。 *(分数:1.00)A.B.C.D. 解析:解析 由试题中的关健信息“一个客户提交 0 个或多个订
25、单;一个订单由一个且仅由一个客户提交”可知,对应每个“订单”类的实例,都必须存在 1 个“客户”类的实例,对应每个“客户”类的实例,可能存在 0 个或多个“订单”类的实例。可见,正确表示该信息管理系统中类“客户”和类“订单”之间业务关系,是选项 D 的 UML 类图。 选项 A 的图示“*”表示的是一种泛化关系(继承关系的反关系);选项 B 的图示“*”表示的是一种聚集关系(一种特殊的关联关系),空心菱形的一端表示整体的概念;选项 C 的图示“”也是表示一种关联关系,但该 UML 类图所表达的关联多重度不符合试题的描述。UML 提供了 4 种结构图用于对系统的静态方面进行可视化、详述、构造和文
26、档化。其中 (17) 是面向对象系统建模中最常用的图,用于说明系统的静态设计视图;当需要说明系统的静态实现视图时,应该选择 (18) ;当需要说明体系结构的静态实施视图时,应该选择 (19) 。(分数:3.00)A.构件图B.类图 C.对象图D.部署图解析:A.构件图 B.协作图C.状态图 D。部署图解析:A.协作图B.对象图C.活动图D.部署图 解析:解析 在 UML 视图中,主要有用况视图、逻辑视图、组件视图、并发视图和部署视图等类型。它们各自的说明、组成和使用者见表 1-5。 表 1-5 DML 视图相关说明表 视图 说明 组成 使用者用况视图描述系统应交付的功能,即从外部参与者的角度出
27、发所观察到的系统功能,是其他视图的核心和基础。可用于测试系统是否满足用户需求、验证系统的有效性静态描述系统功能的用况图和动态观察系统功能的序列图、协作图、活动图用户、设计人员、开发人员、测试人员逻辑视图从系统静态结构(类图、对象图)和动态行为(状态图、序列图、协作图、活动图)角度出发显示如何实现系统的功能,它关注的是系统的内容类图、对象图、状态图、序列图、协作图、活动图设计人员、开发人员构件视图用来显示系统代码构件的组织结构,描述系统实现模块以及它们之间的依赖关系 构件图 开发人员并发视图用以显示系统的并发性,主要包含形成系统并发与同步的线程和进程。它描述的是系统的非功能属性,主要考虑资源的有
28、效使用、代码的并发执行和异步事件的处理动态图(状态图、序列图、协作图、活动图)和实现图(构件图、部署图)开发人员、系统集成人员部署视图显示系统的具体部署,即将软件系统部署到由处理器设备组成的硬件结构中 部署图开发人员、系统集成人员、测试人员在面向对象系统建模过程中,通常用概念模型来详细描述系统的问题域。类图用于描述系统的静态结构化设计,即用来表示概念模型,它最基本的元素是类或接口,表达了类、接口以及它们之间的静态结构和关系。因此,问题(17)的正确答案是选项 B 的“类图”。 注意到本试题讨论的是与“系统的静态方面”相关的主题,因此可先排除描述系统动态行为的“协作图”、“状态图”、“活动图”的
29、选项,即排除问题(18)的 B、C 选项和问题(19)的 A、C 选项。 由表 1-5 可知,构件图可用于描述系统实现模块以及它们之间的依赖关系,即可说明系统的静态实现视图。部署图可用于说明体系结构的静态实施视图。2.以下与“模式”相关的叙述中,正确的是_。(分数:1.00)A.采用设计模式允许在非面向对象程序设计语言中使用面向对象的概念B.单身模式(Singleton)描述了只有一个方法和属性的类的集合C.在 MVC(模型/视图/控制器)模式中,1 个模型可以用于多个视图 D.在 MVC 模式中,控制器是将应用问题域中包含的抽象领域知识呈现给用户的方式解析:解析 在面向对象软件开发过程中,设
30、计模式使开发人员可以更加简单、方便地复用成功的设计和体系结构,它是对被用来在特定场景下解决一般设计问题的类和相互通信的对象的描述。其 4 个基本要素是:模式名称、问题(模式的使用场合)、解决方案和效果。 单身模式用于保证一个类仅有一个实例,并提供一个访问它的全局访问点。对于系统中的某些类,只有一个实例是很重要的。 MVC(模型/视图/控制器)是为需要为同样的数据提供多个视图的应用程序而设计的,它能很好地使数据层和表示层分离。这种架构模式把应用程序分为模型、视图、控制器等 3 种对象类型。其中,模型是应用问题域中包含的抽象领域知识;视图是将应用问题域中包含的抽象领域知识呈现给用户的方式,1 个模
31、型可以用于多个视图;控制器是指用户界面对用户输入的响应方式。3.面向对象程序设计语言的_机制,实现了方法的定义与具体的对象无关,而对方法的调用则可以关联于具体的对象。(分数:1.00)A.模板B.多态C.动态绑定 D.多重绑定解析:解析 选项 A 的“模板(template)”是面向对象技术的一种参数化类。选项 B 的“多态性”使作用于不同的对象的同一个操作可以有不同的解释,从而产生不同的执行结果。选项 C 的“动态绑定(dynamic binding)”是面向对象程序设计语言中的一种机制。这种机制实现了方法的定义与具体的对象无关,而对方法的调用则可以关联于具体的对象。选项 D 是一个虚构的选
32、项。在一个客户信息系统中存在两种类型的客户:个人客户和集团客户。对于个人客户,系统中保存了其客户标识和基本信息(包括姓名、住宅电话和 emil);对于集团客户,系统中保存了其客户标识,以及与该集团客户相关的若干个联系人的信息(联系人的信息包括姓名、住宅电话、email、办公电话和职位)。 根据上述描述,得到了如图 1-5 所示的 UML 类图,其中类“客户”的属性有 (33) :类“人”的属性有 (34) 。 *(分数:2.00)A.客户标识 B.姓名、住宅电话、emailC.姓名、住宅电户、办公电话、email、职位D.客户标识、办公电话、职位解析:A.客户标识B.姓名、住宅电话、email
33、 C.姓名、住宅电户、办公电话、email、职位D.客户标识、办公电话、职位解析:解析 由试题关健信息可知,“对于个人客户,系统中保存了其客户标识对于集团客户,系统中保存了其客户标识”由此,“客户标识”是个人客户和集团客户的共同属性,因此该标识也必然是类“客户”的一个属性。据此可先排除问题(1)的选项 B 和选项 C。对于问题(1)选项 D 的“办公电话、职位”是类“集团客户”的属性,如果它们也是类“客户”的属性,那么类“个人客户”也必然继承这两个属性,而试题中对于类“个人客户”无此相关描述,可见选项 D 不是正确答案。因此依据试题的描述,类“客户”的属性只有“客户标识”。 在 UML 类图中
34、,“*”表示其相联的两个类之间存在泛化关系,即在图 1-5 中类“人”是类“联系人”的基类;“*”表示其相联的两个类之间存在关联关系,即在图 1-5 中类“人”与类“个人客户”之间具有关联关系。由试题关健信息“对于个人客户,系统中保存了其客户标识和基本信息(包括姓名、住宅电话和 E-mail)”,以及问题(1)分析中类“个人客户”继承了类“客户”的“客户标识”属性,可见类“个人客户”还有“姓名、住宅电话和 E-mail”属性没有体现,在图 1-5 中这些属性应该从类“人”中进行关联。 从试题关健信息“联系人的信息包括姓名、住宅电话、E-mail、办公电话和职位”可知,类“联系人”除了从类“人”
35、中继承了“姓名、住宅电话、E-mail”属性之外,还追加了“办公电话、职位”属性。这一点分析也证明了类“人”具有“姓名、住宅电话、E-mail”的属性。 解答此类试题的关健思路是识记 UML 各种关系的图示,以及消化关联的多重度概念。4.在以下关于类的相关描述中,不正确的是_。(分数:1.00)A.同一个类的对象具有不同的对象自身引用值B.同一个类的对象具有不同的静态数据成员值 C.一个类的静态方法只能访问该类的静态成员变量D.一个类的静态成员变量可被该类的所有方法访问解析:解析 类允许开发者自定义一种新的类型及其相关的操作。类是对象的模板,对象是类的实例。选项 A 的“对象自身引用值”是面向
36、对象程序设计语言中特有的、十分重要的机制。每个对象都有属于自己的对象自身引用值。 选项 B 的“静态数据成员”用来实现同一个类的不同对象之间的数据共享,它不属于某个对象。同一个类的不同对象共享静态数据成员值。如该值被类中某一对象修改时,同类的其他对象也可看到此次修改。注意:“不同的类的对象具有相同的静态数据成员值”的表述也是错误的。 静态成员可分为静态成员变量和静态方法。只要对静态成员变量的值更新一次,所有对象的该静态成员变量值都会被更新。静态成员函数可以直接访问静态成员,但不能直接访问非静态成员。5.UML 用例图展示了各类 actor 与系统所提供的用例之间的连接。在银行储蓄管理信息系统中
37、,不属于外部 actor 的是_。(分数:1.00)A.存折和存取款单 B.银行工作人员C.储蓄客户D.储蓄机解析:解析 在 UML 用例图中,外部行为者(actor)是指那些可能使用用例的人或外部系统。在银行储蓄管理系统中,银行工作人员、储蓄客户、储蓄机均可能使用该信息系统中的某些用例。因此,它们都是该信息系统的外部行为者(actor)。6.重置(over riding)的基本思想是通过_机制的支持,使得子类在继承父类界面定义的前提下,用适合于自己要求的实现去置换父类中的相应实现。(分数:1.00)A.对象引用B.动态绑定 C.多态迁移D.类型匹配解析:解析 重置(over riding)的
38、基本思想是通过动态绑定机制的支持,使得子类在继承父类界面定义的前提下,用适合于自己要求的实现去置换父类中的相应实现。在 Java 语言中,通过抽象方法来进行重置的声明,通过方法查找实现重置方法体的动态绑定。在 c+语言中,通过虚拟函数的定义来进行重置的声明,通过虚拟函数跳转表结构来实现重置方法体的动态绑定。7.现有两个用例 UC1 和 UC2。其中 UC2 是一个完整的用例,可被实例化,而 UC1 需要 UC2 中的事件流才可被实例化,且 UC1 指定了使用 UC2 的精确位置,则 UC1 和 UC2 间的关系是“_”。(分数:1.00)A.include B.extendC.generali
39、zeD.call解析:解析 注意本试题描述中的用词“精确位置”,说明用例 UC1 对用例 UC2 的实现很重要。由试题的关键信息“UC1 需要 UC2 中的事件流才可被实例化”可知,作为一个完整的用例的 UC2 实现了用例 UC1的部分功能。因此,应该使用包含(include)关系来表示用例 UC1 和 UC2 之间的关系。 如果一个用例明显混合了两种(或两种以上)的不同场景,即在具体情况可能发生多种活动,可将这个用例分为一个主用例和一个或多个辅助用例时,可以使用选项 B 的扩展关系(extend)来表示用例问的关系。 选项 C 的“generalize”在 UML 可解释成“泛化”;选项 D
40、 的“call”可解释成“调用”。 解答此类试题的一般思路是消化和理解用例问各种关系的基本概念。8.用 UML 建立业务模型是理解企业业务过程的第一步。使用活动图(activity diagram)可显示业务工作流的步骤、决策点,以及完成每一步骤的角色和对象。它强调_。(分数:1.00)A.上下层次关系B.时问和顺序C.对象间的迁移D.对象间的控制流 解析:解析 用 UML 建立业务模型是理解业务过程的第一步。使用活动图可表示企业业务的工作流。这种 UML 图显示工作流中的步骤、决策点,以及完成每一步骤的角色和对象。它强调对象间的控制流,是一种特殊的状态图(statechart diagram
41、)。 在 UML 模型图中,协作图(collaboration diagram)按组织结构对控制流建模,它强调上下层次关系。序列图(sequence diagram)用于按时问顺序对控制流建模,它强调的是时间和顺序。9.对于如图 1-4 所示的 UML 类图,正确的描述是_。 *(分数:1.00)A.类 O 的实例中包含了对类 P 的实例的引用B.类 O 的实例中包含了对类 Q 的实例的引用C.类 P 的实例中包含了对类 O 的实例的引用 D.类 P 的实例中包含了对类 Q 的实例的引用解析:解析 在图 1-4 所示的 UML 类图中,带箭头方向的实线“*”表示类 O、P(既可以是相同类也可以
42、是不同类)之间存在关联关系。根据图中的箭头走向可知,导航方向是 PO,说明可以从类 P 的实例导航到类 O 的实例,因此在类 P 中必然包含一个对类 O 的实例的引用。在图 1-4 中,“-Q”表示的是关联一端的角色名称。在面向对象技术中,一个子类的对象同时又属于父类,它继承了父类的一切属性,这种多态性称为 (39) 。同一个算子在不同的表达式中可能有不同的操作意义,这种多态性称为 (40) 。编译程序根据上下文判定算子的操作意义,这称为 (41) 。(分数:3.00)A.参数多态B.过载多态C.包含多态 D.隐含多态解析:A.参数多态B.过载多态 C.包含多态D.隐含多态解析:A.算子鉴别
43、B.算子操作C.算子定义D.算子运算解析:解析 本试题的前两个问题讨论的主题是与“多态性”相关的内容。多态性是指作用于不同的对象的同一个操作可以有不同的解释,从而产生不同的执行结果。通俗地说,具有相似功能的不同函数使用同一个函数名来实现,从而可以使用相同的调用方法来调用这些具有不同功能的同名函数。多态性可分为参数多态、包含多态、过载多态、隐含多态等 4 种类型。这些类型各自实现的功能及区别见表1-8。 表 1-8 各方法名称及功能描述表 类型 说明通用多态参数多态与类模板相关联,类模板所包含的操作涉及的类型必须用类型参数实例比包含多态一个继承了父类的一切属性的子类的对象同时又属于父类过载多态同
44、一个算子(函数名等)在不同的上下文中可能有不同的操作意义专用多态隐含多态通过语义操作把一个变元的类型加以变换,以符合一个函数的要求通常将编译程序根据上下文判定算子的操作意义的过程称为算子鉴别。 解答此类试题的一般思路是消化、理解与面向对象技术相关的基本概念。10.在 UML 建模过程中,对象行为是对象问为完成某一目的而进行的一系列消息交换。若需要描述跨越多个用例的单个对象的行为,使用_是最为合适的。(分数:1.00)A.Statechart Diagram B.Interactive DiagramC.Activity DiagramD.Collaboration Diagram解析:解析 对
45、于选项 A 的状态图(Statechart Diagram),展示了一个特定对象的所有可能状态,以及由于各种事件的发生而引起的状态间的转移。若需要描述跨越多个用例的单个对象的行为,使用它是最合适的。 对于选项 B 的交互图(:Interactive Diagram),它是序列图(Sequence Diagram)和协作图的统称。它展现了各个对象如何依据某种行为进行相互协作。 对于选项 C 的活动图(Activity Diagram),是一种特殊的状态图,它用于描述需要做的活动、执行这些活动的顺序以及工作流。它强调对象问的控制流。 对于选项 D 的协作图(collaboration diagra
46、m),描述对象之间动态的交互关系以及交互对象之间的静态链接关系。它强调收发消息对象的结构组织(上下层次关系)。11.根据如图 1-7 所示的 UML 类图可知,类 Car 和类 Boat 中的 move()方法_。 *(分数:1.00)A.引用了类 Transport 的 move()方法B.重置了类 Transport 的 move()方法 C.是类 Transport 的 move()方法的聚集D.是类 Transport 的 move()方法的泛化解析:解析 在 UML 类图中,“*”表示其相联的两个类之间存在泛化关系,即在图 1-7 中显示了一个继承结构:类 Transport 为基类
47、,其子类分别为类 Car 和类 Boat。同是注意到,在图 1-7 中的类Transport 的名字之下有一个标识。该标识用于说明该类是一个抽象类,类中的方法 move()必须在子类中重新定义的纯虚拟函数。由图 1-7 中可以看出,在两个子类中都定义了函数原型完全相同的 move()方法。 在面向对象程序设计中,使用动态多态一一重置(overriding)时需满足 3 个条件:类之间具有继承关系、基类中至少定义一个纯虚拟函数、在子类中重新定义这个纯虚拟函数。因此,图 1-7 给出的 UML 类图结构满足了重置的 3 个条件,说明子类 Car 和子类 Boat 中的 move()方法重置了基类
48、Transport 的 move()方法。12.采用 UML 分析用户需求时,用例 UC1 可以出现在用例 UC2 出现的任何位置,那么 UC1 和 UC2 之间的关系是_。(分数:1.00)A.includeB.extendC.generalize D.call解析:解析 用例之间的泛化关系类似于类之间的泛化关系。子用例继承父用例的行为与含义。子用例还可以增加或者覆盖父用例的行为。子用例可以出现在父用例出现的任何位置。 本试题中,用例 UC1 可以出现在用例 UC2 出现的任何位置,那么 UC1 与 UC2 之间是选项 C 的“泛化(Generalization)”关系。注意,不是“用例 UC1 可以出现在用例 UC2 的任何位置”。 选项 A 的“包含(include)”关系,表示基础用例在它内部,说明某一位置上显式的合并是另一个用例的行为。被包含用例从不孤立存在,仅作为某些包含它的更大的基础用例的一部分出现。 选项 B 的“扩展(extend)”关系,表示基础用例在延伸用例间的一个位置上,隐式合并了另一个用例的行为。基础用例可以单独存在,但是在一定的条件下,它的行为可以被另一个用例的行为延伸。 选项 D 的“call”可解释
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1