UML学习笔记UML的7种常用图

Posted coding涛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UML学习笔记UML的7种常用图相关的知识,希望对你有一定的参考价值。

UML 2.0规范中定义了14中基本的图,分为两大类:

1、结构图(Structure Diagram

用于描述系统的静态架构、系统要素(类、对象、接口、组件等)以及要素之间的关联和依赖关系。

2、行为图(Behavior Diagram

用于描述系统运行过程中的动态变化。 


UML图分类:

其中,常用图有7种图(表中标红的部分)


类图(Class Diagram)

类图用于描述各种类的结构及关系。类图中包括了类、接口、包、及各种关系,这些元素的说明参考前面的介绍。类图示例如下:

UML学习笔记(二)UML的7种常用图

对于已存在的项目,可以通过工具自动生成类图。例如,eclipse的类图生成插件AmaterasUML


组件图(Component Diagram)

        用于描述软件系统中,遵从并实现了一组接口的可替换的软件模块,它展示了系统中各个组件间的结构关系。

组件图的元素包括:构件(Component)、接口(Interface) 、关系(Relationship) 、端口(Port) 、连接器(Connector)

UML学习笔记(二)UML的7种常用图

说明:

1、组件的接口分两种:“球”形接口表示该组件提供或实现的接口,此时组件为接口提供方;“凹面”形接口表示该组件需要或依赖的接口,此时组件为接口调用方;两种接口都是用实线与组件连接。

2、“球”形与“凹面”形组合在一起,例如“支付订单接口”,此时可以很直观地体现接口的提供方和调用方。

UML学习笔记(二)UML的7种常用图

 

部署图(Deployment Diagram)

        部署图主要描述了系统运行中的硬件节点、软件系统、连接方式、网络环境等之间的关系。

UML学习笔记(二)UML的7种常用图

用例图(Use Case Diagram)

用例(use case)用于描述系统具备什么样的功能。它是从用户的角度对系统行为的进行描述,不关心系统的实现细节

用例图中包含的元素有:

1)参与者(Actor):也成为角色/用户

2)系统边界(System Scope

3)用例(Use Case):注意,用例的命名使用“动宾”结构命名

4)关联(Association):用于表示参与者或用例间的关系

 

用例图的关系分为两个层次:

1、参与者与参与者之间的关系:如上图中,普通用户和VIP用户都是用户的子类,体现的是泛化关系(继承)

2、用例与用例之间的关系,包括以下3

        1)包含关系(include):是指一个用例的行为包含了另一个用例的行为,例如:

UML学习笔记(二)UML的7种常用图

        2)扩展关系(extend):是指一个用例对另外一个用例的功能扩展。注意在绘图时,带箭头的线要从扩展用例指向被扩展的用例

扩展用例的执行条件:被扩展的用例会存在一个或多个扩展点(extensionpoint),只有当扩展点激活(即满足一定条件)时,扩展用例才会执行。下图的图书管理系统中,当读者遗失图书时,“交罚款”用例开始执行。 

UML学习笔记(二)UML的7种常用图

3)泛化关系。将多个用例的相同结构和行为抽象成父用例,子用例继承父用例。例如:

UML学习笔记(二)UML的7种常用图

用例图示例

UML学习笔记(二)UML的7种常用图

 

状态图(State Machine Diagram)

        状态机图,简称为状态图,用于描述对象所有可能的状态以及由事件引起的状态变化过程。状态图主要包括两种元素:状态和转换。

1、状态:使用圆角矩形表示状态,分为简单状态(Simple State)和组合状态(Composite State),其中组合状态指的是内嵌了子状态图的状态。

多个子状态之间存在顺序和并发两种关系。如下图所示,12为顺序子状态(Sequence State),13为并发子状态(ConcurrentState)。

UML学习笔记(二)UML的7种常用图

历史状态(History States):它是一个伪状态(Pseudo State,其目的是记住从组合状态中退出时所处的子状态,当再次进入组合状态,可直接进入这个子状态,而不是从组合状态的初态开始。历史状态分两种:

1)浅(Shallow)历史状态:只记住最外层组合状态的历史,使用H表示;

2)深(Deep)历史状态:记住任意深度的组合状态的历史(组合状态的子状态也是可以嵌套子状态,故存在深度的概念),使用H*表示

UML学习笔记(二)UML的7种常用图

2、转换(Transition):指的是对象在执行某个事件时,状态发生变化。

转换的表示格式:“触发事件Trigger(参数)[条件Guard]/动作Effect”。

UML学习笔记(二)UML的7种常用图


状态图示例:下图是关于网上购物订单的状态图 

UML学习笔记(二)UML的7种常用图

活动图(Activity Diagram)

活动图描述的是系统的活动变化流程。活动图可看作是状态图的特殊形式。特殊性在于活动图中的一个活动结束后将立即进入下一个活动,不需要事件的触发

UML学习笔记(二)UML的7种常用图

个活动内部是由多个动作组成,它是非原子性的。通常,一个活动执行完后,都会引起系统状态发生改变或返回某个值。例如:在线购物时“下单”这个活动,内部就包括“校验商品库存是否充足”“清空购物车”“通知卖家”等一系列动作,这些动作都是原子性的。

 

活动图的组成元素及说明

1、活动(Activity):表示的是某流程中的任务的执行。它一般由多个动作组成,是非原子性的。通常,一个活动执行完后,都会引起系统状态发生改变或返回某个值。使用圆角矩形表示。

2、动作流(Action Flow):指的是动作状态之间的转换。一个活动执行完后自动切换到下一个活动,不需要触发动作,但可以使用条件限制转换。例如:

UML学习笔记(二)UML的7种常用图

3、分支(Branch)与合并(Merge

分支表示基于某种条件的多种可选的控制流,合并用于对分支的结束。

UML学习笔记(二)UML的7种常用图

4、分叉(Fork)和汇合(Join

分叉表示并发运行的控制流,合并用于对分叉的结束,即并发的结束。

UML学习笔记(二)UML的7种常用图

5、泳道(Swimlane

泳道是将多个活动根据某个条件(一般是执行对象)化分为若干组。

UML学习笔记(二)UML的7种常用图

 

顺序图(Sequence Diagram)

顺序图也称为时序图,是一种描述对象之间传送消息时的时间顺序,它能显示各个对象动作的顺序。特别注意,顺序图中,消息的传递代表的是职责的转移,不代表数据的传递,转移过程可能发生了数据传递,也可能没发生

顺序图包含的元素主要有:角色(Actor)、对象(Object)、生命线(Lifeline)、激活(Activation)、消息(Message)等。

UML学习笔记(二)UML的7种常用图

说明:

1、  对象有3中表示方式:“对象名:类名”、“:类名”、“对象名”。

2、  消息种类有4种:

a) 同步消息(Synchronous Message):使用带实心三角箭头的实线表示

UML学习笔记(二)UML的7种常用图

b)  异步消息(Asynchronous Message):使用带开放箭头的实线表示

UML学习笔记(二)UML的7种常用图

c) 返回消息(Return Message):使用带开放箭头的虚线表示

UML学习笔记(二)UML的7种常用图

d)自关联消息(Self-Message):表示调用对象自身的方法调用,下图中的两种表示方法都可以。

UML学习笔记(二)UML的7种常用图

3、  创建对象和销毁对象:

4、约束条件。表示方式:在描述前面加上[约束条件],表示发生职责转移需要满足的条件。例如:





以上是关于UML学习笔记UML的7种常用图的主要内容,如果未能解决你的问题,请参考以下文章

UML图学习笔记

UML图学习笔记

UML图学习笔记

UML图学习笔记状态图

UML图学习笔记状态图

UML图学习笔记状态图