当前位置:网站首页>软技能之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:定义交互和协作中交换信息的类。
边栏推荐
- PHP算法之最接近的三数之和
- 2022年最新河北建筑八大员(机械员)模拟考试题库及答案
- Interpretation of the paper (GSAT) "Interpretable and Generalizable Graph Learning via Stochastic Attention Mechanism"
- 用virtualenv和Virtualenvwrapper虚拟环境管理工具创建虚拟环境
- 移动端人脸风格化技术的应用
- IDEA入门看这一篇就够了
- 解决 win10 下 ISE14.7的 iMPACT 崩溃问题 - FPGA 笔记
- 2022/7/31
- 使用Jenkins做持续集成,这个知识点必须要掌握
- Quarantine and downgrade
猜你喜欢
【数据分析03】
研发团队数字化转型实践
leetcode刷题
Prufer序列
03、GO语言变量定义、函数
数据增强--学习笔记(图像类,cnn)
13、学习MySQL 分组
Codeforces CodeTON Round 2 (Div. 1 + Div. 2, Rated, Prizes!) A-D Solution
Mini Program Graduation Works WeChat Food Recipe Mini Program Graduation Design Finished Product (8) Graduation Design Thesis Template
牛客多校4 A.Task Computing 思维
随机推荐
SAP Spartacus Accessibility E2E 端到端测试
解决 win10 下 ISE14.7的 iMPACT 崩溃问题 - FPGA 笔记
1391D. 505 状压dp
PHP算法之最接近的三数之和
小程序毕设作品之微信体育馆预约小程序毕业设计成品(3)后台功能
小程序毕设作品之微信美食菜谱小程序毕业设计成品(6)开题答辩PPT
数据分析04
选择合适的 DevOps 工具,从理解 DevOps 开始
关于ETL的两种架构(ETL架构和ELT架构)
从0到100:招生报名小程序开发笔记
如何使用pywinauto和pyautogui将动漫小姐姐链接请回家
ROS2初级知识(8):Launching启动多节点
Flutter基础学习(一)Dart语言入门
下载安装 vscode(含汉化、插件的推荐和安装)
域名重定向工具 —— SwitchHosts 实用教程
杭电多校3 1012. Two Permutations dp*
萍不回答
华为无线设备配置全局双链路冷备份(AC全局配置方式)
NgRx Selector 的 Memoization 特性学习笔记
A. Doremy‘s IQ-- Codeforces Round #808 (Div. 1)