ImageVerifierCode 换一换
格式:DOC , 页数:18 ,大小:80KB ,
资源ID:1336305      下载积分:5000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-1336305.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(【计算机类职业资格】系统分析师-面向对象方法学2及答案解析.doc)为本站会员(bowdiet140)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

【计算机类职业资格】系统分析师-面向对象方法学2及答案解析.doc

1、系统分析师-面向对象方法学 2及答案解析(总分:40.00,做题时间:90 分钟)一、单项选择题(总题数:26,分数:40.00)在某银行业务的用例模型中,“取款”用例需要等到“存款”用例执行之后才能执行,两个用例之间的关系属于 (26) ;“取款”和“存款”两个用例中都需要执行查询余额的功能,将查询余额提取成独立的用例,那么“取款”和“存款”用例与“查询余额”用例之间的关系属于 (27) 。(分数:2.00)A.关联关系B.扩展关系C.使用关系D.依赖关系A.扩展关系B.使用关系C.依赖关系D.继承关系UML提供了 5种对系统动态方面建模的图,其中 (4) 对系统行为组织和建模; (5) 对

2、系统功能建模,它强调对象之间的控制流; (6) 之间是同构的。(分数:3.00)A.用例图B.顺序图C.协作图D.状态图A.用例图B.活动图C.状态图D.顺序图A.状态图和活动图B.用例图和活动图C.顺序图和协作图D.活动图和协作图1.采用 UML分析用户需求时,用例 UC1可以出现在用例 UC2出现的任何位置,那么 UC1和 UC2之间的关系是 (2) 。(分数:1.00)A.includeB.extendC.generalizeD.call2.希赛公司欲开发一个在线交易系统。为了能够精确表达用户与系统的复杂交互过程,应该采用 UML的 (25) 进行交互过程建模。(分数:1.00)A.类图

3、B.顺序图C.部署图D.对象图UML用关系把事物结合在一起, (23) 描述一个事物发生变化会影响另一个事物的语义; (24) 描述特殊元素的对象可替换一般元素的对象。(分数:2.00)A.聚合关系B.关联关系C.包含关系D.依赖关系A.实现关系B.聚合关系C.泛化关系D.关联关系UML采用 4+1视图来描述软件和软件开发过程,其中 (9) 描绘了所设计的并发与同步结构; (10) 表示软件到硬件的映射及分布结构;UML 中的类图可以用来表示 4+1视图中的 (11) 。(分数:3.00)A.逻辑视图(Logical View)B.实现视图(Implementation View)C.进程视图

4、(Process View)D.部署视图(Deployment View)A.逻辑视图B.实现视图C.进程视图D.部署视图A.逻辑视图B.实现视图C.进程视图D.部署视图3. (32) 适用于描述复杂算法的执行流程。(分数:1.00)A.活动图B.状态图C.类图D.用例图4.希赛图书订单处理系统中,“创建新订单”和“更新订单”两个用例都需要检查客户的账号是否正确,为此定义一个通用的用例“核查客户账户”。用例“创建新订单”和“更新订单”与用例“核查客户账户”之间是 (20) 。(分数:1.00)A.包含关系B.聚合关系C.泛化关系D.关联关系面向对象设计是模型驱动和用例驱动的,整个设计过程将 (

5、34) 作为输入,并生成 (35) 作为输出。(分数:2.00)A.逻辑数据流图B.设计文档和用户说明C.需求类图D.需求模型A.物理数据流图B.设计文档和用户说明C.设计类图和系统顺序图D.设计模型5.面向对象分析的一项重要任务是发现潜在对象并进行筛选,错误的做法是删除 (29) 。(分数:1.00)A.系统范围之外的名词B.表示事件的名词C.不具有独特行为的名词D.一个对象的同义词6.雇员类含有计算报酬的行为,利用面向对象的 (28) ,可以使得其派生类专职雇员类和兼职雇员类计算报酬的行为有相同的名称,但有不同的计算方法。(分数:1.00)A.多态性B.继承性C.封装性D.复用性图 7-3

6、中左边的 UML类图描绘的是设计模式中的 (7) 模式。右边的 UML类图描述了该模式的一种应用,其中与左图中的“Creator”对应的类是 (8) 。(分数:2.00)A.CommandB.Factory MethodC.CompositeD.Class AdapterA.BankB.AccountC.CheckingD.Savings7.设计模式(Design pattern)是一套被反复使用、多数人知晓、经过分类编目的、代码设计经验的总结。下面关于设计模式所倡导的基本原则的描述,错误的是 (17) 。(分数:1.00)A.模块应对扩展开放,而对修改关闭B.优先使用继承,而不是组合C.要针

7、对接口编程,而不是针对实现编程D.抽象不应该依赖于细节,细节应当依赖于抽象UML的事物是对模型中最具有代表性的成分的抽象, (21) 是模型的静态部分,描述概念或物理元素; (22) 用来描述、说明和标注模型的任何元素。(分数:2.00)A.结构事物B.分组事物C.行为事物D.注释事物A.分组事物B.注释事物C.结构事物D.行为事物8.在面向对象方法中,信息流是通过向参与者或内部对象发送消息形成的。 (33) 用于描述进出系统的信息流。(分数:1.00)A.协作图B.顺序图C.数据流图D.流程图9.关于 UML中的状态图和活动图的叙述中, (3) 是错误的。(分数:1.00)A.状态图和活动图

8、都是对系统的动态方面进行建模的图B.活动图是状态图的一种特殊情况,其中所有或大多数状态是活动状态C.状态图显示从状态到状态的控制流,活动图显示的是从活动到活动的控制流D.在对一个对象的生存期建模时,只能使用状态图10.以下关于面向对象设计的叙述中,错误的是 (36) 。(分数:1.00)A.类的属性用于封装数据,类的方法用于封装行为B.面向对象设计的基本思想包括抽象、封装和可扩展性C.对象继承和多态可用来实现可扩展性D.对象持久化是指将数据库中的数据加载到内存中供应用程序访问11.在 UML的动态建模机制中, (1) 描述了对象之间动态的交互关系,还描述了交互的对象之童工的静态链接关系,即同时

9、反映系统的动态和静态牲。(分数:1.00)A.状态图B.顺序图C.协作图D.活动图图 7-4中左边的 UML类图描绘的是设计模式中的 (12) 模式。右边的 UML类图描述了该模式的一种应用,其中与左图中的“Abstraction”对应的类是 (13) 。(分数:2.00)A.CommandB.BridgeC.CompositeD.ProxyA.DataAccessB.DataAccessImplC.CustomerDMD.AccountDM12.面向对象分析的任务不包含 (30) 。(分数:1.00)A.建模系统功能B.发现并确定业务对象C.建模各对象的状态D.组织对象并确定对象间的关系13

10、.在企业应用系统开发中,方法调用(Method Invocation)和消息(Messaging)机制是两种常用的数据处理与交换方式。下面关于这两种机制的描述,不正确的是 (18) 。(分数:1.00)A.方法调用一般具有同步特性,而消息机制具有异步的特点B.从可靠性方面考虑,消息机制比方法调用更有优势C.从效率方面考虑,一般情况下消息机制比方法调用更有优势D.消息调用机制可以支持多个数据的发送者和接收者,更加灵活14.关于用例和类,错误的说法是 (31) 。(分数:1.00)A.两者都属于模型图的构成元素B.存在抽象用例和抽象类C.类图描述系统的部分静态视图,用例图描述系统与用户之间的交互视

11、图D.两者都可以用来描述系统的内部结构面向对象系统由对象及其相互间的通信构成。一般来说,面向对象软件的测试可以分为 4个层次进行。其中, (14) 测试,测试类中定义的每个方法,基本上相当于传统软件测试中的 (15) ; (16) 测试,测试一组协同工作的类之问的相互作用。(分数:3.00)A.类层B.模板层C.系统层D.算法层A.单元测试B.系统测试C.确认测试D.集成测试A.类层B.模板层C.系统层D.算法层采用面向对象技术设计银行信息系统,“账户类”应设计为 (37) ,“账户管理员类”应设计为 (38) 。(分数:2.00)A.控制类B.边界类C.接口类D.实体类A.控制类B.边界类C

12、.接口类D.实体类15.Java EE是 Java领域内企业级应用开发的框架与标准。下面关于采用 Java EE架构的描述,不正确的是 (19) 。(分数:1.00)A.Java EE定义了分布式环境中多层应用系统的架构,是多种 Java技术的混合体B.具有典型的三层结构:表现层、业务逻辑层和基础设施层C.不同的应用系统对底层支持系统的要求可能不同,因此每次开发时应该针对不同的应用需求对底层系统进行二次开发,提供支持接口D.要严格区分业务逻辑层和表现层,尤其应该注意不要在表现层中混杂业务代码遵守面向对象设计原则可以有效地提高系统的复用性和可维护性。应用 (39) 原则可扩展已有的系统,并为之提

13、供新的行为; (40) 原则建议在面向对象程序设计中,应尽量针对接口编程,而不是针对实现编程。(分数:2.00)A.开闭B.里氏替换C.依赖倒置D.接口隔离A.里氏替换B.依赖倒置C.接口隔离D.最小知识系统分析师-面向对象方法学 2答案解析(总分:40.00,做题时间:90 分钟)一、单项选择题(总题数:26,分数:40.00)在某银行业务的用例模型中,“取款”用例需要等到“存款”用例执行之后才能执行,两个用例之间的关系属于 (26) ;“取款”和“存款”两个用例中都需要执行查询余额的功能,将查询余额提取成独立的用例,那么“取款”和“存款”用例与“查询余额”用例之间的关系属于 (27) 。(

14、分数:2.00)A.关联关系B.扩展关系C.使用关系D.依赖关系 解析:A.扩展关系B.使用关系 C.依赖关系D.继承关系解析:分析 用例是在系统中执行的一系列动作,这些动作将生成特定参与者可见的价值结果。它确定了一个和系统参与者进行交互并可由系统执行的动作序列。用例模型描述的是外部执行者(actor)所理解的系统功能。用例模型用于需求分析阶段,它的建立是系统开发者和用户反复讨论的结果,表明了开发者和用户对需求规格达成的共识。两个用例之间的关系可以概括为两种情况。一种是用于重用的包含关系,用 include表示(在 UML 1.x版本中用 use表示);另一种是用于分离出不同行为的扩展,用 e

15、xtend表示(在 UML 1x版本中用 extends表示)。(1)包含关系。当可以从两个或两个以上的原始用例中提取公共行为,或者发现能够使用一个构件来实现某一个用例的部分功能很重要时,我们应该使用包含关系来表示它们。(2)扩展关系。如果一个用例明显地混合了两种或两种以上的不同场景,即根据情况可能发生多种事情,则将这个用例分为一个主用例和一个或多个辅用例描述可能更加清晰。另外,用例之间还存在一种泛化关系。用例可以被特别列举为一个或多个子用例,这被称为用例泛化。当父用例能够被使用时,任何子用例也可以被使用。例如,我们购买飞机票,既可以是电话订票,也可以是网上订票,则订票用例就是电话订票和网上订

16、票的抽象。用 UML建立业务模型时,可以把业务人员看做是系统中的角色或者类。在建立抽象模型时,很少有类会单独存在,大多数都将会以某种方式彼此通信,因此还需要描述这些类之间的关系。关系是事物间的连接,在 UML中,有几个很重要的关系。(1)依赖关系。有两个元素 A、B,如果元素 A的变化会引起元素 B的变化,则称元素 B依赖于元素 A。在类中,依赖关系有多种表现形式,例如,一个类向另一个类发消息;一个类是另一个类的成员;一个类是另一个类的某个操作参数等。(2)泛化关系。描述了一般事物与该事物中的特殊种类之间的关系,也就是父类与子类之间的关系。继承关系是泛化关系的反关系,也就是说子类是从父类中继承

17、的,而父类则是子类的泛化。在 UML中,对泛化关系有 3个要求。子类应与父类完全一致,父类所具有的关联、属性和操作,子类都应具有。子类中除了与父类一致的信息外,还包括额外的信息。可以使用父类实例的地方,也可以使用子类实例。(3)关联关系。关联表示两个类的实例之间存在的某种语义上的联系。例如,一个老师为某所学校工作,一所学校有多间教室。我们就认为老师和学校、学校和教室之间存在着关联关系。关联关系为类之间的通信提供了一种方式,它是所有关系中最通用、语义最弱的。关联关系通常可以再细分成以下两种:聚集关系。聚集关系(聚合关系)是关联关系的特例,表示一种整体和部分的关系,其中整体和部分的生命周期不相同。

18、例如,电话机和话筒的关系,计算机和显示器的关系等都是聚集关系的例子。组合关系。组合关系也是表示一种整体和部分的关系,其中整体和部分的生命周期相同。例如,公司与部门之间的关系就是组合关系的例子。(4)实现关系。类之间的语义关系,其中的一个类指定了由另一个类保证执行的契约。在 UML中,活动图用来表示系统中各种活动的次序,它的应用非常广泛,既可用来描述用例的工作流程,也可用来描述类中某个方法的操作行为。活动图是由状态图变化而来的,它们各自用于不同的目的。活动图依据对象状态的变化来捕获动作(将要执行的工作或活动)与动作的结果。活动图中一个活动结束后将立即进入下一个活动(在状态图中状态的变迁可能需要事

19、件的触发)。UML提供了 5种对系统动态方面建模的图,其中 (4) 对系统行为组织和建模; (5) 对系统功能建模,它强调对象之间的控制流; (6) 之间是同构的。(分数:3.00)A.用例图 B.顺序图C.协作图D.状态图解析:A.用例图B.活动图 C.状态图D.顺序图解析:A.状态图和活动图B.用例图和活动图C.顺序图和协作图 D.活动图和协作图解析:分析 UML 提供了 5种对系统动态方面建模的图。其中:用例图描述了一组用例和参与者及它们之间的关系,对于系统行为的组织和建模特别重要。交互图是顺序图和协作图的统称。顺序图强调消息的时间次序;协作图强调收发消息的对象的结构组织。这种是同构的,

20、这意味着可以把一种图转换为另一种图而没有信息损失。状态图显示了一个由状态、转换、事件和活动组成的状态机,它强调一个对象按事件次序发生的行为。活动图显示了系统中从活动到活动的流,它强调对象之间的控制流,对系统的功能建模是非常重要的。1.采用 UML分析用户需求时,用例 UC1可以出现在用例 UC2出现的任何位置,那么 UC1和 UC2之间的关系是 (2) 。(分数:1.00)A.includeB.extendC.generalize D.call解析:分析 在 UML的用例中,用例之间有三种关系,分别是 include(包含)、extend(扩展)和generalize(泛化)。当两个用例之间具

21、有继承关系时,意味着子用例可以继承父用例的行为,并可以在此基础上添加新的行为或重置父用例的行为,子用例可以出现在父用例出现的任何位置上。因此,UC1 和UC2之间的关系应该是泛化关系。2.希赛公司欲开发一个在线交易系统。为了能够精确表达用户与系统的复杂交互过程,应该采用 UML的 (25) 进行交互过程建模。(分数:1.00)A.类图B.顺序图 C.部署图D.对象图解析:分析 显然,为了能够精确表达用户与系统的复杂交互过程,应该使用交互图。在 UML中,交互图包括顺序图、通信图、定时图和交互概览图。顺序图强调消息的时间次序,通信图强调消息流经的数据结构,定时图强调消息跨越不同对象或角色的实际时

22、间,交互概览图是顺序图和活动图的混合体。UML用关系把事物结合在一起, (23) 描述一个事物发生变化会影响另一个事物的语义; (24) 描述特殊元素的对象可替换一般元素的对象。(分数:2.00)A.聚合关系B.关联关系C.包含关系D.依赖关系 解析:A.实现关系B.聚合关系C.泛化关系 D.关联关系解析:分析 用 UML建立业务模型时,可以把业务人员看做是系统中的角色或者类。在建立抽象模型时,很少有类会单独存在,大多数都将会以某种方式彼此通信,因此还需要描述这些类之间的关系。关系是事物间的连接,在 UML中,有几个很重要的关系。(1)依赖关系。有两个元素 A、B,如果元素 A的变化会引起元素

23、 B的变化,则称元素 B依赖于元素 A。在类中,依赖关系有多种表现形式,例如,一个类向另一个类发消息;一个类是另一个类的成员;一个类是另一个类的某个操作参数等。(2)泛化关系。描述了一般事物与该事物中的特殊种类之间的关系,也就是父类与子类之间的关系。继承关系是泛化关系的反关系,也就是说子类是从父类中继承的,而父类则是子类的泛化。在 UML中,对泛化关系有 3个要求。子类应与父类完全一致,父类所具有的关联、属性和操作,子类都应具有。子类中除了与父类一致的信息外,还包括额外的信息。可以使用父类实例的地方,也可以使用子类实例。(3)关联关系。关联表示两个类的实例之间存在的某种语义上的联系。例如,一个

24、老师为某所学校工作,一所学校有多间教室。我们就认为老师和学校、学校和教室之间存在着关联关系。关联关系为类之间的通信提供了一种方式,它是所有关系中最通用、语义最弱的。关联关系通常可以再细分成以下两种:聚集关系。聚集关系(聚合关系)是关联关系的特例,表示一种整体和部分的关系,其中整体和部分的生命周期不相同。例如,电话机和话筒的关系,计算机和显示器的关系等都是聚集关系的例子。组合关系。组合关系也是表示一种整体和部分的关系,其中整体和部分的生命周期相同。例如,公司与部门之间的关系就是组合关系的例子。(4)实现关系。类之间的语义关系,其中的一个类指定了由另一个类保证执行的契约。在 UML中,活动图用来表

25、示系统中各种活动的次序,它的应用非常广泛,既可用来描述用例的工作流程,也可用来描述类中某个方法的操作行为。活动图是由状态图变化而来的,它们各自用于不同的目的。活动图依据对象状态的变化来捕获动作(将要执行的工作或活动)与动作的结果。活动图中一个活动结束后将立即进入下一个活动(在状态图中状态的变迁可能需要事件的触发)。UML采用 4+1视图来描述软件和软件开发过程,其中 (9) 描绘了所设计的并发与同步结构; (10) 表示软件到硬件的映射及分布结构;UML 中的类图可以用来表示 4+1视图中的 (11) 。(分数:3.00)A.逻辑视图(Logical View)B.实现视图(Implement

26、ation View)C.进程视图(Process View) D.部署视图(Deployment View)解析:A.逻辑视图B.实现视图C.进程视图D.部署视图 解析:A.逻辑视图 B.实现视图C.进程视图D.部署视图解析:分析 UML 采用 4+1视图来描述软件和软件开发过程:逻辑视图:以问题域的语汇组成的类和对象集合。进程视图:可执行线程和进程作为活动类的建模,它是逻辑视图的一次执行实例,描绘了所设计的并发与同步结构。实现视图:对组成基于系统的物理代码的文件和组件进行建模。部署视图:把构件部署到一组物理的、可计算的节点上,表示软件到硬件的映射及分布结构。用例视图:最基本的需求分析模型。

27、3. (32) 适用于描述复杂算法的执行流程。(分数:1.00)A.活动图 B.状态图C.类图D.用例图解析:分析 活动图用来描述一个业务流程,说明活动之间的依赖关系。状态图显示出对象可能的状态以及由状态改变而导致的转移。活动图和状态图之问是有关系的。状态图把焦点集中在过程中的对象身上,而活动图则集中在一个单独过程中的动作流程。4.希赛图书订单处理系统中,“创建新订单”和“更新订单”两个用例都需要检查客户的账号是否正确,为此定义一个通用的用例“核查客户账户”。用例“创建新订单”和“更新订单”与用例“核查客户账户”之间是 (20) 。(分数:1.00)A.包含关系 B.聚合关系C.泛化关系D.关

28、联关系解析:分析 用例是在系统中执行的一系列动作,这些动作将生成特定参与者可见的价值结果。它确定了一个和系统参与者进行交互并可由系统执行的动作序列。用例模型描述的是外部执行者(actor)所理解的系统功能。用例模型用于需求分析阶段,它的建立是系统开发者和用户反复讨论的结果,表明了开发者和用户对需求规格达成的共识。两个用例之间的关系可以概括为两种情况。一种是用于重用的包含关系,用 include表示(在 UML 1.x版本中用 use表示);另一种是用于分离出不同行为的扩展,用 extend表示(在 UML 1.x版本中用 extends表示)。(1)包含关系。当可以从两个或两个以上的原始用例中

29、提取公共行为,或者发现能够使用一个构件来实现某一个用例的部分功能很重要时,我们应该使用包含关系来表示它们。(2)扩展关系。如果一个用例明显地混合了两种或两种以上的不同场景,即根据情况可能发生多种事情,则将这个用例分为一个主用例和一个或多个辅用例描述可能更加清晰。另外,用例之间还存在一种泛化关系。用例可以被特别列举为一个或多个子用例,这被称为用例泛化。当父用例能够被使用时,任何子用例也可以被使用。例如,我们购买飞机票,既可以是电话订票,也可以是网上订票,则订票用例就是电话订票和网上订票的抽象。面向对象设计是模型驱动和用例驱动的,整个设计过程将 (34) 作为输入,并生成 (35) 作为输出。(分

30、数:2.00)A.逻辑数据流图B.设计文档和用户说明C.需求类图D.需求模型 解析:A.物理数据流图B.设计文档和用户说明C.设计类图和系统顺序图D.设计模型 解析:分析 面向对象设计是模型驱动和用例驱动的,整个设计过程将面向对象分析阶段所产生的需求模型作为输入,并生成供构建阶段使用的设计模型作为输出。5.面向对象分析的一项重要任务是发现潜在对象并进行筛选,错误的做法是删除 (29) 。(分数:1.00)A.系统范围之外的名词B.表示事件的名词 C.不具有独特行为的名词D.一个对象的同义词解析:分析 在 OOA中,并不是所有的名词都表示了问题域内有用的业务对象,通过删除对象的同义词、系统范围之

31、外的名词、不具有独特行为的名词、不清楚的名词和另一个对象的行动或属性的名词来最终清理候选对象列表。6.雇员类含有计算报酬的行为,利用面向对象的 (28) ,可以使得其派生类专职雇员类和兼职雇员类计算报酬的行为有相同的名称,但有不同的计算方法。(分数:1.00)A.多态性 B.继承性C.封装性D.复用性解析:分析 在面向对象技术中,多态考虑的是类与类之间的层次关系,以及类自身内部特定成员函数之间的关系问题,解决功能和行为的再抽象问题。多态是指类中具有相似功能的不同函数用同一个名称来实现,从而可以使用相同的调用方式来调用这些具有不同功能的同名函数。这也是人类思维方式的一种直接模拟,比如一个对象中有

32、很多求两个数最大值的行为,虽然可以针对不同的数据类型,写很多不同名称的函数来实现,但事实上,它们的功能几乎完全相同。这时,就可以利用多态的特征,用统一的标识来完成这些功能。这样,就可以达到类的行为的再抽象,进而统一标识,减少程序中标识符的个数。严格地说,多态性可分为 4类,分别为过载多态(重载多态)、强制多态、包含多态和参数多态,其中前两种统称为专用多态(特定多态),后面两种也称为通用多态。包含多态是研究类族中定义于不同类中的同名成员函数的多态行为,主要通过虚函数来实现。包含多态最常见的例子就是子类型化,即一个类型是另一类型的子类型。参数多态的应用比较广泛,被称为最纯的多态。这是因为同一对象、

33、函数或过程能以一致的形式用于不同的类型。参数多态与类属(类模板)相关联,类属是一个可以参数化的模板,其中包含的操作所涉及的类型必须用类型参数实例化。这样,由类模板实例化的各类都具有相同的操作,而操作对象的类型却各不相同。过载多态是同一算子(操作符、函数名等)被用来表示不同的功能,通过上下文以决定一个算子所代表的功能,即通过语法对不同语义的对象使用相同的算子,编译能够消除这一模糊。强制多态是通过语义操作把一个变元的类型加以变换,以符合一个函数的要求,如果不做这一强制性变换将出现类型错误。类型的变换可在编译时完成,通常是隐式地进行,当然也可以在动态运行时来做。从实现的角度来看,多态可划分为两类,分

34、别是编译时的多态和运行时的多态。前者是在编译的过程中确定同名操作的具体操作对象,而后者则是在程序运行过程中才动态地确定操作所针对的具体对象。这种确定操作的具体对象的过程就是联编(编联、束定或绑定)。联编是指计算机程序自身彼此关联的过程,也就是把一个标识符名和一个存储地址联系在一起的过程;用面向对象的术语讲,就是把一条消息和一个对象的方法相结合的过程。按照联编进行阶段的不同,可以分为两种不同的联编方法,分别为静态联编和动态联编,这两种联编过程分别对应着多态的两种实现方式。联编工作在编译连接阶段完成的情况称为静态联编。因为联编过程是在程序开始执行之前进行的,因此有时也称为早期联编或前联编。在编译和

35、连接过程中,系统就可以根据类型匹配等特征确定程序中操作调用与执行该操作代码的关系,其确定了某一个同名标识到底是要调用哪一段程序代码。有些多态类型,其同名操作的具体对象能够在编译、连接阶段确定,通过静态联编解决,比如过载、强制和参数多态等。和静态联编相对应,联编工作在程序运行阶段完成的情况称为动态联编,也称为晚期联编或后联编。在编译、连接过程中无法解决的联编问题,要等到程序开始运行之后再来确定,包含多态的操作对象的确定就是通过动态联编完成的。图 7-3中左边的 UML类图描绘的是设计模式中的 (7) 模式。右边的 UML类图描述了该模式的一种应用,其中与左图中的“Creator”对应的类是 (8

36、) 。(分数:2.00)A.CommandB.Factory Method C.CompositeD.Class Adapter解析:A.Bank B.AccountC.CheckingD.Savings解析:分析 Command 模式将一个请求封装为一个对象,从而将不同的请求对象化并进行排队或登记,以支持撤销操作。Factory Method模式定义一个创建对象的接口,但由子类决定需要实例化哪一个类。Composite模式将对象组成树结构来表示局部和整体的层次关系。客户可以统一处理单个对象和对象组合。Class Adapter模式将一个类的接口转换成用户希望得到的另一种接口。它使原本不相容的

37、接口得以协同工作。7.设计模式(Design pattern)是一套被反复使用、多数人知晓、经过分类编目的、代码设计经验的总结。下面关于设计模式所倡导的基本原则的描述,错误的是 (17) 。(分数:1.00)A.模块应对扩展开放,而对修改关闭B.优先使用继承,而不是组合 C.要针对接口编程,而不是针对实现编程D.抽象不应该依赖于细节,细节应当依赖于抽象解析:分析 本题所考查的是面向对象设计的一些基本原则,这些原则如下:开闭原则:一个软件实体应当对扩展开放,对修改关闭。在设计一个模块时,应当使这个模块可以在不被修改的情况下被扩展。关键在于抽象,抽象层要预见所有可能的扩展,因此抽象层在任何扩展情况

38、下都不会改变,即对修改关闭。同时,由于从抽象层导出一个或多个新类,可以有不同的实现,改变系统的行为,此即对扩展开发。简而言之,抽象层对修改关闭,通过扩展实现改变系统行为。里氏代换原则:任何基类可以出现的地方,子类一定可以出现。依赖原则:要依赖于抽象,而不是具体实现。也可以这样说,要针对接口编程,不要针对实现编程。接口分离原则:应当为客户端提供尽量小的单独的接口,而不是提供大的接口。组合复用原则:要尽量使用组合而不是继承关系达到复用目的。迪米特法则:又叫最少知识法则,就是说一个对象应当对其他对象有尽可能少的了解。有关这些原则的详细介绍,请学习指定教材系统分析师教程(张友生,清华大学出版社)第 1

39、3.4.3节。UML的事物是对模型中最具有代表性的成分的抽象, (21) 是模型的静态部分,描述概念或物理元素; (22) 用来描述、说明和标注模型的任何元素。(分数:2.00)A.结构事物 B.分组事物C.行为事物D.注释事物解析:A.分组事物B.注释事物 C.结构事物D.行为事物解析:分析 UML 有三种基本的构造块,分别是事物(元素)、关系和图。事物是 UML中重要的组成部分。关系把事物紧密联系在一起。图是很多有相互相关的事物的组。UML中的事物也称为建模元素,包括结构事物、动作事物、分组事物和注释事物。这些事物是 UML模型中最基本的面向对象的构造块。(1)结构事物。结构事物在模型中属

40、于最静态的部分,代表概念上的或物理上的元素。总共有七种结构事物:首先是类,类是描述具有相同属性、方法、关系和语义的对象的集合。一个类实现一个或多个接口。第二种是接口,接口是指类或组件提供特定服务的一组操作的集合。因此,一个接口描述了类或组件的对外的可见的动作。一个接口可以实现类或组件的全部动作,也可以只实现一部分。第三种是协作,协作定义了交互的操作,使一些角色和其他元素一起工作,提供一些合作的动作,这些动作比元素的总和要大。因此,协作具有结构化、动作化、维的特性。一个给定的类可能是几个协作的组成部分。这些协作代表构成系统的模式的实现。第四种是用例,用例描述一系列的动作,这些动作是系统对一个特定

41、角色执行,产生值得注意的结果的值。在模型中用例通常用来组织动作事物。用例是通过协作来实现的。第五种是活动类,活动类是这样一种类,它的对象有一个或多个进程或线程。活动类和类很相像,只是它的对象代表的元素的行为和其他的元素是同时存在的。第六种是构件,构件是物理上或可替换的系统部分,它实现了一个接口集合。在一个系统中,可能会遇到不同种类的构件,例如 DCOM或 EJB。第七种是节点,节点是一个物理元素,它在运行时存在,代表一个可计算的资源,通常占用一些内存和具有处理能力。一个组件集合一般来说位于一个节点,但有可能从一个节点转到另一个节点。(2)动作事物:动作事物是 UML模型中的动态部分。它们是模型

42、的动词,代表时间和空间上的动作。总共有两种主要的动作事物。第一种是交互(内部活动),交互是一组对象在特定上下文中,为达到特定的目的而进行的一系列消息交换而组成的动作。交互中组成动作的对象的每个操作都要详细列出,包括消息、动作次序(消息产生的动作)、连接(对象之间的连接)。第二种是状态机,状态机由一系列对象的状态组成。内部活动和状态机是 UML模型中最基本的两个动态事物元素,它们通常和其他的结构元素、主要的类、对象连接在一起。(3)分组事物。分组事物是 UML模型中组织的部分,可以把它们看成是个盒子,模型可以在其中被分解。总共只有一种分组事物,称为包。包是一种将有组织的元素分组的机制。结构事物、

43、动作事物甚至其他的分组事物都有可能放在一个包中。与组件(存在于运行时)不同的是包纯粹是一种概念上的东西,只存在于开发阶段。(4)注释事物。注释事物是 UML模型的解释部分。8.在面向对象方法中,信息流是通过向参与者或内部对象发送消息形成的。 (33) 用于描述进出系统的信息流。(分数:1.00)A.协作图B.顺序图 C.数据流图D.流程图解析:分析 状态图描述一个对象在其生命周期中可能的状态组合,顺序图描述对象按照时间顺序的消息流。数据流图和流程图是结构化方法中的概念。数据流图是一种描述数据通过系统的流程以及系统实施的工作或处理过程的过程模型;流程图以图形化的方式展示了应用程序从数据输入开始到

44、获得输出为止的逻辑过程。9.关于 UML中的状态图和活动图的叙述中, (3) 是错误的。(分数:1.00)A.状态图和活动图都是对系统的动态方面进行建模的图B.活动图是状态图的一种特殊情况,其中所有或大多数状态是活动状态C.状态图显示从状态到状态的控制流,活动图显示的是从活动到活动的控制流D.在对一个对象的生存期建模时,只能使用状态图 解析:分析 状态图和活动图都是 UML用于对系统动态方面进行建模的行为图,其中状态图注重于由事件驱动的系统的变化状态;而活动图注重于从活动到活动的控制流。一个活动是一个状态机中进行的非原子的执行单元。活动图是状态机的一种特殊情况,其中全部或大多数状态是活动状态,

45、并且全部或大多数转换是通过源状态中活动的完成来触发的。因为活动图是一种状态机,所以它可以适应状态机的全部特性。活动图和状态图在对一个对象的生命周期建模时都是有用的。10.以下关于面向对象设计的叙述中,错误的是 (36) 。(分数:1.00)A.类的属性用于封装数据,类的方法用于封装行为B.面向对象设计的基本思想包括抽象、封装和可扩展性C.对象继承和多态可用来实现可扩展性D.对象持久化是指将数据库中的数据加载到内存中供应用程序访问 解析:分析 类是面向对象类型扩展的重要机制,利用属性和方法将数据和与数据相关的行为封装起来。面向对象设计的基本思想包括抽象、封装和可扩展性,其可扩展性通过对象继承和多

46、态来实现。对象持久化是将内存中的数据以数据库或物理文件的形式保存到可永久存储的设备中。11.在 UML的动态建模机制中, (1) 描述了对象之间动态的交互关系,还描述了交互的对象之童工的静态链接关系,即同时反映系统的动态和静态牲。(分数:1.00)A.状态图B.顺序图C.协作图 D.活动图解析:分析 顺序图用来描述对象之间动态的交互关系,着重体现对象间消息传递的时间顺序。顺序图允许直观地表示出对象的生存期,在生存期内,对象可以对输入消息做出响应,并且可以发送信息。对象间的通信通过在对象的生命线间画消息来表示。消息的箭头指明消息的类型。顺序图中的消息可以是信号、操作调用或类似于 C+中的 RPC

47、(Remote Procedure Call)和 Java中的 RMI(Remote Method Invocation)。收到消息后,接收对象立即开始执行活动,即对象被激活了。通过在对象生命线上显示一个细长矩形框来表示激活。消息可以用消息名及参数来标识,消息也可带有顺序号。消息还可带有条件表达式,表示分支或决定是否发送消息。如果用于表示分支,则每个分支是相互排斥的,即在某一时刻仅可发送分支中的一个消息。协作图用于描述相互合作的对象间的交互关系和链接关系。虽然顺序图和协作图都用来描述对象间的交互关系,但侧重点不一样。顺序图着重体现交互的时间顺序,协作图则着重体现交互对象间的静态链接关系。顺序图

48、和协作图统称为交互图,是表示各组对象如何依某种行为进行协作的模型。强调对象交互行为时间顺序时使用顺序图,强调对象协作关系时使用协作图,它们之间没有什么本质不同,只是排版不尽相同而已。图 7-4中左边的 UML类图描绘的是设计模式中的 (12) 模式。右边的 UML类图描述了该模式的一种应用,其中与左图中的“Abstraction”对应的类是 (13) 。(分数:2.00)A.CommandB.Bridge C.CompositeD.Proxy解析:A.DataAccess B.DataAccessImplC.CustomerDMD.AccountDM解析:分析 Command 模式将一个请求封

49、装为一个对象,从而将不同的请求对象化并进行排队或登记,以支持撤销操作。Bridge 模式将类的抽象概念和它的实现分离开来,使它们可以相互独立地变化。Composite模式将对象组成树结构来表示局部和整体的层次关系,客户可以统一处理单个对象和对象组合。Proxy模式给另一个对象提供一个代理或定位符号,以控制对它的访问。因此,UML 类图描绘的是 Bridge模式。将右图和左图进行对比不难得出,与左图中的“Abstraction”对应的类是 DataAccess。12.面向对象分析的任务不包含 (30) 。(分数:1.00)A.建模系统功能B.发现并确定业务对象C.建模各对象的状态 D.组织对象并确定对象间的关系解析:分析 OOA 基于用例模型,通过对象建模记录确定的对象、对象封装的数据和行为,以及对象之间的关系。OOA 包括 3个活动,分别是建模系统功能、发现并确定业务对象、组织对象并确定对象间的关系。13.在企业应用系统开发中,方法调用(Method Invocation)和消息(Messaging)机制是两种常用的数据处理与交换方式。下面关于这两种机制的描述,不正确的是 (18) 。(分

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1