1.3 题型2 UML模型图命题方向:本知识点主要考查UML各模型图的基本功能、作用等知识点。
【典型题1-2-1】 (2004下半年试题4、5)
● 在面向对象分析过程中,用概念模型来详细描述系统的问题域,用 (1) 来表示概念模型;用 (2) 来描述对象行为。
(1) A.序列图 B.类图
C.协作图 D.用例图
(2) A.序列图和协作图 B.用例图和活动图
C.状态图和活动图 D.用例图和构件图
要点解析:
在问题(1)描述中,“问题域”是指与所设计的系统要解决的问题的事物或概念的领域。建立概念模型也称为问题域建模,即找出代表所设计系统要解决的问题的“对象”,它展示该系统是什么或做什么,它独立于任何技术实现来描述系统,从而说明系统的本质。
对于问题(1)的选项B——“类图”,它是统一建模语言(UML)的一种结构类模型图,它可描述系统中类的静态结构,可以用它来表示概念模型,展示出一组相关的类、接口和协作及它们间的关系。选项A的“序列图”是UML的一种行为类模型图,可用它来说明系统的动态视图;选项C的“协作图”也是一种UML行为类模型图,可用它描述一组对象及其相互间的连接,以及这组对象收发的消息;选项D的“用例图”也是一种UML行为类模型图,可用它描述一组用例、用户以及它们间的关系。
对比问题(1)、(2)各4个选项可知,问题(2)选项C的“状态图”描述了一个特定对象的所有可能状态,以及由于各种事件的发生而引起的状态间的转移。它强调单个对象按事件次序发生的行为,但不适合描述若干协作对象的行为;C“活动图”是一种特殊的状态图,描述需要做的活动、执行这些活动的顺序以及工作流(完成工作所需要的步骤)。它强调对象间的控制流。选项D的“构件图”是一种UML结构类模型图。它描述了代码构件的物理结构及各构件之间的依赖关系,主要用于对源代码、可执行发布、物理数据库和可调整的系统建模。综上所述,问题(2)正确答案是选项C。
解答此类试题的一般思路是识记各种UML模型图的基本功能。
参考答案:(1)B;(2)C。
考点链接1.2.1:UML模型图
出题概率:75~90% 考查难度:★★★
在目前软件开发方法中,面向对象的方法占居主导地位。这种主导地位也决定着软件开发过程模型化技术的发展。根据对目前软件业的研究和估计,统一建模语言(UML,Unified Modeling Language)可以说代表着21世纪初期软件建模的发展方向。UML定义了结构类、行为类、模型管理类等3个大类,共12种模型图,详见表1-4所归纳的内容。
表1-4 UML模型图及其功能表
|
类 型 |
功 能 |
子 类 型 |
子类型的功能 |
|
结构类模型图 |
描述系统应用的静态结构 |
类图 |
描述系统中类的静态结构,展示了一组类、接口和协作及它们间的关系。其描述的静态关系,在系统整个生命周期都是有效的。系统可有多个类图,在高层给出类的主要职责,在低层给出类的属性和操作。对逻辑数据库模式建模、对系统词汇建模、对简单协作建模时可使用它 |
|
对象图 |
展示了一组对象及它们间的关系。用对象图说明类图中所反应事物实例的数据结构和静态快照,是类图的一个实例。显示类的多个对象实例,而不是实际的类,只能在系统某一时间段存在 |
|
构件图 |
描述代码构件的物理结构及各构件之间的依赖关系。用于对源代码、可执行的发布、物理数据库和可调整的系统建模 |
|
配置图 |
展现了运行时处理节点及其构件的部署。它描述系统硬件的物理拓扑结构(包括网络布局和构件在网络上的位置)以及在此结构上执行的软件(即运行时软构件在节点中的分布情况)。它说明系统结构的静态部署视图,即说明分布、交付和安装的物理系统 |
|
行为类模型图 |
描述系统动态行为的各个方面 |
用例图 |
展现了一组用例、用户以及它们间的关系。即从用户角度描述系统功能,并指出各功能的操作者。用于收集用户实际需求所采用的一些方法中 |
|
序列图 |
展现了一组对象和由这组对象收发的消息。用于按时间顺序对控制流建模,说明系统的动态视图。强调的是时间和顺序 |
|
协作图 |
展现了一组对象及其相互间的连接及这组对象收发的消息。强调收发消息对象的结构组织,按组织结构对控制流建模。它强调上下层次关系 |
|
状态图 |
展示了一个特定对象的所有可能状态及由于各种事件的发生而引起的状态间的转移,常用它说明系统的动态视图。它对于接口、类或协作的行为建模尤为重要。一个状态图描述了一个状态机。它强调一个对象按事件次序发生的行为 |
|
活动图 |
是一种特殊的状态图,描述需要做的活动、执行这些活动的顺序(多为并行的)以及工作流(完成工作所需要的步骤)。它用于系统的功能建模,并强调对象间的控制流 |
|
模型管理类模型图 |
|
软件包 |
组织和管理各种应用模型 |
|
子系统 |
|
模型 |
利用UML建模语言设计面向对象系统时,步骤1是描述需求;步骤2是根据需求建立系统的静态模型,以构造系统的结构;步骤3是描述系统的行为。其中,第1步与第2步中所建立的模型都是静态的,包括UML静态建模机制的类图、对象图、构件图和配置图等图形。第3步所建立的模型或者可以执行,或者表示执行时的时序状态或交互关系,它包括UML动态建模机制的用例图、状态图、活动图、顺序图和协作图等图形。
【典型题1-2-2】 (2004下半年试题8)
● 在UML中, 把活动图中的活动划分为若干组,并将划分的组指定给对象,这些对象必须履行该组所包括的活动,它能够明确地表示哪些活动是由哪些对象完成的。
A.组合活动 B.同步条
C.活动 D.泳道
要点解析:
在UML模型图中,“活动图”是一种特殊的状态图,它强调对象间的控制流,用于描述满足用例要求所需进行的活动以及各活动间的约束关系(有利于并行活动的识别)。可见,活动图由各种动作状态构成,每个动作状态包含可执行动作的规范说明。在活动图中,泳道用于说明一个个活动轨迹,即每个活动都明确归属于某个泳道。绘图活动图时,泳道用矩形框来表示,矩形框内填入具体活动的名称,矩形框的顶部填写负责该活动的对象名。如图1-3示意了某门禁系统活动图中开锁活动的一个泳道。
|
| 图1-3 开锁活动的泳道示意图 |
参考答案:D
【典型题1-2-3】 (2004下半年试题9)
● 在较高的抽象层次上,传统的程序流程图与UML中活动图最根本的区别在于 。
A.程序流程图明确地指定了每个活动的先后顺序,而活动图仅描述了活动和必要的工作顺序
B.活动图不提供循环控制结构,而程序流程图提供
C.活动图不能表示并发活动,而程序流程图可以表示并发活动
D.两者采用不同的图形符号系统
要点解析:
通常,传统的程序流程图简明扼要地表达出,完成某个给定问题的确定算法的逻辑操作过程,其条件行为用分支与合并来描述。
在UML模型图中,“活动图”是状态机的一种特殊情况,它强调对象间的控制流,它既支持条件行为,也支持并发行为(用分岔与汇合来描述)。因此,可以较容易地判断选项C的描述是错误的,即活动图支持并发活动,而程序流程图一般限于顺序进程。选项B、D的描述不是程序流程图与活动图的本质区别。
参考答案:A
【典型题1-2-4】 (2005上半年试题4~6)
● UML提供了4种结构图用于对系统的静态方面进行可视化、详述、构造和文档化。其中 (1) 是面向对象系统建模中最常用的图,用于说明系统的静态设计视图;当需要说明系统的静态实现视图时,应该选择 (2) ;当需要说明体系结构的静态实施视图时,应该选择 (3) 。
(1) A.构件图 B.类图
C.对象图 D.部署图
(2) A.构件图 B.协作图
C.状态图 D.部署图
(3) A.协作图 B.对象图
C.活动图 D.部署图
要点解析:
在UML视图中,主要有①用况视图、②逻辑视图、③组件视图、④并发视图和⑤部署视图等类型。它们各自的说明、组成和使用者见表1-5。
表1-5 UML视图相关说明表
|
视 图 |
说 明 |
组 成 |
使 用 者 |
|
用况视图 |
描述系统应交付的功能,即从外部参与者的角度出发所观察到的系统功能,是其他视图的核心和基础。可用于测试系统是否满足用户需求、验证系统的有效性 |
静态描述系统功能的用况图和动态观察系统功能的序列图、协作图、活动图 |
用户、设计人员、开发人员、测试人员 |
|
逻辑视图 |
从系统静态结构(类图、对象图)和动态行为(状态图、序列图、协作图、活动图)角度出发显示如何实现系统的功能,它关注的是系统的内部 |
类图、对象图、状态图、序列图、协作图、活动图 |
设计人员、 开发人员 |
|
构件视图 |
用来显示系统代码构件的组织结构,描述系统实现模块以及它们之间的依赖关系 |
构件图 |
开发人员 |
|
并发视图 |
用业显示系统的并发性,主要包含形成系统并发与同步的线程和进程。它描述的是系统的非功能属性,主要考虑资源的有效使用、代码的并发执行和异步事件的处理 |
动态图(状态图、序列图、协作图、活动图)和实现图(构件图、部署图) |
开发人员、系统集成人员 |
|
部署视图 |
显示系统的具体部署,即将软件系统部署到由处理器设备组成的硬件结构中 |
部署图 |
开发人员、系统集成人员、测试人员 |
在面向对象系统建模过程中,通常用概念模型来详细描述系统的问题域。类图用于描述系统的静态结构化设计,即用来表示概念模型,它最基本的元素是类或接口,表达了类、接口以及它们之间的静态结构和关系。因此,问题(1)的正确答案是选项B的“类图”。
注意到本试题讨论的是与“系统的静态方面”相关的主题,因此可先排除描述系统动态行为的“协作图”、“状态图”、“活动图”的选项,即排除问题(2)的B、C选项和问题(3)的A、C选项。
由表1-5可知,构件图可用于描述系统实现模块以及它们之间的依赖关系,即可说明系统的静态实现视图。部署图可用于说明体系结构的静态实施视图。
参考答案:(1)B;(2)A;(3)D。
考点链接1.2.2:类图中的各种关系
出题概率:25~50% 考查难度:★★
在面向对象系统建模过程中,通常用概念模型来详细描述系统的问题域。类图用于描述系统的结构化设计,即用来表示概念模型,它最基本的元素是类或接口,表达了类、接口以及它们之间的静态结构和关系。在类图上通常包含①泛化(Generalization)、②实例(Realization)、③关联(Association)、④聚集(Aggregation)、⑤组装(Composition)、⑥依赖(Dependency)等6种关系,它们各自的相关说明见表1-6。
表1-6 类图的6种关系说明表
|
关 系 |
说 明 |
箭 头 方 向 |
关 键 字 |
|
泛化(Generalization) |
表示类与类、接口与接口之间的特殊关系,它是继承关系的反关系 |
由子类指向父类 |
extends |
|
实例(Realization) |
用于指定两个实体之间的一个合同 |
由实现接口的类指向被实现的接口 |
implements |
|
关联(Association) |
表示类与类之间的连接,即一个类保存对另一个类实例的引用,并在需要的时候调用这个实例的方法 |
单向箭头指向遍历或查询的方向;而双向箭头是可选的 |
|
|
聚集(Aggregation) |
是关联关系的一种特例,代表两个类之间的整体/局部关系 |
|
|
|
组装(Composition) |
是聚集的一种特殊形式,暗示“局部”在“整体”内部的生存期职责 |
|
|
|
依赖(Dependency) |
也是类与类之间的连接,并且依赖总是单向的,是类间最弱的一种关系 |
|
|
注意在表1-6中,聚集暗示着整体在概念上处于比局部更高的一个级别,在实例图中不存在回路,即只能是一种单向关系;而关联暗示两个类在概念上位于相同的级别。在Java中,关联使用实例变量来实现;聚集也是使用实例变量来实现的。关联和聚集的区别纯粹是概念上的,在Java语法上没有刻意的区分。
另外,聚集和组装是UML中两种非常重要的关系,它们都表示实例之间的整体/部分关系。组装是聚集的一种形式。聚集是概念性的,只是区分整体与部分。组装具有很强的归属关系,而且整体与部分的对象生存周期是一致的。对于这一知识点也可理解成如果没有成分对象,组装对象就不存在;在任何时候,每个给定的成分对象只能是组装对象的组成部分。
【典型题1-2-5】 (2005下半年试题6)
● 协作图主要描述对象间的交互与连接,它 。
A.能够表示消息的顺序和嵌套关系
B.能够表示消息的顺序关系,但不能表示消息的嵌套关系
C.能够表示消息的嵌套关系,但不能表示消息的顺序关系
D.既不能表示消息的顺序关系,也不能表示消息的嵌套关系
要点解析:
协作图是一种UML行为类模型图,可用它描述一组对象及其相互间的连接,以及这组对象收发的消息。它强调收发消息对象的结构组织,即强调上下层次关系。它按组织结构对控制流建模,并能够通过消息编号来表示消息的顺序和嵌套关系。
参考答案:A
【典型题1-2-6】 (2006下半年试题34)● 在UML的动态建模机制中, 描述了对象之间动态的交互关系,还描述了交互的对象之间的静态链接关系,即同时反映系统的动态和静态特征。
A.状态图(State Diagram) B.序列图(Sequence Diagram)
C.协作图(Collaboration Diagram) D.活动图(Activity Diagram)
要点解析:
本试题的4个选项均是UML行为类动态模型图。其中,可用协作图描述对象之间动态的交互关系以及交互对象之间的静态链接关系,即同时反映系统的动态和静态特征。它强调收发消息对象的结构组织,即强调上下层次关系。它按组织结构对控制流建模,并能够通过消息编号来表示消息的顺序和嵌套关系。
状态图展示了一个特定对象的所有可能状态,以及由于各种事件的发生而引起的状态间的转移。可用它描述使用用例的生命周期,也可用它说明系统的动态视图。它对于接口、类或协作的行为建模尤为重要。
序列图展现了一组对象和由这组对象收发的消息,用于按时间顺序对控制流建模,也用它说明系统的动态视图。它强调的是时间和顺序。
活动图是一种特殊的状态图,它描述了需要做的活动,执行这些活动的顺序以及工作流。它强调对象间的控制流。
参考答案:C
思考与讨论
本试题类似于2001年系统分析师考试试卷的第9题——“(UML)协作图描述了协作的
之间的交互和链接(1ink)”(答案:对象)。
【典型题1-2-7】 (2007下半年试题2)● 在UML中的状态图和活动图的叙述中, () 是错误的。
A.状态图和活动图都是对系统的动态方面进行建模的图
B.活动图是状态图的一种特殊情况,其中所有或大多数状态是活动状态
C.状态图显示从状态到状态的控制流,活动图显示的是从活动到活动的控制流
D.在对一个对象的生存期建模时,只能使用状态图
要点解析:
“状态图”描述了一个特定对象的所有可能状态,以及由于各种事件的发生而引起的状态间的转移。它强调单个对象按事件次序发生的行为,但不适合描述若干协作对象的行为。
“活动图”是一种特殊的状态图,描述需要做的活动,执行这些活动的顺序,以及工作流(完成工作所需要的步骤)。它强调对象间的控制流。
UML的行为类模型图用于描述系统动态行为的各个方面,包括用例图、序列图、协作图、状态图和活动图等。可见,在对一个对象的生存期建模时,不仅仅只使用状态图。
参考答案:D
【典型题1-2-8】 (2007下半年试题3~5)● UML提供了5种对系统动态方面建模的图,其中 (1) 对系统行为组织和建模;
(2) 对系统功能建模,它强调对象之间的控制流; (3) 之间是同构的。
(1) A.用例图 B.序列图
C.协作图 D.状态图
(2) A.用例图 B.活动图
C.状态图 D.序列图
(3) A.状态图和活动图 B.用例图和活动图
C.序列图和协作图 D.活动图和协作图
要点解析:
UML的用例图、序列图、协作图、状态图和活动图,是提供对系统动态方面建模的图。其中,协作图用于展现一组对象及其相互间的连接,以及这组对象收发的消息。它强调收发消息对象的结构组织,按组织结构对控制流建模,强调上下层次关系。可见,协作图对系统行为组织和建模。
活动图是一种特殊的状态图,描述需要做的活动、执行这些活动的顺序以及工作流。它用于系统的功能建模,并强调对象间的控制流。
用例图展现了一组用例、用户以及它们间的关系,即从用户角度描述系统功能,并指出各功能的操作者。
状态图展示一个特定对象的所有可能状态,以及由于各种事件的发生而引起的状态间的转移。它强调一个对象按事件次序发生的行为,对于接口、类或协作的行为建模尤为重要。
在UML建模过程中,对象行为是通过交互来实现的,是对象间为完成某一目的而进行的一系列消息交换。消息序列可用序列图和协作图来表示。序列图展现了一组对象和由这组对象收发的消息,用于按时间顺序对控制流建模,即强调消息的时间顺序,其特点是有生命线及控制焦点。而协作图强调参加交互的对象的组织结构(静态链接关系)。序列图和协作图统称为交互图(Interactive diagram),即这两种图是同构的,可以互相转换。它展现了各个对象如何依据某种行为进行相互协作。
参考答案:(1)C;(2)B;(3)C。
思考与讨论
本试题的第3个问题所考查的知识点——“序列图和协作图之间是同构的”,类似于2004上半年系统分析师考试上午试卷第7题。
【典型题1-2-9】 ● UML的状态图展示了一个特定对象的所有可能状态,以及由于各种事件的发生而引起的状态间的转移(transition)。如果一个并发的状态由m个并发的子状态图组成,那么该并发状态在某时刻的状态由 个子状态图中各取一个状态组合而成。
A.任意一 B.任意两
C.每一 D.任意n(n≤m)
要点解析:
UML的状态图指明了对象所有可能的状态,以及状态间的迁移(transition)。一个状态图描述了一个状态机,一个父状态图可以由若干个并发执行的子状态图来描述。如果一个状态由m个并发执行的子状态图组成,那么该并发状态在某时刻的状态,由每一个子状态图中各取一个状态组合而成。
参考答案:C
【典型题1-2-10】
● 在使用UML建模时,通常采用“①描述需求→②构造系统结构→③描述系统行为”的设计步骤。其中,UML结构包括了基本构造块、公共机制和 。
A.把这些构造块放在一起的规则 B.类与对象的划分、接口与实现的分离
C.描述系统细节的规格说明 D.构造块的特性描述
要点解析:
在使用UML构造系统的结构,就是根据应用需求建立系统静态模型的过程。UML结构包括了基本构造块、公共机制和支配这些构造块放在一起的规则。其中,基本构造块主要有①事物、②关系和③图;公共机制主要有①详细说明、②修饰、③通用划分和④扩展机制(构造型、约束、标记值等)。UML用于描述事物的语义规则有:①为事物、关系、图命名;②给出某事物特定含义的语境;③怎样使用或看见名字;④事物如何正确、一致地相互联系;⑤运行或模拟动态模型的含义是什么。
参考答案:A
【责任编辑:
夏书 TEL:(010)68476606】