当前位置:网站首页>软技能之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:定义交互和协作中交换信息的类。
边栏推荐
猜你喜欢
下载安装 vscode(含汉化、插件的推荐和安装)
从0到100:招生报名小程序开发笔记
JS prototype hasOwnProperty in Add method Prototype end point Inherit Override parent class method
[深入研究4G/5G/6G专题-48]: 5G Link Adaption链路自适应-4-下行链路自适应DLLA-PDCCH信道
Wechat Gymnasium Reservation Mini Program Graduation Design Finished Work Mini Program Graduation Design Finished Product (2) Mini Program Function
隔离和降级
Quarantine and downgrade
(Translation) How the contrasting color of the button guides the user's actions
From 0 to 100: Notes on the Development of Enrollment Registration Mini Programs
移动端人脸风格化技术的应用
随机推荐
Create virtual environments with virtualenv and Virtualenvwrapper virtual environment management tools
毕业作业
excel cell contian two words, seperated by a slash
毫秒级!千万人脸库快速比对,上亿商品图片检索,背后的极速检索用了什么神器?
Postman 批量测试接口详细教程
SQL Server (design database--stored procedure--trigger)
2022年最新河北建筑八大员(机械员)模拟考试题库及答案
From 0 to 100: Notes on the Development of Enrollment Registration Mini Programs
APP special test: traffic test
Wechat Gymnasium Appointment Mini Program Graduation Design Finished Work (4) Opening Report
IDEA常用插件
从0到100:招生报名小程序开发笔记
PHP算法之最接近的三数之和
PDF转Word有那么难吗?做一个文件转换器,都解决了
联邦学习入门
Deep Learning Course2 Week 2 Optimization Algorithms Exercises
隔离和降级
【数据分析03】
A. Doremy‘s IQ-- Codeforces Round #808 (Div. 1)
关于ETL的两种架构(ETL架构和ELT架构)