一、UML
UML(Unified Modeling Language)是一种模型语言,也是一种为面向对象开发系统的产品进行说明、可视化、编制文档的标准语言;但是UML不是编程语言,但是可以在各种语言的代码中使用UML图。
UML三个基本模块:事物、关系、图;
UML概念模型三大要素:UML构建模块、规则连接构建模块、UML公共机制;
UML构建块的定义:事物、关系、图;
{
事
物
{
结
构
事
物
{
类
:
属
性
、
方
法
、
关
系
、
语
义
相
同
对
象
的
集
合
接
口
:
类
或
组
件
提
供
的
服
务
协
作
:
元
素
之
间
的
相
互
作
用
用
例
:
体
现
系
统
的
功
能
组
件
:
描
述
物
理
系
统
的
一
部
分
节
点
:
运
行
时
存
在
的
物
理
元
素
行
为
事
物
{
交
互
状
态
机
分
组
事
物
:
包
注
释
事
物
:
注
释
关
系
{
依
赖
:
一
个
事
物
的
变
化
影
响
另
一
个
事
物
协
作
:
描
述
部
分
和
整
体
的
结
构
关
系
实
现
泛
化
图
{
用
例
图
类
图
对
象
图
顺
序
图
协
作
图
状
态
图
活
动
图
构
件
图
部
署
图
包
图
\begin{cases}事物\begin{cases}结构事物\begin{cases}类:属性、方法、关系、语义相同对象的集合\\接口:类或组件提供的服务\\协作:元素之间的相互作用\\用例:体现系统的功能\\组件:描述物理系统的一部分\\节点:运行时存在的物理元素\end{cases}\\行为事物\begin{cases}交互\\状态机\end{cases}\\分组事物:包\\注释事物:注释\end{cases}\\关系\begin{cases}依赖:一个事物的变化影响另一个事物\\协作:描述部分和整体的结构关系\\实现\\泛化\end{cases}\\图\begin{cases}用例图\\类图\\对象图\\顺序图\\协作图\\状态图\\活动图\\构件图\\部署图\\包图\end{cases}\end{cases}
⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧事物⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧结构事物⎩⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎧类:属性、方法、关系、语义相同对象的集合接口:类或组件提供的服务协作:元素之间的相互作用用例:体现系统的功能组件:描述物理系统的一部分节点:运行时存在的物理元素行为事物{交互状态机分组事物:包注释事物:注释关系⎩⎪⎪⎪⎨⎪⎪⎪⎧依赖:一个事物的变化影响另一个事物协作:描述部分和整体的结构关系实现泛化图⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧用例图类图对象图顺序图协作图状态图活动图构件图部署图包图
二、UML模型图
1、用例图
静态建模;展现了系统的功能、用户和系统的交互情况。
{
参
与
者
用
例
:
一
个
功
能
单
元
\begin{cases} 参与者\\用例:一个功能单元 \end{cases}
{参与者用例:一个功能单元
{
关
联
:
参
与
者
与
用
例
最
基
础
的
交
互
方
式
包
含
:
影
响
完
整
性
、
必
须
执
行
扩
展
:
不
影
响
完
整
性
、
条
件
执
行
泛
化
:
继
承
对
方
的
特
性
并
有
自
己
的
特
性
\begin{cases} 关联:参与者与用例最基础的交互方式\\包含:影响完整性、必须执行\\扩展:不影响完整性、条件执行\\泛化:继承对方的特性并有自己的特性\end{cases}
⎩⎪⎪⎪⎨⎪⎪⎪⎧关联:参与者与用例最基础的交互方式包含:影响完整性、必须执行扩展:不影响完整性、条件执行泛化:继承对方的特性并有自己的特性
2、类图
静态建模;反映类的属性、操作和类之间的关系。
{
类
名
:
类
名
必
须
有
属
性
:
可
见
性
、
数
据
类
型
、
缺
省
操
作
:
可
见
性
\begin{cases}类名:类名必须有\\属性:可见性、数据类型、缺省\\操作:可见性\end{cases}
⎩⎪⎨⎪⎧类名:类名必须有属性:可见性、数据类型、缺省操作:可见性
{
−
:
p
r
i
v
a
t
e
+
:
p
u
b
l
i
c
#
:
p
r
o
t
e
c
t
e
d
\begin{cases}-:private\\+:public\\\#:protected\end{cases}
⎩⎪⎨⎪⎧−:private+:public#:protected
{
关
联
{
聚
合
:
部
分
和
整
体
之
间
的
关
系
组
合
:
部
分
和
整
体
具
有
相
同
的
生
命
周
期
泛
化
:
继
承
关
系
实
现
:
类
与
接
口
之
间
的
关
系
依
赖
:
绑
定
、
友
元
\begin{cases}关联\begin{cases}聚合:部分和整体之间的关系\\组合:部分和整体具有相同的生命周期\end{cases}\\泛化:继承关系\\实现:类与接口之间的关系\\依赖:绑定、友元\end{cases}
⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧关联{聚合:部分和整体之间的关系组合:部分和整体具有相同的生命周期泛化:继承关系实现:类与接口之间的关系依赖:绑定、友元
3、顺序图
动态建模;用例中的行为顺序。
{
参
与
者
对
象
:
对
象
是
类
的
实
例
生
命
线
消
息
符
号
{
同
步
异
步
简
单
同
步
且
立
即
返
回
\begin{cases}参与者\\对象:对象是类的实例\\生命线\\消息符号\begin{cases}同步\\异步\\简单\\同步且立即返回\end{cases}\end{cases}
⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧参与者对象:对象是类的实例生命线消息符号⎩⎪⎪⎪⎨⎪⎪⎪⎧同步异步简单同步且立即返回
4、协作图
对象间的交互作用,可以表示类操作的实现。
{
参
与
者
对
象
消
息
流
\begin{cases}参与者\\对象\\消息流\end{cases}
⎩⎪⎨⎪⎧参与者对象消息流
消
息
标
签
:
[
前
缀
]
[
守
卫
条
件
]
序
列
表
达
式
[
返
回
值
:
=
]
消
息
名
消息标签:[前缀][守卫条件]序列表达式[返回值:=]消息名
消息标签:[前缀][守卫条件]序列表达式[返回值:=]消息名
协作图与顺序图的区别:
{
顺
序
图
强
调
对
象
执
行
的
时
间
顺
序
−
时
间
角
度
协
作
图
强
调
对
象
之
间
的
关
系
−
空
间
角
度
\begin{cases}顺序图强调对象执行的时间顺序-时间角度\\协作图强调对象之间的关系-空间角度\end{cases}
{顺序图强调对象执行的时间顺序−时间角度协作图强调对象之间的关系−空间角度
5、状态图
动态建模。
{
状
态
转
移
开
始
:
一
个
结
束
:
可
以
有
多
个
\begin{cases}状态\\转移\\开始:一个\\结束:可以有多个\end{cases}
⎩⎪⎪⎪⎨⎪⎪⎪⎧状态转移开始:一个结束:可以有多个
6、活动图
动态建模;类似于传统的流程图。
{
活
动
:
动
作
的
执
行
起
点
终
点
对
象
流
:
活
动
之
间
交
换
的
信
息
发
送
信
号
接
收
信
号
泳
道
:
活
动
的
负
责
者
\begin{cases}活动:动作的执行\\起点\\终点\\对象流:活动之间交换的信息\\发送信号\\接收信号\\泳道:活动的负责者\end{cases}
⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧活动:动作的执行起点终点对象流:活动之间交换的信息发送信号接收信号泳道:活动的负责者
{
迁
移
:
活
动
的
完
成
与
新
活
动
的
开
始
分
支
:
控
制
动
作
的
执
行
方
向
分
叉
:
活
动
并
发
执
行
结
合
:
并
发
执
行
的
活
动
结
合
\begin{cases}迁移:活动的完成与新活动的开始\\分支:控制动作的执行方向\\分叉:活动并发执行\\结合:并发执行的活动结合\end{cases}
⎩⎪⎪⎪⎨⎪⎪⎪⎧迁移:活动的完成与新活动的开始分支:控制动作的执行方向分叉:活动并发执行结合:并发执行的活动结合
7、构件图
静态建模;构件类型组织以及各种构件之间的依赖关系;用来描述一个系统中的物理构件。
构件图=构件+接口+关系+端口+连接器
{
构
件
:
系
统
中
可
替
换
的
物
理
部
分
接
口
:
外
部
可
访
问
到
的
服
务
构
件
实
例
:
构
件
的
一
个
实
例
\begin{cases}构件:系统中可替换的物理部分\\接口:外部可访问到的服务\\构件实例:构件的一个实例\end{cases}
⎩⎪⎨⎪⎧构件:系统中可替换的物理部分接口:外部可访问到的服务构件实例:构件的一个实例
{
实
现
关
系
:
构
件
提
供
的
服
务
依
赖
关
系
:
构
件
使
用
其
他
构
件
提
供
的
服
务
\begin{cases}实现关系:构件提供的服务\\依赖关系:构件使用其他构件提供的服务\end{cases}
{实现关系:构件提供的服务依赖关系:构件使用其他构件提供的服务
8、部署图
静态建模
{
实
例
层
部
署
图
描
述
层
部
署
图
\begin{cases}实例层部署图\\描述层部署图\end{cases}
{实例层部署图描述层部署图
{
节
点
:
一
个
至
少
有
存
储
空
间
和
执
行
能
力
的
计
算
资
源
构
件
接
口
构
件
实
例
\begin{cases}节点:一个至少有存储空间和执行能力的计算资源\\构件\\接口\\构件实例\end{cases}
⎩⎪⎪⎪⎨⎪⎪⎪⎧节点:一个至少有存储空间和执行能力的计算资源构件接口构件实例
{
节
点
内
{
实
现
关
系
依
赖
关
系
节
点
间
{
关
联
关
系
其
他
关
系
\begin{cases}节点内\begin{cases}实现关系\\依赖关系\end{cases}\\节点间\begin{cases}关联关系\\其他关系\end{cases}\end{cases}
⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧节点内{实现关系依赖关系节点间{关联关系其他关系
部署图和构件图之间的关系:
部署图偏向于描述构件在节点中的运行状态
构件图偏向于描述构件之间的关系