UML,即Unified Modeling Language,是一种标准化的面向对象软件开发工具。UML包括14种图,这些图将软件系统从不同角度进行建模。本文将从多个角度分析UML14种图,并举例讲解。
1.结构图
结构图是UML中最基础也是最重要的一类图。结构图用于描述软件系统的静态结构,包括类图、对象图、组件图、部署图。
(1)类图
类图是最常用的UML图之一,用于描述系统中各个类之间的关系。类图主要包括类、接口、属性、方法等元素。如下图所示,展示了一个简单的类图,包括两个类(Person和Address),以及它们之间的关系。

(2)对象图
对象图展示了一个系统在特定时间点的对象状态。它是类图的实例,它展示了各个对象以及它们之间的关系。如下图所示,展示了一个简单的对象图,包括两个对象(person1和address1)以及它们之间的关系。

(3)组件图
组件图用于描述系统中各个组件之间的关系。组件是系统的基本构建单元,由一个或多个类或接口组成。如下图所示,展示了一个简单的组件图,包括三个组件(Storage、Application和UI)以及它们之间的关系。

(4)部署图
部署图用于描述系统中各个组件的部署方案。它展示了各个组件在物理硬件上的分布情况。如下图所示,展示了一个简单的部署图,包括两个节点(Server和Client)以及它们之间的关系。

2.行为图
行为图描述了系统中各个对象之间的动态交互,包括用例图、活动图、状态图、序列图和通信图。
(1)用例图
用例图用于描述系统的功能需求和角色之间的关系。它展示了各种用例(操作系统中用户完成的任务)和各种角色(参与用例的人、组织或系统)之间的关系。如下图所示,展示了一个简单的用例图,包括一个用例(添加联系人)和两个角色(用户和系统)。

(2)活动图
活动图用于展示系统或对象内部的活动流程。它展示了一个或多个对象之间的活动以及它们之间的关系。如下图所示,展示了一个简单的活动图,包括一个动作(登录)、两个决策(用户名和密码是否正确)和两个操作(显示错误消息和显示欢迎消息)。

(3)状态图
状态图用于描述对象的所有可能状态以及它们之间的转换方式。如下图所示,展示了一个简单的状态图,包括一个对象(TrafficLight)以及它的三种状态(红灯、绿灯、黄灯)。

(4)序列图
序列图用于展示系统中对象之间的时间顺序。它展示了一个或多个对象之间的交互以及它们之间的时间顺序。如下图所示,展示了一个简单的序列图,包括两个参与者(Client和Server)以及它们之间的交互。

(5)通信图
通信图用于展示系统中各个对象之间的交互关系。它展示了各个对象之间的消息传递以及它们之间的关系。如下图所示,展示了一个简单的通信图,包括两个对象(Person1和Address1)以及它们之间的交互。

3.交互图
交互图是一种较高级别的图,它摆脱了对象细节,重点关注对象之间的交互。交互图包括时序图和协作图。
(1)时序图
时序图展示了一系列对象之间的消息交换。如下图所示,展示了一个简单的时序图,包括两个对象(Client和Server)以及它们之间的消息交换。

(2)协作图
协作图用于展示各个对象之间的协作关系。它展示了各个对象之间的消息传递以及它们之间的关系。如下图所示,展示了一个简单的协作图,包括三个对象(Person1、Person2和Address)以及它们之间的关系。

4.组合图
组合图是一种将多种图结合起来的图。它允许建模人员将UML图分层展示,并具有更高的表现力。组合图包括包图和时间序列图。
(1)包图
包图用于描述软件系统中的包结构,它展示了包之间的层次结构。如下图所示,展示了一个简单的包图,包括三个包(Controller、Model和View)以及它们之间的关系。

(2)时间序列图
时间序列图展示了一个系统在一段时间内的演化过程。它是序列图的一种扩展,允许将多个序列图组合成一个时间序列图。如下图所示,展示了一个简单的时间序列图,包括两个序列图(Client和Server)以及它们之间的时间序列关系。

微信扫一扫,领取最新备考资料