第5章类图及对象图121103讲解
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.属性的格式
[可见性]属性名[:类型][‘[ ’多重性[次序]‘]’][=初始值][{特性}]
第1个英文单词首字母小写,其它单 词首字母大写 contactName credintLimit isPrepaid
5.1.2 类的属性
1. 属性的含义
属性(attribute): 描述类所表示事物的静态性质。
第 章 类图及对象图
5
5.3 类图
5.3.1 类图的概念 5.3.2 类图的抽象层次 5.3.3 建立类图
2.属性的格式
[可见性]属性名[:类型][‘[ ’多重性[次序]‘]’][=初始值][{特性}]
表示属性初始所取的值: 例如: #visibility:Boolean=false 表示属性”visibility”初始取”false”
5.1.2 类的属性
1. 属性的含义
属性(attribute): 描述类所表示事物的静态性质。
不能产生实例的类,因为类中的方法往往只是声明, 而没有实现。
66
5.2.4 依赖
1. 依赖的含义
依赖(dependency): 表示两个元素X、Y,如 果X的变化必然导致Y的变化,则称Y依赖X。
依赖关系不仅限于类,用例、包、构件之间 都可以存在依赖关系。
5.2.4 依赖
2. 依赖的表示
表示
例子
5.2.5 实现
表示属性值的取值的多寡,以及有序性: 例如: name:String[0..1] 表示属性”name”可能无值,也可能 仅有一个值. points:Point[2..* ordered] 表示有两个或多个值,有序
5.1.2 类的属性
1. 属性的含义
属性(attribute): 描述类所表示事物的静态性质。
教学进程
?
问题:
“班主任”和“学生”两个类之间存在管理 关系,一个班主任仅可以管理一个班的学生,一 个班的学生,只能由一个班主任来管理,标出这 两个类的关系。
教学进程
答案:
?
问题:
“教师”和“学生”两个类之间存在授课关 系,一个教师可以教授多个学生,一个学生可以 由多个教师授课,标出这两个类的关系。
一个例子:订货系统
第 章 类图及对象图
5
5.2 类之间的关系
5.2.1 关联 5.2.2 聚集和组合
5.2.3 泛化
5.2.4 依赖
5.2.5 实现
5.2.1 关联
1. 关联的定义 ●关联的通俗含义
表示事物之间的一种牵连式的固有联系。
例如:
关联
5.2.1 关联
1. 关联的定义 ●关联的本质含义 关联(association): 模型元素之间的一种语义联系, 它是对具有共同的结构特性、行为特性、关系和语义的 链接的描述。 关联可以分为单向关联,双向关联。
2.操作的格式 [可见性]操作名[(参数列表):返回类型][{特性}]
该操作对外部实体的显现程度. 可见public : + 受限protected: # 私有private : -
5.1.3 类的操作
1. 操作的含义
操作(operation): 描述类所表示事物的动态性质。
2.操作的格式 [可见性]操作名[(参数列表):返回类型][{特性}]
Banking::CheckingAccdount
5.1.2 类的属性
1. 属性的含义
属性(attribute): 描述类所表示事物的静态性质。
2.属性的格式
[可见性]属性名[:类型][‘[ ’多重性[次序]‘]’][=初始值][{特性}]
5.1.2 类的属性
1. 属性的含义
属性(attribute): 描述类所表示事物的静态性质。
2.关联的特性 ④ 关联类 通过关联类描述关联的属性,操作,及其它信息。
关联类
2.关联的特性 ⑤ 关联的约束 通过约束加强关联的含义。 例如,“帐户”不能同时与“人”和“公 司”有关联。
约束
2.关联的特性 ⑥ 限定关联 通过限定符来规定关联的限定关系。 例如,“文件目录”通过“文件名”来与具体的 文件对象进行关联。 “银行”通过“帐户”与具体的“人”对象进 行关联。
• 可以使子类的实例用于任何父类被声明使用的地方,实 现多态。
5.2.3 泛化
2. 泛化的表示
表示
例子
5.2.3 泛化
3. 多态
•
尽管每个子类的实现方法不同,但调用方式完全一致
• Shape sh = new Line();
• sh.draw();
64
例子:
5.2.3 泛化
抽象类(abstract,斜体表示)
5
第 章 类图及对象图
5
5.1 类的定义
5.1.1 类的概念 5.1.2 类的属性 5.1.3 类的操作 5.1.4 类的类型
5.1.1 类的概念
8
5.1.1 类的概念
1. 类的定义 类(class): 具有相似结构、行为和关系的一组对象。 2.类的表示
类名
属性
操作
3.类的其他几种表示形式
① 简化表示
2.属性的格式
[可见性]属性名[:类型][‘[ ’多重性[次序]‘]’][=初始值][{特性}]
属性的数据类型: 字符串:String 日期:Date 布尔:Boolean 整型:int
5.1.2 类的属性
1. 属性的含义
属性(attribute): 描述类所表示事物的静态性质。
2.属性的格式
[可见性]属性名[:类型][‘[ ’多重性[次序]‘]’][=初始值][{特性}]
该操作的输入参数,可以为空. 例如: #create() +hide() -ttachXWindow(xwin:Xwindow)
5.1.3 类的操作
1. 操作的含义
操作(operation): 描述类所表示事物的动态性质。
2.操作的格式 [可见性]操作名[(参数列表):返回类型][{特性}]
该操作的返回值的类型. 例如: +display():Location
#studentBirthDay:Date=1999-10-21
-price:float=12.01{R/W}
教学进程
5.1.3 类的操作
1. 操作的含义
操作(operation): 描述类所表示事物的动态性质。
2.操作的格式 [可见性]操作名[(参数列表):返回类型][{特性}]
5.1.3 类的操作
单向关联
双向关联
2.关联的特性
① 关联名
关联名
★如果关联关系已经清楚,就无需关联名
2.关联的特性
② 关联的角色
关联的角色
★如果关联名与角色名相同,则不标出角色名
2.关联的特性 ③ 关联的多重性
关联的角色
关联的多重性
0..1 : 0或1 0..n ,0..* : 0或多 1 1..n : 1到多 * : 0到多
教学进程
5.2.3 泛化
1. 泛化的含义
泛化(generalization): 表示事物之间的一般与特殊的
关系。也可以称为继承关系。
泛化关系除了表示类与类之间的关系之外,还可以表 示参与者、用例、包、构件、接口等建模元素之间的关 系。 泛化的目的: • 可以使子类共享父类的属性和操作,实现继承;
2.属性的格式
[可见性]属性名[:类型][‘[ ’多重性[次序]‘]’][=初始值][{特性}]
表示属性约束说明: 例如: #visibility:Boolean=false{读写} 表示属性”visibility”可读,写
?
问题:
1、指出下面属性名的含义。
+studentName:String=“黎明”
1. 含义
• 一个元素完成另外一个元素的操作功能
• 如接口类及其实现;接口没有属性,只有声明的操作方 法(对方法没有实现部分),而由实现类具体定义实现 部分。
69
?
问题:
下面几个模型图中,( )能够正确地表示出 “一个雇员最多有一个经理,经理可以管理多个 雇员,也可以不管理一个雇员”这样的意思。
教学进程
?
(
问题:
1、用例图中存在着( ),( )关系?
),(
),
教学进程
?
问题:
1、用例图中存在着( 关联 ),( 泛化), ( 包含 ),( 扩展 )关系?
教学进程
?
问题:
2、下面几种用什么符号表示:
用例, 关联, 扩展, 包含
教学进程
? 3、下面说法错误的是:
问题:
A 泛化表示一般和特殊的关系
B 用例之间存在泛化关系
1. 操作的含义
操作(operation): 描述类所表示事物的动态性质。
2.操作的格式 [可见性]操作名[(参数列表):返回类型][{特性}]
第1个英文单词首字母小写,其它单 词首字母大写 close() creditRecording()
5.1.3 类的操作
1. 操作的含义
操作(operation): 描述类所表示事物的动态性质。
C 参与者之间存在泛化关系
D 参与者和用例之间存在泛化关系
教学进程
? 4、下面说法错误的是:
问题:
A 参与者是与所建立系统交互的人或物
B 参与者可以是人,也可以是其他系统
C 参与者是系统的一部分,是用例图的重 要组成部分 D 参与者之间存在泛化关系
教学进程
第 章 类图及对象图
5.1 类的定义 5.2 类的关系 5.3 类图 5.4 对象图 5.5 几个特殊问题
源自文库
2.确定类之间的关系
①
2.确定类之间的关系
②
?
货品是由供应商提供,但订单所订的 货品怎么样反映出来?
2.确定类之间的关系
②
5.2.2 聚集和组合
1. 聚集
聚集(aggregation): 表示类之间一种松散的整 体与部分的组成关系,是一种特殊的关联。
表示
例子
5.2.2 聚集和组合
2. 组合
?
问题:
1、指出下面操作名的含义。
+setName(name:String)
+getName():String
+creatbook()
教学进程
5.1.4 类的类型
1.边界类 边界类位于系统与外界的交界处,承担系统与 外界的信息功能.
边界类处在用例图中,参与者与用例的关联处, 可以根据用例图发现边界类。
限定关联
3.关联的种类
① 一元(自返)关联
② 二元关联
3.关联的种类
③ 多元关联
三元关联
4.对关联须注意的一个问题 关联一定指的是类中对象与类中的对象之 间的连接对应关系。
类图
对象图
?
问题:
“班级”和“班长”两个类之间存在管理关 系,一个班级仅可以有一个班长,一个班长只能 是一个班级的班长,标出这两个类的关系。
2.实体类
实体类对应着现实中的客观实物,用来保存信 息,一般对应着数据表、文件等。
实体类可以从现实中存在的客观事物,以及 需要持久存放的信息两方面来发现。
3.控制类
控制类承担着事务处理,控制调控的控制作用。
一个用例中最少会有一个控制类,用来控制 用例中的事件顺序,也可以在多个用例之间协 调用例之间的联系。
5.2.2 聚集和组合
3. 聚集与组合的区别
① 聚集松散,组合紧密;
② 一个部分事物对象可以属于多个聚集对象 , 但一个部分事物对象仅能属于一个组合对象 ;
●
③ 聚集的对象生命周期可以不同,但组合对象 则是同存同亡。
?
问题:
1、计算机由CPU、内存、软盘、硬盘、显示器、 键盘、鼠标组成,用类图表示这种关系。 2、举出一个具有聚合关系的类图的例子。
组合(composition): 表示类之间一种紧密的整 体与部分的组成关系,也是一种特殊的关联。
表示
例子
5.2.2 聚集和组合
3. 聚集与组合的区别
●
① 聚集松散,组合紧密;
5.2.2 聚集和组合
3. 聚集与组合的区别
① 聚集松散,组合紧密;
●
② 一个部分事物对象可以属于多个聚集对象 , 但一个部分事物对象仅能属于一个组合对象 ;
② 缩略表示
实体类
界面类
控制类
4.类名
① 名词或名词短语(动词或动词短语表示控制类) 例如:人,桌子,图形,汇总 ② 尽可能用明确、简短,业务领域中事物的名称, 避免使用抽象、无意义的名词 例如:帐户,订单,事物 ③ 用英文,第1个字母大写 例如:Shape, Person, CheckingAccdount ④ 可分为简单类名,带路径类名 例如: CheckingAccdount
2.属性的格式
[可见性]属性名[:类型][‘[ ’多重性[次序]‘]’][=初始值][{特性}]
该属性对外部实体的显现程度. 可见public : + 受限protected: # 私有private : -
5.1.2 类的属性
1. 属性的含义
属性(attribute): 描述类所表示事物的静态性质。
教学进程
?
问题:
采购员从供货商处订货,双方需要签订订单, 一个采购员可以订多个供货商的货品,一个供货 商也可以给多个采购员供货。 要求: 1. 提取这个问题涉及的类;
2. 定义各个类之间的关系,并画出类图。
教学进程
1.提取本问题的类
?
类是否提取完全了,还有没有隐藏的 没有提取的类?
1.提取本问题的类
[可见性]属性名[:类型][‘[ ’多重性[次序]‘]’][=初始值][{特性}]
第1个英文单词首字母小写,其它单 词首字母大写 contactName credintLimit isPrepaid
5.1.2 类的属性
1. 属性的含义
属性(attribute): 描述类所表示事物的静态性质。
第 章 类图及对象图
5
5.3 类图
5.3.1 类图的概念 5.3.2 类图的抽象层次 5.3.3 建立类图
2.属性的格式
[可见性]属性名[:类型][‘[ ’多重性[次序]‘]’][=初始值][{特性}]
表示属性初始所取的值: 例如: #visibility:Boolean=false 表示属性”visibility”初始取”false”
5.1.2 类的属性
1. 属性的含义
属性(attribute): 描述类所表示事物的静态性质。
不能产生实例的类,因为类中的方法往往只是声明, 而没有实现。
66
5.2.4 依赖
1. 依赖的含义
依赖(dependency): 表示两个元素X、Y,如 果X的变化必然导致Y的变化,则称Y依赖X。
依赖关系不仅限于类,用例、包、构件之间 都可以存在依赖关系。
5.2.4 依赖
2. 依赖的表示
表示
例子
5.2.5 实现
表示属性值的取值的多寡,以及有序性: 例如: name:String[0..1] 表示属性”name”可能无值,也可能 仅有一个值. points:Point[2..* ordered] 表示有两个或多个值,有序
5.1.2 类的属性
1. 属性的含义
属性(attribute): 描述类所表示事物的静态性质。
教学进程
?
问题:
“班主任”和“学生”两个类之间存在管理 关系,一个班主任仅可以管理一个班的学生,一 个班的学生,只能由一个班主任来管理,标出这 两个类的关系。
教学进程
答案:
?
问题:
“教师”和“学生”两个类之间存在授课关 系,一个教师可以教授多个学生,一个学生可以 由多个教师授课,标出这两个类的关系。
一个例子:订货系统
第 章 类图及对象图
5
5.2 类之间的关系
5.2.1 关联 5.2.2 聚集和组合
5.2.3 泛化
5.2.4 依赖
5.2.5 实现
5.2.1 关联
1. 关联的定义 ●关联的通俗含义
表示事物之间的一种牵连式的固有联系。
例如:
关联
5.2.1 关联
1. 关联的定义 ●关联的本质含义 关联(association): 模型元素之间的一种语义联系, 它是对具有共同的结构特性、行为特性、关系和语义的 链接的描述。 关联可以分为单向关联,双向关联。
2.操作的格式 [可见性]操作名[(参数列表):返回类型][{特性}]
该操作对外部实体的显现程度. 可见public : + 受限protected: # 私有private : -
5.1.3 类的操作
1. 操作的含义
操作(operation): 描述类所表示事物的动态性质。
2.操作的格式 [可见性]操作名[(参数列表):返回类型][{特性}]
Banking::CheckingAccdount
5.1.2 类的属性
1. 属性的含义
属性(attribute): 描述类所表示事物的静态性质。
2.属性的格式
[可见性]属性名[:类型][‘[ ’多重性[次序]‘]’][=初始值][{特性}]
5.1.2 类的属性
1. 属性的含义
属性(attribute): 描述类所表示事物的静态性质。
2.关联的特性 ④ 关联类 通过关联类描述关联的属性,操作,及其它信息。
关联类
2.关联的特性 ⑤ 关联的约束 通过约束加强关联的含义。 例如,“帐户”不能同时与“人”和“公 司”有关联。
约束
2.关联的特性 ⑥ 限定关联 通过限定符来规定关联的限定关系。 例如,“文件目录”通过“文件名”来与具体的 文件对象进行关联。 “银行”通过“帐户”与具体的“人”对象进 行关联。
• 可以使子类的实例用于任何父类被声明使用的地方,实 现多态。
5.2.3 泛化
2. 泛化的表示
表示
例子
5.2.3 泛化
3. 多态
•
尽管每个子类的实现方法不同,但调用方式完全一致
• Shape sh = new Line();
• sh.draw();
64
例子:
5.2.3 泛化
抽象类(abstract,斜体表示)
5
第 章 类图及对象图
5
5.1 类的定义
5.1.1 类的概念 5.1.2 类的属性 5.1.3 类的操作 5.1.4 类的类型
5.1.1 类的概念
8
5.1.1 类的概念
1. 类的定义 类(class): 具有相似结构、行为和关系的一组对象。 2.类的表示
类名
属性
操作
3.类的其他几种表示形式
① 简化表示
2.属性的格式
[可见性]属性名[:类型][‘[ ’多重性[次序]‘]’][=初始值][{特性}]
属性的数据类型: 字符串:String 日期:Date 布尔:Boolean 整型:int
5.1.2 类的属性
1. 属性的含义
属性(attribute): 描述类所表示事物的静态性质。
2.属性的格式
[可见性]属性名[:类型][‘[ ’多重性[次序]‘]’][=初始值][{特性}]
该操作的输入参数,可以为空. 例如: #create() +hide() -ttachXWindow(xwin:Xwindow)
5.1.3 类的操作
1. 操作的含义
操作(operation): 描述类所表示事物的动态性质。
2.操作的格式 [可见性]操作名[(参数列表):返回类型][{特性}]
该操作的返回值的类型. 例如: +display():Location
#studentBirthDay:Date=1999-10-21
-price:float=12.01{R/W}
教学进程
5.1.3 类的操作
1. 操作的含义
操作(operation): 描述类所表示事物的动态性质。
2.操作的格式 [可见性]操作名[(参数列表):返回类型][{特性}]
5.1.3 类的操作
单向关联
双向关联
2.关联的特性
① 关联名
关联名
★如果关联关系已经清楚,就无需关联名
2.关联的特性
② 关联的角色
关联的角色
★如果关联名与角色名相同,则不标出角色名
2.关联的特性 ③ 关联的多重性
关联的角色
关联的多重性
0..1 : 0或1 0..n ,0..* : 0或多 1 1..n : 1到多 * : 0到多
教学进程
5.2.3 泛化
1. 泛化的含义
泛化(generalization): 表示事物之间的一般与特殊的
关系。也可以称为继承关系。
泛化关系除了表示类与类之间的关系之外,还可以表 示参与者、用例、包、构件、接口等建模元素之间的关 系。 泛化的目的: • 可以使子类共享父类的属性和操作,实现继承;
2.属性的格式
[可见性]属性名[:类型][‘[ ’多重性[次序]‘]’][=初始值][{特性}]
表示属性约束说明: 例如: #visibility:Boolean=false{读写} 表示属性”visibility”可读,写
?
问题:
1、指出下面属性名的含义。
+studentName:String=“黎明”
1. 含义
• 一个元素完成另外一个元素的操作功能
• 如接口类及其实现;接口没有属性,只有声明的操作方 法(对方法没有实现部分),而由实现类具体定义实现 部分。
69
?
问题:
下面几个模型图中,( )能够正确地表示出 “一个雇员最多有一个经理,经理可以管理多个 雇员,也可以不管理一个雇员”这样的意思。
教学进程
?
(
问题:
1、用例图中存在着( ),( )关系?
),(
),
教学进程
?
问题:
1、用例图中存在着( 关联 ),( 泛化), ( 包含 ),( 扩展 )关系?
教学进程
?
问题:
2、下面几种用什么符号表示:
用例, 关联, 扩展, 包含
教学进程
? 3、下面说法错误的是:
问题:
A 泛化表示一般和特殊的关系
B 用例之间存在泛化关系
1. 操作的含义
操作(operation): 描述类所表示事物的动态性质。
2.操作的格式 [可见性]操作名[(参数列表):返回类型][{特性}]
第1个英文单词首字母小写,其它单 词首字母大写 close() creditRecording()
5.1.3 类的操作
1. 操作的含义
操作(operation): 描述类所表示事物的动态性质。
C 参与者之间存在泛化关系
D 参与者和用例之间存在泛化关系
教学进程
? 4、下面说法错误的是:
问题:
A 参与者是与所建立系统交互的人或物
B 参与者可以是人,也可以是其他系统
C 参与者是系统的一部分,是用例图的重 要组成部分 D 参与者之间存在泛化关系
教学进程
第 章 类图及对象图
5.1 类的定义 5.2 类的关系 5.3 类图 5.4 对象图 5.5 几个特殊问题
源自文库
2.确定类之间的关系
①
2.确定类之间的关系
②
?
货品是由供应商提供,但订单所订的 货品怎么样反映出来?
2.确定类之间的关系
②
5.2.2 聚集和组合
1. 聚集
聚集(aggregation): 表示类之间一种松散的整 体与部分的组成关系,是一种特殊的关联。
表示
例子
5.2.2 聚集和组合
2. 组合
?
问题:
1、指出下面操作名的含义。
+setName(name:String)
+getName():String
+creatbook()
教学进程
5.1.4 类的类型
1.边界类 边界类位于系统与外界的交界处,承担系统与 外界的信息功能.
边界类处在用例图中,参与者与用例的关联处, 可以根据用例图发现边界类。
限定关联
3.关联的种类
① 一元(自返)关联
② 二元关联
3.关联的种类
③ 多元关联
三元关联
4.对关联须注意的一个问题 关联一定指的是类中对象与类中的对象之 间的连接对应关系。
类图
对象图
?
问题:
“班级”和“班长”两个类之间存在管理关 系,一个班级仅可以有一个班长,一个班长只能 是一个班级的班长,标出这两个类的关系。
2.实体类
实体类对应着现实中的客观实物,用来保存信 息,一般对应着数据表、文件等。
实体类可以从现实中存在的客观事物,以及 需要持久存放的信息两方面来发现。
3.控制类
控制类承担着事务处理,控制调控的控制作用。
一个用例中最少会有一个控制类,用来控制 用例中的事件顺序,也可以在多个用例之间协 调用例之间的联系。
5.2.2 聚集和组合
3. 聚集与组合的区别
① 聚集松散,组合紧密;
② 一个部分事物对象可以属于多个聚集对象 , 但一个部分事物对象仅能属于一个组合对象 ;
●
③ 聚集的对象生命周期可以不同,但组合对象 则是同存同亡。
?
问题:
1、计算机由CPU、内存、软盘、硬盘、显示器、 键盘、鼠标组成,用类图表示这种关系。 2、举出一个具有聚合关系的类图的例子。
组合(composition): 表示类之间一种紧密的整 体与部分的组成关系,也是一种特殊的关联。
表示
例子
5.2.2 聚集和组合
3. 聚集与组合的区别
●
① 聚集松散,组合紧密;
5.2.2 聚集和组合
3. 聚集与组合的区别
① 聚集松散,组合紧密;
●
② 一个部分事物对象可以属于多个聚集对象 , 但一个部分事物对象仅能属于一个组合对象 ;
② 缩略表示
实体类
界面类
控制类
4.类名
① 名词或名词短语(动词或动词短语表示控制类) 例如:人,桌子,图形,汇总 ② 尽可能用明确、简短,业务领域中事物的名称, 避免使用抽象、无意义的名词 例如:帐户,订单,事物 ③ 用英文,第1个字母大写 例如:Shape, Person, CheckingAccdount ④ 可分为简单类名,带路径类名 例如: CheckingAccdount
2.属性的格式
[可见性]属性名[:类型][‘[ ’多重性[次序]‘]’][=初始值][{特性}]
该属性对外部实体的显现程度. 可见public : + 受限protected: # 私有private : -
5.1.2 类的属性
1. 属性的含义
属性(attribute): 描述类所表示事物的静态性质。
教学进程
?
问题:
采购员从供货商处订货,双方需要签订订单, 一个采购员可以订多个供货商的货品,一个供货 商也可以给多个采购员供货。 要求: 1. 提取这个问题涉及的类;
2. 定义各个类之间的关系,并画出类图。
教学进程
1.提取本问题的类
?
类是否提取完全了,还有没有隐藏的 没有提取的类?
1.提取本问题的类