UML_Lec05_类_关系

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

简单名字是一个不包含冒号的字串 路径名是简单名字前面加上一个包含该类所在的模型包的名字 这两个名字之间用两个冒号隔开

复杂名字(路径名字)


类名 中的每个词的第一个字母通常要大写
UML Lecture, Author: NK Jiang 11/46
2013-7-15
类的表示– 名称
Customer Wall
2013-7-15
UML Lecture, Author: NK Jiang
10/46
类的表示

类的图形表示:

Shape
Shape
顶端的分隔区为类的名字

下面两个分隔区显示时,可省略的,可以分别列出类的属性或操作

类的名字

是每个类所必备的构成 用于和其它类相区分 简单名字


类的名字可分为
2013-7-15
UML Lecture, Author: NK Jiang
18/46
类的表示– 操作

操作署名(operation signature)

在交互中,操作是通过消息启动的,为了能有效地提 供操作对应的服务,操作的请求者必须提供合法的启 动消息,包括:

合法的操作参数 对操作的返回值(如果有的话)的正确解释


这时,可以应用UML的隐藏原则


并不表示此类没有属性或操作 有可能它们是被省略了
2013-7-15
UML Lecture, Author: NK Jiang
21/46


类的 操作就是对这些服务的具体规定,包括

如果把操作映射到C++语言,则操作就是C++的类成员函数。

操作的定义:


操作是一个类所能提供的服务的实现,或者 操作是对一个对象所做事情的抽象,并且由这个类的所有对象共 享。 操作:

必须有一个名字 可以有参数表 可以有返回值。
UML Lecture, Author: NK Jiang 16/46

属性的初始值:



当类的一个对象被创建,它的各个属性就开始有特定的状态 有时,对象的初始状态对此对象参与的交互是有意义的. 这时,有必要在对象的类中定 义其对象属性的初始值。 初始值的图形表示:

类的属性的初始值在属性的类型的后面指定 初始值和类型之间用等号(=)分隔(下图)

Eg. “lheightOfTheWall:Float = 3.5”

对话3:


对话2:

本讲目的

类: 定义、在问题领域中的对应事物 类在UML中的符号表示


类名、属性、操作 简单表示、复杂表示 依赖关系 泛化关系 关联关系(association)


关系

关联的修饰

名称 角色 多重性 聚合/组合

关联类 连接(link)


问题领域的类



类是真实世界事物的抽象。

它们是类的实例,并被称为对象。 相同的属性 (但 属性的取值可以不同) 提供相同的操作 有相同的语义
UML Lecture, Author: NK Jiang 6/46

同一个类的各对象具有

2013-7-15
Ch4. 类

例,建造一所房子


参数包括

名字 类型 和缺省值

在每个参数名字后面跟着的是参数的类型,它们之间用冒号分隔 类型后面是可选的参数缺省值,它和类型之间用等号(=)分隔

如果一个参数被指定了缺省值,就意味着

此操作被调用时,可以不指定此参数的值, 这时操作认为调用者使用缺省值作为此参数的值。

操作的返回值类型出现在此括弧之后,返回类型和括弧 之间之间用冒号分隔。

在UML中,消息的合法性通过操作署名来定义:

操作署名是操作参数的名字、参数类型、参数缺省值 以及操作返回值的类型的集合
2013-7-15
UML Lecture, Author: NK Jiang
19/46
类的表示– 操作

操作署名的图形表示:

在类的图符上,操作署名是可隐藏的 如果不隐藏,则参数表出现在操作名后面的括弧内 参数表内的各参数之间用逗号分隔
2013-7-15
类的表示– 操作

按照操作的定义,类的操作所提供的服务可以分 为两类


一类是操作的结果引起了对象状态的改变,状态的改 变也包括相应的动态行为的发生 另一类是为服务的请求者提供返回值

例如:执行特定的计算,并把结果返回给请求者。

操作的图形表示:

操作被列在属性下部的分隔区里 显示时, 操作分隔区是可隐藏的 如果操作分隔区未被隐藏 则操作的名字必须列出 名字的后面必须有一对括弧以表示此名字是操作名称
UML Lecture, Author: NK Jiang 14/46
2013-7-15
类的表示– 属性
属性的省略表示
属 CBmpViewerData 性 的 m_x0 m_y0 省 m_w0 m_h0 略 m_x1 m_y1 表 m_w1 m_h1 示: m_hDib m_bSelected 只 CBmpViewerData() 列 SetDIBHandle() 出 ~CBmpViewerData() IsCursorInsideImage() 名 SetSelFlag() GetSelFlag() 字 SetNewPosition() GetNewPosition()

动物 和电子设备 移动事物 和 静止事物

室内事物 和 室外事物 一个类? 图标(Icon) 濒危事物
8/46

总之,类的选择依赖于应用领域
UML Lecture, Author: NK Jiang
2013-7-15
Ch4. 类

类不是孤立存在的

它的对象将参与一个或多个交互 使得“类”代表某一类特定事物 具备特定的语义
事物:

房主关心 墙、门、窗户、橱柜、灯 等是主要的事物 水管工关心:排水管、存水管、通风口等事物

事物的属性:

使事物有别于其他事物
事物如何合理组合构成系统

事物间的关系:

2013-7-15
UML Lecture, Author: NK Jiang
7/46
Ch4. 类

你看到几个类?
The purpose of this chart is to motivate the need for classes.


类捕获了系统实现方案中的概念或词汇

类的语义是为了对此对象代表的事物的性质进行描绘 通过对事物性质的描绘

可以记录对象在交互过程中状态的变换, 并可进一步决定对象在此状态下的行为

例如:在基于窗口操作的操作系统中,处理窗口的对 象

描述窗口的尺寸、位置,类型等性质, 窗口性质的不同取值 又可以决定系统对鼠标操作的不同响应 方式。

属性的初始值是可选的 当未为属性指定初始值时,属性的初值是不确定的 Public (+) Private (-) Protected (#)


属性的可见性


Implementation
access means that the class is accessible only by the implementation of the package containing the class

实例化
[课本 Ch4 ].
类 Class

类的定义:

是对一组具有相同属性、操作、关系和语义的对象的描述 一个类描述了一组对象的公共的结构和行为。 通常在对系统建模时,将会涉及到如何识别业务系统中的事物, 这些事物构成了整个业务系统。 在UML中,把所有的这些事物都建模为类 当这些事物存在于真实世界中时,
2013-7-15
类的表示– 属性

属性的图形表示:

类的属性被列在类图形(类符号)的第二个分隔区中 属性分隔区是可省略的 (此处指图形表示时) 当属性分隔区未被省略时,

属性的名字必须出现。 属性的名字后面是它的类型 类型和名字之间用冒号(:)分隔

Eg. “heightOfTheWall:int”
属性的类型表示
除了属性的名字之外,属性的其它描述 都是可省略的,包括: 类型、初值、可见性
属性名 除第一个词之外的每个词的第一 个字母要大写
2013-7-15
UML Lecture, Author: NK Jiang
15/46
类的表示– 操作

对象在交互中,存在着许多消息的交换

消息是一个对象发送给另一个对象,请求其提供服务的指令 一个对象接收的各个不同的消息,构成了此对象的类能提供的服 务的集合。 接收 服务请求的格式,以及 类对合法请求所能提供的有效服务的承诺
BusinessRules::FraudAgent
限定名 Temperature Sensor 简单名 java::awt::Rectangle
2013-7-15
UML Lecture, Author: NK Jiang
12/46
类的表示– 属性

类的属性(attribute)

它是类的一个组成部分,描述了类在软件系统中代表的事物所具 备的特征。 在UML里,属性是类的一个命名特性(named property),它描 述了此特性在类的实例中能具备的取值范围。 类的属性首先是类的一个组成部分; 其次,类的每个属性都必须有一个名字,以区别于类的其它属性

属性的定义


根据定义,


为了定义属性的取值范围必须为属性指定类型

例如:

布尔类型的属性可以取两个值:TRUE和FALSE; 字节型的属性只能取256个值

当一个类的属性被完备地定义后,它的任何一个对象的 状态都被这些属性的特定取值所决定。
UML Lecture, Author: NK Jiang 13/46
UБайду номын сангаасL
Unified Modeling Language
统一建模语言
Lecture_ 类与关系
主讲: 姜宁康 博士 日期: 2013-7-15
思考

关于有学生当枪手 “替考” ? 对话1:

“你的邮件我已经收到了,terribly 谢谢!” --》老师,作业已完成,请查看,谢谢! 《--没有用例描述? --》在图片上看一下! “老师,你希望我答辩能通过吗?”
UML Lecture, Author: NK Jiang 9/46
2013-7-15
4.1 UML中类的表示

类的图形表示

用四部分来表示。它是分为三个分隔区 (compartment)的长方形:

名称naming 属性attribute 操作operation 责职responsibility
2013-7-15
UML Lecture, Author: NK Jiang
17/46
类的表示– 操作
Shap
CBmpViewerData
(from bmpviewer)
+ + + + + + + +
CBmpViewerData() : CBmpViewerData SetDIBHandle(hDib : HANDLE = NULL, w : int = 0, h : int = 0) : HANDLE ~CBmpViewerData() IsCursorInsideImage(x : int = 32767, y : int = 32767) : BOOL SetSelFlag(bSelected : BOOL = TRUE) : BOOL GetSelFlag() : BOOL SetNewPosition(x0 : int, y0 : int, w0 : int, h0 : int, x1 : int, y1 : int, w1 : int, h1 : int) GetNewPosition(x0 : int&, y0 : int&, w0 : int&, h0 : int&, x1 : int&, y1 : int&, w1 : int&, h1 : int&)

操作名 除第一个词之外的每个词的第一个字母要大写
UML Lecture, Author: NK Jiang 20/46
2013-7-15
属性和操作的组织

类的构成有可能很复杂

将产生很长的属性列表和操作列表 没有必要在模型图上把所有的属性和操作都绘制在模 型图上。这是因为

一方面,这样会使UML图过于繁杂 另一方面,出于表达特定问题的需要,不必要将与问题无关 的属性和操作与重要的属性和操作同时绘制在模型图上 在UML模型图上把对表达问题不重要的属性或操作隐藏 因此,如果发现模型图上某个类的属性分隔区或操作缺失或 分隔区内没有内容
相关文档
最新文档