文章目录

  • 前言
  • 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. shell脚本俄罗斯方块游戏
  2. 知名文件传输协议 SCP 被曝存在 35 年历史的安全漏洞
  3. f150platinum_新款福特F150PLATINUM精英版皮卡超强越野实力展示
  4. Shell基础:变量类型 运算符
  5. SPOJ 2713 线段树(sqrt)
  6. Leaflet中添加标记、折线、圆圈、多边形、弹窗显示点击处坐标
  7. ubuntu修改pip的官方源为豆瓣源
  8. linux下的系统监控软件,Linux系统监控工具sysstat
  9. 微型计算机控制理论基础答案,微型计算机控制技术试卷c
  10. const int *p与int *const p的区别
  11. 使用java写js中类似setTimeout的代码
  12. python基础一 day17 二分查找算法
  13. Julia:几个简单的类型转换
  14. 如何覆盖上一次commit_如何在 Linux 上一次性批量重命名一组文件?
  15. 程序设计c语言文件,文件C语言程序设计.pdf
  16. Python查找中国城市、省份
  17. 日积月累,聚沙成塔……
  18. oracle 9i for redhat9 下载,RedHat9上安装Oracle9i手记(原作:hotman_x)
  19. [WinError 6] 句柄无效。
  20. C++ Primer 笔记

热门文章

  1. 公积金新政来了:太原公积金贷款年限 男女均延长至多少岁?
  2. HTML - 15 移动设备网页设计
  3. 研发转FAE,要想清楚
  4. springboot+mysql学生个性的宿舍分配管理系统-计算机毕业设计源码01236
  5. python——百分制成绩转五分制(循环)
  6. manjaro 更新报错-无效或已损坏的软件包 (PGP 签名)
  7. java textsharp,月光软件站 - 编程文档 - 其他语言 - 利用TextEditorControl控件现代码语法高亮显示...
  8. Endnote X9收藏网址--安装、使用
  9. uniqueResult和list
  10. Insight Natural Language Computing-----记Ming Zhou, Long Jiang and Xiaohua Liu讲座