第5章类图及对象图121103讲解

合集下载

类图和对象图推荐优秀PPT

类图和对象图推荐优秀PPT

course的 多重性
➢n
关联
关联类(association class)
➢ 关联本身也可以有特性,通过建立关联类可以进一步描述 关联的属性、操作和其他信息。
➢ 通过虚线与关联连接。
改成#,代码如 何修改?
public class Company {
private String companyName; public Person employee[ ]; } public class Person { private String personName; public Company employer; } public class Contract { private Double salary; }
类之间的关系
常见的类之间的关系包括: 关联、聚集、组合、泛化、 依赖、实现.
关联
关联(association)表示类与类之间的关系
链(link)表示的是对象与对象之间的关系,链是关联的实例。
一个关联可以有两个或多个关联端(association end),每个关 联端连接到一个类。
关联可以是单向的uni-directional 或 双向的bi-directional
➢ 描述系统中类之间的各种静态的联系。 类图是一种静态结构图,它描述的是系统的静态结构,而不
是系统的行为。 类之间的静态联系主要类型有:关联、聚合、复合、继承、
依赖等
类的定义
什么是类(class)
具有相似结构、行为和关系的一组对象的描述符
类的组成 类名
属性 操作 UML中,类表示为划分 为三格的矩形
性}] 类是抽象、对象是具体 。
public B theB;
可见性:可访问性 public A() { }

UML类图和对象图

UML类图和对象图

1
OnlineUser
use
Administrator WebSite
2.确定属性和操作 现在我们已经创建好了类和关联,可以开始添加属性和操作 以便提供数据存储和需要的功能来完成系统功能。 在下图中可以看到,表示参与者的类没有显示属性和操作, 这并不意味着它们不存在,而只是表示类图不需要该细节。
最后,为属性和操作提供参数、数据类型和初始值。 如下图所示:
student
Administrator
generates
ReportCard
进一步创建类的关联:增添WebSite类和Logon类
Teacher
view,maintains
contains
Grades
displays
ReportCard
generates
WebSite
grants access to
类的图形表示和示例
在类图中,根据建模的不同景象,类图标中不一定列出全 部的内容。如在建立分析模型或设计模型时,甚至可以只列出 类名,在图中着重表达的是类与类之间的联系;在建立实现 模型时,则应当在类图标中详细给出类的属性和方法等细节。
1. 属性 属性(Attribute)在UML类图标的矩形框中用文字串说 明,如下图所示。
多重性是一个数值或者数值范围,用来指示一个类的几个对 象与另一个类的一个对象相关。如下图所示。
关联的多重性
三、学习如何建模类图 创建类图需要两个反复执行的步骤: 1)确定类及其关联。 2)确定属性和操作。 开始创建类图的好起点就是用例图。如下面成绩管理的用例图 所示。
1.确定类和关联 首先要做的是通过分析用例图确定类及其关联。找到第一批 类,确定它们的内容。 在用例图中,首先确定了Grades类和ReportCard类。接下来, 通过同时使用参与者名称确定附加的类。这时将会确定Teacher类, Student类和Administrator类。 下面检查用例图并且确定各个功能所属的类: 发布报告卡一ReportCard类 记录分数一Grades类 更新分数一Grades类 保存分数一Grades类 加载分数一Grades类 登录一? 查看分数一Grades类 生成报告卡一ReportCard类 首先发现的是登录没有所属的类。可以添加一个Logon类来处 理Logon用例。

第5章类与对象ppt课件

第5章类与对象ppt课件
❖ 1、类中数据成员的初始化:构造函数和析构函数
❖ 2、类中常量和引用的初始化:初始化表 ❖ 3、类中对象成员的初始化:初始化表 ❖ 4、类的对象初始化:拷贝构造函数
第5章 类与对象
(1)构造函数的概念
❖ 构造函数的功能是在创建对象时,使用给定的值来将对 象初始化。
❖ 其声明格式为“<函数名> ( <参数列表>);”

float m_Radius;
❖ public:

void SetRadius(float Radius);

float GetCircumference();
❖ };
❖ void Circle::SetRadius(float Radius)
❖{

m_Radius=Radius;
❖}
❖ float Circle::GetCircumference()
❖ 其中,“.”用于类对象或引用,“->”用于指向类对象的指针, 使用指针定义对象就需要使用“->”,
第5章 类与对象
类对象成员的访问
案例名称:类对象成员的访问
# include <iostream.h> class Tdate { private:
int month; public:
void setMonth(int d) {
Zhang_three.height = 175;
// Chang_three的身高175
Zhang_three.weight = 60;
// Chang_three的体重60
cout << "名字 : " << Zhang_

c++ 类图与对象图

c++ 类图与对象图

对象图
类之间的关系
关联 泛化 依赖 组合关系
关联关系
编号
公司名称

01
中国移动
02
中国电信
03
中国联通
04
中国石油
职工号 106001 106002 106003 106004
姓名 刘先红 张攀科 刘中华 张鑫
年龄 28 29 30 31
所在公司 01 01 02 04
聚合关系
聚合用来描述两个类之间的整体—部分关系,其中一个类为整体,它 由一个或者多个部分类组成。在聚合中,部分类可以没有整体类而存 在。
面向对象程序设计
类对象的分 析和设计,也不是一种方法,它仅仅是一组符号而已
2021/2/23
2
类图
在分析阶段 在设计阶段 在实现阶段
类图
类的名称 属性 方法
类图中可见性(访问控制)的描述
类图举例
对象图
对象图是描述对象及其关系的图。对象图可以看作类图在某一时刻 的实例。几乎使用与类图完全相同的标识。他们的不同点在于,对 象图显示类的多个对象实例,而不是实际的类。由于对象存在生命 周期,因此对象图只能在系统某一时间段存在。
组合关系
组合是一种特殊的聚合关联。在组合关联中用来组成整体类的部分类 是不能独立存在。整体类由部分类组成,部分类需要整体类才能存在。 这种关系意味着销毁整体类将会同时销毁部分类。组合关联使用带有 实心菱形的实线连接,如下图所示。
总结
理解类图 能够绘制类图 理解聚合和组合关系
2021/2/23
14

第5章类图和对象图解析

第5章类图和对象图解析

3 操作
用于修改、检索类的属性或执行某些动作。 一个类可以有任意数量的操作或者根本没有操作 返回类型、名称和参数一起被称为特征标记。 在同一个类中,操作的名称不必是惟一的,但特 征标记必须是惟一的。 在UML中,类操作的语法为:
[可见性] 操作名 [(参数列表)] [:返回类型] [{特性}]
5.1 类的定义
面向对象系统组织结构的核心。 对一组具有相同属性、操作、关系和语义的对象 的抽象。 包括名称部分(Name)、属性部分(Attribute) 和操作部分(Operation)。
5.1 类的定义
1 2 3 4 5 6 7 名称 属性 操作 职责 约束 注释 用户定义分栏
① 对象必须了解自己,即他有自己的结构和当前状态 ② 对象必须了解他的直接关系
③ 对象有时还要监视特定的信息
类可以有任意数目的属性,也可以没有属性。 在UML中,类属性的语法为: [可见性] 属性名 [:类型] [多重性] [=初始值] [{特性}]
2 属性
(1) 可见性 (2) 属性名 (3) 类型 (4)初始值 (5) 特性 (6) 类作用域的属性
Event
-name:String=no default,{Reauired,1..30 chars} -startDate:Calendar=no defalut,{Required,>today} -duration_in_days:int=1{>0}
(6)类作用域的属性
大部分属性的拥有者是特定的对象(类实 例),这些属性称为实例作用域的属性 属性的值被定义和保存在类里,该类的任 何对象都可以访问这个值,则称为类作用 域的属性,又称为静态属性 表示:
在操作分栏的内部,根据操作的用途,可以使用 版型将操作分成许多小组。

第五章UM对象图和类图资料.

第五章UM对象图和类图资料.
• 也就是继承关系 • 带空心箭头的实线表示,箭头指向父元素。
Circle
• 泛化的目的
• 自顶向下的属性继承。可以使得子类共享父类 的属性和操作,实现继承。
• 自底向上的实例替换。可以使得子类的实例用 于任何父类被声明使用的地方,实现多态。
泛化的表示:
表示
例子
依(4赖) 依赖
依赖(dependency): 表示两个元素X、Y,如果X 的变化必然导致Y的变化,则称Y依赖X。
操作
Hale Waihona Puke (1) 可见性• 类型: ① 公有(Public) “+” ② 私有(Private) “-” ③ 受保护(Protected) “#” ④ 包内公有(Package) “~”
(2) 操作名
• 用来描述所属类的行为的动词或动词短语。 • 单字操作名小写,如果操作名包含了多个单词,这些单词
要合并,并且除了第一个单词外其余单词的首字母要大写。
② 一个部分事物对象可以属于多个聚集对象,但一个 部分事物对象仅能属于一个组合对象; ③ 聚集的对象生命周期可以不同,但组合对象则是同 存同亡。
(3) 泛化
泛化
泛化(generalization): 表示事物之间的 一般与特殊的关系。也可以称为继承关系。表
Shape
示“一般/特殊”关系。“is-a-kind-of”
(4) 初始值
• 目的: ① 保护系统的完整性,防止漏掉取值或被非法的值破坏系
统的完整性。 ② 为用户提供易用性。
操作
• 对类的对象所能做的事务的抽象。 • 一个类可以有任意数量的操作或者根本没有操作。 • 返回类型、名称和参数一起被称为操作签名。 • 在UML中,类操作的语法为:
• 1. 可见性 • 2. 操作名 • 3. 参数表 • 4. 返回类型

统一建模语言UML基础专题之类图和对象图资料

统一建模语言UML基础专题之类图和对象图资料

统一建模语言UML基础专题之类图和对象图类图表示不同的实体(人、事物和数据)如何彼此相关,显示了系统的静态结构。

类图可用于表示逻辑类,逻辑类通常就是业务人员所谈及的事物种类,比如摇滚乐队、CD、广播剧,或者贷款、住房抵押、汽车信贷及利率的抽象描述。

类图还可用于表示实现类,实现类就是程序员要编写的类。

实现类图与逻辑类图可能会用来描述一些相同的类。

然而,实现类图与逻辑类图不会使用相同的描述属性。

类图是一个分为三个部分的矩形。

最上面的部分显示类的名称,中间部分显示类的属性,最下面的部分显示类的操作(或者说“方法”)。

实际上,最常用、最简单的类图就是一个在里面显示了类名的长方形,因为在UML中,大多数类只要有一个能够清楚表达的命名就可以了。

在类名部分还可以显示类的构造类型。

类的构造型显示在一对双角括符号“«»”之间,经常放在类的名称上面。

常见的构造类型包括实现类(直接显示类名)、接口(在类名上面显示«interface»),以及工具类(在类名上面显示«utility»)。

如果类名用斜体表示,或者在类名下面标上{abstract},就表示这个类是一个抽象类。

在属性和方法的前面有一个字符用来表示属性或方法的作用域,它们的意义如下:—“-”表示属性或方法是私有的(private);—“#”表示属性或方法是保护的(protected);—“+”表示属性或方法是公用的(public)。

紧接在属性或方法的参数名称的冒号(:)号之后,显示了属性的类型或方法的参数的类型。

方法的返回值类型显示在方法后面的冒号之后。

下图显示了一个类Person的类图,它对应的类的C#源代码如下:Person+name: string+sex: char-age: int+Work(in type: string): void+Person(in name: string, in sex: char, in age: int): void +Speak(): void+Eat(): void类图示意类图示意class Person{public string name;public char sex;private int age;public Person(string name, char sex, int age){}public void Eat(){}public void Speak(){}public void Work(string type){}}对象图用来表示类的实例化对象。

第05章 类图、对象、包图

第05章 类图、对象、包图
概念层( 概念层(Conceptual): ): - 在需求分析阶段,类图主要用于领域内的一些概念类的描述,形成概念模型; 规格说明层:( :(Specification): 规格说明层:( ): - 在设计阶段,类图着重描述类与类之间的接口等外部特性,形成设计模型; 实现层( 实现层(Implementation): ): - 在实现阶段,类图主要用于描述类的在软件系统中的内部实现。
Page 2
(类目 分类器) 类目、 Classifiers (类目、分类器)
A classifier is a mechanism that describes structural and behavioral features. Classifiers include classes data types, signals, components, nodes, use cases, and subsystems.
Page 10
属性的类型
type :Examples of built-in attribute data types include Double, Int (short for Integer), and String . An attribute type can also be a user-defined type or the name of a class.
Page 7
属性 attribute
The full form of a UML attribute declaration is as follows:
[visibility] name [: type] [multiplicity] [= default-value] [{property-string}] visibility Name type multiplicity default-value property-string + (public), # (protected), - (private) e.g. CustomerName, DiscountRate e.g. Point, String, Date, etc. e.g. [0..1], [2..*] e.g. =(0,0), = null changeable (default), addOnly, frozen
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C 参与者之间存在泛化关系
D 参与者和用例之间存在泛化关系
教学进程
? 4、下面说法错误的是:
问题:
A 参与者是与所建立系统交互的人或物
B 参与者可以是人,也可以是其他系统
C 参与者是系统的一部分,是用例图的重 要组成部分 D 参与者之间存在泛化关系
教学进程
第 章 类图及对象图
5.1 类的定义 5.2 类的关系 5.3 类图 5.4 对象图 5.5 几个特殊问题
2.属性的格式
[可见性]属性名[:类型][‘[ ’多重性[次序]‘]’][=初始值][{特性}]
表示属性初始所取的值: 例如: #visibility:Boolean=false 表示属性”visibility”初始取”false”
5.1.2 类的属性
1. 属性的含义
属性(attribute): 描述类所表示事物的静态性质。
2.属性的格式
[可见性]属性名[:类型][‘[ ’多重性[次序]‘]’][=初始值][{特性}]
表示属性约束说明: 例如: #visibility:Boolean=false{读写} 表示属性”visibility”可读,写

问题:
1、指出下面属性名的含义。
+studentName:String=“黎明”
5.2.2 聚集和组合
3. 聚集与组合的区别
① 聚集松散,组合紧密;
② 一个部分事物对象可以属于多个聚集对象 , 但一个部分事物对象仅能属于一个组合对象 ;

③ 聚集的对象生命周期可以不同,但组合对象 则是同存同亡。

问题:
1、计算机由CPU、内存、软盘、硬盘、显示器、 键盘、鼠标组成,用类图表示这种关系。 2、举出一个具有聚合关系的类图的例子。
② 缩略表示
实体类
界面类
控制类
4.类名
① 名词或名词短语(动词或动词短语表示控制类) 例如:人,桌子,图形,汇总 ② 尽可能用明确、简短,业务领域中事物的名称, 避免使用抽象、无意义的名词 例如:帐户,订单,事物 ③ 用英文,第1个字母大写 例如:Shape, Person, CheckingAccdount ④ 可分为简单类名,带路径类名 例如: CheckingAccdount
5
第 章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.属性的格式
[可见性]属性名[:类型][‘[ ’多重性[次序]‘]’][=初始值][{特性}]
2.属性的格式
[可见性]属性名[:类型][‘[ ’多重性[次序]‘]’][=初始值][{特性}]
该属性对外部实体的显现程度. 可见public : + 受限protected: # 私有private : -
5.1.2 类的属性
1. 属性的含义
属性(attribute): 描述类所表示事物的静态性质。
限定关联
3.关联的种类
① 一元(自返)关联
② 二元关联
3.关联的种类
③ 多元关联
三元关联
4.对关联须注意的一个问题 关联一定指的是类中对象与类中的对象之 间的连接对应关系。
类图
对象图

问题:
“班级”和“班长”两个类之间存在管理关 系,一个班级仅可以有一个班长,一个班长只能 是一个班级的班长,标出这两个类的关系。
2.关联的特性 ④ 关联类 通过关联类描述关联的属性,操作,及其它信息。
关联类
2.关联的特性 ⑤ 关联的约束 通过约束加强关联的含义。 例如,“帐户”不能同时与“人”和“公 司”有关联。
约束
2.关联的特性 ⑥ 限定关联 通过限定符来规定关联的限定关系。 例如,“文件目录”通过“文件名”来与具体的 文件对象进行关联。 “银行”通过“帐户”与具体的“人”对象进 行关联。
一个例子:订货系统
第 章 类图及对象图
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): 模型元素之间的一种语义联系, 它是对具有共同的结构特性、行为特性、关系和语义的 链接的描述。 关联可以分为单向关联,双向关联。
教学进程

问题:
“班主任”和“学生”两个类之间存在管理 关系,一个班主任仅可以管理一个班的学生,一 个班的学生,只能由一个班主任来管理,标出这 两个类的关系。
教学进程
答案:

问题:
“教师”和“学生”两个类之间存在授课关 系,一个教师可以教授多个学生,一个学生可以 由多个教师授课,标出这两个类的关系。
教学进程

问题:
采购员从供货商处订货,双方需要签订订单, 一个采购员可以订多个供货商的货品,一个供货 商也可以给多个采购员供货。 要求: 1. 提取这个问题涉及的类;
2. 定义各个类之间的关系,并画出类图。
教学进程
1.提取本问题的类

类是否提取完全了,还有没有隐藏的 没有提取的类?
1.提取本问题的类
2.操作的格式 [可见性]操作名[(参数列表):返回类型][{特性}]
该操作对外部实体的显现程度. 可见public : + 受限protected: # 私有private : -
5.1.3 类的操作
1. 操作的含义
操作(operation): 描述类所表示事物的动态性质。
2.操作的格式 [可见性]操作名[(参数列表):返回类型][{特性}]
单向关联
双向关联
2.关联的特性
① 关联名
关联名
★如果关联关系已经清楚,就无需关联名
2.关联的特性
② 关联的角色
关联的角色
★如果关联名与角色名相同,则不标出角色名
2.关联的特性 ③ 关联的多重性
关联的角色
关联的多重性
0..1 : 0或1 0..n ,0..* : 0或多 1 1..n : 1到多 * : 0到多
该操作的输入参数,可以为空. 例如: #create() +hide() -ttachXWindow(xwin:Xwindow)
5.1.3 类的操作
1. 操作的含义
操作(operation): 描述类所表示事物的动态性质。
2.操作的格式 [可见性]操作名[(参数列表):返回类型][{特性}]
该操作的返回值的类型. 例如: +display():Location
• 可以使子类的实例用于任何父类被声明使用的地方,实 现多态。
5.2.3 泛化
2. 泛化的表示
表示
例子
5.2.3 泛化
3. 多态

尽管每个子类的实现方法不同,但调用方式完全一致
• Shape sh = new Line();
• sh.draw();
64
例子:
5.2.3 泛化
抽象类(abstract,斜体表示)
2.确定类之间的关系

2.确定类之间的关系


货品是由供应商提供,但订单所订的 货品怎么样反映出来?
2.确定类之间的关系

5.2.2 聚集和组合
1. 聚集
聚集(aggregation): 表示类之间一种松散的整 体与部分的组成关系,是一种特殊的关联。
表示
例子
5.2.2 聚集和组合
2. 组合
2.实体类
实体类对应着现实中的客观实物,用来保存信 息,一般对应着数据表、文件等。
实体类可以从现实中存在的客观事物,以及 需要持久存放的信息两方面来发现。
3.控制类
控制类承担着事务处理,控制调控的控制作用。
一个用例中最少会有一个控制类,用来控制 用例中的事件顺序,也可以在多个用例之间协 调用例之间的联系。
2.属性的格式
[可见性]属性名[:类型][‘[ ’多重性[次序]‘]’][=初始值][{特性}]
第1个英文单词首字母小写,其它单 词首字母大写 contactName credintLimit isPrepaid
5.1.2 类的属性
1. 属性的含义
属性(attribute): 描述类所表示事物的静态性质。
不能产生实例的类,因为类中的方法往往只是声明, 而没有实现。
66
5.2.4 依赖
1. 依赖的含义
依赖(dependency): 表示两个元素X、Y,如 果X的变化必然导致Y的变化,则称Y依赖X。
依赖关系不仅限于类,用例、包、构件之间 都可以存在依赖关系。
5.2.4 依赖
2. 依赖的表示
表示
例子
5.2.5 实现
第 章 类图及对象图
5
5.3 类图
5.3.1 类图的概念 5.3.2 类图的抽象层次 5.3.3 建立类图
表示属性值的取值的多寡,以及有序性: 例如: name:String[0..1] 表示属性”name”可能无值,也可能 仅有一个值. points:Point[2..* ordered] 表示有两个或多个值,有序
相关文档
最新文档