系统分析师-面向对象技术
(总分:61.00,做题时间:90分钟)
一、
(总题数:48,分数:61.00)
(总题数:48,分数:61.00)
1.在某信息管理系统中存在两个类:类“客户”和类“订单”。它们之间的业务关系是:①一个客户提交零个或多个订单;②一个订单由一个且仅由一个客户提交。能够正确表示这个业务关系的UML类图是______。
[*]
(分数:1.00)
[*]
(分数:1.00)
A.
B.
C.
D. √
解析:[解析] 由试题中的关健信息“①一个客户提交0个或多个订单;②一个订单由一个且仅由一个客户提交”可知,对应每个“订单”类的实例,都必须存在1个“客户”类的实例,对应每个“客户”类的实例,可能存在0个或多个“订单”类的实例。可见,正确表示该信息管理系统中类“客户”和类“订单”之间业务关系,是选项D的UML类图。
选项A的图示“[*]”表示的是一种泛化关系(继承关系的反关系);选项B的图示“[*]”表示的是一种聚集关系(一种特殊的关联关系),空心菱形的一端表示整体的概念;选项C的图示“→”也是表示一种关联关系,但该UML类图所表达的关联多重度不符合试题的描述。
选项A的图示“[*]”表示的是一种泛化关系(继承关系的反关系);选项B的图示“[*]”表示的是一种聚集关系(一种特殊的关联关系),空心菱形的一端表示整体的概念;选项C的图示“→”也是表示一种关联关系,但该UML类图所表达的关联多重度不符合试题的描述。
UML提供了4种结构图用于对系统的静态方面进行可视化、详述、构造和文档化。其中 (17) 是面向对象系统建模中最常用的图,用于说明系统的静态设计视图;当需要说明系统的静态实现视图时,应该选择 (18) ;当需要说明体系结构的静态实施视图时,应该选择 (19) 。
(分数:3.00)
A.构件图
B.类图 √
C.对象图
D.部署图
解析:
A.构件图 √
B.协作图
C.状态图 D。部署图
解析:
A.协作图
B.对象图
C.活动图
D.部署图 √
解析:[解析] 在UML视图中,主要有①用况视图、②逻辑视图、③组件视图、④并发视图和⑤部署视图等类型。它们各自的说明、组成和使用者见表1-5。
表1-5 DML视图相关说明表 | |||
视图 | 说明 | 组成 | 使用者 |
用况视图 | 描述系统应交付的功能,即从外部参与者的角度出发所观察到的系统功能,是其他视图的核心和基础。可用于测试系统是否满足用户需求、验证系统的有效性 | 静态描述系统功能的用况图和动态观察系统功能的序列图、协作图、活动图 | 用户、设计人员、开发人员、测试人员 |
逻辑视图 | 从系统静态结构(类图、对象图)和动态行为(状态图、序列图、协作图、活动图)角度出发显示如何实现系统的功能,它关注的是系统的内容 | 类图、对象图、状态图、序列图、协作图、活动图 | 设计人员、开发人员 |
构件视图 | 用来显示系统代码构件的组织结构,描述系统实现模块以及它们之间的依赖关系 | 构件图 | 开发人员 |
并发视图 | 用以显示系统的并发性,主要包含形成系统并发与同步的线程和进程。它描述的是系统的非功能属性,主要考虑资源的有效使用、代码的并发执行和异步事件的处理 | 动态图(状态图、序列图、协作图、活动图)和实现图(构件图、部署图) | 开发人员、系统集成人员 |
部署视图 | 显示系统的具体部署,即将软件系统部署到由处理器设备组成的硬件结构中 | 部署图 | 开发人员、系统集成人员、测试人员 |
在面向对象系统建模过程中,通常用概念模型来详细描述系统的问题域。类图用于描述系统的静态结构化设计,即用来表示概念模型,它最基本的元素是类或接口,表达了类、接口以及它们之间的静态结构和关系。因此,问题(17)的正确答案是选项B的“类图”。
注意到本试题讨论的是与“系统的静态方面”相关的主题,因此可先排除描述系统动态行为的“协作图”、“状态图”、“活动图”的选项,即排除问题(18)的B、C选项和问题(19)的A、C选项。
由表1-5可知,构件图可用于描述系统实现模块以及它们之间的依赖关系,即可说明系统的静态实现视图。部署图可用于说明体系结构的静态实施视图。
注意到本试题讨论的是与“系统的静态方面”相关的主题,因此可先排除描述系统动态行为的“协作图”、“状态图”、“活动图”的选项,即排除问题(18)的B、C选项和问题(19)的A、C选项。
由表1-5可知,构件图可用于描述系统实现模块以及它们之间的依赖关系,即可说明系统的静态实现视图。部署图可用于说明体系结构的静态实施视图。
2.以下与“模式”相关的叙述中,正确的是______。
(分数:1.00)
(分数:1.00)
A.采用设计模式允许在非面向对象程序设计语言中使用面向对象的概念
B.单身模式(Singleton)描述了只有一个方法和属性的类的集合
C.在MVC(模型/视图/控制器)模式中,1个模型可以用于多个视图 √
D.在MVC模式中,控制器是将应用问题域中包含的抽象领域知识呈现给用户的方式
解析:[解析] 在面向对象软件开发过程中,设计模式使开发人员可以更加简单、方便地复用成功的设计和体系结构,它是对被用来在特定场景下解决一般设计问题的类和相互通信的对象的描述。其4个基本要素是:模式名称、问题(模式的使用场合)、解决方案和效果。
单身模式用于保证一个类仅有一个实例,并提供一个访问它的全局访问点。对于系统中的某些类,只有一个实例是很重要的。
MVC(模型/视图/控制器)是为需要为同样的数据提供多个视图的应用程序而设计的,它能很好地使数据层和表示层分离。这种架构模式把应用程序分为①模型、②视图、③控制器等3种对象类型。其中,①模型是应用问题域中包含的抽象领域知识;②视图是将应用问题域中包含的抽象领域知识呈现给用户的方式,1个模型可以用于多个视图;③控制器是指用户界面对用户输入的响应方式。
单身模式用于保证一个类仅有一个实例,并提供一个访问它的全局访问点。对于系统中的某些类,只有一个实例是很重要的。
MVC(模型/视图/控制器)是为需要为同样的数据提供多个视图的应用程序而设计的,它能很好地使数据层和表示层分离。这种架构模式把应用程序分为①模型、②视图、③控制器等3种对象类型。其中,①模型是应用问题域中包含的抽象领域知识;②视图是将应用问题域中包含的抽象领域知识呈现给用户的方式,1个模型可以用于多个视图;③控制器是指用户界面对用户输入的响应方式。
3.面向对象程序设计语言的______机制,实现了方法的定义与具体的对象无关,而对方法的调用则可以关联于具体的对象。
(分数:1.00)
A.模板
B.多态
C.动态绑定 √
D.多重绑定
解析:[解析] 选项A的“模板(template)”是面向对象技术的一种参数化类。选项B的“多态性”使作用于不同的对象的同一个操作可以有不同的解释,从而产生不同的执行结果。选项C的“动态绑定(dynamic binding)”是面向对象程序设计语言中的一种机制。这种机制实现了方法的定义与具体的对象无关,而对方法的调用则可以关联于具体的对象。选项D是一个虚构的选项。
在一个客户信息系统中存在两种类型的客户:个人客户和集团客户。对于个人客户,系统中保存了其客户标识和基本信息(包括姓名、住宅电话和emil);对于集团客户,系统中保存了其客户标识,以及与该集团客户相关的若干个联系人的信息(联系人的信息包括姓名、住宅电话、email、办公电话和职位)。
根据上述描述,得到了如图1-5所示的UML类图,其中类“客户”的属性有 (33) :类“人”的属性有 (34) 。
[*]
(分数:2.00)
根据上述描述,得到了如图1-5所示的UML类图,其中类“客户”的属性有 (33) :类“人”的属性有 (34) 。
[*]
(分数:2.00)
A.客户标识 √
B.姓名、住宅电话、email
C.姓名、住宅电户、办公电话、email、职位
D.客户标识、办公电话、职位
解析:
A.客户标识
B.姓名、住宅电话、email √
C.姓名、住宅电户、办公电话、email、职位
D.客户标识、办公电话、职位
解析:[解析] 由试题关健信息可知,“对于个人客户,系统中保存了其客户标识……对于集团客户,系统中保存了其客户标识……”由此,“客户标识”是个人客户和集团客户的共同属性,因此该标识也必然是类“客户”的一个属性。据此可先排除问题(1)的选项B和选项C。对于问题(1)选项D的“办公电话、职位”是类“集团客户”的属性,如果它们也是类“客户”的属性,那么类“个人客户”也必然继承这两个属性,而试题中对于类“个人客户”无此相关描述,可见选项D不是正确答案。因此依据试题的描述,类“客户”的属性只有“客户标识”。
在UML类图中,“[*]”表示其相联的两个类之间存在泛化关系,即在图1-5中类“人”是类“联系人”的基类;“[*]”表示其相联的两个类之间存在关联关系,即在图1-5中类“人”与类“个人客户”
在UML类图中,“[*]”表示其相联的两个类之间存在泛化关系,即在图1-5中类“人”是类“联系人”的基类;“[*]”表示其相联的两个类之间存在关联关系,即在图1-5中类“人”与类“个人客户”
之间具有关联关系。由试题关健信息“对于个人客户,系统中保存了其客户标识和基本信息(包括姓名、住宅电话和E-mail)”,以及问题(1)分析中类“个人客户”继承了类“客户”的“客户标识”属性,可见类“个人客户”还有“姓名、住宅电话和E-mail”属性没有体现,在图1-5中这些属性应该从类“人”中进行关联。
从试题关健信息“联系人的信息包括姓名、住宅电话、E-mail、办公电话和职位”可知,类“联系人”除了从类“人”中继承了“姓名、住宅电话、E-mail”属性之外,还追加了“办公电话、职位”属性。这一点分析也证明了类“人”具有“姓名、住宅电话、E-mail”的属性。
解答此类试题的关健思路是识记UML各种关系的图示,以及消化关联的多重度概念。
从试题关健信息“联系人的信息包括姓名、住宅电话、E-mail、办公电话和职位”可知,类“联系人”除了从类“人”中继承了“姓名、住宅电话、E-mail”属性之外,还追加了“办公电话、职位”属性。这一点分析也证明了类“人”具有“姓名、住宅电话、E-mail”的属性。
解答此类试题的关健思路是识记UML各种关系的图示,以及消化关联的多重度概念。
4.在以下关于类的相关描述中,不正确的是______。
(分数:1.00)
(分数:1.00)
A.同一个类的对象具有不同的对象自身引用值
B.同一个类的对象具有不同的静态数据成员值 √
C.一个类的静态方法只能访问该类的静态成员变量
D.一个类的静态成员变量可被该类的所有方法访问
解析:[解析] 类允许开发者自定义一种新的类型及其相关的操作。类是对象的模板,对象是类的实例。选项A的“对象自身引用值”是面向对象程序设计语言中特有的、十分重要的机制。每个对象都有属于自己的对象自身引用值。
选项B的“静态数据成员”用来实现同一个类的不同对象之间的数据共享,它不属于某个对象。同一个类的不同对象共享静态数据成员值。如该值被类中某一对象修改时,同类的其他对象也可看到此次修改。注意:“不同的类的对象具有相同的静态数据成员值”的表述也是错误的。
静态成员可分为静态成员变量和静态方法。只要对静态成员变量的值更新一次,所有对象的该静态成员变量值都会被更新。静态成员函数可以直接访问静态成员,但不能直接访问非静态成员。
选项B的“静态数据成员”用来实现同一个类的不同对象之间的数据共享,它不属于某个对象。同一个类的不同对象共享静态数据成员值。如该值被类中某一对象修改时,同类的其他对象也可看到此次修改。注意:“不同的类的对象具有相同的静态数据成员值”的表述也是错误的。
静态成员可分为静态成员变量和静态方法。只要对静态成员变量的值更新一次,所有对象的该静态成员变量值都会被更新。静态成员函数可以直接访问静态成员,但不能直接访问非静态成员。
5.UML用例图展示了各类actor与系统所提供的用例之间的连接。在银行储蓄管理信息系统中,不属于外部actor的是______。
(分数:1.00)
A.存折和存取款单 √
B.银行工作人员
C.储蓄客户
D.储蓄机
解析:[解析] 在UML用例图中,外部行为者(actor)是指那些可能使用用例的人或外部系统。在银行储蓄管理系统中,银行工作人员、储蓄客户、储蓄机均可能使用该信息系统中的某些用例。因此,它们都是该信息系统的外部行为者(actor)。
6.重置(over riding)的基本思想是通过______机制的支持,使得子类在继承父类界面定义的前提下,用适合于自己要求的实现去置换父类中的相应实现。
(分数:1.00)
A.对象引用
B.动态绑定 √
C.多态迁移
D.类型匹配
解析:[解析] 重置(over riding)的基本思想是通过动态绑定机制的支持,使得子类在继承父类界面定义的前提下,用适合于自己要求的实现去置换父类中的相应实现。在Java语言中,通过抽象方法来进行重置的声明,通过方法查实现重置方法体的动态绑定。在c++语言中,通过虚拟函数的定义来进行重置的声明,通过虚拟函数跳转表结构来实现重置方法体的动态绑定。
7.现有两个用例UC1和UC2。其中UC2是一个完整的用例,可被实例化,而UC1需要UC2中的事件流才可被实例化,且UC1指定了使用UC2的精确位置,则UC1和UC2间的关系是“______”。
(分数:1.00)
(分数:1.00)
A.include √
&d
&alize
D.call
mvc实例解析:[解析] 注意本试题描述中的用词“精确位置”,说明用例UC1对用例UC2的实现很重要。由试题的关键信息“UC1需要UC2中的事件流才可被实例化”可知,作为一个完整的用例的UC2实现了用例UC1的部分功能。因此,应该使用包含(include)关系来表示用例UC1和UC
2之间的关系。
如果一个用例明显混合了两种(或两种以上)的不同场景,即在具体情况可能发生多种活动,可将这个用例分为一个主用例和一个或多个辅助用例时,可以使用选项B的扩展关系(extend)来表示用例问的关系。
选项C的“generalize”在UML可解释成“泛化”;选项D的“call”可解释成“调用”。
解答此类试题的一般思路是消化和理解用例问各种关系的基本概念。
如果一个用例明显混合了两种(或两种以上)的不同场景,即在具体情况可能发生多种活动,可将这个用例分为一个主用例和一个或多个辅助用例时,可以使用选项B的扩展关系(extend)来表示用例问的关系。
选项C的“generalize”在UML可解释成“泛化”;选项D的“call”可解释成“调用”。
解答此类试题的一般思路是消化和理解用例问各种关系的基本概念。
8.用UML建立业务模型是理解企业业务过程的第一步。使用活动图(activity diagram)可显示业务工作流的步骤、决策点,以及完成每一步骤的角和对象。它强调______。
(分数:1.00)
(分数:1.00)
A.上下层次关系
B.时问和顺序
C.对象间的迁移
D.对象间的控制流 √
解析:[解析] 用UML建立业务模型是理解业务过程的第一步。使用活动图可表示企业业务的工作流。这种UML图显示工作流中的步骤、决策点,以及完成每一步骤的角和对象。它强调对象间的控制流,是一种特殊的状态图(statechart diagram)。
在UML模型图中,协作图(collaboration diagram)按组织结构对控制流建模,它强调上下层次关系。序列图(sequence diagram)用于按时问顺序对控制流建模,它强调的是时间和顺序。
在UML模型图中,协作图(collaboration diagram)按组织结构对控制流建模,它强调上下层次关系。序列图(sequence diagram)用于按时问顺序对控制流建模,它强调的是时间和顺序。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论