第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

类图和对象图的理解

类图和对象图的理解

将现实生活中对应的两个事物抽象出来,这里主要涉及两个事物一个是人,一个是计算机,对于类而言,我们的类图可以反映出它们最基本的结构,在这里需要注意的是,任意一个事物本身或者具体到类本身,它会具有众多的属性和相关的操作,但是我们在类图和今后的实现当中,最主要考虑的是与系统相关的操作
类图的构建
因为我们是可以将类图转换成代码的所以一定要注意好命名的格式
[]里面的是可选项就是可以写也可以不写
讲一下如何设置类图的返回值
根据java中面向对象的理解,返回值一般是我们在定义方法的时候用到的,所以我们一般是在方法中定义一个参数然后设置它的返回值
如何对uml进行java环境的配置
三个选项都选择,别问为什么,问就是不知道
使用边界类切换到图形显示
边界类一般位于系统与外界的交界处
存放类似数据库永久性的东西的类叫做实体类图形显示方式和表格显示方式的切换
完美的一个例子
类定义的是一组相同的对象的描述在UML中如何定义类的类型
边界类,实体类,控制类
进行类图的切换
对象图的概述
对象指的是类的一个实例化
我们需要在对象名下面添加一条横线,用来说明它是对象名而不是类名
对象图是在类图里面绘制的
接口:1、接口使用interface修饰;2、接口不能被实例化;3、一个类只能继承一个类,但是可以实现多个接口;4、接口中方法均为抽象方法;5、接口中不能包含实例域或静态方法(静态方法必须实现,接口中方法是抽象方法,不能实现)
接口和抽象类有什么区别:
https:///danteshenqu/article/details/93981157。

5_类图及对象图-4

5_类图及对象图-4
- 系统的工作环境场所:车间、办公室 - 概念实体:发生的事件:如:报告、信息显示
、信函等 - 部门、:如:班级、学校 - 设备:如:汽车、计算机 - 与系统相关的外部实体:如其它系统、设备、
人员等。
➢ 筛选对象类的原则
- 关键性:缺少这个对象类信息,系统就不能运作
- 可操作性:对象必须拥有一组可标识的操作,该 操作可修改对象的属性
建立类图
建立类图的一般步骤:
① 研究分析问题领域,确定系统需求; ② 确定类,明确类的含义和职责,确定类的属性和操作; ③ 确定类之间的关系。关联,泛化,聚集,组合,依赖; ④ 调整和细化类及其关系,解决重复和冲突; ● ⑤ 绘制类图,并增加相应说明。
确定对象类
➢ 发现对象类
- 与系统交互的角色:如:管理者、工程师、销 售员
泛化
2. 泛化的表示
表示
例子
依赖
1. 依赖的含义 依赖(dependency): 表示两个元素X、Y,如果
X的变化必然导致Y的变化,则称Y依赖X。 依赖关系不仅限于类,用例、包、构件之间都可
以存在依赖关系。
依赖
2. 依赖的表示
表示
例子
类图及对象图
类图
1 类图的概念 2 类图的抽象层次 3 建立类图
部分事物对象仅能属于一个组合对象; ●③ 聚集的对象生命周期可以不同,但组合对象则是同
存同亡。
泛化
1. 泛化的含义 泛化(generalization): 表示事物之间的一般与特
殊的关系。也可以称为继承关系。 泛化关系除了表示类与类之间的关系之外,还可
以表示参与者、用例、包、构件、接口等建模元素 之间的关系。
- 管理性:建立该对象是为了保存和管理那些属 性

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

第5章类图及对象图121103讲解
2.属性的格式
[可见性]属性名[:类型][‘[ ’多重性[次序]‘]’][=初始值][{特性}]
表示属性约束说明: 例如: #visibility:Boolean=false{读写} 表示属性”visibility”可读,写

问题:
1、指出下面属性名的含义。
+studentName:String=“黎明”
② 缩略表示
实体类
界面类
控制类
4.类名
① 名词或名词短语(动词或动词短语表示控制类) 例如:人,桌子,图形,汇总 ② 尽可能用明确、简短,业务领域中事物的名称, 避免使用抽象、无意义的名词 例如:帐户,订单,事物 ③ 用英文,第1个字母大写 例如:Shape, Person, CheckingAccdount ④ 可分为简单类名,带路径类名 例如: CheckingAccdount

问题:
1、指出下面操作名的含义。
+setName(name:String)
+getName():String
+creatbook()
教学进程
5.1.4 类的类型
1.边界类 边界类位于系统与外界的交界处,承担系统与 外界的信息功能.
边界类处在用例图中,参与者与用例的关联处, 可以根据用例图发现边界类。
2.确定类之间的关系

2.确定类之间的关系


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

5.2.2 聚集和组合
1. 聚集
聚集(aggregation): 表示类之间一种松散的整 体与部分的组成关系,是一种特殊的关联。
表示
例子

5章类图

5章类图

Circle (a) Circle Centre Radius Area() Move() Scale() (b)
Circle
- centre:float - radius:float + circle() <<query>> area():float … <<update>> move(location:Point) scale(ratio:float) …
«interface» URL流处理
URL输入
_____
openConnection() parseURL() setURL() toExternalFoem()
_____
网业显示
图 5.22(a ) 抽象类表示的接口
URL流处理 URL输入 ________ 网页显示
图 5.22(b)棒糖式接口表示
交通工具 _ _ _ _ _ _ _自身显式 定义属性
5.5 依赖
依赖是两个模型元素间的语意联系,是指 一个模型元素的变化影响到另一个。 例如职工家属依赖于职工。通常,当一 个事物使用另一个事物时,可以用依赖 联系对它建立模型。 对象类之间的依赖用一条虚箭线表示,位 于箭线尾端的类称为客户,它依赖于箭 头所指的类(供应者)。依赖可以有自 己的名字,但一般都省略。对于依赖可 以加上构造型,规定依赖的含义和作用, 常用的构造型有:«Use» «call» «instantiate» «friend»(友元)等。依赖 的详细说明可以用注释图说明。
1
公司
联系信息 地址: string
图5.21(a) 对象类图示例
c1:公司 部门名=”销售部
d1:部门 部门名=“销售部” d3;部门 部门名=“国内部” 经理 P1;员工

第5章 对象类图与对象图课件

第5章  对象类图与对象图课件
学生 姓名 年龄 性别
注册 选课
Home
图5.2 类的图形表示
5.1.2 属性
类的属性(Attribute)是类的命名的性质,属性在类图标的属性分隔 框中用文字串说明,如图5.3所示。
属性有在本类中唯一的属性名或标识符。
冒号“:”后跟属性值的数据类型。
属性名后跟的方括号中的内容是可选项目。
多重性(Multiplicity)用多值表达式表示,其值是该类的每个实例的 属性值的个数。
Home
图5.11 N元关联示例
5.2.3 关联的约束
关联可以加上一些约束,以规定关联的含义。 约束的字符串括在花括号{}内。 UML定义了一些约束可以施加在目标关联端上,如“implicit”、
“ordered”、“changeable”、“addonly ”、“xor”等。 例:具有xor约束的关联,如图5.12所示。约束xor 代表一组关联的
5.4.3 重载与多态性
泛化涉及面向对象技术的多态性、重载、多继承等概念,这在建立 泛化联系时需特别注意。
重载是实现多态性的方法,它修改继承来的属性和操作的内容,而 不改变其名字。
例:在图5.17中有表示重载的约束“{overlapping}”,说明子类型 “风动交通工具”、“机动交通工具”、“陆上交通工具”、“ 水上交通工具”虽然继承了超类“交通工具”的属性和操作,但 是对于某些具有多态性的属性和操作,各个子类型的对象都有自 己不同的含义和实现,而属性和操作的名字则是一样的。
类名可以是简单名,也可以是路径名。
属性框中包含类的属性。属性是类的命名 的性质,它描述类性质的实例所能具有的 值。
操作框中包含类的操作。操作实现类的服 务功能,它可以被本类的对象请求执行, 从而发生某种行为。

UML类图和对象图详解

UML类图和对象图详解

泛化关系用来描述类的一般和具体之间的关


UML表示法:实线 + 箭头 关系:" ... has a ..." 所谓关联就是某个对象会长期的持有另一个 对象的引用,而二者的关联往往也是相互的。 关联的两个对象彼此间没有任何强制性的约 束,只要二者同意,可以随时解除关系或是 进行关联,它们在生命期问题上没有任何约 定。被关联的对象还可以再被别的对象关联, 所以关联是可以共享的。
聚合 关系
组成 关系
聚合
UML表示法:空心菱形 + 实线 + 箭头 关系:" ... owns a ..."
整体和部分的关系,部分可以离开整体独立 存在。
组成
UML表示法:实心菱形 + 实线 + 箭头 关系:" ... is a part of ..."
整体和部分不能拆分,具有相同的生命周 期,部分不能独立于整体存在
概念
类图和对象图是用于描述系统静态结构的两 种重要手段。类图从抽象的角度描述系统的 静态结构,而对象是类的实例化表示。
类图(Class
Diagram)显示了系统的静态 结构,而系统的静态结构构成了系统的概念 基础。
类图图示
对象图中包含对象(Object)和链(Link),
其中对象是类的特定实例,链是类之间关系 的实例,表示对象之间的特定关系。
实现关系将一种模型元素(如类)与另一种
模型元素(如接口)连接起来,从而说明和 其实现之间的关系。 在UML中,实现关系的表示形式和泛化关系 的表示符号很相似,使用一条带封闭空箭头 的虚线来表示。
图例
依赖关系
泛化关系 Leabharlann 联关系聚合关系 组成关系 实现关系

《类图及对象图》PPT课件

《类图及对象图》PPT课件
该操作对外部实体的显现程度. 可见public : + 受限protected: # 私有private : -
17 of 70
5.1.3 类的操作
1. 操作的含义 操作(operation): 描述类所表示事物的动态性质。
2.操作的格式
[可见性]操作名[(参数列表):返回类型][{特性}]
该操作的输入参数,可以为空. 例如: #create() +hide() -ttachXWindow(xwin:Xwindow)
表示属性值的取值,及有序性: 例如: name:String[0..1]
表示属性”name”可能无值,也 可能仅有一个值.
points:Point[2..* ordered] 表示有两个或多个值,有序
11 of 70
5.1.2 类的属性
1. 属性的含义 属性(attribute): 描述类所表示事物的静态性质。
18 of 70
5.1.3 类的操作
1. 操作的含义 操作(operation): 描述类所表示事物的动态性质。
2.操作的格式
[可见性]操作名[(参数列表):返回类型][{特性}]
该操作的返回值的类型. 例如: +display():Locatein
19 of 70
? 问题4:
1、指出下面操作名的含义。
2.属性的格式 [可见性]属性名[:类型][‘[ ’多重性[次序]‘]’][=初始值][{特性}]
表示属性约束说明: 例如: #visibility:Boolean=false{读写}
表示属性”visibility”可读,写
13 of 70
? 问题3:
1、指出下面属性名的含义。
+studentName:String=“黎明” #studentBirthDay:Date=‘1999-10-21’ -price:float=12.01{R/W}
  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] 表示有两个或多个值,有序
相关文档
最新文档