013Java开发设计002UML
部分内容来自以下博客:
https://blog.csdn.net/Ellen5203/article/details/83268630
1 简介
1.1 是什么
UML,全称是Unified Modeling Language,即统一建模语言,是一种面向对象的建模语言。
使用UML可以为系统构造模型,通过模型对系统的组成部分进行描述,可视化系统的各个组成部分。
根据UML可以更容易的了解系统的各个组成部分之间的功能和联系,方便建立各种所需的文档。
1.2 分类
1.2.1 按图表分类
图表是描述视图内容的图。
1)用例图(Use-Case Diagram)
用于描述系统的功能和需求。
2)类图(Class Diagram)
用于描述系统的静态结构,主要描述了类之间的关系。
3)对象图(Object Diagram)
用于描述系统的静态结构,主要描述类的对象实例之间的协作关系。
4)状态图(State Diagram)
用于说明类中的对象可能具有的状态,以及由时间引起的状态改变。
5)时序图(Sequence Diagram)
用于描述对象间的动态协作关系,按时间描述对象之间的交互动作,以及当系统执行到某个特定位置时可能会发生的事。
6)协作图( Collaboration Diagram)
按照时间和空间顺序描述系统元素间的交互动作和元素间的关系。
7)活动图(Activity Diagram)
用于描述系统的执行顺序,系统功能执行的具体流程,可以理解为流程图。
8)组件图(Component Diagram)
用于描述组件代码的物理结构,建立了一个从逻辑视图到物理视图的映射。
9)配置图(Deployment Diagram)
用于描述系统中软件和硬件的物理结构。
1.2.2 按视图分类
视图是表达系统的某一方面特征的UML建模元素的子集,试图并不是图,它是由一个或多个图组成的对系统某个角度的抽象。
1)用例视图(Use-Case View)
强调从用户的角度看到的或需要的系统功能。
组成:用例图,时序图,活动图。
2)逻辑视图(Logical View)
描述系统内实现的逻辑功能,展现系统静态或动态的结构组成及特征。
组成:类图(静态),对象图(静态),状态图(动态),时序图(动态),协作图(动态),活动图(动态)。
3)组件视图(Component View)
从系统实现的角度来描述模型对象间的关系。
组成:组件图。
4)配置视图(Deployment View)
用于说明系统的物理配置。
组成:配置图。
2 类图(Class Diagram)
2.1 结构
2.1.1 测试类
创建测试类:
1 public class Person { 2 public String name; 3 public String getName() { 4 return name; 5 } 6 public void setName(String name) { 7 this.name = name; 8 } 9 }
2.1.2 类图
在PowerDesigner中生成类图:
2.1.3 说明
在类图中,类使用包含类名、属性和操作且带有分隔线的长方形来表示,类图分为三层。
1)第一层
类的名称,如果是抽象类或接口,就用斜体表示。
2)第二层
类的成员变量,通常是字段和属性,在成员变量前标明可见性,可见性分为public(+)、protected(#)、private(-)。
表示方式为:
可见性 名称:类型 [ = 缺省值]
3)第三层
类的成员方法,在成员方法前标明可见性。
表示方式为:
可见性 名称(参数列表) [ : 返回类型]
2.2 关系
类之间的关系有泛化(Generalize),实现(Realize),关联(Associate),聚合(Aggregate),组合(Compose),依赖(Dependency)。
其中,聚合(Aggregate),组合(Compose)属于关联(Associate),是特殊的关联(Associate)关系。
关系强度(耦合度)由高到低为:泛化=实现>组合>聚合>关联>依赖。
2.2.1 泛化(Generalize)
关系:泛化是一种继承关系,用来表示类与类、类与抽象类、抽象类与抽象类、接口与接口之间的关系。
箭头:用空心三角形+实线表示,箭头指向父类或父接口。
2.2.2 实现(Realize)
关系:用来表示类与接口、抽象类与接口之间的关系。
箭头:用空心三角形+虚线表示,箭头指向接口。
2.2.3 关联(Associate)
关系:关联可以是双向的,也可以是单向的。关联关系可以进一步划分为聚合及组合关系。
箭头:用实线箭头表示,双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。
2.2.4 聚合(Aggregate)
关系:聚合用来表示整体与部分的关系,是一种弱的关联关系,体现为A包含B,但B在离开A以后还可以独立存在。
箭头:用空心的菱形+实线箭头表示,菱形指向整体。
2.2.5 组合(Compose)
关系:组合用来表示整体与部分的关系,是一种强的关联关系,体现为A包含B,但B在离开A以后不能独立存在。
箭头:用实心的菱形+实线箭头表示,菱形指向整体。
2.2.6 依赖(Dependency)
关系:依赖用来表示两者之间的使用关系,在一个类的方法中调用了另一个类的属性或方法。
箭线:用虚线箭头表示,箭头指向被依赖的对象。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)