[原][UML]UML结构图与⾏为图整理
我画的思维导图列出了UML使⽤的14种图,它们主要分为两类:
1.静态的结构图
2.动态的⾏为图
其中常⽤的有四种:类图、⽤例图、状态机、序列图(时序图)
下⾯是UML官⽅的讲解
什么是类图?
类图是⼀切⾯向对象⽅法的核⼼建模⼯具。该图描述了系统中对象的类型以及它们之间存在的各种静态关系。
关系
有三种主要的关系:
1. 关联 - 代表类型之间的关系(⼀个⼈为公司⼯作,⼀间公司有多个办事处)。
2. 继承 - 专为将实例关系图 (ERD) 应⽤于⾯向对象设计⽽设的⼀种关系。它在⾯向对象设计中的继承概念互相呼应。
3. 聚合 - ⾯向对象设计中的⼀种对象组合的形式。
类图⽰例
有关类图的更多详细信息,请阅读⽂章?
什么是组件图?
在统⼀建模语⾔中,组件图描绘了组件如何连接在⼀起以形成更⼤的组件或软件系统。它展⽰了软件组件的体系结构以及它们之间的依赖关系。那些软件组件包括运⾏时组件,可执⾏组件和源代码组件。
组件图⽰例
有关组件图的更多详细信息,请阅读⽂章?
什么是部署图?
部署图有助于模拟⾯向对象软件系统的物理⽅⾯。它是⼀个结构性图表,显⽰了软件产出于系统架构内如何被分发⾄指定⽬标。产出即现实⽣活中各种通过开发过程产⽣的产品。部署图对运⾏时配置进⾏建模,并可视化应⽤程序中产出的分布。在⼤多数情况下,它表达了硬件配置以及和软件组件之间的关系。
部署图⽰例
有关部署图的更多详细信息,请阅读⽂章
什么是对象图?
对象图是实例 (Instance) 的表达,包括对象和数据值。静态的对象图是类图的⼀个实例,它是系统在某个时间点的详细状态的快照,不同之处在于类图表⽰了⼀个由类及其关系组成的抽象模型,⽽对象图则表达了特定时刻的实例。对象图的使⽤是相当有限的,它常被⽤作展⽰数据结构例⼦。
类图与对象图的例⼦
有些⼈难以區分 UML 类图和 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) 間的交互。
交互概述图⽰例
有关交互概述图的更多详细信息,请阅读
什么是时序图?
时序图显⽰了既定时间内对象的⾏为。时序图是序列图的⼀种特殊形式,它俩之间的差异是轴反转,时间从左到右增加,⽣命线显⽰在垂直排列的独⽴隔间中。
时序图⽰例
有关时序图的更多详细信息,请阅读