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 测试类

创建测试类:

public class Person {
    public String name;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

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)

关系:依赖用来表示两者之间的使用关系,在一个类的方法中调用了另一个类的属性或方法。

箭线:用虚线箭头表示,箭头指向被依赖的对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值