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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、系统分析师-面向对象方法学 1 及答案解析(总分:42.00,做题时间:90 分钟)一、单项选择题(总题数:26,分数:42.00)类库是一种预先定义的程序库,它以程序模块的形式,按照 (1) 把一组类的定义和实现组织在一起: (2) 对类库的建设提供了强有力的支持。(分数:2.00)A.类的功能B.类层次结构C.实例之间的调用关系D.类的类型A.引用B.重置C.类属类D.封装1.用例(use+case)用来描述系统在对事件做出响应时所采取的行动。用例之间是具有相关性的。在一个“订单输入子系统”中,创建新订单和更新订单都需要核查用户账号是否正确。那么,用例“创建新订单”、“更新订单”与用例“核

2、查客户账号”之间是 (3) 关系。(分数:1.00)A.包含(include)B.扩展(extend)C.分类(classification)D.聚集(aggregation)在 UML 中,对象行为是通过交互来实现的,是对象间为完成某一目的而进行的一系列消息交换。消息序列可用两种图来表示,强调消息时间次序的图称为 (4) ,该图的特点是 (5) ,强调参加交互的对象的组织图称为 (6) ,这两种图是 (7) 。(分数:4.00)A.活动图B.状态图C.顺序图D.协作图A.有生命线及控制焦点,重点在消息的时间顺序上B.有路径有顺序号,为了一个消息的时间顺序给消息加数字前缀C.是对系统、子系统或

3、类的行为建模D.本质上是一个流程图,显示从活动到活动的信息流A.活动图B.状态图C.顺序图D.协作图A.同构的,所以可以互相转换B.异构的,所以不可以互相转换C.强调对象行为的事件顺序,常用于对反应式系统建模D.专注于系统的动态视图,状态无法确定,所以不可以互相转换用 UML 建立业务模型是理解企业业务过程的第一步。业务人员扮演业务中的角色及其交互方式,例如航空公司的售票员是业务人员,电话售票员也是业务人员,他们之间的关系是 (8) 。在 UML 中,用 (9) 表示企业业务的工作流。这种图显示了工作流中的步骤、决策点,以及完成每一步骤的角色和对象。(分数:2.00)A.关联关系(Associ

4、ation)B.依赖关系(Dependency)C.聚集关系(Aggregation)D.概括关系(Geneiralization)A.活动图(activitv diagram)B.业务图(business diagram)C.用例图(use-case diagram)D.交互图(interaction diagram)2.在 CORBA 体系结构中,负责屏蔽底层网络通信细节的协议是 (10) 。(分数:1.00)A.IDLB.RPCC.ORBD.GIOP在面向对象技术中,一个子类的对象同时又属于父类,它继承了父类的一切属性,这种多态性称为 (11) 。同一个算子在不同的表达式中可能有不同的操

5、作意义,这种多态性称为 (12) 。编译程序根据上下文判定算子的操作意义,这称为 (13) 。(分数:3.00)A.参数多态B.过载多态C.包含多态D.隐含多态A.参数多态B.过载多态C.包含多态D.隐含多态A.算子鉴别B.算子操作C.算子定义D.算子运算在面向对象分析过程中,用概念模型来详细描述系统的问题域,用 (14) 来表示概念模型;用 (15) 来描述对象行为。(分数:2.00)A.顺序图B.类图C.协作图D.用例图A.顺序图和协作图B.用例图和活动图C.状态图和活动图D.用例图和构件图3.在 UML 中, (16) 把活动图中的活动划分为若干组,并将划分的组指定给对象,这些对象必须履

6、行该组所包括的活动,它能够明确地表示哪些活动是由哪些对象完成的。(分数:1.00)A.组合活动B.同步条C.活动D.泳道4.在较高的抽象层次上,传统的程序流程图与 UML 中活动图最根本的区别在于 (17) 。(分数:1.00)A.程序流程图明确地指定了每个活动的先后顺序,而活动图仅描述了活动和必要的工作顺序B.活动图不能提供循环控制结构,而程序流程图提供C.活动图不能表示并发活动,而程序流程图可以表示并发活动D.两者采用不同的图形符号系统5.在关于用例的描述中,错误的是 (18) 。(分数:1.00)A.用例将系统的功能范围分解成许多小的系统功能陈述B.一个用例代表了系统的一个单一的目标C.

7、用例是一个行为上相关的步骤序列D.用例描述了系统与用户的交互在用例建模的过程中,若几个用例执行了同样的功能步骤,这时可以把这些公共步骤提取成独立的用例,这种用例称为 (19) 。在 UML 的用例图上,将用例之间的这种关系标记为 (20) 。(分数:2.00)A.扩展用例B.抽象用例C.公共用例D.参与用例A.associationB.extendC.includeD.inheritancesUML 提供了 4 种结构图用于对系统的静态方面进行可视化、详述、构造和文档化。其中 (21) 是面向对象系统建模中最常用的图,用于说明系统的静态设计视图;当需要说明系统的静态实现视图时,应该选择 (22

8、) ;当需要说明体系结构的静态实施视图时,应该选择 (23) 。(分数:3.00)A.构件图B.类图C.对象图D.部署图A.构件图B.协作图C.状态图D.部署图A.协作图B.对象图C.活动图D.部署图6.面向对象系统中有两种基本的复用方式:框架复用和类库复用。下列关于框架和类库的描述不正确的是 (24) 。(分数:1.00)A.框架是一个“半成品”的应用程序B.类库只包含一系列可被应用程序调用的类C.框架会为一个特定的目的实现一个基本、可执行的架构D.类库是框架的一种扩展形式7.下列有关面向对象的叙述不正确的是 (25) 。(分数:1.00)A.面向对象设计最根本的意图是适应需求变化B.应尽量

9、针对接口编程,而不要针对实现编程C.尽量使用继承而不是组合,因为继承使得类问的耦合性最小D.尽量使用已有的类库8.当 (26) 时,用例是捕获系统需求最好的选择。(分数:1.00)A.系统具有很少的用户B.系统具有很少的接口C.系统算法复杂,功能单一D.系统有很多参与者9.现有两个用例 UC1 和 UC2,其中 UC2 是一个完整的用例,可被实例化,而 UC1 需要 UC2 中的事件流才可被实例化,且 UC1 指定了使用 UC2 的精确位置,则 UC1 和 UC2 之间的关系是“ (27) ”。(分数:1.00)A.includeB.extendC.generalizeD.call10.下列关

10、于面向对象的分析与设计的描述,正确的是 (28) 。(分数:1.00)A.面向对象设计描述软件要做什么B.面向对象分析不需要考虑技术和实现层面的细节C.面向对象分析的输入是面向对象设计的结果D.面向对象设计的结果是简单的分析模型11.协作图主要描述对象间的交互与连接,它 (29) 。(分数:1.00)A.能够表示消息的顺序和嵌套关系B.能够表示消息的顺序关系,但不能表示消息的嵌套关系C.能够表示消息的嵌套关系,但不能表示消息的顺序关系D.既不能表示消息的顺序关系,也不能表示消息的嵌套关系12.下列关于 UML 叙述正确的是 (30) 。(分数:1.00)A.UML 是一种语言,语言的使用者不能

11、对其扩展B.UML 仅是一组图形的集合C.UML 仅适用于系统的分析与设计阶段D.UML 是独立于软件开发过程的已知 3 个类 O、P 和 Q,类 O 中定义了一个私有方法 F1、一个公有方法 F2 和一个受保护的方法 F3;类 P和类 Q 为类 O 的派生类,其继承方式如下所示:class P:protected Oclass Q:public O在关于方法 F1 的描述中正确的是 (31) 。在关干方法 F2 的描述中正确的是 (32) 。在关于方法 F3 的描述中正确的是 (33) 。(分数:3.00)A.方法 F1 无法被访问B.只有在类 O 内才能访问方法 F1C.只有在类 P 内才

12、能访问方法 F1D.只有在类 Q 内才能访问方法 F1A.类 O、P 和 Q 的对象都可以访问方法 F2B.类 P 和 Q 的对象都可以访问方法 F2C.类 O 和 Q 的对象都可以访问方法 F2D.只有在类 P 内才能访问方法 F2A.类 O、P 和 Q 的对象都可以访问方法 F3B.类 O、P 和 Q 的对象都不可以访问方法 F3C.类 O 的对象可以访问方法 F3,但类 P 的对象不能访问方法 F3D.类 P 的对象可以访问方法 F3,但类 Q 的对象不能访问方法 F3在一个客户信息系统中存在两种类型的客户:个人客户和集团客户。对于个人客户,系统中保存了其客户标识和基本信息(包括姓名、住

13、宅电话和 E-mail);对于集团客户,系统中保存了其客户标识,以及与该集团客户相关的若干个联系人的信息(联系人的信息包括姓名、住宅电话、E-mail、办公电话和职位)。根据上述描述,得到了如图 7-1 所示的 UML 类图,其中类“客户”的属性有 (34) ;类“人”的属性有 (35) 。(分数:2.00)A.客户标识B.姓名、住宅电话、E-mailC.姓名、住宅电话、办公电话、E-mail、职位D.客户标识、办公电话、职位A.客户标识B.姓名、住宅电话、E-mailC.姓名、住宅电户、办公电话、E-mail、职位D.客户标识、办公电话、职位13.根据图 7-2 所示的 UML 类图可知,类

14、 Car 和类 Boat 中的 move()方法 (36) 。(分数:1.00)A.引用了类 Transport 的 move()方法B.重置了类 Transport 的 move()方法C.是类 Transport 的 move()方法的聚集D.是类 Transport 的 move()方法的泛化在 UML 的通用机制中, (37) 用于把元素组织成组; (38) 是系统中遵从一组接口规范且付诸实现的物理的、可替换的软件模块。(分数:2.00)A.包B.类C.接口D.构件A.包B.类C.接口D.构件回调(Callback)函数是面向过程的程序设计语言中常用的一种机制,而设计模式中的 (39)

15、 模式就是回调机制的一个面向对象的替代品。该模式的意图是 (40) 。(分数:2.00)A.Strategy(策略)B.Adapter(适配器)C.Command(命令)D.Observer(观察者)A.使原本由于接口不兼容而不能一起工作的那些类可以一起工作B.将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化,将请求排队或记录请求日志,支持可撤销的操作C.定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新D.使算法可独立于使用它的客户而变化14.对 OO 系统的技术度量的识别特征,Berard 定义了导致特殊度量的特征。其中 (4

16、1) 抑制程序构件的操作细节,只有对访问构件必需的信息被提供给其他希望访问的构件。(分数:1.00)A.局部化B.封装C.信息隐藏D.继承15.用例从用户角度描述系统的行为。用例之间可以存在一定的关系。在“某图书馆管理系统”用例模型中,所有用户使用系统之前必须通过“身份验证”,“身份验证”有“密码验证”和“智能卡验证”两种方式,则“身份验证”与“密码验证”和“智能卡验证”之间是 (42) 关系。(分数:1.00)A.关联B.包含C.扩展D.泛化系统分析师-面向对象方法学 1 答案解析(总分:42.00,做题时间:90 分钟)一、单项选择题(总题数:26,分数:42.00)类库是一种预先定义的程

17、序库,它以程序模块的形式,按照 (1) 把一组类的定义和实现组织在一起: (2) 对类库的建设提供了强有力的支持。(分数:2.00)A.类的功能B.类层次结构 C.实例之间的调用关系D.类的类型解析:A.引用B.重置C.类属类 D.封装解析:分析 从物理特征上来看,类库和传统例程库是类似的,它们都是一种预先定义的程序库。类库是一种预先定义的程序库,它以程序模块的形式,按照类层次结构把一组类的定义和实现组织在一起。较上层的类代表了较一般的事物,相反,较下层的类代表了较具体的事物,很好地体现了面向对象机制的继承、重载等许多特征。类属类(generic class)仅描述了适用于一组类型的通用样板,

18、由于其中所处理对象的数据类型尚未确定,因而程序员不可用类属类直接创建对象实例,即一个类属类并不是一种真正的类类型。类属类必须经过实例化后才能成为可创建对象实例的类类型。类属类的实例化是指用某一数据类型替代类属类的类型参数。类属类定义中给出的类型参数称为形式类属参数,类属类实例化时给出的类型参数称为实际类属参数。如果类属类实例化的实际类属参数可以是任何类型,那么这种类属类称为无约束类属类。然而在某些情况下,类属类可能要求实际类属参数必须具有某些特殊的性质,以使得在类属类中可应用某些特殊操作,这种类属类称为受约束类属类。类属类对类库的建设提供了强有力的支持。1.用例(use+case)用来描述系统

19、在对事件做出响应时所采取的行动。用例之间是具有相关性的。在一个“订单输入子系统”中,创建新订单和更新订单都需要核查用户账号是否正确。那么,用例“创建新订单”、“更新订单”与用例“核查客户账号”之间是 (3) 关系。(分数:1.00)A.包含(include) B.扩展(extend)C.分类(classification)D.聚集(aggregation)解析:分析 用例是在系统中执行的一系列动作,这些动作将生成特定参与者可见的价值结果。它确定了一个和系统参与者进行交互并可由系统执行的动作序列。用例模型描述的是外部执行者(actor)所理解的系统功能。用例模型用于需求分析阶段,它的建立是系统开

20、发者和用户反复讨论的结果,表明了开发者和用户对需求规格达成的共识。两个用例之间的关系可以概括为两种情况。一种是用于重用的包含关系,用 include 表示(在 UML 1.x 版本中用 use 表示);另一种是用于分离出不同行为的扩展,用 extend 表示(在 UML 1x 版本中用 extends 表示)。(1)包含关系。当可以从两个或两个以上的原始用例中提取公共行为,或者发现能够使用一个构件来实现某一个用例的部分功能很重要时,我们应该使用包含关系来表示它们。(2)扩展关系。如果一个用例明显地混合了两种或两种以上的不同场景,即根据情况可能发生多种事情,则将这个用例分为一个主用例和一个或多个

21、辅用例描述可能更加清晰。另外,用例之间还存在一种泛化关系。用例可以被特别列举为一个或多个子用例,这被称为用例泛化。当父用例能够被使用时,任何子用例也可以被使用。例如,我们购买飞机票,既可以是电话订票,也可以是网上订票,则订票用例就是电话订票和网上订票的抽象。在 UML 中,对象行为是通过交互来实现的,是对象间为完成某一目的而进行的一系列消息交换。消息序列可用两种图来表示,强调消息时间次序的图称为 (4) ,该图的特点是 (5) ,强调参加交互的对象的组织图称为 (6) ,这两种图是 (7) 。(分数:4.00)A.活动图B.状态图C.顺序图 D.协作图解析:A.有生命线及控制焦点,重点在消息的

22、时间顺序上 B.有路径有顺序号,为了一个消息的时间顺序给消息加数字前缀C.是对系统、子系统或类的行为建模D.本质上是一个流程图,显示从活动到活动的信息流解析:A.活动图B.状态图C.顺序图D.协作图 解析:A.同构的,所以可以互相转换 B.异构的,所以不可以互相转换C.强调对象行为的事件顺序,常用于对反应式系统建模D.专注于系统的动态视图,状态无法确定,所以不可以互相转换解析:分析 顺序图用来描述对象之间动态的交互关系,着重体现对象间消息传递的时间顺序。顺序图允许直观地表示出对象的生存期,在生存期内,对象可以对输入消息做出响应,并且可以发送信息。对象间的通信通过在对象的生命线间画消息来表示。消

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

24、不一样。顺序图着重体现交互的时间顺序,协作图则着重体现交互对象间的静态链接关系。顺序图和协作图统称为交互图,是表示各组对象如何依某种行为进行协作的模型。强调对象交互行为时间顺序时使用顺序图,强调对象协作关系时使用协作图,它们之间没有什么本质不同,只是排版不尽相同而已。用 UML 建立业务模型是理解企业业务过程的第一步。业务人员扮演业务中的角色及其交互方式,例如航空公司的售票员是业务人员,电话售票员也是业务人员,他们之间的关系是 (8) 。在 UML 中,用 (9) 表示企业业务的工作流。这种图显示了工作流中的步骤、决策点,以及完成每一步骤的角色和对象。(分数:2.00)A.关联关系(Assoc

25、iation)B.依赖关系(Dependency)C.聚集关系(Aggregation)D.概括关系(Geneiralization) 解析:A.活动图(activitv diagram) B.业务图(business diagram)C.用例图(use-case diagram)D.交互图(interaction diagram)解析:分析 用 UML 建立业务模型时,可以把业务人员看做是系统中的角色或者类。在建立抽象模型时,很少有类会单独存在,大多数都将会以某种方式彼此通信,因此还需要描述这些类之间的关系。关系是事物间的连接,在 UML 中,有几个很重要的关系。(1)依赖关系。有两个元素

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

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

28、个类保证执行的契约。在 UML 中,活动图用来表示系统中各种活动的次序,它的应用非常广泛,既可用来描述用例的工作流程,也可用来描述类中某个方法的操作行为。活动图是由状态图变化而来的,它们各自用于不同的目的。活动图依据对象状态的变化来捕获动作(将要执行的工作或活动)与动作的结果。活动图中一个活动结束后将立即进入下一个活动(在状态图中状态的变迁可能需要事件的触发)。2.在 CORBA 体系结构中,负责屏蔽底层网络通信细节的协议是 (10) 。(分数:1.00)A.IDLB.RPCC.ORB D.GIOP解析:分析 ORB(Object Request Broker,对象请求代理)作为一个“软件总线

29、”来连接网络上的不同对象,提供对象的定位和方法调用,它是 CORBA 实现的关键。GIOP(General Intel-ORB Protocol,通用 ORB 之间的协议)定义了一个不同 ORB 之间的接口。GIOP 是CORBA 方法调用的核心部分。GIOP 不基于任何特别的网络协议,如 IPX 或 TCP/IP。为了确保互操作性,OMG 必须将 GIOP 定义在所有供应商都支持的特定传输之上。如果有详细和简洁的消息规范,则不会提供互操作性,因为所有供应商都使用不同的传送机制来实现这个互操作性。IDL(Interface Definition Language,接口定义语言)定义客户和服务器

30、之间的静态接口,通过编译器生成客户存根、服务器框架,以及根据支持的语言映射,自动生成来自一个 CORBA IDL 的代码。目前支持的语言映射包括:Java、C+、Ada、SmallTalk 和 Cobol 等。CORBA IDL 是由对象管理组织(Object Management Group)为定义所有的 CORBA 界面而制定的。RPC(远程过程调用)是一种协议,程序可使用这种协议向网络中的另一台计算机上的程序请求服务。由于使用 RPC 的程序不必了解支持通信的网络协议的情况,因此 RPC 提高了程序的互操作性。在 RPC 中,发出请求的程序是客户程序,而提供服务的程序是服务器。在面向对象

31、技术中,一个子类的对象同时又属于父类,它继承了父类的一切属性,这种多态性称为 (11) 。同一个算子在不同的表达式中可能有不同的操作意义,这种多态性称为 (12) 。编译程序根据上下文判定算子的操作意义,这称为 (13) 。(分数:3.00)A.参数多态B.过载多态C.包含多态 D.隐含多态解析:A.参数多态B.过载多态 C.包含多态D.隐含多态解析:A.算子鉴别 B.算子操作C.算子定义D.算子运算解析:分析 在面向对象技术中,多态考虑的是类与类之间的层次关系,以及类自身内部特定成员函数之间的关系问题,解决功能和行为的再抽象问题。多态是指类中具有相似功能的不同函数用同一个名称来实现,从而可以

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

33、就是子类型化,即一个类型是另一类型的子类型。参数多态的应用比较广泛,被称为最纯的多态。这是因为同一对象、函数或过程能以一致的形式用于不同的类型。参数多态与类属(类模板)相关联,类属是一个可以参数化的模板,其中包含的操作所涉及的类型必须用类型参数实例化。这样,由类模板实例化的各类都具有相同的操作,而操作对象的类型却各不相同。过载多态是同一算子(操作符、函数名等)被用来表示不同的功能,通过上下文以决定一个算子所代表的功能,即通过语法对不同语义的对象使用相同的算子,编译能够消除这一模糊。强制多态是通过语义操作把一个变元的类型加以变换,以符合一个函数的要求,如果不做这一强制性变换将出现类型错误。类型的

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

35、完成的情况称为静态联编。因为联编过程是在程序开始执行之前进行的,因此有时也称为早期联编或前联编。在编译和连接过程中,系统就可以根据类型匹配等特征确定程序中操作调用与执行该操作代码的关系,其确定了某一个同名标识到底是要调用哪一段程序代码。有些多态类型,其同名操作的具体对象能够在编译、连接阶段确定,通过静态联编解决,比如过载、强制和参数多态等。和静态联编相对应,联编工作在程序运行阶段完成的情况称为动态联编,也称为晚期联编或后联编。在编译、连接过程中无法解决的联编问题,要等到程序开始运行之后再来确定,包含多态的操作对象的确定就是通过动态联编完成的。在面向对象分析过程中,用概念模型来详细描述系统的问题

36、域,用 (14) 来表示概念模型;用 (15) 来描述对象行为。(分数:2.00)A.顺序图B.类图 C.协作图D.用例图解析:A.顺序图和协作图 B.用例图和活动图C.状态图和活动图 D.用例图和构件图解析:分析 在面向对象分析过程中,用概念模型来详细描述系统的问题域,用类图来表示概念模型。问题域是指一个包含现实世界事物与概念的领域,这些事物和概念与所设计的系统要解决的问题有关。而建立概念模型,又称为问题域建模、域建模,也就是找到代表那些事物与概念的对象。3.在 UML 中, (16) 把活动图中的活动划分为若干组,并将划分的组指定给对象,这些对象必须履行该组所包括的活动,它能够明确地表示哪

37、些活动是由哪些对象完成的。(分数:1.00)A.组合活动B.同步条C.活动D.泳道 解析:分析 在 UML 中,活动图中的活动可以分成几个区域,每个区域在图中用虚线分开,因此被叫做泳道。泳道是活动图的内容的组织单元。它没有内在的语义,但可以根据建模者的意愿使用。通常,每个泳道代表现实世界组织内的一个组织单元。在活动图中,泳道用矩形框来表示,属于某个泳道的活动放在该矩形框内,将对象名放在矩形框的顶部,表示泳道中的活动由该对象负责。4.在较高的抽象层次上,传统的程序流程图与 UML 中活动图最根本的区别在于 (17) 。(分数:1.00)A.程序流程图明确地指定了每个活动的先后顺序,而活动图仅描述

38、了活动和必要的工作顺序 B.活动图不能提供循环控制结构,而程序流程图提供C.活动图不能表示并发活动,而程序流程图可以表示并发活动D.两者采用不同的图形符号系统解析:分析 在 UML 中,活动图描述活动的次序,既支持条件行为,也支持并发行为。它是状态图的一种变形,其中多数状态都是活动状态。条件行为用分支与合并描述,并发行为是用分岔和汇合指明的。UML 的活动图与传统的程序流程图有一定的相似性。程序流程图明确地指定了每个活动的先后顺序,而活动图仅描述了活动和必要的工作顺序,这是活动图和流程图的最根本的区别。另外,流程图一般都限于顺序进程,而活动图则可以支持并发进程。5.在关于用例的描述中,错误的是

39、 (18) 。(分数:1.00)A.用例将系统的功能范围分解成许多小的系统功能陈述B.一个用例代表了系统的一个单一的目标C.用例是一个行为上相关的步骤序列D.用例描述了系统与用户的交互 解析:分析 用例是在系统中执行的一系列动作,这些动作将生成特定参与者可见的价值结果(一个目标)。用例确定了一个和系统参与者进行交互并可由系统执行的动作序列。用例模型描述的系统与用户的交互,是参与者所理解的系统功能,用于需求分析阶段,它的建立是系统开发者和用户反复讨论的结果,表明了开发者和用户对需求规格达成的共识。在用例建模的过程中,若几个用例执行了同样的功能步骤,这时可以把这些公共步骤提取成独立的用例,这种用例

40、称为 (19) 。在 UML 的用例图上,将用例之间的这种关系标记为 (20) 。(分数:2.00)A.扩展用例B.抽象用例 C.公共用例D.参与用例解析:A.associationB.extendC.include D.inheritances解析:分析 请参考试题 2 的分析。UML 提供了 4 种结构图用于对系统的静态方面进行可视化、详述、构造和文档化。其中 (21) 是面向对象系统建模中最常用的图,用于说明系统的静态设计视图;当需要说明系统的静态实现视图时,应该选择 (22) ;当需要说明体系结构的静态实施视图时,应该选择 (23) 。(分数:3.00)A.构件图B.类图 C.对象图D

41、.部署图解析:A.构件图 B.协作图C.状态图D.部署图解析:A.协作图B.对象图C.活动图D.部署图 解析:分析 从应用的角度看,当采用面向对象技术设计系统时,第一步是描述需求;第二步是根据需求建立系统的静态模型,以构造系统的结构;第三步是描述系统的行为。其中,第一步与第二步中所建立的模型都是静态的,包括类图(含包图)、对象图、构件图和配置图等,是 UML 的静态建模机制。第三步中所建立的模型或者可以执行,或者表示执行时的时序状态或交互关系。它包括用例图、状态图、活动图、顺序图和协作图(通信图)等,是 UML 的动态建模机制。因此,UML 的主要内容也可以归纳为静态建模机制和动态建模机制两大

42、类。说明:有些文献将用例图归结为静态建模机制。6.面向对象系统中有两种基本的复用方式:框架复用和类库复用。下列关于框架和类库的描述不正确的是 (24) 。(分数:1.00)A.框架是一个“半成品”的应用程序B.类库只包含一系列可被应用程序调用的类C.框架会为一个特定的目的实现一个基本、可执行的架构D.类库是框架的一种扩展形式 解析:分析 框架与类库都可以认为是一种基础结构,而我们编写的代码是应用代码,若是基础代码调用应用代码,则这种基础结构是框架。反之,若是应用代码调用基础代码,则这种基础结构是类库。框架是一个“半成品”的应用程序,而类库只是包含一系列可被应用程序调用的类。类库给用户提供了一系

43、列可复用的类,这些类的设计都符合面向对象原则和模式。用户使用时,可以创建这些类的实例,或从这些类中继承出新的派生类,然后调用类中相应的功能。在这一过程中,类库总是被动地响应用户的调用请求。框架则会为某一特定目的实现一个基本、可执行的架构。框架中已经包含了应用程序从启动到运行的主要流程,流程中那些无法预先确定的步骤留给用户来实现。程序运行时,框架系统自动调用用户实现的功能组件。这时,框架系统的行为是主动的。所以,可以说类库是死的,而框架是活的。应用程序通过调用类库来完成特定的功能,而框架则通过调用应用程序来实现整个操作流程。框架是控制倒转原则的完美体现。应用程序和框架系统之间依赖关系的特点:(1

44、)应用程序和框架系统之间实际上是双向调用,双向依赖的关系。(2)依赖倒转原则可以减弱应用程序到框架之间的依赖关系。(3)控制反转及具体的模板方法模式可以消解框架到应用程序之间的依赖关系,这也是所有框架系统的基础。(4)框架系统可以独立重用。注:依赖是两个模型元素之间的关系,被依赖的模型元素发生变化就会影响到另一个模型元素。依赖倒转(Dependency Inversion Principle)的定义:上层模块不应该依赖于下层模块,它们共同依赖于一个抽象;抽象不能依赖于具象,具象依赖于抽象。其含意是:为了消解两个模块间的依赖关系,应该在两个模块之间定义一个抽象接口,上层模块调用抽象接口定义的函数

45、,下层模块实现该接口。7.下列有关面向对象的叙述不正确的是 (25) 。(分数:1.00)A.面向对象设计最根本的意图是适应需求变化B.应尽量针对接口编程,而不要针对实现编程C.尽量使用继承而不是组合,因为继承使得类问的耦合性最小 D.尽量使用已有的类库解析:分析 本题所考查的是面向对象设计的一些基本原则,这些原则如下:开闭原则:一个软件实体应当对扩展开放,对修改关闭。在设计一个模块时,应当使这个模块可以在不被修改的情况下被扩展。关键在于抽象,抽象层要预见所有可能的扩展,因此抽象层在任何扩展情况下都不会改变,即对修改关闭。同时,由于从抽象层导出一个或多个新类,可以有不同的实现,改变系统的行为,

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

47、少的用户B.系统具有很少的接口C.系统算法复杂,功能单一D.系统有很多参与者 解析:分析 用例模型描述的是用户与系统的交互,是开发者与用户交流的工具,可用来很好地定义系统的边界。所以,当用户较多时,采用用例能够较好地捕获系统需求。9.现有两个用例 UC1 和 UC2,其中 UC2 是一个完整的用例,可被实例化,而 UC1 需要 UC2 中的事件流才可被实例化,且 UC1 指定了使用 UC2 的精确位置,则 UC1 和 UC2 之间的关系是“ (27) ”。(分数:1.00)A.include B.extendC.generalizeD.call解析:分析 题目中描述的用例间的关系为包含关系,使

48、用 include。10.下列关于面向对象的分析与设计的描述,正确的是 (28) 。(分数:1.00)A.面向对象设计描述软件要做什么B.面向对象分析不需要考虑技术和实现层面的细节 C.面向对象分析的输入是面向对象设计的结果D.面向对象设计的结果是简单的分析模型解析:分析 在面向对象方法学中,面向对象分析(OOA)的结果是面向对象设计(OOD)的输入,面向对象设计的结果是面向对象的程序设计(OOP)的输入。显然,面向对象的分析是描述软件要做什么,而不需要考虑技术和实现层面的细节。11.协作图主要描述对象间的交互与连接,它 (29) 。(分数:1.00)A.能够表示消息的顺序和嵌套关系 B.能够

49、表示消息的顺序关系,但不能表示消息的嵌套关系C.能够表示消息的嵌套关系,但不能表示消息的顺序关系D.既不能表示消息的顺序关系,也不能表示消息的嵌套关系解析:分析 协作图能够通过消息编号来表示消息的顺序和嵌套关系。12.下列关于 UML 叙述正确的是 (30) 。(分数:1.00)A.UML 是一种语言,语言的使用者不能对其扩展B.UML 仅是一组图形的集合C.UML 仅适用于系统的分析与设计阶段D.UML 是独立于软件开发过程的 解析:分析 统一建模语言(Unified Modeling Language,UML)是一个通用的可视化建模语言,用于对软件进行描述、可视化处理、构造和建立软件系统制品的文档。它记录了对必须构造的系统的决定和理解,可用于对系统的理解、设计、浏览、配置、维护和信息控制。UML 适用于各种软件开发方法、软件生命周期的各个阶段、各种应用领域及各种开发工具,UML 是一种总结了以往建模技术的经验并吸收当今优秀成果的标准建模方法。UML 包括概念的语义、表示法和说明,提供了静态、动态、系统环境及组织结构的模型。它可被交互的可视化建模工具所支持,这些工具提供了代码生成器和报表生成器。UML 标准并没

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