当前课程知识点:软件理论与工程 >  第4章 UML方法 >  4.4 UML 图细节(上) >  4.4 UML 图细节(上)

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

4.4 UML 图细节(上)在线视频

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

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

4.4 UML 图细节(上)课程教案、知识点、字幕

大家好

下面我们一起来详细的了解一下

UML图中的

所有图的详细内容

我们已经知道UML的图中

有静态图和动态图

静态图当中有用例图

类图

对象图

构件图和部署图

动态图当中有顺序图

协作图

状态图和活动图

我们下面的时间就把这九种图

分别详细的了解一下

我们先看一下类图

类图的表示符号

如这张表格里面所示

最开始的

三个矩形

拼凑在一起

形成一个类的表示元素

第一栏是类名

第二栏是类的属性

第三栏是类的操作

包表示一个类图的集合

在一个包的内部

可以包含一些相关的类

包是一个组织图形元素

对象

对象是由两个小的矩形拼成的一个矩形

表示对象是类的一个实例

再下面是关联

关联用于表示类的对象之间的关系

其特殊的形式有

组成关联和聚集关联

聚集关联用空心菱形加上一个直线

而组成关系由一个实心的菱形

加上一个直线来表示

聚集关联用以表示类的对象之间的关系是

整体与部分的关系

组成关联用于表示类的对象之间的关系是

整体拥有各个部分

且部分与整体是共存亡的关系

另外 在类图当中我们还有可能用到的符号有

连接

用一根线来表示

连接用于表示对象之间的关联关系的一个实例

另外还有泛化关系和依赖关系

泛化关系用一个直线加上一个空心三角来表示

泛化关系还是可以叫做继承关系

定义了类和包之间的

一般元素和特殊元素之间的分类关系

依赖关系用一个虚线的箭头来表示

表示两个类之间的依赖关系

有两个类或者是包 X Y

修改X的定义会引起对外的定义的修改

我们就把这样的情况叫做Y依赖于X

另外 在每一个图的元素当中都会有

注释体

用一个斜角矩形

它用来说明

UML图中的某一个模型元素

的一些补充含义

另外还有一个注释连接

用来说明注释体

与它所补充说明的元素之间的对应关系

类图是把现实事物抽象出来

用图来表示

比如

我们WashingMachine这个类

它的类名叫做WashingMachine

WashingMachine这个类

它的属性有

brandName

modeName

seriaNumber

和capacity

这个类有相关的一些属性

和相关的一些操作

它的操作有 acceptColthes()

acceptDetergent()

有turnOn()

turnOff()等操作

我们需要注意的是

类名 属性名和操作名之间要有间隔来分开

在UML中

由多个单词组成的类名

每个单词的首字母要大写

且单词和单词之间不用空格

例如我们刚才看到那个类

WashingMachine的

W和M要大写

另外Washing和Machine之间不用空格

属性名和操作名也遵从相同的约定

但其首字母可以不用大写

比如我们刚才的操作

acceptColthes()

我们的a不需要大写

另外 在操作名后面要有一对括号

表示它是一个操作

我们看一个具体的类图的例子

这个类图显示了学生选课

教师教课

课程安排的一个类图模型

学生这个类可以选择课程这个类

之间用选课这个关联关系连接

选课这个关系可以有

它自己的一些属性

所以选课情况

也被抽象成为一个类

教师可以讲授课程

在教师和课程之间

用连接关系讲授

来连接起来

另外

课程和开课安排之间

开课安排也被抽象出了单独的一个类

开课安排用来描述不同课的

课程安排相关的信息

这个就是类图的一个简单的例子

看了类图 我们下面看一下对象图

Object diagram

对象的图标也是一个矩形

和类图的图标是一样的

但是对象名的下面要有一个下滑线

表示它是一个对象

在我们这个图的左边的这个图标里

具体的实例的名字

位于冒号的左边

而该实例所属的类的名称

位于冒号的右边

比如有一个对象叫做

myWasher:WashingMachine

它是属于WashingMachine这个类的

实例的名字

以小写字母开头

或者 它也可以是一个匿名的对象

像我们的图中的右半部分所显示的

并没有一个对象名

在冒号的前边没有对象名

但是冒号的后边显示了

这个匿名对象所属的类的名称

这仅仅意味着你指明了对象所属的类

但是你并没有提供一个具体的类型

并没有提供一个具体的对象名

对象图

显示的是在某个时刻

对象和对象之间的关系

比如我们图中的这个对象图

显示的是

公司Company

和不同的部门

以及部门当中的

员工之间的一个对象之间的关系

公司c:Company这样一个对象

属于Company这个类

c是它的对象名字

这个对象

它有两个Department

d1和d2

那么d1和d2是两个对象实例

d1属于Department

d2也属于Department

还有d3

然后再有一个员工p

它是属于Person这个类的一个对象

那么p呢 是属于

d3这个Department

员工这个对象p

它有一个

Contactinformation这样一个类

那么 这个类有一个匿名的对象

Contactinformation

这张图就显示了

Company Department

和Person

还有Contactinformation

这几个对象之间的一些关系

那么这些对象用线条连接起来

好 这是对象图的一个例子

下面我们看一下 用例图

用例图是需求模型当中最重要的一个图

用例图是从用户的观点

对系统的行为的一个概述

代表洗衣机用户的这样一个直立的小人

被称作为参与者

actor

椭圆形代表用例

用例就是参与者想要系统做的事情

参与者 他是发起用例的实体

可以是一个人

也可以是另外一个系统

参与者代表一个角色

而不是某个具体的人

用例位于一个代表着整个系统的矩形当中

而参与者

是在矩形之外

参与者

代表参与者在系统的外部

用例图有一些元素和符号

比如一个实线的椭圆代表一个用例

一个直立的小人代表参与者

一个矩形代表系统的边界

直线代表关联

一个箭头上面备注了

《extend》代表扩展关系

一个箭头上面《include》

代表包含关系

另外一个实线加一个空心的三角形

代表泛化关系

还有两个就是在每个图中都会用到的

注释体和注释连接元素符号

我们看一个例子

旅客要订票和查看今日的航班

这个里面 我们画出了两个用例图

一个是旅客订票用例

和查看今日航班用例

大家可以看出

这个用例的命名是站在用户的角度

从用户的观点出发来

定义的用例的名称

订票和查看今日航班

这个图的另外一个部分

右边的部分

是旅客处理订票用例

和显示今日航班用例

那么这个用例名

大家可以看出

是从系统的角度出发

定义的用例名称

那我们应该是从用户的角度

定义用例的名称

所以在这个例子当中

我们更倾向于用左边的用例名称

而不用右边的用例名称

用例 除了有用例图

在用例当中有很多细节的内容

这些内容我们可以用

用例规约来进行补充说明

在用例规约当中

我们要设定它的前置条件

它的基本事件流

和它的备选事件流

以及它的后置条件

这个用例规约就显示了

这个用例的ID

这个用例的参与者

以及这个用例的一些描述

以及很重要的 它的前置条件

基本事件流 被选事件流和它的后置条件

我们用用例规约来补充说明

用例图中

不能够详尽展示的用例的细节内容

再下面我们看一下构件图

构件图显示的是软件组成中的一个单元

图中的构件图显示在一个包里面

我们有五个构件

这个一个包里面还有一个子包

这个子包里面又包括了两个构件

那么 外边的这个是包的表示符号

里边的是构件的表示符号

构件图可能用到的元素符号有

构件

构件代表可执行的物理代码模块

还有接口

还有依赖关系

以及注释体

和注释连接

另外还有部署图

部署图是

描述了一个运行的硬件节点

以及在这些节点上运行的软件组件的

静态视图

部署图显示了系统的硬件

安装在硬件上的软件

以及异构的机器之间的连接

显示了基于计算机系统的

物理系统结构关系

部署图用到的元素符号 包括

节点

是用一个立方体来表示的

还有构件

还有对象

还有接口

以及连接

依赖关系

另外还有注释体和注释连接

那我们下面看一个部署图的例子

这张图显示客户A

它是属于一个个人电脑PC

个人电脑PC 客户A的这个节点

和服务器

通过《TCP/IP》协议进行连接

服务器和数据库服务器

通过《DecNet》协议进行连接

客户B的个人电脑

也通过《TCP/IP》协议

与服务器进行连接

那么 在这个部署图里面

我们有四个物理节点

就是客户A的个人电脑

客户B的个人电脑

以及服务器02

和我们的数据库服务器VAX

那么从这张图大家可以看出来

部署图显示的是

物理节点之间的连接关系

以及它们连接具有的属性

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

课程概述

-课程概述

第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.4 UML 图细节(上)笔记与讨论

也许你还感兴趣的课程:

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