UML中的图-13中UML图详解

图是一组元素的图形表示,大多数情况下把图画成顶点和弧的联通图。

UML提供了13种图,分别是类图、对象图、用例图、序列图、通信图、状态图、活动图、构建图、组合结构图、部署图、包图、交互概览图和计时图。序列图、通信图、交互概览图和计时图均被称为交互图。

1.类图

类图(Class Diagram)展现了一组对象、接口、协作和他们之间的关系。类图给出系统的静态设计视图。

类图中通常包括下述内容:类,接口,协作,依赖、泛化和关联关系

类图中也可以包含注解和约束。类图还可以含有包或子系统,二者都用于把模型元素聚集成更大组块。
类图用于对系统的静态设计视图建模。这种视图主要支持系统的功能需求,即系统要提供给最终用户的服务。当对系统的静态设计视图建模时,通常以下述3种方式之一使用类图。
(1)对系统的词汇建模。对系统的词汇建模涉及做出这样的决定:哪些抽象是考虑中的系统的一部分,哪些抽象处于系统边界之外。用类图详细描述这些抽象和它们的职责。
(2)对简单的协作建模。协作是一些共同工作的类、接口和其他元素的群体,该群体提供的一些合作行为强于所有这些元素的行之和。例如,当对分布式系统的事务语义建模时,不能仅仅盯着一个单独的类来推断要发生什么,而要有相互协作的一组类来实现这些语义。用类图对这组类以及它们之间的关系进行可视化和详述。
(3)对逻辑数据库模式建模。将模式看作为数据库的概念设计的蓝图。在很多领域中,要在关系数据库或面向对象数据库中存储永久信息,可以用类图对这些数据库的模式建模。

2.对象图

对象图(Object Diagram)展现了某一时刻一组对象以及他们之间的关系,描述了在类图中所建立的事物的实例的静态快照。对象图一般包括对象和链。

和类图一样,对象图给出系统的静态设计视图或静态进程视图,但它们是从真实的或原型实例的角度建立的。这种视图主要支持系统的功能需求,即系统应该提供给最终用户的服务。利用对象图可以对静态数据结构建模。
在对系统的静态设计视图或静态进程视图建模时,主要是使用对象图对对象结构进行建模。对象结构建模涉及在给定时刻抓取系统中对象的快照。对象图表示了交互图表示的动态场景的一个静态画面,可以使用对象图可视化、详述、构造和文档化系统中存在的实例以及它们之间的相互关系。

3.用例图

用例图(Use Case Diagram)展现了一组用例、参与者以及他们之间的关系。用例图通常包括:用例,参与者,用例之间的扩展关系和包含关系,参与者和用例之间的关联关系,用例与用例以及参与者与参与者之间的泛化关系。

用例图用于对系统的静态用例视图进行建模。这个视图主要支持系统的行为,即该系统在它的周边环境的语境中所提供的外部可见服务。当对系统的静态用例视图建模时,可以用下列两种方式来使用用例图。
(1)对系统的语境建模。对一个系统的语境进行建模,包括围绕整个系统画一条线,并声明有哪些参与者位于系统之外并与系统进行交互。在这里,用例图说明了参与者以及它们所扮演的角色的含义。
(2)对系统的需求建模。对一个系统的需求进行建模,包括说明这个系统应该做什么(从系统外部的一个视点出发),而不考虑系统应该怎样做。在这里,用例图说明了系统想要的行为。通过这种方式,用例图使我们能够把整个系统看作一个黑盒子,采用矩形框表示系统边界;可以观察到系统外部有什么,系统怎样与哪些外部事物相互作用,但却看不到系统内部是如何工作的

4.交互图

交互图用于对系统的动态方面进行建模。一张交互图表现的是一个交互,由一组对象和他们之间的关系组成,包含他们之间可能的传递消息。交互图一般包含对象、链和消息。

1)序列图

序列图(Sequence Diagram)描述了以时间顺序组织的对象之间的交互活动

序列图有两个不同于通信图的特征。
(1)序列图有对象生命线。对象生命线是一条垂直的虚线,表示一个对象在一段时间内存在。在交互图中出现的大多数对象存在于整个交互过程中,所以这些对象全都排列在图的项部,其生命线从图的顶部画到图的底部。但对象也可以在交互过程中创建,它们的生命线从接收到构造生为create 的消息时开始。对象也可以在交互过程中撤销,它们的生命线在接收到构造型为 destroy 的消息时结束(并且给出一个大X的标记表明生命的结束)。
(2)序列图有控制焦点。控制焦点是一个瘦高的矩形,表示一个对象执行一个动作所经历的时间段,既可以是直接执行,也可以是通过下级过程执行。矩形的顶部表示动作的开始,底部表示动作的结束(可以由一个返回消息来标记)。还可以通过将另一个控制焦点放在它的父控制焦点的右边来显示(由循环、自身操作调用或从另一个对象的回调所引起的)控制焦点的嵌套。

2)通信图

通信图(Communication Diagram)强调收发消息的对象的组织结构,强调参加交互的对象的组织。

通信图有两个不同于序列图的特性。
(1)通信图有路径。为了指出一个对象如何与另一个对象链接,可以在链的末端附上一个路径构造型(如构造型《local》,表示指定对象对发送者而言是局部的)。通常只需要显式地表示以下几种链的路径:local(局部)、parameter(参数)、global(全局)以及 self(自身),但不必表示 association(关联)。
(2)通信图有顺序号。为表示一个消息的时间顺序,可以给消息加一个数字前缀(从1号消息开始),在控制流中,每个新消息的顺序号单调增加(如2、3等)。为了显示嵌套,可使用带小数点的号码(1表示第一个消息:1.1表示嵌套在消息1中的第一个消息,1.2表示嵌套在消息1中的第二个消息,等等)。嵌套可为任意深度。还要注意的是,沿同一个链可以显示许多消息(可能发自不同的方向),并且每个消息都有唯一的一个顺序号。
序列图和通信图是同构的,它们之间可以相互转换。

3)交互概览图

交互概览图(Interaction Overview Diagram)是UML 2.0新增的交互图之一,它是活动图的变体,描述业务过程中的控制流概览,软件过程中的详细逻辑概览,以及将多个图进行连接,抽象掉了消息和生命线。它使用活动图的表示法,如图7-16所示。纯粹的交互概览图中所有活动都是交互发生的。

4)计时图

计时图(Timing Diagram)描述对象状态随时间改变的情况,适合分析周期性和非周期性任务。

5.状态图

状态图(State Diagram)展现了一个状态机,他由状态、转换、事件和活动构成。状态图关注系统的动态视图,强调对象行为的事件顺序

状态图通常包括简单状态和组合状态、转换(事件和动作)。状态是指对象的命周期中某个条件或者状态,在此期间对象将满足某些条件、执行某些活动或等待某些事件,是对象执行了一系列活动的结果,当某个事件发生后,对象的状态将发生变化。嵌套在另外一个状态中的状态称为子状态,含有子状态的状态称组合状态。转换是两个状态之间的一种关系,表示对象将在源状态中执行一定的动作,并在某个特定事件发生而且某个特定的警界(监护)条件满足时进入目标状态。动作是一个可执行的原子操作,是不可中断的,其执行时间是可忽略不计的。直接通过进入节点进入状态,通过退出节点可以结束状态。使用历史状态记住从组合状态中退出时所处的子状态,作用是当再次进入组合状态时,可以直接进入这个子状态,而不是再次从组合状态的初态开始。状态图可以分为区域,而区域又包括退出或者当前执行的子状态,说明组合状态可以在某一时刻同时到达多个子状态,此时通常在其前后使用fork和join 标识。

6.活动图

活动图(Activity Diagram)是一种特殊的状态图,他展现了在系统内部从一个活动到另一个活动的流程,强调对象间的控制流程。

活动图一般包括活动状态和动作状态、转换和对象。

活动状态能够进一步被分解,它们的活动由其他的活动图表示。活动状态不是原子的,它们可以被中断。并且,一般来说,还要考虑到它需要花费一段时间来完成。可以把一个动作状态看作一个活动状态的特例。类似地,可以把一个活动状态看作一个组合,它的控制流由其他的活动状态和动作状态组成。
汗动图可以表示分支、合并、分岔和汇合。分支描述基于布尔表达式的可选择路径,可有一个入流和两个或多个出流,在每个出流上放置一个布尔表达式条件,每个出流的条件不应该重叠,但需要覆盖所有可能性。合并描述当两条控制路径重新合并时,不需要监护条件,只有一个出流。分岔描述把一个控制流分成两个或多个并发控制流,可以有一个进入转移和两个或多个离去转移,每个离去的转移表示一个独立的控制流,这些流可以并行的进行。汇合表示两个或多个并发控制流的同步,可以有两个或多个进入转移和一个离去转移,意味着每个进入流都等待,直到所有进入流都达到这个汇合处。
当对一个系统的动态方面建模时,通常有两种使用活动图的方式。
(1)对工作流建模。此时所关注的是与系统进行协作的参与者所观察到的活动。工作流常常位于软件系统的边缘,用于可视化、详述、构造和文档化开发系统所涉及的业务过程。在活动图的这种用法中,对对象流的建模是特别重要的,常采用泳道将活动图中的活动状态分组。
(2)对操作建模。此时是把活动图作为流程图使用,对一个计算的细节部分建模。在活动图的这种用法中,对分支、合并、分岔和汇合状态的建模是特别重要的。用于这种方式的活动图语境包括该操作的参数和它的局部对象。

7.构件图

构建图(Component Diagram)展现了一组构件之间的组织和依赖。构建图专注于系统的静态实现视图。

8.组合结构图

组合结构图(Composite Structure Diagram)用于描述一个分类器(如类、构建或用例)的内部结构,展示一组相互协作的实例如何完成特定的任务

9.部署图

部署图(Deployment Diagram)是用来对面向对象系统的物理方法建模的方法,展现了运行时处理结点以及其中构件的配置

10.包图

包图(Package Diagram)是用于把模型本身组织成层次结构的通用机制,展现由模型本身分解而成的组织单元以及其间的依赖关系。包可以拥有其他元素,可以是类、接口、用例等等,甚至嵌套其他包。

UML图主要特点
类图展现了一组对象、接口、协作和他们之间的关系
对象图展现了某一时刻一组对象以及他们之间的关系
用例图展现了一组用例、参与者以及他们之间的关系
序列图描述了以时间顺序组织的对象之间的交互活动
通信图强调收发消息的对象的组织结构
交互概览图描述业务过程中的控制流概览等
计时图描述对象状态随时间改变的情况
状态图强调对象行为的事件顺序
活动图展现了在系统内部从一个活动到另一个活动的流程
构件图展现了一组构件之间的组织和依赖
组合构件图展示一组相互协作的实例如何完成特定的任务
部署图展现了运行时处理结点以及其中构件的配置
包图展现由模型本身分解而成的组织单元以及其间的依赖关系
  • 17
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值