参考:
https://zhuanlan.zhihu.com/p/44518805
https://www.w3cschool.cn/uml_tutorial/uml_tutorial-yen728t6.html
UML(Unified Modeling Language)是一种统一建模语言,为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。下面将对UML的九种图+包图的基本概念进行介绍以及各个图的使用场景。

一、基本概念

如下图所示,UML图分为用例视图、设计视图、进程视图、实现视图拓扑视图,又可以静动分为静态视图和动态视图

静态图分为:用例图,类图,对象图,包图,构件图,部署图。

动态图分为:状态图,活动图,协作图,序列图。

1、用例图(UseCase Diagrams):

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

2、类图(Class Diagrams):

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

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

“+”、"-" 和 “#”(图中未标注) 分别表示 public、private 和 protected

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):

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

部署模型的目的:

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

UML各种图总结精华相关推荐

  1. UML各种图总结-精华

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

  2. UML实现图 组件图、配置图

    在学习UML实现图的时候发现书上和视频里对实现图的叫法不一样,但是它们所描述的功能是一样的,在视频中称"组件图"为"构件图":称"部署图"为 ...

  3. 最全Pycharm教程(43)——Pycharm扩展功能之UML类图使用 代码结构

    版权声明:本文为博主原创文章,转载时麻烦注明源文章链接,谢谢合作 https://blog.csdn.net/u013088062/article/details/50353202 1.什么是UML ...

  4. idea添加database插件_IDEA高级玩法:集成JIRA、UML类图插件、SSH、FTP、Database管理......

    优质文章,第一时间送达 上一篇: 下一篇:(已修复) 作者: 菩提树下的杨过 出处: http://yjmyzz.cnblogs.com dea还有很多高大上的功能,易用性几乎能与vs.net媲美,反 ...

  5. UML类图新手入门级介绍

    UML类图新手入门级介绍 看了大话设计模式,觉得很生动形象,比较适合于我这种初学者理解面向对象,所以就记录了一下. 举一个简单的例子,来看这样一副图,其中就包括了UML类图中的基本图示法. 首先,看动 ...

  6. 从零开始单排学设计模式「UML类图」定级赛

    阅读本文大概需要 3.5 分钟. 本篇是设计模式系列的开篇,虽然之前也写过相应的文章,但是因为种种原因后来断掉了,而且发现之前写的内容也很渣,不够系统. 所以现在打算重写,加上距离现在也有一段时间了, ...

  7. IDEA高级用法:集成JIRA、UML类图插件、SSH、FTP、Database管理...

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:菩提树下的杨过   出处:http://yjmyzz.cnb ...

  8. uml 时序图_设计模式-UML

    定义 统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明.可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言.UML是面向对象设计 ...

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

    缩略语     UIS     UML Infrastructure Specification   UML基础结构规范     UML    Unifed Modeling Language     ...

最新文章

  1. 数据仓库的未来 MariaDB ColumnStore
  2. kaggle-Santander 客户交易预测总结
  3. Linux:程序员必备的21条Linux 命令
  4. Flsak爱家租房--实名认证
  5. 2022年中国AI芯片行业深度研究
  6. (31)FPGA面试技能提升篇(CAN)
  7. 6 自定义控件之屏蔽控件的设计时属性
  8. 订单生产计划表范本_服装生产管理必看丨一文解决车间管理混乱
  9. chrome应用商店打不开_Chrome 浏览器必备“扩展管理工具”,一键管理 Chrome 扩展...
  10. Chrome 管理搜索引擎
  11. Excel实现数据项校验的功能---VBA的编写以及数据有效性的设置
  12. 2017-2018 中国人工智能产业路线图
  13. 吃鸡什么耳机听声辨位比较好?适合苹果手机的耳机推荐
  14. 打印钻石图形python_Python pandas高效数据处理之绘图
  15. 四川泡菜中的亚硝酸盐如何变化
  16. 牛客网前端刷题(一)
  17. jupyter notebook简明安装、配置、使用教程
  18. 视频存储价格高昂_避免5个最常见(且代价高昂)的错误,这些错误肯定会导致游戏出轨...
  19. 数据库的设计规范:第一范式、第二范式、第三范式、巴斯范式
  20. SP(软件过程)的发展历程2:计划驱动软件开发过程时代

热门文章

  1. Excel生成guid【转】
  2. waterdrop on spark(大数据)_认识waterdrop
  3. 为什么男人死了烧马,女人死了烧牛?别怕,文末有段子缓解气氛……
  4. 用python画玫瑰
  5. python求模逆元
  6. 创建sharepoint 2013 Content search web part(CSWP)(1)
  7. uniapp + vue 2.0 + uView form带验证的表单模板
  8. 近两万字小程序攻略发布了
  9. html5 3d室内房间布局图片展示js特效
  10. 从业3年45万年薪的AI训练师是如何养成的?