[原][UML]UML结构图与行为图整理
我画的思维导图列出了UML使用的14种图,它们主要分为两类:
1.静态的结构图
2.动态的行为图
其中常用的有四种:类图、用例图、状态机、序列图(时序图)
下面是UML官方的讲解
什么是统一建模语言(UML)
什么是类图?
类图是一切面向对象方法的核心建模工具。该图描述了系统中对象的类型以及它们之间存在的各种静态关系。
关系
有三种主要的关系:
- 关联 - 代表类型之间的关系(一个人为公司工作,一间公司有多个办事处)。
- 继承 - 专为将实例关系图 (ERD) 应用于面向对象设计而设的一种关系。它在面向对象设计中的继承概念互相呼应。
- 聚合 - 面向对象设计中的一种对象组合 的形式。
类图示例
有关类图的更多详细信息,请阅读文章什么是类图?
什么是组件图?
在统一建模语言中,组件图描绘了组件如何连接在一起以形成更大的组件或软件系统。它展示了软件组件的体系结构以及它们之间的依赖关系。那些软件组件包括运行时组件,可执行组件和源代码组件。
组件图示例
有关组件图的更多详细信息,请阅读文章什么是组件图?
什么是部署图?
部署图有助于模拟面向对象软件系统的物理方面。它是一个结构性图表,显示了软件产出于系统架构内如何被分发至指定目标。产出即现实生活中各种通过开发过程产生的产品。部署图对运行时配置进行建模,并可视化应用程序中 产出的分布。在大多数情况下,它表达了硬件配置以及和软件组件之间的关系。
部署图示例
有关部署图的更多详细信息,请阅读文章什么是部署图?
什么是对象图?
对象图是实例 (Instance) 的表达,包括对象和数据值。静态的对象图是类图的一个实例,它是系统在某个时间点的详细状态的快照,不同之处在于类图表示了一个由类及其关系组成的抽象模型,而对象图则表达了特定时刻的实例。对象图的使用是相当有限的,它常被用作展示数据结构例子。
类图与对象图的例子
有些人难以區分 UML 类图和 UML 对象图,因为它们都包含一些“矩形块” 和一些链接線,看起来很相似。有些人甚至认为它们是相同的,因为某些 UML 软件會將类图和对象图的符号放在同一个图表编辑器 - 类图中。
事实上,类图和对象图表達著两个不同的層次。在本文中,我们将向您提供关于这两个 UML 图表的一些想法,讓您了解它们是什么,它们的区别以及何时使用它们。
类图与对象图的关系
你会在编程时创建“类”。例如,在网上银行系统中,您可以创建“用户”,“账户”,“交易”等类。又例如,在课堂管理系统中,您会创建“教师”,“学生”,“任务”等。在每个类中都有属性和操作来表示类的特征和行为,而类图则是一让你看到这些类和它们的属性,操作和相互关系的图表。
UML 对象图显示了系统中的对象实例如何在特定状态下彼此交互。它也表示那个状态下那些对象的数据值。换句话说,UML 对象图可以被看作是如何在特定状态下使用类(在 UML 类图中绘制)的表达。
且看看下面的UML图例子。我相信你会在几秒内了解他们的差异。
类图示例
以下类图示例代表两个类 - 用户和附件。用户可以上传多个附件,因此这两个类都以一个关联连接,在附件方侧以0 .. *作为多重性。
对象图示例
下面的对象图示例显示了當Peter (即用户)上载两个附件时 User 和 Attachment 类的对象实例如何。因上传两个附件,所以有两个附件对象。
有关对象图的更多细节,请阅读文章什么是对象图?
什么是包图?
包图是 UML 一種用以显示包和包之间的依赖关系的结构性图表。模型图能显示系统的不同视图,例如,多层应用程序。
包图示例
有关包图的更多详细信息,请阅读什么是包图?
什么是组合结构图?
组合结构图是添加到 UML 2.0 中的新的图表之一。复合结构图与类图相似,是一种用于微观视角的系统建模组件图,而不是整个类的组成部分。它是一种静态结构图,显示了一个类的内部结构和这个结构所实现的协作。
组合结构图可以包括内部零件,零件通过其互相交互或通过端口与外界交互。复合结构是一组相互关联的元素,它们在运行时进行协作以达到某种目的。每个元素在协作中都有一些定义的角色。
复合结构图示例
有关复合结构图的更多详细信息,请阅读文章什么是复合结构图?
什么是轮廓图 ?
轮廓图 使您能够创建特定于域和平台的原型,并定义它们之间的关系。
轮廓图示例
有关Profile Diagram的更多详细信息,请阅读文章什么是轮廓图?
什么是用例图?
用例模型从用例的角度描述系统的功能需求,它是系统预期功能(用例)及其环境(参与者)的模型。用例使您能够将系统需要与系统如何满足这些需求相关联。
将用例模型想象成一个菜单,就像在餐馆中找到的菜单一样,通过查看菜单,你知道什么菜肴以及他们的价格,你也知道餐厅供应什么样的菜肴:意大利,墨西哥,中国等等。通过查看菜单,您可以对该餐厅的用餐体验有个全面的了解。
因为它是一个非常强大的计划工具,所以团队成员通常在开发周期的所有阶段都使用用例模型。
用例图示例
有关用例图的更多详细信息,请阅读文章什么是用例图?
什么是活动图?
活动图用于展示工作流程,它支持选择 (Choice),迭代 (Iteration)和并发 (Concurrency)。活动图描述了目标系统的控制流程,比如探索复杂的业务规则和操作,描述用例和业务流程。在统一建模语言中,活动图旨在模拟计算和组织过程(即工作流程)。
活动图示例
有关活动图的更多详细信息,请阅读文章什么是活动图?
什么是状态机图?
状态图是 UML 中用来描述基于 David Harel 的状态图概念的系统行为的一种图表。状态图描绘允许的状态和转换以及影响这些转换的事件,它有助于可视化对象的整个生命周期,从而更好地理解以状态主導 (State-based) 的系统。
状态机图示例
有关状态机图的更多细节,请阅读什么是状态机图?
什么是序列图?
序列图根据时间序列展示对象如何进行协作。它展示了在用例的特定场景中,对象如何与其他对象交互。凭借先进的可视化建模功能,您只需点击几下即可创建复杂的顺序图。另外,Visual Paradigm 可以根据用例描述中定义的事件流生成序列图。
序列图示例
有关序列图的更多详细信息,请阅读文章什么是序列图?
什么是通訊圖?
与序列图类似,通訊圖也用于模拟用例的动态行为。与序列图相比,通訊圖更侧重于显示对象的协作而不是时间顺序。它们实际上在语义上是等价的,因此一些建模工具(如 Visual Paradigm)允许您从一个模型生成一个到另一个。
通信图示例
有关通信图的更多详细信息,请阅读文章什么是通信图?
什么是交互概览图?
交互概述图侧重于交互控制流程的概述,它是活动图的变体,其中节点是交互 (Interactions) 或交互发生 (Interaction Occurrences)。交互概述图描述了隐藏於消息 (Message) 和生命线 (Lifeline) 間的交互。
交互概述图示例
有关交互概述图的更多详细信息,请阅读什么是交互概览图?
什么是时序图?
时序图显示了既定时间内对象的行为。时序图是序列图的一种特殊形式,它俩之间的差异是轴反转,时间从左到右增加,生命线显示在垂直排列的独立隔间中。
时序图示例
有关时序图的更多详细信息,请阅读什么是时序图?