(转载)UML各种图总结

article/2025/4/24 21:58:57

UML(Unified Modeling Language)是一种统一建模语言,为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。下面将对UML的九种图+包图的基本概念进行介绍以及各个图的使用场景。

一、基本概念  

  如下图所示,UML图分为用例视图、设计视图、进程视图、实现视图和拓扑视图,又可以静动分为静态视图和动态视图。静态图分为:用例图,类图,对象图,包图,构件图,部署图。动态图分为:状态图,活动图,协作图,序列图。

  1、用例图(UseCase Diagrams): 

    用例图主要回答了两个问题:1、是谁用软件。2、软件的功能。从用户的角度描述了系统的功能,并指出各个功能的执行者,强调用户的使用者,系统为执行者完成哪些功能。

  2、类图(Class Diagrams):

    用户根据用例图抽象成类,描述类的内部结构和类与类之间的关系,是一种静态结构图。 在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。

     各种关系的强弱顺序: 泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖

  2.1.泛化

    【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何继承父类的所有特征和行为。例如:老虎是动物的一种,即有老虎的特性也有动物的共性。

    

  2.2.实现

    【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现。

      

  2.3.关联

     【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。

          【代码体现】:成员变量

      

  2.4.聚合 

    【聚合关系】:是整体与部分的关系,且部分可以离开整体而单独存在。如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。

          聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。

          【代码体现】:成员变量

      

  2.5.组合

    【组合关系】:是整体与部分的关系,但部分不能离开整体而单独存在。如公司和部门是整体和部分的关系,没有公司就不存在部门。

         组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。

    【代码体现】:成员变量

    【箭头及指向】:带实心菱形的实线,菱形指向整体

          

  2.6.依赖  

     【依赖关系】:是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖.

        【代码表现】:局部变量、方法的参数或者对静态方法的调用

        【箭头及指向】:带箭头的虚线,指向被使用者

    

  2.7 各种类图关系

    

  3、对象图(Object Diagrams):

    描述的是参与交互的各个对象在交互过程中某一时刻的状态。对象图可以被看作是类图在某一时刻的实例。

      

  4、状态图(Statechart Diagrams):

    是一种由状态、变迁、事件和活动组成的状态机,用来描述类的对象所有可能的状态以及时间发生时状态的转移条件。

      

  5、活动图(Activity Diagrams):

    是状态图的一种特殊情况,这些状态大都处于活动状态。本质是一种流程图,它描述了活动到活动的控制流。    

交互图强调的是对象到对象的控制流,而活动图则强调的是从活动到活动的控制流。

活动图是一种表述过程基理、业务过程以及工作流的技术。

它可以用来对业务过程、工作流建模,也可以对用例实现甚至是程序实现来建模。

      

  5.1 带泳道的活动图

      泳道表明每个活动是由哪些人或哪些部门负责完成。

      

  5.2 带对象流的活动图

    用活动图描述某个对象时,可以把涉及到的对象放置在活动图中,并用一个依赖将其连接到进行创建、修改和撤销的动作状态或者活动状态上,对象的这种使用方法就构成了对象流。对象流用带有箭头的虚线表示。

    

  6、序列图-时序图(Sequence Diagrams):

    交互图的一种,描述了对象之间消息发送的先后顺序,强调时间顺序。

    序列图的主要用途是把用例表达的需求,转化为进一步、更加正式层次的精细表达。用例常常被细化为一个或者更多的序列图。同时序列图更有效地描述如何分配各个类的职责以及各类具有相应职责的原因。

    

  消息用从一个对象的生命线到另一个对象生命线的箭头表示。箭头以时间顺序在图中从上到下排列。 

  序列图中涉及的元素:

  6.1 生命线

    生命线名称可带下划线。当使用下划线时,意味着序列图中的生命线代表一个类的特定实例。

    

  6.2 同步消息

    同步等待消息

    

  6.3 异步消息

    异步发送消息,不需等待

        

  6.4 注释

    

  6.5 约束

    

  6.6 组合    

    组合片段用来解决交互执行的条件及方式。它允许在序列图中直接表示逻辑组件,用于通过指定条件或子进程的应用区域,为任何生命线的任何部分定义特殊条件和子进程。常用的组合片段有:抉择、选项、循环、并行。

  7、协作图(Collaboration Diagrams):

    交互图的一种,描述了收发消息的对象的组织关系,强调对象之间的合作关系。时序图按照时间顺序布图,而写作图按照空间结构布图

    

 

  8、构件图(Component Diagrams):

    构件图是用来表示系统中构件与构件之间,类或接口与构件之间的关系图。其中,构建图之间的关系表现为依赖关系,定义的类或接口与类之间的关系表现为依赖关系或实现关系。

    

  9、部署图(Deployment Diagrams):

    描述了系统运行时进行处理的结点以及在结点上活动的构件的配置。强调了物理设备以及之间的连接关系。

部署模型的目的:

描述一个具体应用的主要部署结构,通过对各种硬件,在硬件中的软件以及各种连接协议的显示,可以很好的描述系统是如何部署的;平衡系统运行时的计算资源分布;可以通过连接描述组织的硬件网络结构或者是嵌入式系统等具有多种硬件和软件相关的系统运行模型。

二、图的差异比较

  1.序列图(时序图)VS协作图

       序列图和协作图都是交互图。二者在语义上等价,可以相互转化。但是侧重点不同:序列图侧重时间顺序,协作图侧重对象间的关系。

共同点:时序图与协作图均显示了对象间的交互。

不同点:时序图强调交互的时间次序。

           协作图强调交互的空间结构。

    2.状态图VS活动图

      状态图和活动图都是行为图。状态图侧重从行为的结果来描述,活动图侧重从行为的动作来描述。状态图描述了一个具体对象的可能状态以及他们之间的转换。在实际的项目中,活动图并不是必须的,需要满足以下条件:1、出现并行过程&行为;2、描述算法;3、跨越多个用例的活动图。

    3.活动图VS交互图

  二者都涉及到对象和他们之间传递的关系。区别在于交互图观察的是传送消息的对象,而活动图观察的是对象之间传递的消息。看似语义相同,但是他们是从不同的角度来观察整个系统的。

三、UML与软件工程

  UML图是软件工程的组成部分,软件工程从宏观的角度保证了软件开发的各个过程的质量。而UML作为一种建模语言,更加有效的实现了软件工程的要求。

  如下图,在软件的各个开发阶段需要的UML图。

  

  下表是UML使用人员图示:

  

参考自:http://m.blog.csdn.net/article/details?id=38467715

    http://www.cnblogs.com/wolf-sun/p/UML-collaboration-diagram.html


http://chatgpt.dhexx.cn/article/SN6OsoC5.shtml

相关文章

【UML】------图

一、引言 在上一篇博客中给大家介绍了UML中的视图,在结尾的时候根据自己的理解有把图和视图之间的包含关系总结了一下,那么在这篇博客中我将结合实例来介绍UML中的图。 二、基本内容 1、用例图(Use Case Diagram) (1&a…

[跟我学UML] UML包图中的包引入和包合并

缩略语 UIS UML Infrastructure Specification UML基础结构规范 UML Unifed Modeling Language 统一建模语言 USS UML Superstructure Specification UML上层结构规范 参考资料 《UML Infrastructure Specification, v2.2》 《UML Superstructure Spec…

[完全免费] 在线UML Package Diagram 包图工具 - 教程第4部分

封装图显示了中型到大型项目中模型元素的布置和组织,可用于显示子系统或模块之间的结构和相关性。 (一键即时打开使用) 什么是UML中的包图? 大系统提供特殊挑战。为大型系统绘制班级模型,而且它太大而难以理解。类之间有太多的联系要理解。处…

UML总结—包图(Package Diagram)

一、什么是包 在面向对象的软件开发过程中,类显然是构建整个系统的基本构造块。但是对于庞大的应用系统而言,包含的类是成百上千的,再加上其间“阡陌纵横”的关联关系,多重性等,必然大大超出了人们可以处理的复杂度。…

UML- 包图

前言 感觉包图萌萌哒,不知道你们是什么样的感觉呢~ 正文 what 1、包图是由包和包之间的关系构成的。 2、逻辑上把复杂的图模块化。 who 阶段:可行性分析,概要设计。 作用 1、维护和控制系统总体结构的重要建模工具。 元素 类、接口…

UML之包图(Package Diagram)

前言 包图,一个包字就体现出了它的包容性一定是非强大,在具体了解之后,感觉包图真是如此。 正文 概念 一个”包图”可以是任何一种的UML图组成,通常是UML用例图或UML类图。 包是一个UML结构,它使得你能够把诸如用例…

写在MyUML发布090515_2版之际

前段时间针对一些问题,做了一次校正。本来准备等待我的代码生成引擎写好后一并发布的,但是我想,要完善代码生成引擎需要一段不短的时间(我自己也估计不出来),所以昨天将更正后的版本发布了。 对软件添加的内…

【UML学习】--包图

【前言】 包图是怎么来的? 在面向对象开发的概念里,类是构造整个系统的基本构造块。但是一个庞大的系统中包含的类是成百上千个的,而且这些类之间的关系也是阡陌交错,所以处理起来十分复杂,这时候就引入了“包”这个概…

UML—Package Diagram

随着程序软件越来越复杂,一个程序往往包含了数百个类。管理这些类的有效方法就是将类进行分组,将功能相似或相关的类组织在一起。包图是一种维护和描述系统总体结构模型的重要建模工具 包的构成: 1.包的名称 2.包的元素 包自身所拥有的元素…

【UML】9种图+包图

导读:在UML的学习中,介绍了9种图,外加一个包图。这9种图和4大关系,可以说是UML的一个核心内容。我根据自己的笔记,以及查阅的一些资料,对这9种图和包图,做一个总结。 一、基本定义 1、1 总体…

MyUML Features myeclipse 中的 MYUML 的功能

MyUML Features myeclipse 中的 MYUML 的功能7 UML Diagrams: 7种图表 Use-case diagram 用况图 Class diagram 类图 Sequence diagram 顺序图 Collaboration diagram 协作图 State diagram 状态图 Activity diagram 行为图 Deployment diagram 配置图Integrated Diagram Edit…

MyUML Designer开源项目(支持UML2.2规范)第一版本即将发布

经过努力, MyUML Designer开源项目第一版本即将发布. 计划在本月发布第一个版本. MyUML Designer基于Eclipse 3.5开发, 完全实现UML2.2规范. 先贴几个截图, 本版本尽量使图形简洁和漂亮. 后续工作还在进行中. MyUML Designer Project: http://myumldesigner.googlecode.com M…

UML——包图

一、包图的含义 包图(Package Diagram)由包和包之间的关系构成,对维护和控制系统总体结构很重要。系统建模中,有大量的类、接口、组件、节点和图,有必要将这些元素进行分组,把语义相近并倾向一起变化的元素…

UML图详解(九)包图

一、概述 维护和控制系统总体结构的重要建模工具方便理解和处理整个模型设计良好的包是高内聚、低耦合的,并对其内容的访问具有严密的控制 包的内容:拥有或引用的模型元素。包的实例没有任何语义。 仅在建模时有意义,而不必转换到可执行的系…

UML包图

UML包图 基本概述 包图(Package Diagram)是UML中的组织图形,其能有效的组织好各种UML图和表达思路,其功能是组织包内元素,控制访问。 基本语法 解释: 1、包有包的名字和包之间的关系。 2、包之间的关系有三种: 1、包…

UML 之 包图

包图(Package Diagram) 包图可以是任何一种的UML图组成,通常是UML用例图或UML类图。 包是一个UML结构,它使得你能够把诸如用例或类之类模型元件组织为组。 包被描述成文件夹,可以应用在任何一种UML图上。 虽然…

UML-包图

一、什么是包图 包图是在 UML 中用类似于文件夹的符号表示的模型元素的组合。系统中的每个元素都只能为一个包所有,一个包可嵌套在另一个包中。使用包图可以将相关元素归入一个系统。一个包中可包含附属包、图表或单个元素。 一个"包图"可以是任何一种的U…

【UML】UML中的“图”集

一、基本概念 UML作为统一建模语言,是一种模型化语言,那么该模型主要是用图来表示,这时候就自然而然产生了UML图。UML主要由基本构造块、规则、公共机制组成,其中基本构造块由事物、关系、图组成。 二、基本结构 图是UML中重要的组成部分,那么UML中图主要有九种,可以从…

UML--包图详解

包图 在UML的建模机制中,模型的组织是通过包(Package)来实现的。包可以把所建立的各种模型(包括静态模型和动态模型)阻止起来,形成各种功能或用途的模块,并可以控制包中元素的可见性&#xff0…

UML之包图

包图是UML中用类似于文件夹的符号表示的模型元素的组合,系统中的每个元素都只能为一个包所有,一个包可嵌套在另一个包中,使用包图可将相关元素归入一个系统,一个包中包含附属包、图表或单个元素。简单的来说,我们可以直…