当前课程知识点:软件理论与工程 >  第4章 UML方法 >  4.3 UML关系和图 >  4.3 UML关系和图

返回《软件理论与工程》慕课在线视频课程列表

4.3 UML关系和图在线视频

下一节:4.4 UML 图细节(上)

返回《软件理论与工程》慕课在线视频列表

4.3 UML关系和图课程教案、知识点、字幕

大家好

这一部分

我们来讨论一下

UML建模当中的

关系

和UML的图的一个概述

UML有事物

关系和图

三个结构块组成

在事物当中有结构事物

行为事物

分组事物和辅助事物

那么关系呢

包括

关联关系

依赖关系

泛化关系

和实现关系

下面我们就分头来看一下

这几种关系

UML中的“事物”

和“事物之间的关系”

构成了UML的模型元素

UML事物之间的关系

能够把事物联系在一起

组成有意义的结构模型

每一个模型元素

都有一个与之相对应的图形元素

UML中的关系

包括

关联关系

依赖关系

泛化关系

实现关系

聚合关系和组合关系

我们先看一下关联关系

关联关系表示类与类之间的连接

它使得一个类知道另外一个类的属性和方法

关联关系连接元素和链接实例

它可以表示一种

has a的一个关系

在模型的图形符号方面

它是由一个实线

加上一个箭头来组成

在关联的箭头两端

可以标注关联双方的角色

和多重性

比如我们这张图上显示了

Player这个类

和Team这个类

一个Team可以有很多个Player

Player Play on a Team

这个就是一个关联关系

下面我们再看一下依赖关系

依赖关系描述一个元素对另一个元素的依附

依赖关系用源模型

指向目标模型的带箭头的虚线表示

它含有一种use a的一个含义

一个元素

(被依赖事物的提供者)

它的变化将会影响到另一个元素

(依赖事物的接收者)

或者向其(接收者)提供一些信息

在这个图中 我们看到有一个例子

是Human要依赖Air

Human这个类要依赖Air这个类

人类要依赖于空气

那么 这个关联关系中

被依赖的事物的提供者就是Air

那么

Air的变化将会影响到

Human这个类的一些变化

再下面是泛化关系

泛化关系也称为继承关系

泛化关系

用一条带空心三角的箭头的实线来表示

它是由

子类指向父类

比如在这个图当中的

根节点Animal

那么它泛化出来有三个

子类

Amphibian

Mammal和Reptile

这三个子类

都继承了Animal的一些基本的特征

同时

它还有各自具体的个性化的特征

这就是我们继承

当中的一个具体的概念

在泛化关系当中

最顶上的是根节点

最下面的是叶子节点

下一层对上一层进行属性或者是方法的继承

我们然后再看一下实现关系

实现关系描述了

一个元素实现另一个元素

接口声明了一个规定的服务的约定

接口的实现负责执行接口的全部语义

定义

并实现该项服务

其中接口只是行为的说明

而不是结构

也不是具体的实现

在图中

显示了接口

对它所关联的类的一个实现关系

下面是一个聚合关系

聚合其实是一个强版本的关联

它由空心菱形

加上实线

加上一个箭头

来组成

它表示的是一个own a的一个关系

比如图中这个例子

聚合关系显示的是

Human

箭头指向了Heart

那么

这个图形的元素表达的含义是说

Human own a Heart

也就是人

有一个心脏

Human own a Heart

这是一个聚合的关系

除了聚合关系

我们还有一种是

组合关系

它与聚合关系的区别在于

符号上是用一个实心的菱形

加上实线

加上箭头

那么组合关系表达的含义是

is part of

表示

a这个类

是另外一个b这个类的一个部分

或者是说b这个类

是由a这个部分

a这个类组成的

组合是关系当中最强的一个版本

整体类由部分类组成

部分类需要整体类才能够存在

销毁整体类将同时会销毁部分类

在图中这个例子

Human

和Heart之间这个组合关系

表示的是

Heart is part of Human

当Human这个整体类

如果去掉销毁的时候

Heart这个部分类

自然也会随之而销毁

那么刚才我们看了UML当中的关系

有关联关系

泛化关系

依赖关系

和实现关系

那么UML当中是由事物

关系

和最重要的图

组成的

那么我们看完了事物 看完了关系

下面我们来看一下

UML当中的图

UML当中有九种图

其中有五种是静态模型的图

和四种动态模型的图

静态模型的图用来描述系统的结构

动态模型的图用来描述系统的行为

在UML图中

静态结构的图包括

类图

对象图

构件图

部署图

用例图

在UML当中的动态模型图包括

顺序图

协作图

状态图和活动图

那么 这一章显示了

我们的静态结构图

和动态行为图的

英文的表示

静态结构的Static Diagrams

包括Use-Case Diagrams

Class Diagrams

Object Diagrams

Component Diagrams

Deployment Diagrams

那么 我们的行为的图

Dynamic Diagrams

包括Sequence Diagrams

Collaboration Diagrams

Statechart Diagrams

和Activity Diagrams

那么这些图具体可以表示什么样的模型元素

和什么样的含义呢

我们的静态图中的表示结构的部分有类图

类图表示类

以及类之间的相互关系

对象图跟类图类似

表示对象以及对象之间的相互关系

另外 我们的静态图还有

跟实现相关的

构件图和部署图

构件图表示的是构件及其相互依赖关系

部署图则描述的构件

在各个物理节点上的部署关系

那么

还有 我们有一些动态的行为的图

有顺序图

协作图

状态图和活动图

顺序图强调的是

时间顺序的交互关系的图

协作图强调的是对象协作的交互的图

顺序图和协作图都是交互图

那么 还有状态图和活动图

是表示行为的图

状态图表示的是类

经过一系列的状态变化

活动图可以用来对工作流进行建模

另外很重要的一个就是用例图

用例图是需求捕获和测试的重要依据

用例图是需求分析的时候

给用户展现的

系统可以提供的行为

用户要使用的系统的一些功能

UML除了有九种图

静态图五种

动态图四种

另外还有RUP的4+1的视图

4+1的视图

像我们在这张图上展示的

是以用例视图为核心

可以开发出来逻辑视图

进程视图

实现视图

部署视图

那么我们来分头看一下这五种视图的

具体的含义

首先

核心是用例视图

用例试图描述系统应具备的功能

也就是被称为参与者的外部用户

所能观察到的功能

用例是系统的一个功能的单元

用例可以被描述为参与者与系统之间的一次

交互作用

参与者可以是一个用户

也可以是另外一个系统

客户对系统要求的功能

被当作多个用例

在用例图中进行描述

其中的一个用例

就是对系统的一个用法的通用描述

用例模型的用途就是列出系统的用例和参与者

并显示哪个参与者

参与了哪个用例的执行

用例视图是其他视图的核心

用例视图的内容直接驱动了其他视图的开发

以用例视图为核心驱动

首先 我们应该开发出来系统的逻辑视图

逻辑试图描述用例视图中提出的系统的

功能的实现

与用例视图相比

逻辑视图主要关注系统的内部

它既描述了系统的静态结构

对象

以及它们之间的关系

也描述了系统内部的动态协作关系

系统的静态结构在类图和对象图中进行描述

而动态模型

则在状态图 时序图

协作图

以及活动图

这四种UML的动态图中进行描述

逻辑视图的使用者主要是设计人员和开发人员

当我们获取了逻辑视图之后

我们可以构建我们的进程视图

进程视图主要考虑资源的有效利用

代码的并行执行

以及

系统环境中异步事件的处理

除了将系统划分为并发执行的控制以外

进程视图还需要处理

线程之间的通信

和同步

进程视图也可以叫做并发视图

它的使用者是开发人员和系统的集成人员

进程视图由状态图

协作图

以及活动图组成

再下面一个视图是组件视图

因为组件是不同类型的代码模块

它是构造应用软件的基本单元

组件视图描述了系统的实现模块

以及它们之间的依赖关系

组件视图

也可以添加组件的其它的附加信息

例如资源的分配

或者是其他管理信息

组件视图主要由组件图构成

它的使用者主要是开发人员

最后一个视图是部署视图

部署视图显示的是系统的物理部署关系

它描述位于节点上的运行实例的部署情况

部署视图主要由部署图来表示

它的使用者是开发人员

系统集成人员

和测试人员

部署视图还允许评估

分配结果

和资源的分配情况

我们刚才讲了UML有九种图

五种静态图和四种动态图

那么我们为什么需要这么多种图

来构造UML模型呢

因为各种不同的UML图

可以让你从多个角度来考察一个系统

要注意的一点是

并不是我们构造的每一个UML模型

都必须包含我们刚才说的

九种所有的图

事实上 大多数的UML模型

只包含其中的一部分图

根据我们系统建模的需要

你选择合适的模型的图

来表达你要表达的系统的内容

原因是

一个系统有多个不同类型的风险承担者

也就是那些在不同的方面

与这个系统有利益相关的人

它们考虑问题的出发角度不同

所关注的特征和关注的侧面不同

所以需要不同的图来进行描述

我们举一个简单的例子

假如我们要构造一个洗衣机相关的一个模型

如果你是一个正在设计一台洗衣机的马达

那么以你的视角来观察系统

会得到一个关于马达的机械原理的一个视图

如果你是正在编写这个洗衣机的操作指令的话

那么 你可能会得到

关于这个洗衣机如何使用的一些步骤的

这样的一幅视图

要是你正在设计洗衣机的整体外观

那么你观察到的这个系统的方式

与你作为一个洗衣机用户观察的方式

就又是不同了

由于我们不同的利益相关者

所关心的问题

想要表达的内容和侧重点不同

所以我们需要不同的图

来构造我们的模型

到现在为止 我们讲述了

UML相关的图

我们的图有

静态图和动态图

有五种静态图

有类图

对象图

用例图

构件图和部署图

我们有四种动态图

包括顺序图

包括状态图

包括协作图

今天我们的内容就分享到这里

谢谢大家

软件理论与工程课程列表:

课程概述

-课程概述

第1章 软件与软件工程

-1.1 软件的本质

--1.1 软件的本质

-1.2 软件工程

--1.2 软件工程

-1.3 软件过程结构

--1.3 软件过程结构

-1.4 过程模型

--1.4 过程模型

-1.5 敏捷开发方法

--1.5 敏捷开发方法

-第1章 习题

--第1章 习题

第2章 需求分析

-2.1 需求工程过程

--2.1 需求工程过程

-2.2 需求获取

--2.2 需求获取

-2.3 需求分析

--2.3 需求分析

-2.4 过程建模

--2.4 过程建模

-2.5 面向对象建模

--2.5 面向对象建模

-第2章 习题

--第2章 习题

第3章 软件设计

-3.1 设计概述

--3.1 设计概述

-3.2 设计的概念

--3.2 设计的概念

-3.3 设计模型元素

--3.3 设计模型元素

-3.4 体系结构概述

--3.4 体系结构概述

-3.5 体系结构风格

--3.5 体系结构风格

-3.6 构件级设计

--3.6 构件级设计

-3.7 UI设计

--3.7 UI设计

-3.8 基于模式的设计

--3.8 基于模式的设计

-第3章 习题

--第3章 习题

第4章 UML方法

-4.1 UML概述

--4.1 UML概述

-4.2 UML 及UML中的事物

--4.2 UML 及UML中的事物

-4.3 UML关系和图

--4.3 UML关系和图

-4.4 UML 图细节(上)

--4.4 UML 图细节(上)

-4.4 UML 图细节(下)

--4.4 UML 图细节(下)

-第4章 习题

--第4章 习题

第5章 软件测试

-5.1 软件测试策略

--5.1 软件测试策略(上)

--5.1 软件测试策略(下)

-5.2 测试传统的应用系统

--5.2 测试传统的应用系统

-5.3 测试面向对象的应用系统

--5.3 测试面向对象的应用系统

-5.4 测试web应用系统

--5.4 测试web应用系统

-5.5 测试移动应用系统

--5.5 测试移动应用系统

-第5章 习题

--第5章 习题

第6章 项目管理

-6.1 软件项目估算

--6.1 软件项目估算

-6.2 软件过程管理

--6.2 软件过程管理

-6.3 软件配置管理

--6.3 软件配置管理

-6.4 项目版本控制及调试

--6.4 项目版本控制及调试

-第6章 习题

--第6章 习题

4.3 UML关系和图笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。