当前位置:网站首页>软技能之UML图
软技能之UML图
2022-08-01 23:04:00 【阿飞技术】
软技能之UML图
工欲善其事必先利其器,程序员建模过程中需要用到的建模工具UML。
UML:Unified Modeling Language 统一建模语言。目标是以对象图的方式来描述任何类型的系统。
UML可分为两类:结构型(描述某种结构)、行为型(描述某种行为)
结构性的UML有:类图、对象图、构件图、部署图、包图。
行为型的UML有: 活动图、状态机图、顺序图、通信图、用例图、时间图。
软件开发的各个阶段
需求分析阶段:
用例图:由参与者、用例、边界及它们之间的关系构成描述系统功能的视图。
流程图:面向过程,描述处理过程。
概要设计阶段:
类图:模型的静态结构,类之间的关系。
对象图:作为系统在某一个时刻的快照,是类图中的各个类在某一个时刻点上的实例及其关系的静态写照。用于描述某一时刻的一组对象及它们之间的关系。
详细设计阶段:
时序图:描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。
状态图:描述一个实体基于事件反应的动态行为。侧重从行为的结果来描述。
活动图:阐明业务用例的工作流程。侧重从行为的结果来描述,面向对象,着重表现系统行为。
顺序图:将交互关系表示为一个二维图。
通信图:表现对象交互关系的图。
部署阶段:
部署图。
常用的几种图
类图
类图是描述业务概念的一种图。
类之间关系主要分为六种:
继承:子类继承父类。
实现:实现类与接口。
关联:类对象与另一类对象有联系。(组合、聚合也属于关联关系)
依赖:某个类方法使用另一个类对象作为参数。(单向)
组合:类之间整体与部分的关系,整体与部分有一致的生命周期。
聚合:类之间整体与部分的关系,但成员对象可以脱离整体对象独立存在。
各关系从强到弱:继承->实现->组合->聚合->关联->依赖。(DDD中的聚合和UML中的组合关系是一致的)
类图属性表示法:
+ public
- private
# protected
~ default
抽象类或抽象方法用斜体表示
静态类或静态方法加下划线
如果是接口在类上加<<>>
UML图中画一个类使用分割线的矩阵表示:
最上面为类名。
中间为类属性。
下面为类方法。
完整类图例子:
部署图
部署图用来描述系统如何部署,以及系统之间的关系的一种图。
18年画了一张,后面分享出来了。
流程图
流程图:面向过程,描述处理过程的一种图。
常用的基本符号:
开始/结束:表示流程的开始或结束符号。一个流程图只有一个开始,可能有多个结束。
过程:流程中要处理的一个步骤。
数据:表示数据的输入或者输出。
判定:用来表示过程中的一项判定。
文档:表示属于该过程的书面信息。
流向:箭头表示一个过程的流程方向。
本人之前画的ForkjoinPool执行流程图,最左侧ForkJoinWorkerThread#run 其实是由main方法启动后续执行的,为了方便理解,画了两个开始。
活动图和流程图对比:
活动图更侧重某一体系中各个对象之间的行为联系,活动顺序。而流程图可以指某一算法的具体实现步骤,侧重处理过程。
活动图可以并发执行,而流程图是依次执行,有时间顺序。
活动图是面向对象的,流程图是面向过程的。
时序图
组成元素:
角色 Actor:系统角色,可以是人或者其它系统和子系统。
对象 Object:对象代表时序图中的对象在交互中所扮演的角色。
生命线 Lifeline:生命线代表时序图中的对象在一段时期内的存在。
控制焦点 Activation:代表时序图中的对象执行一项操作的时期。
消息 Message:定义交互和协作中交换信息的类。
边栏推荐
- Three, mysql storage engine - building database and table operation
- APP special test: traffic test
- 程序员如何优雅地解决线上问题?
- y84.第四章 Prometheus大厂监控体系及实战 -- prometheus告警机制进阶(十五)
- perspectiveTransform warpPerspective getPerspectiveTransform findHomography
- Jmeter是什么
- 华为无线设备配置全局双链路冷备份(AC全局配置方式)
- From 0 to 1: Design and R&D Notes of Graphic Voting Mini Program
- 分享10套开源免费的高品质源码,免费源码下载平台
- E - Integer Sequence Fair
猜你喜欢
随机推荐
毫秒级!千万人脸库快速比对,上亿商品图片检索,背后的极速检索用了什么神器?
力扣第 304 场周赛复盘
(Translation) How the contrasting color of the button guides the user's actions
Background project Express-Mysql-Vue3-TS-Pinia page layout-sidebar menu
还在纠结报表工具的选型么?来看看这个
【C补充】链表专题 - 单向链表
excel remove all carriage return from a cell
分享10套开源免费的高品质源码,免费源码下载平台
小程序毕设作品之微信美食菜谱小程序毕业设计成品(7)中期检查报告
RxJs SwitchMapTo 操作符之移花接木
PHP算法之电话号码的字母组合
Wechat Gymnasium Appointment Mini Program Graduation Design Finished Work (4) Opening Report
PostgreSQL 基础--常用命令
PHP算法之有效的括号
APP专项测试:流量测试
Create virtual environments with virtualenv and Virtualenvwrapper virtual environment management tools
(翻译)按钮的对比色引导用户操作的方式
基于 OData 模型和 JSON 模型的 SAP UI5 表格控件行项目的添加和删除实现
img 响应式图片的实现(含srcset属性、sizes属性的使用方法,设备像素比详解)
y84. Chapter 4 Prometheus Factory Monitoring System and Actual Combat -- Advanced Prometheus Alarm Mechanism (15)