文章目录

  • 前言
  • uml基本概念
  • 常见的uml图包括那些
    • 类图(class diagram)
      • 例子
        • 基础类图样式
    • 类之间的关系
      • 泛化关系
      • 实现关系
      • 关联关系
      • 聚合关系
      • 组合关系
      • 依赖关系
    • 用例图(user case diagram)
    • 时序图(sequence diagram)
      • 绘制注意事项
      • 简单示例
      • web交互场景示例

前言

本文所用绘制uml工具为process on,需要了解的同学可以移步下方链接
process on官网

uml基本概念

Unified Modeling Language (UML)又称统一建模语言或标准建模语言,是始于 1997 年一个 OMG 标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。面向对象的分析与设计(OOA&D,OOAD)方法的发展在 80 年代末至 90 年代中出现了一个高潮,UML 是这个高潮的产物。它不仅统一了 Booch、Rumbaugh 和 Jacobson 的表示方法,而且对
其作了进一步的发展,并最终统一为大众所接受的标准建模语
言。
软件开发的时候,系统设计师/系统架构师给出 UML 设计图,程序员将来要根据 UML 设计图进行编码/开发。

常见的uml图包括那些

类图(class diagram)

描述类的信息(包括属性、方法),以及类和类之间的关系信息。

例子

基础类图样式

如下图所示,第一行表示类名。第二行+号表示访问类型为public,-号代表访问类型为private,attribute代表成员属性名,type即是成员属性的类型。第三格中即表示成员方法。

类之间的关系

泛化关系

泛化关系即一种“is a”的关系,如下图,cat类是animal类的子类,所以cat类用一个空白箭头指向其父类animal,这种表示方式可用于类与类、接口与接口、接口和类之间。

实现关系

实现关系即是一种 like a的关系,如下例子,私人厨师在富豪家中就好比一个活体菜单,可根据用户需求完成制作指定菜式。或可以理解为某个类可以完成某个功能。

关联关系

表示两者之间的关联,如下图所示,电脑在编码人员眼里只是一个工具,所以编码人员类用直线箭头指向电脑类,并标明一对一关系,在电脑连接线处标注util代表该类在编码人员类中成员变量名为util。

关联关系也存在自关联,如一个human类可存在夫妻关系,即human中有个human记录丈夫,另一个human记录妻子。这种关系表示就如下所示

聚合关系

聚合关系即代表部分和整体的关系,如教室类中包含一堆学生,教室没了,学生还在。学生走了,教室仍然存在。具体表示方式如下图所示,学生类使用实线菱形线指向教室类。

组合关系

如下所示,组合关系也属于关联关系中的一种,如下图所示,四肢是人类的一部分,所以四肢使用菱形实线指向人类,并在线上标注自己在人类类中成员是一个变量名为limbs的变量,该关系表示当人类类生命周期结束后,四肢类的生命周期也结束了。而转换成编码的如下图右边备注所示。

依赖关系

依赖关系即类与局部变量的关系,表示方式即主类使用实线箭头指向其局部变量,而转换成编码如下图右方备注所示。注意这种关系需要和关联关系区别

用例图(user case diagram)

用例图即从系统用户的角度复习系统存在那些功能

时序图(sequence diagram)

时序图描述了方法调用的过程,程序的执行流程,以及方法执行结束的返回值情况。用例图中的一个用例就会对应时序图中的一个时序。

绘制注意事项

  1. 对象
  2. 实线箭头:调用
  3. 虚线箭头:返回
  4. 柱状:对象的生命周期,即该方法执行流程中,柱状不能断。
  5. 回折线:当前类的方法执行过程中,调用自己当前类中的其他方法。

简单示例

如下图所示,A类调用B的m1方法,会得到一个最终的返回值。B类的m1方法会调用C的m2的方法,得到返回值之后,会调用自身类的m4方法,完成上述步骤后会返回一个值。C的m2方法调用自身m3()方法即完成并返回值。

web交互场景示例

如下图所示,下述过程即将用户查询数据时,浏览器到数据库的执行过程描绘了出来了。
在绘制流程图的时候,需要注意调用用的是实线,返回用的是虚线,以及确定生命周期,以及类调用自身方法时,要将方法的生命周期画在主方法生命周期内,如下Controller中将list转换为json这个方法就绘制在controller的主方法findById之上

UML基础(附绘制教程)相关推荐

  1. 双代号网络图基础算法_最新(免锁版)网络图横道图绘制软件,内附安装教程,制图做更快...

    最新(免锁版)网络图横道图绘制软件,内附安装教程,制图做更快 网络图横道图绘制可制作双代号网络计划.单代号网络图.横道图(及甘特图Gantt),是最常用的计划与控制手段之一,项目管理的必备工具,还可作 ...

  2. UML基础教程(内部使用教程) 非常不错的ppt!!强烈推荐

    UML基础教程(内部使用教程) 非常不错的ppt http://wenku.baidu.com/view/66de89d63186bceb19e8bb1e.html 大家可以参考下 目录 1. 前言 ...

  3. 【软件工程——UML基础教程】

    UML基础教程 1.前言 1.1 前言 1.2 UML概述 1.2.1 UML简介 1.2.2 UML模型图的构成 1.3 UML事物 1.3.1 构件事物 1.3.2 行为事物 1.3.2 分组事物 ...

  4. Mac系统中怎么绘制函数图像?附绘制函数图像教程~

    学数学常常要自己画图?画不对,画得慢,画的丑?Mac系统中怎么绘制函数图像?福利来了,mac系统下有非常方便的画函数图像的工具,可以快速地画出很多简单的,复杂的,2D的,3D的函数图像.简直就是学习数 ...

  5. 单代号网络图计算例题_最新(免锁版)网络图横道图绘制软件,内附安装教程,制图做更快...

    最新(免锁版)网络图横道图绘制软件,内附安装教程,制图做更快 网络图横道图绘制可制作双代号网络计划.单代号网络图.横道图(及甘特图Gantt),是最常用的计划与控制手段之一,项目管理的必备工具,还可作 ...

  6. C语言/C++基础之绘制图钉画(附源码)

    C语言/C++基础之绘制图钉画 程序之美 前言 主体 运行效果 代码实例 逻辑分析 结束语 程序之美 前言 图钉画是一种用图钉作画的艺术形式,整幅画作是用一颗颗图钉组合.拼凑而成的,看似简单,实际上非 ...

  7. 软件设计-UML/数据流图/流程图绘制工具

    文章目录 概述-工之利器 EA使用入门 导入工程头文件 打开工具箱 工具箱操作符使用 直接导入代码类 工作视图设置 类添加操作异常 类元素显示包路径 Visio使用 工具功能 添加链接点 拷贝-空白区 ...

  8. Maya2022基础入门学习教程

    Maya2022基础入门学习教程 Maya 2022 Essential Training Maya2022基础入门学习教程 Maya 2022 Essential Training MP4 |视频: ...

  9. Blender基础入门学习教程 Learning Blender from Scratch

    Blender基础入门学习教程 Learning Blender from Scratch 流派:电子学习| MP4 |视频:h264,1280×720 |音频:aac,48000 Hz 语言:英语+ ...

最新文章

  1. 20180521 数组转换
  2. Mysql学习笔记【原创】
  3. HNUOJ 13341
  4. Logistic Classification
  5. python常用的数据预处理方法
  6. 简单实用,Python代码调试利器
  7. 数据结构之查找算法:B+树
  8. 设计模式六大原则——迪米特法则(LoD)
  9. AI一周热闻:华为年收入突破千亿美元;英伟达发布城市监控数据集
  10. Linux下支持的视频文件格式,linux下视频格式转换与视频合并
  11. 嵌入式linux ucgui,成功移植ucGUI到Linux上
  12. 适合中小型企业的OA系统网上试用整理
  13. 网页视频播放器-插件
  14. Nginx反向代理后无法获取header带下划线的头信息
  15. 蓝桥杯刷题日记 更新到2022/2/5
  16. css 手抓,CSS 像素画 - 手和箭头
  17. 结对项目-小游戏连连看
  18. 逆向练习--bugku love
  19. GNSS Interface Control Document报文协议文档
  20. 如何下载谷歌地球历史地图

热门文章

  1. 腾讯云服务器标准型s2/sa1/sa2区别在哪?如何选择?
  2. Android修行手册-Button实现点击音效有多简单?
  3. 正在配置您的计算机,解决方案:Win10系统正在配置Windows Update并停留在100%,如何解决...
  4. adodb/adodb.inc.php,php adodb连接不同数据库分享
  5. 大数据发展和就业前景好吗?大数据人才缺口有多大?
  6. 3.Oralce的基础操作
  7. 帮忙抢高铁票的代码用Python写一个
  8. Gradle依赖库选择库的flavor
  9. 一次指数平滑预测matlab,一次指数平滑法matlab
  10. 服务器的IP和Vip什么差别