第五章 类图和对象图(UML)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5.2 类之间的关系
类不是独立存在的,大多数类以某些方式彼此协 作。
19
第 五 章 类 图 和 对 象 图
5.2 类之间的关系
类间的关系分为:关联、聚合、实现、泛化、依 赖。 关联(Association)表示对象之间的结构关系 泛化(Generalization)表示类之间一般和特殊的关 系 依赖(Dependency)表示类之间的使用关系
A B A B
类A和B之间的双向关联
类A到类B的单向关联
23
第 五 章 类 图 和 对 象 图
5.2 类之间的关系
1、关联
关联名:给关联加上名字,描述关联的作用。
Company
Employs
Person
24
第 五 章 类 图 和 对 象 图
5.2 类之间的关系
1、关联
关联名说明:关联的名称并不是必需的,当要明 确的给出关联提供角色名或当一个模型存在许多 关联并且要对这些关联进行查阅或者区别是才要 给出关联名。
改变的因素:1.一个类向另一个类发送消息。 2.一个类是另一个类的数据成员类型 3.一个类是另一个类的操作的参数类型 注:如果两个类之间有关联,那么这两个类就有依赖关 系,但是我们一般不标出依赖关系。
类的职责是自由形式的问题,可以写成一个短语、 一个句子或者一段短文。
CheckUser
Responsibilities -核查用户资料 决定是否给该拥护办理信用卡
职责
17
第 五 章 类 图 和 对 象 图
5.1 类的定义
注释:对属性或者操作进行解释。注释可以为图 形或者文本
18
第 五 章 类 图 和 对 象 图
第五章 类图和对象图
教学目标:了解类图、类间的关系 对象图的 组成部分 教学要求:能建立简单的类图、对象图
1
第 五 章 类 图 和 对 象 图
5.1 类的定义(续)
类:是对一组具有相同属性、操作、关系和语义 的对象的描述。
这些对象可以包括现实世界中的软件事物和硬件 事物,甚至也可以包括纯粹概念性的事物。 类图(class diagram)是描述类、接口、协作及 他们之间关系的图,用来显示系统中各个类静态 结构。 在类图的基础上,可以使用协作图、状态图、组 件图和配置图。
31
第 五 章 类 图 和 对 象 图
5.2 类之间的关系
1、关联
限定关联:给定关联一端的一个对象和限定符值 后,可确定另一端的一个对象或对象集。
bank Account:int n 1..n
0..1 Person
1
32
第 五 章 类 图 和 对 象 图
5.2 类之间的关系
1、关联
限定关联
注意:限定符是关联的属性,不是类的属性
[可见性]属性名[:类型][=初始值][{特性}]
+ size :integer =(100)
10
第 五 章 类 图 和 对 象 图
5.1 类的定义
说明:
4、初始值:设定初始值的目的
⑴、保护系统的完整性,防止遗漏掉取值或 被非法取值;
⑵、为用户提供易用性
[可见性]属性名[:类型][=初始值][{特性}]
5
第 五 章 类 图 和 对 象 图
5.1 类的定义(续)
属性:描述了类在软件系统中代表的事物所具备 的特性。类可以有无限数量的属性,也可以没有 属性。
格式: [可见性]属性名[:类型][=初始值][{特性}] + size :integer =(100)
6
第 五 章 类 图 和 对 象 图
5.1 类的定义(续)
5.1 类的定义
类的操作所提供的服务可以分为两类:
1、操作的结果引起对象状态的变化,状态的改 变也包括相应动态行为的发生 2、为服务的请求者提供返回值。
16
第 五 章 类 图 和 对 象 图
5.1 类的定义
职责(Responsibility):是类或者其它元素的契约 或者义务。当一个类被创建时,就声明这个类的 所有对象具有相同的种类的状态和相同种类的行 为。
二元关联binary association
N元关联
34
第 五 章 类 图 和 对 象 图
5.2 类之间的关系
2、聚合
聚集:是一种特殊的关联。它表示类间的关系是 整体与部分的关系。关联关系中一个类描述了一 个较大的事物,它由较小的事物组成,即整体对 象拥有部分对象。 表示形式:用空菱形的实线表示
35
关联类来记录。关联类通过一根虚线与关联连接
emplanyer employee
Company
1
Employs 0..n
Person
Ccontract
Salary:Double
29
第 五 章 类 图 和 对 象 图
5.2 类之间的关系
1、关联
关联类可以进一步描述关联的属性、操作及其他 信息。他描述的是两个类之间关联的属性,并不
38
第 五 章 类 图 和 对 象 图
5.2 类之间的关系
3、依赖(dependency)关系
依赖关系:如果一个类的变化会影响另一个类的变化, 则称两个类之间有依赖关系
表示形式:用虚线三角箭头表示,指向被依赖的类
39
第 五 章 类 图 和 对 象 图
5.2 类之间的关系
4、依赖(dependency)关系
描述两个类的属性。
emplanyer employee
Company
1
Employs 0..n
Person
Ccontract
Salary:Double 30
第 五 章 类 图 和 对 象 图
5.2 类之间的关系
1、关联
关联的约束:为关联加上一些约束,加强关联的 含义。
Person
Account {xor} company
2、私有:不可以从其他类中访问这个属性
3、受保护的:经常与泛化一起使用(后面章节 讲讲到)。
8
第 五 章 类 图 和 对 象 图
5.1 类的定义(续)
说明:
2、每个属性必须有个名字区分其他属性。通常 情况下属性名由描述所属类的特性的短名词或者 名词短语构成(小写字母开头)
[可见性]属性名[:类型][=初始值][{特性}]
25
第 五 章 类 图 和 对 象 图
5.2 类之间的关系
1、关联
角色:当一个类处于关联的某一端时,该类就在 这个关系中扮演着一个特定的角色。角色就是关 联关系中一个类对另一个类所表现的职责
emplanyer employee
Company
1
Employs 0..n
Person
Learner
Teacher
20
第 五 章 类 图 和 对 象 图
5.2 类之间的关系
1、关联
关联是一种结构关系,它指明一个事物的对象与 另一个事物的对象间的联系 例如,一个人为一家公司工作,一家公司有许多办 公室。我们就认为人和公司、公司和办公室之间 存在某种语义上的联系。在分析设计的类图模型 中,则在对应人类和公司类、公司类和办公室类 之间建立关联关系
+
size
:integer
=(100)
11
第 五 章 类 图 和 对 象 图
5.1 类的定义
说明:
5、特性是用户对该属性性质的一个约束说明。 比如{只读}
[可见性]属性名[:类型][=初始值][{特性}]
+
size
:integer
=(100)
12
第 五 章 类 图 和 对 象 图
5.1 类的定义
第 五 章 类 图 和 对 象 图
5.2 类之间的关系
2、聚合
整体 University
பைடு நூலகம்
聚合
部分
Institute
36
第 五 章 类 图 和 对 象 图
5.2 类之间的关系
2、聚合
组合:也是类之间整体与部分的关系,强调部分与整体 具有同样的生存期。整体拥有各部分,部分与整体共存, 如整体不存在了,部分也会随之消失 表示形式:用实心菱形实心线表示
37
第 五 章 类 图 和 对 象 图
5.2 类之间的关系
3、泛化(generalization)关系
泛化关系:定义了一般元素和特殊元素之间的分类关系。 也就是一种继承关系。继承是在现有类的基础上定义和 实现一个新类的技术,刻画了类的一般性和特殊性。被 继承的类称为父类或超类,继承的类称为子类。 表示形式:用空心三角箭头实心线表示
+
size
:integer
=(100)
9
第 五 章 类 图 和 对 象 图
5.1 类的定义
说明:
3、属性还有取值范围。类型表示该属性的种类。 它可以是基本数据类型,例如整数、实数、布尔 型和枚举型等,也可以是用户自定义的类型。一 般它由所涉及的程序设计语言确定必须为其指定 数据类型。当一个类的属性被完整定义后,它的 任何一个对象的状态都由这些属性的特性值所决 定。
5.1 类的定义(续)
类在UML中的表示:分成三个格子的矩形。
图书馆书的类 (省略掉操作)
图书馆书的类 (省略掉属性)
4
第 五 章 类 图 和 对 象 图
5.1 类的定义(续)
类名:是每个类所必须有的构成。用于和其他类 区分,是一个文本串。
类名要求应尽量应用领域中的术语,应明确、无 歧义,以利于开发人员与用户之间的勾通交流 单独的名称(single name):不包含冒号的字符 串。 路径名称(path name):用类所在的包作为前缀 的类名。如Business:Item
33
第 五 章 类 图 和 对 象 图
5.2 类之间的关系
1、关联
关联的种类:
EnginePart student universit y team n n record year n n player
自返关联reflexive association (递归关联recurisive association)
第 五 章 类 图 和 对 象 图
5.2 类之间的关系
1、关联
修饰 语意
0..1
1 0..*或0..n
0或1
仅仅为1 0或者更多
1..*或 1..n
•或N
1或者更多
0或者更多
1..6
1~6
28
第 五 章 类 图 和 对 象 图
5.2 类之间的关系
1、关联
关联类:一个关联可能要记录一些信息,可以引入一个
说明:
1、可见性描述了该属性对于其他类是否可见, 以及是否被其他类引用,而不仅仅是被该类可见。 类型如下: 名称 公有(public) 私有(private) 受保护(protected) 表示方式 + - #
7
第 五 章 类 图 和 对 象 图
5.1 类的定义(续)
说明:
1、公有:可以在此类的外部使用和查看该属性。
关联
University
Student
角色名
26
第 五 章 类 图 和 对 象 图
5.2 类之间的关系
1、关联
多重性:关联实例中说明两个类间存在多少个相 互连接。UML有三大扩展机制,多重性是第一 种约束。 多重性被表示为用点分隔的区间。表示格式
Minimun..maximum
均为int型的整数
27
13
第 五 章 类 图 和 对 象 图
5.1 类的定义
说明:
可见性:
名称 表示方式 意义
公有(public)
私有(private) 受保护(protected) 包内公有 (package)
+
- # ~
调用对象能够访问操作所在的包
属于同一个类的对象才可以调用的可见性操作 只有子类对象才可以调用父类的可见性为受保 护的操作 只有在同一个包里的对象才可以调用的可见性 为包内操作
21
第 五 章 类 图 和 对 象 图
5.2 类之间的关系
1、关联
关联的表示方式:用一条连接相同类或者不同类 的实线表示。
22
第 五 章 类 图 和 对 象 图
5.2 类之间的关系
1、关联
一个关联可以有两个和多个关联端。关联也有方 向,可以分为单向关联(uni-directional association)或双向关联(bi-directional association)
操作(Operation):类的操作是对类的对象所能 做的事物抽象,用于修改、检索类的属性或执行 某些动作。也被称为功能。它相当与一个服务的 实现,。该服务可以由类的任何对象请求以影响 其行为。一个类可以有任何数量的操作或者没有 操作
格式: [可见性]操作名[(参数列表)][:返回类型][{特性}] + disply () :Location
2
第 五 章 类 图 和 对 象 图
5.1 类的定义(续)
类在UML中的表示:分成三个格子的矩形。
ClassName
Attribute: Attribute Type=initialValue
类名 属性
操作
Opetation(arg:Argument Type):ReturnType
3
第 五 章 类 图 和 对 象 图
14
第 五 章 类 图 和 对 象 图
5.1 类的定义
说明:
操作名是用来描述所属类的行为的短动词或动词 短语(通常用小写字母开头)。如果是抽象操作, 用斜体字表示。
格式: [可见性]操作名[(参数列表)][:返回类型][{特性}] + disply () :Location
15
第 五 章 类 图 和 对 象 图