UML常用图--类图,用例图,序列图(时序图),协作图(通信图),状态图,活动图
来源:互联网 发布:淘宝商城眼镜 编辑:程序博客网 时间:2024/05/21 16:54
挑了几个UML常用图,整理一下,方便自己查询
多半是应付设计师考试的,考试专用不喜可踩勿喷;
实现: 类实现接口 , [表现] implements
泛化: 类继承类 , [表现] extends
组合: 特殊的关联关系, 是整体与部分的关系, 部分与整体同生命周期, [表现] 成员变量
聚合: 特殊的关联关系, 是整体与部分的关系, 部分与整体不同生命周期, [表现] 成员变量关联: 一个类知道另一个类的行为(方法), [表现] 成员变量
依赖: 一个类的实现需要另一个类的协助, [表现] 局部变量、方法的参数或者对静态方法的调用
关系强弱:
泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖
示例说明:
1. 汽车和飞机实现交通工具接口
2. 引擎组合成汽车,车载收音机聚合成汽车
3. 出租车继承自汽车
4. 出租车与司机是多对多的双向关联关系,司机单向关联驾照(一个司机持有一个驾照)
5. 司机依赖车载WIFI
用例图示例
用例图:
参与者:外部参与者(用户/其他系统)
用例:功能
包含关系:一个用例包含另一个用例(不可或缺)
拓展关系:一个用例存在是为了拓展另一个用例(锦上添花)
继承关系:一个用例继承自一个用例
依赖关系:一个用例依赖另一个用例
--------------------------------------------静态图结束---------------------------------------------------
静态视图: 用例图 , 部署图 , 类图 , 对象图
动态视图: 序列图 , 协作图 , 状态图 , 活动图
--------------------------------------------动态图开始---------------------------------------------------
序列图示例
时序图:
对象: 类的实例
焦点: 对象操作的执行
同步消息(黑实心箭头):等待响应
异步消息(尖角箭头):无需等待响应
返回消息:操作响应
示例说明:
1. 用户向控制器发送一个同步登录消息(调用控制器的login方法)
2. 控制器先检查用户信息(查询DB或会话),成功匹配后向账户发送一个信息请求
3. 账户收到请求,返回一个账户信息,控制器返回给用户
4. 控制器给自己发送一个异步用户已登录消息(保存会话信息)
通信图示例
时序图和协作图可以相互转化!此图来自上述时序图;
状态图示例
状态图:
超状态:状态的父状态
事件:激发状态转换
动作:状态转换伴随的行为
监护条件:满足条件状态才可转换
示例说明:(假设是一台咖啡机)
1. 打开开关,开机灯亮,状态置为On::Ready
2. 按下制作按钮,判断监护条件:是否有水有咖啡粉,满足进入工作状态,工作灯亮
3. 制作完毕,就绪灯亮,状态转换为Ready
4. 按下关闭按钮,灯灭进入Off状态
活动图示例
活动图
和流程图类似,但又有所区别:
1. 活动图侧重对象活动顺序,表现系统行为; 流程图侧重控制结构,表现处理过程;
2. 活动图面向对象,流程图面向过程;
3. 活动图可以表示并发活动;
最后总结一下没画出的图:
对象图: 系统类的实例快照,图形元素同类图
部署图: 和物理相关的图,与构件图相关;
- UML常用图--类图,用例图,序列图(时序图),协作图(通信图),状态图,活动图
- UML常用图--类图,用例图,序列图(时序图),协作图(通信图),状态图,活动图
- 时序图、活动图、状态图、协作图
- 时序图、活动图、状态图、协作图
- UML图中的其他几种图(时序图,协作图,状态图,活动图,对象图)
- UML动态建模——时序图、协作图、状态图、活动图
- 时序图,协作图,状态图,活动图,对象图 简介
- 时序图、活动图、状态图、协作图的区别
- UML--状态图、活动图
- UML--状态图、活动图
- UML状态图、活动图
- UML中四类动态建模图(状态图,协作图,活动图,序列图)的区别与用途
- UML之行为图(活动图、状态图、序列图、协作图)
- android时序图 以及UML中时序图、流程图、状态图、协作图之间的区别
- UML中时序图/用例图/状态图/协作图间的区别
- UML,活动图与状态图
- 【UML】活动图and状态图
- 【UML】 之 状态图 & 活动图
- 基础知识总结(1)
- mysql中文显示为问号?的解决方法
- 深入理解正则表达式
- storm的实际运用框架,过程
- PATbasic1002. 写出这个数
- UML常用图--类图,用例图,序列图(时序图),协作图(通信图),状态图,活动图
- 变分算法
- 【Android】项目更改包名方法
- Session、Cookie 帮助类
- 每天坚持英语学习为什么还是学不好?
- erlang 并发spawn部分学习
- mysql命令行查看表结构,字段等信息 [mysql]
- Android Studio 的使用之添加权限
- SecureCRT 查看日志的简单命令