通过UML入门的介绍,我们对UML有了大概的了解。
下面,我们就来了解一下常用的三种UML图的基本语法。
类图
它主要用于描述类、接口、协作以及它们之间的关系。
类表示
类的表示一般分为三部分表示。
- 类名
- 属性
- 操作
属性和操作的权限一般有以下四种。
- public (+)
- protected (#)
- private (-)
- package (~)
对应面向对象的基本访问权限类型。
举例如下。
public class Person {
public String name;
protected String age;
private BigDecimal inCome;
public void sleep() {
System.out.println("睡觉");
}
public void eat(String food) {
System.out.println("吃" + food);
}
}
如下为Person类对应UMl的class对象。
接口表示
接口一般有两种表示形式。
接口定义如下。
public interface Person {
void sleep();
void eat(String food);
}
UML接口的两种表示形式。
关系表示
在大话设计模式中有个很好的例图,如下。
上图基本包含了所有的关系,泛化关系(即 继承关系)、实现关系、依赖关系、关联关系、组合关系、聚合关系。
-
泛化关系(继承关系)
- UML表示
- 描述:一个实线空心箭头,由子类指向父类
- 含义:用于描述子类和父类(超类)的关系,即“is-a-kind-of”关系。如:鸟是一种动物。
-
实现关系
- UML表示
- 描述:一个虚线空心箭头,由实现类指向接口类
- 含义:用于接口与具体实现类的关系。
-
依赖关系
- UML表示
- 描述:一个虚线箭头,由使用类指向被依赖类
- 含义:用于描述使用关系。如:动物生活需要使用氧气和水
-
关联关系
- UML表示
- 描述:一个实线或实线箭头,由关注类指向被关注类
- 含义:用于描述当一个类需要了解另一个类时。关联有单向关联和双向关联。
- 补充:海豹需要了解企鹅,以便捕食。企鹅需要了解海豹,以逃避捕杀,所以这个是双向关联。另外,企鹅需要了解气候,以便迁徙,但气候并不care企鹅,故为单向关联。
-
聚合关系
- UML表示
- 描述:空心菱形+实线箭头(箭头可省略),菱形在整体侧
- 含义:用于描述一种弱拥有的关系。如果整体不存在了,部分也会存在即 “ has-a”关系。如:雁群里有7只大雁
-
组合关系
- UML表示
- 描述:实心菱形+实线箭头(箭头可省略),菱形在整体侧
- 含义:用于描述一种强拥有的关系,即 “ contains-a”关系。如果整体不存在了,部分也不会存在。如:鸟有一双翅膀
时序图
以时间顺序,用于描述消息在对象之间的传递过程。
以小程序登录顺序图为例。
-
对象、生命线、激活点
- UML表示
-
描述:顶部的矩形表示对象,下方的虚线表示生命线,虚线上的窄矩形表示激活点。
-
含义:用于描述一个对象在整个时序图中的位置存活时间以及具体的执行时间。
-
同步消息
- UML表示
-
描述:向右实线实心箭头表示
-
含义:用于描述同步消息的传递
-
自关联消息
- UML表示
-
描述:指向自己的实现实心箭头表示
-
含义:用于描述自身调用
-
异步消息
- UML表示
-
描述:向右实线箭头表示
-
含义:用于描述异步消息的传递
-
返回消息
- UML表示
-
描述:向左虚线箭头表示
-
含义:用于描述返回消息的传递
-
新建消息
- UML表示
-
描述:向右虚线箭头表示
-
含义:用于描述新对象的创建
-
删除消息
- UML表示
-
描述:向右实线实心线箭头+生命线尾部×表示
-
含义:用于描述对象的销毁
-
逻辑表示
- UML表示
-
描述:选择框+具体描述(par、loop、alt、opt)表示
-
含义
- loop:片段循环次数
- par:并行处理
- alt:选择判断
- opt:包含一个可能发生或不发生的片段
-
补充:顺序图还有其他逻辑,但一般不常用,就算上面的这几种也基本不会用到
活动图
活动图本质就是个流程图。展现了从活动到活动的控制流。
如下图所示。
-
开始
- 描述:实心圆
- 含义:一切活动的起始点
-
泳道
- 描述:带有标题的矩形框
- 含义:具有同种活动状态的动作属于同一泳道
-
动作与活动结点
- 描述:带有表达式的两头为圆形的盒子
- 含义:表达式即为动作。带有动作的盒子为活动的组织单元。
-
并发分叉与并发汇合
- 描述:粗实线
- 含义:控制并发流的分叉与汇合
-
决策
- 描述:菱形
- 含义:条件判断
-
结束
- 描述:环形实心圆
- 含义:活动的终止点
画图工具
以上所有图例均由该软件绘制。
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名,转载请标明出处
最后编辑时间为:
2019-10-28