UML的9种图

转自:原文链接
UML中包括九种图: 用例图、类图、对象图、状态图、时序图、协作图、活动图、组件图、配置图
 
1)用例图(Use Case Diagram)
 
它是UML中最简单也是最复杂的一种图。说它简单是因为它采用了面向对象的思想,又是基于用户视角的,绘制非常容易,简单的图形表示让人一看就懂。说它复杂是因为用例图往往不容易控制,要么过于复杂,要么过于简单。
 
用例图表示了角色和用例以及它们之间的关系。
 
2)类图(Class Diagram)
 
       是最常用的一种图,类图可以帮助我们更直观的了解一个系统的体系结构。通过关系和类表示的类图,可以图形化的方式描述一个系统的设计部分。
 
3)对象图()
 
对象图是类图的实例,几乎使用与类图完全相同的标识。它们的不同点在于对象图显示类的多个对象实例,而不是实例的类。一个对象图是类图的一个实例。由于对象存在生命周期,因此对象图只能在系统某一时间段存在。
 
4)状态图
 
描述一个实体基于事件反应的动态行为,显示了该实体如何根据当前所处的状态对不同的时间做出反应的。通常创建一个UML状态图是为了以下的研究目的:研究类、角色、子系统、或组件的复杂行为。
 
5)时序图
 
又称顺序图,描述了对象之间动态的交互关系,着重体现对象间消息传递的时间顺序。
 
顺序图由一组对象构成,每个对象分别带有一条竖线,称作对象的生命线,它代表时间轴,时间沿竖线向下延伸。顺序图描述了这些对象随着时间的推移相互之间交换消息的过程。消息用从一务垂直的对象生命线指向另一个对象的生命线的水平箭头表示。图中还可以根据需要增加有关时间的说明和其他注释。
 
6)协作图
 
协作图用于显示组件及其交互关系的空间组织结构,它并不侧重于交互的顺序。协作图显示了交互中各个对象之间的组织交互关系以及对象彼此之间的链接。与序列图不同,协作图显示的是对象之间的关系。另一方面,协作图没有将时间作为一个单独的维度,因此序列号就决定了消息及并发线程的顺序。协作图是一个介于符号图和序列图之间的交叉产物,它用带有编号的箭头来描述特定的方案,以显示在整个方案过程中消息的移动情况。
 
协作图用途:
 
通过描绘对象之间消息的移动情况来反映具体的方案。
 
显示对象及其交互关系的空间组织结构,而非交互的顺序。
 
7)活动图(Activity Diagram)
 
UML活动图记录了单个操作或方法的逻辑,单个用户案例,或者单个业务流程的逻辑。描述系统中各种活动的执行顺序,通常用于描述一个操作中所要进行的各项活动的执行流程。同时,它也常被用来描述一个用例的处理流程,或者某种交互流程。
 
活动图由一些活动组成,图中同时包括了对这些活动的说明。当一个活动执行完毕之后,控制将沿着控制转移箭头转向下一个活动。活动图中还可以方便地描述控制转移的条件以及并行执行等要求。
 
8)组件图(Component Diagram)
 
组件图是用来反映代码的物理结构。从组件图中,可以了解各软件组件(如源代码文件或动态链接库)之间的编译器和运行时依赖关系。使用组件图可以将系统划分为内聚组件并显示代码自身的结构。
 
组件图的主要目的是显示系统组件间的结构关系。
 
9)配置图
 
配置图描述系统中硬件和软件的物理配置情况和系统体系结构。
 
在配置图中,用结点表示实际的物理设备,如计算机和各种外部设备等,并根据它们之间的连接关系,将相应的结点连接起来,并说明其连接方式。在结点里面,说明分配给该结点上运行的可执行构件或对象,从而说明哪些软件单元被分配在哪些结点上运行
### UML九种的分类及用途 UML(Unified Modeling Language,统一建模语言)是一种标准化的建模语言,广泛应用于软件工程领域。UML通过九种来描述系统的静态结构和动态行为。以下是UML九种的分类及其用途: #### 1. **用例(Use Case Diagram)** 用例用于描述系统功能及其与外部参与者之间的交互关系。它通过形化的方式展现了一组用例、参与者以及它们之间的关系[^2]。用例主要用于需求分析阶段,帮助开发团队理解系统的功能范围。 #### 2. **类(Class Diagram)** 类是面向对象设计的核心工具之一,用于描述系统的静态结构。类封装了数据和行为,是具有相同属性、操作的对象集合的总称[^1]。类展示类之间的关系,如依赖、泛化、关联、聚合、组合和实现等。 #### 3. **对象(Object Diagram)** 对象是类的一个实例,用于展示特定时刻系统中对象的状态和关系。它有助于验证类的设计是否合理,并提供更具体的细节。 #### 4. **序列(Sequence Diagram)** 序列用于描述对象之间按时间顺序的交互过程。它展示了消息传递的顺序和对象的生命线,适合用于分析和设计系统的动态行为。 #### 5. **通信(Communication Diagram)** 通信(也称为协作)与序列类似,但更注重对象之间的连接关系,而不是消息的时间顺序。它以形化的方式展示对象之间的交互。 #### 6. **活动(Activity Diagram)** 活动用于描述系统的动态行为,特别是业务流程或算法的执行过程。它类似于流程,但支持更复杂的控制流结构,如分支、合并、循环等。 #### 7. **状态(State Diagram)** 状态用于描述对象在其生命周期中的状态变化和触发条件。它适用于建模具有复杂状态转换逻辑的系统组件。 #### 8. **组件(Component Diagram)** 组件用于描述系统的物理结构,包括软件组件及其之间的依赖关系。它有助于理解系统的模块化设计和部署策略。 #### 9. **部署(Deployment Diagram)** 部署用于描述系统的硬件架构和软件组件在其中的分布情况。它展示了节点(设备或处理器)之间的连接关系,以及软件组件如何部署到这些节点上。 --- ### 分类总结 UML九种可以分为以下两类: - **静态**:描述系统的静态结构,包括类、对象、组件和部署。 - **动态**:描述系统的动态行为,包括用例、序列、通信、活动和状态。 --- ### 示例代码 以下是一个简单的类示例,展示两个类之间的关联关系: ```python class Student: def __init__(self, name, course): self.name = name self.course = course # 关联关系 class Course: def __init__(self, title): self.title = title ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值