软技能之UML图

article/2025/11/9 14:00:44

软技能之UML图

工欲善其事必先利其器,程序员建模过程中需要用到的建模工具UML。

UML:Unified Modeling Language 统一建模语言。目标是以对象图的方式来描述任何类型的系统。

UML可分为两类:结构型(描述某种结构)、行为型(描述某种行为)

  • 结构性的UML有:类图、对象图、构件图、部署图、包图。

  • 行为型的UML有: 活动图、状态机图、顺序图、通信图、用例图、时间图。

软件开发的各个阶段

需求分析阶段:

  • 用例图:由参与者、用例、边界及它们之间的关系构成描述系统功能的视图。

  • 流程图:面向过程,描述处理过程。

概要设计阶段:

  • 类图:模型的静态结构,类之间的关系。

  • 对象图:作为系统在某一个时刻的快照,是类图中的各个类在某一个时刻点上的实例及其关系的静态写照。用于描述某一时刻的一组对象及它们之间的关系。

详细设计阶段:

  • 时序图:描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。

  • 状态图:描述一个实体基于事件反应的动态行为。侧重从行为的结果来描述。

  • 活动图:阐明业务用例的工作流程。侧重从行为的结果来描述,面向对象,着重表现系统行为。

  • 顺序图:将交互关系表示为一个二维图。

  • 通信图:表现对象交互关系的图。

部署阶段:

  • 部署图。

常用的几种图

类图

类图是描述业务概念的一种图。

类之间关系主要分为六种:

  • 继承:子类继承父类。

  • 实现:实现类与接口。

  • 关联:类对象与另一类对象有联系。(组合、聚合也属于关联关系)

  • 依赖:某个类方法使用另一个类对象作为参数。(单向)

  • 组合:类之间整体与部分的关系,整体与部分有一致的生命周期。

  • 聚合:类之间整体与部分的关系,但成员对象可以脱离整体对象独立存在。

各关系从强到弱:继承->实现->组合->聚合->关联->依赖。(DDD中的聚合和UML中的组合关系是一致的)

类图属性表示法:

+ public
- private
# protected
~ default
抽象类或抽象方法用斜体表示
静态类或静态方法加下划线
如果是接口在类上加<<>>

UML图中画一个类使用分割线的矩阵表示:

  • 最上面为类名。

  • 中间为类属性。

  • 下面为类方法。

完整类图例子:

部署图

部署图用来描述系统如何部署,以及系统之间的关系的一种图。

18年画了一张,后面分享出来了。

流程图

流程图:面向过程,描述处理过程的一种图。

常用的基本符号:

  • 开始/结束:表示流程的开始或结束符号。一个流程图只有一个开始,可能有多个结束。

  • 过程:流程中要处理的一个步骤。

  • 数据:表示数据的输入或者输出。

  • 判定:用来表示过程中的一项判定。

  • 文档:表示属于该过程的书面信息。

  • 流向:箭头表示一个过程的流程方向。

本人之前画的ForkjoinPool执行流程图,最左侧ForkJoinWorkerThread#run 其实是由main方法启动后续执行的,为了方便理解,画了两个开始。

 

活动图和流程图对比:

  • 活动图更侧重某一体系中各个对象之间的行为联系,活动顺序。而流程图可以指某一算法的具体实现步骤,侧重处理过程。

  • 活动图可以并发执行,而流程图是依次执行,有时间顺序。

  • 活动图是面向对象的,流程图是面向过程的。

时序图

组成元素:

  1. 角色 Actor:系统角色,可以是人或者其它系统和子系统。

  2. 对象 Object:对象代表时序图中的对象在交互中所扮演的角色。

  3. 生命线 Lifeline:生命线代表时序图中的对象在一段时期内的存在。

  4. 控制焦点 Activation:代表时序图中的对象执行一项操作的时期。

  5. 消息 Message:定义交互和协作中交换信息的类。


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

相关文章

生成C++工程的UML类图和类继承关系图

简介 在进行软件开发时&#xff0c;了解代码结构和关系、类之间的继承关系以及类内部的成员函数和变量定义是非常重要的。为此&#xff0c;我们可以使用Doxygen和Graphviz工具来生成UML类图和类集成关系图。 Doxygen是一个用于从注释的C源代码中生成文档的工具&#xff0c;支…

Ubuntu系统画大型UML图

一、 环境配置 1. 配置java环境&#xff08;请自行查找教程&#xff09; 2. 安装graphviz sudo apt install graphviz 3. 下载plantuml.jar 下载页面 下载好以后&#xff0c;我将其放在了~/bin/目录下面 4. 配置alias export PLANTUML_JAR_PATH~/bin/ export PLANTUML_LIM…

UML图有哪些类型?

UML&#xff08;Unified Modeling Language &#xff09;是用来对软件密集系统进行可视化建模的一种语言&#xff0c;是在开发阶段、说明、可视化、构建和书写一个面向对象软件密集系统的制品的开放方法。 UML图分为两种类型&#xff1a;结构图和行为图。结构图是可视化组件如…

UML建模工具——用例图

【面向对象分析UML建模工具全部文章】 UML建模工具(1)——用例图UML建模工具(2)——活动图UML建模工具(3)——类图UML建模工具(4)——顺序图UML建模工具(5)——通信图UML建模工具(6)——状态图 UML建模工具——用例图 系统 System参与者 Actors用例 Use Cases关系 Relations…

移动端UML图应用之UML图简述

系列文章目录 移动端UML图应用之UML图简述 移动端UML图应用之UML行为图——用例图、活动图和状态机图 移动端UML图应用之UML交互图——顺序图和通信图 移动端UML图应用之UML结构图——包图、部署图和组件图 移动端UML图应用之UML结构图——类图 文章目录 系列文章目录前言一、…

IDEA 思维导图 ,类UML 图工具插件 plantUML integration

文章目录 IDEA 思维导图 ,类UML 图工具插件 plantUML integration1、安装2、UML3、使用 plantUML integrationIDEA 思维导图 ,类UML 图工具插件 plantUML integration 1、安装 找到插件并安装 2、UML UML 图包括序列图、用例图、类图、活动图、协作图、组件图、对象图、状态…

Mac下一款好用的UML图绘制工具(StarUML)

Mac下一款好用的UML图绘制工具&#xff08;StarUML&#xff09; 推荐一款好用的Mac下绘制UML图的工具&#xff0c;叫做StarUML&#xff0c;它是一款很好用的UML图的工具&#xff0c;但是是收费的&#xff0c;不过可以设置相应代码&#xff0c;免费使用&#xff0c;附上官方下载…

UML建模与软件开发设计(三)——UML常用开发工具

4.4.UML常用开发工具 常用的UML设计工具有微软Office自带的Visio、Rational Rose、PowerDesign以及StarUML。在本文档中&#xff0c;我们使用StarUML来作为类图和时序图的设计工具。 4.4.1.StarUML开发工具的下载与破解 4.4.1.StarUML下载地址 &#xff08;1&#xff09;普…

12个优秀的开源UML工具

本文将为您介绍12个优秀的UML工具&#xff1a; 1. StarUML StarUML(简称SU)&#xff0c;是一种创建UML类图&#xff0c;是一种生成类图和其他类型的统一建模语言(UML)图表的工具。StarUML是一个开源项目之一发展快、灵活、可扩展性强(zj)。 2. Netbeans UML Plugin 目前支持…

vue双向绑定的原理

之前我有个学生在面试的时候&#xff0c;面试官问vue的双向绑定如何实现&#xff1f;学生说用v-module实现。又问那么双向绑定的原理是什么&#xff1f;就回答不上来了&#xff0c;这个offer工资在18k左右&#xff0c;其他问题都回答上来了&#xff0c;如果这个问题能回答上来基…

vue 单向绑定 双向绑定

参考&#xff1a;【Vue】vue 单向绑定& 双向绑定 - vickylinj - 博客园 在react中是单向数据绑定&#xff0c;而Vue.js 最显著的特点就是响应式和数据驱动&#xff0c;也就是将Model和View进行单向绑定或者双向绑定。 单向绑定&#xff1a;把Model绑定到View&#xff0c;…

vue 双向绑定 getter 和 setter

它的每个属性都有两个相对应的get和set方法&#xff0c;我觉的这是多此一举的&#xff0c;于是去网上查了查Vue双向绑定的实现原理&#xff0c;才发现它和Angular.js双向绑定的实现原理完全不同&#xff0c;Angular是用的数据脏检测&#xff0c;当Model发生变化&#xff0c;会检…

vue双向绑定不生效、对象中的属性值发生改变页面不会重新渲染问题解决办法

文章目录 vue双向绑定原理方法一 增加一个基本类型的变量方法二 使用整体对象替换方法三 使用vue文档提供的方法 vue双向绑定原理 vue深入式响应原理&#xff0c;当我们在data中声明变量对象&#xff0c;Vue 将遍历此对象所有的 property&#xff08;如下面的list&#xff09;…

前端技巧|vue双向绑定原理,助你面试成功

在面试一些大厂的时候&#xff0c;面试官可能会问到你vue双向数据绑定的原理是什么&#xff1f;有些小伙伴不知道是什么东西&#xff0c;这样你在面试官的眼里就大打折扣了。今天小千就来给大家介绍一下vue的双向绑定原理&#xff0c;千万不要错过啦。 vue双向绑定 大家其实对…

vue双向绑定数组

众所周知,vue中v-model 会忽略所有表单元素的 value、checked、selected attribute 的初始值而总是将 Vue 实例的数据作为数据来源。 大部分情况,v-model是绑定一个对象的属性,但是如果数据库中的数据是一个数组,这种情况下,如果把数组转换成对象再绑定,然后再转换回去提交…

vue双向绑定经典案例

1、无需废话&#xff0c;直接上代码 复制到新建的记事本文件&#xff0c;保存问demo.html即可。 <script src"https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script> <!DOCTYPE html> <html><head> <meta charset"utf…

浅谈vue双向绑定的原理

一、什么是双向绑定 我们先从单向绑定切入 单向绑定非常简单&#xff0c;就是把Model绑定到View&#xff0c;当我们用JavaScript代码更新Model时&#xff0c;View就会自动更新 双向绑定就很容易联想到了&#xff0c;在单向绑定的基础上&#xff0c;用户更新了View&#xff0…

vue双向绑定

1.vue双向绑定原理 vue.js 则是采用数据劫持结合发布者-订阅者模式的方式&#xff0c;通过Object.defineProperty()来劫持各个属性的setter&#xff0c;getter&#xff0c;在数据变动时发布消息给订阅者&#xff0c;触发相应的监听回调。我们先来看Object.defineProperty()这个…

Vue基础知识总结 6:vue双向绑定原理

&#x1f345; 作者简介&#xff1a;哪吒&#xff0c;CSDN2021博客之星亚军&#x1f3c6;、新星计划导师✌、博客专家&#x1f4aa; &#x1f345; 哪吒多年工作总结&#xff1a;Java学习路线总结&#xff0c;搬砖工逆袭Java架构师 &#x1f345; 关注公众号【哪吒编程】&#…

7、Vue双向绑定原理和实现

原理 视图&#xff08;view&#xff09;变化更新数据&#xff08;data&#xff09;。这个很简单&#xff0c;通过事件监听就可以实现数据&#xff08;data&#xff09;变化更新视图&#xff08;view&#xff09;。通过数据劫持&#xff08;即Object.defineProperty( )方法&…