【软工】5种UML图 & 6种类间关系

一、5种UML图类型

结构图:类图和实现方式图

1.类图(class diagram),描述系统中的对象类以及这些类之间的联系。

行为图:用于显示组件、类、用户和系统之间的流程

2.用例图(use case diagram),描述一个系统与其环境之间的交互。§ 用例图是设计系统时,分析阶段的起点。

3.活动图(activity diagram),描述一个过程或数据处理中所包含的活动。§ 它是对于业务工作流程进行建模。

4.状态图(state diagram),描述系统如何对内部和外部的事件做出响应。§ 状态图实在分析阶段和设计阶段之间过度,是可视化应用程序流程的好方法。

5.顺序图(sequence diagram),描述参与者与系统之间以及系统构件之间的交互。

二、6种关系(泛化、实现、依赖、关联、聚合、组合)

本文将易混淆的关系放在同一组进行区分,主要关注区分概念连接方式

(1) 泛化(继承):(大雁 ◁———— 白大雁)

​ 实现(应用):(接口 ◁- - - 类)

(2) 聚合:一个是整体,一个是个体/部分(燕群 ◇————> 大雁)

​ 组合:整体与部分不可分(大雁 ◆———— 翅膀)

(3) 关联(连接):

双向关联:两个类都知道另一个类的公共属性和操作。(比如我 和 我的朋友)

单向关联:只有一个类知道另一个类的公共属性和操作。(比如你 和 你关注的博主)

(4) 依赖 (手机 - - -> 充电器)
在这里插入图片描述

三、UML图举例

本文提供几个经典例子便于理解回顾,具体画图细节不再赘述(具体细节参考b站)

用例图

在这里插入图片描述

类图

在这里插入图片描述

活动图

在这里插入图片描述

添加泳道
在这里插入图片描述

顺序图

(主要区分同步和异步,异步箭头,同步三角)
在这里插入图片描述

状态图

在这里插入图片描述

类间关系
1.泛化(继承):子类继承父类的属性和方法
//代码1
public class A1{ }
public class B1 extends A1{ }

类B1继承类A1

在这里插入图片描述 在这里插入图片描述

2.实现:类对接口(或多个)的功能实现
//代码2
public class Bird implements Animal { }
3.关联:一个类知道另一个类的属性和方法(单向或双向)
//代码3
public class A2 { }
public class B2{
	private A2 a2;
}

类A2作为类B2的成员变量(单向关联)

4.依赖:一个类的实力在方法内使用到另一个类的实例

1、A是B中方法的局部变量;

2、A是B中方法的返回值;

3、A是B中方法的参数;

//代码4
public class A3 { }
public class B3{
	public Fun(A3 a3) { }
}

A3作为B3的Fun方法中的参数

在这里插入图片描述

5.组合:部分不可以脱离整体独立存在
组合关系的类里含有另一个类的实例化
//代码5
public class A4 { }
public class B4{
	private A4 a4;
 	public B4(){
		a4 = new A4();
	}
}

B4中包含A4类型的成员变量a4,并构造函数初始化a4

6.聚合:部分可以脱离整体独立存在
聚合关系的类里含有另一个类作为参数
//代码6
public class A5 { }
public class B5{
	public A5 a5;
	public B5(A5 a){
		a5=a;
	}
}

B5中包含A5类型的成员变量a5,通过调用B5( )方法对a5进行赋初值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值