UML类图详细教程.ppt

合集下载

UML课件

UML课件
举例:“CourseScheduel” 类依赖于 “Course”类
CourseScheduel Course Add(c:Course) Remove(c:Course)
UML基础知识-关系
泛化 generalization
泛化指把一般类连接到较为特殊的类,也称为超类/子类关系或父 类/子类关系 基类 举例:类的泛化关系 交通工具
组件图
组件图的例子
实例1. 图中的组件名称是Dictionary字典。 该组件向外提供两个接口,即两个服务Spell-check拼写检查、Synonyms同义词。
实例2. 图中“Planner计划者”组件向外提供一个 “update更新”接口服务。 同时,该组件要求外部接口提供一个 “Reservations预定”服务。
• 需求说明:

画出“权限管理系统”用户管理和角色管理两个子用例图
描述角色管理需求
• 训练要点:

会以用例的方式详细描述系统需求 使用用例详细描述“权限管理系统”角色管理需求
• 需求说明:

描述角色管理需求
• 实现思路:
• • •
前置条件:角色管理用例开始时会发生什么 事件流: 角色管理用例执行的各个步骤 后置条件:角色管理用例结束时会发生什么
部署图中的事物及解释
事物名称 解释
节点用一长方体表示,长方体中左上角的文字是节 点的名字 (如图中的Joe’sMachine:PC) 。 节点代表一个至少有存储空间和执行能力的计算资 源。 节点包括计算设备和(至少商业模型中的)人力资源或 者机械处理资源,可以用描述符或实例代表。 节点定义了运行时对象和构件实例(如图中的Planner 构件实例)驻留的位置。 系统中可替换的物理部分。 外部可访问的服务。 构件的一个实例。

UML中文课件-用例图类图对象图包图

UML中文课件-用例图类图对象图包图
扩展用例依赖于被扩展用例(基本用例),它不是完 整的独立用例,无法单独执行,因此一定没有活动者 指向扩展用例;
扩展用例不一定每次都被执行和调用。 扩展用例
-12-
用例间的关系3-泛化关系( generalization)
一个用例和其几种情形的用例间构成泛化; 往往将父用例用抽象用例(abstract)表示(即,父用例
-54-
3 客房预订分析
客房预订涉及到“学生”,“订单”,“宾馆”和“客房” 几个类
假设一个订单可以预订到多个客房。
-55-
4 画出完整类图
-56-
本章目录
2.1 UML结构 2.2 物件 2.3 关系 2.4 公共机制 2.5 构架
2.6 UML图概述 2.7 用例图 2.8 类图 2.9 对象图和包图 2.10 顺序图和通信图 2.11 状态图和活动图 2.12 组件图和部署图
而在OrderItem中有一个stateChange ()方法和 deliverState,不难猜出它就是用于改变其“是否交给 收货人”标志位的。
-29-
先调用Order的dispatch ()方法,它将根据其包含的 OrderItem中产品信息,来按供应商户分拆成若干个 DeliverOrder。商户登录系统后就可以获取其 DeliverOrder,并在执行完成后再调用close ()方法。 此时,就将调用OrderItem的stateChange()方法来改 变其状态。同时再调用Order的close()方法,判断该 Order的所有的OrderItem是否都已经送到了,如果是 就将其真正close()掉。
-37-
-38-
2.8.4 类图的构建步骤
类图的构建步骤 一个关于图书馆图书借阅管理的类图 一个实现旅游宾馆预订的类图

UML教程精ppt课件

UML教程精ppt课件
UML教程
版本 号
日期 2006-0531
拟制/修 改人
版本修订记录
修改记录
1.0
郭天良
课程安排

面向对象的理论 UML语言 利用UML进行面向对象的建模
课程安排

面向对象的理论 UML语言 利用UML进行面向对象的建模
面向对象设计的学习路线
OO
OOA
: :
OOD DP
:
:
:
UML
… Case-Study …
重点要介 绍内容
…… …… …… ……
学习线路图
议程


面向对象的理论 UML语言 利用UML进行面向对象的建模
面向对象的理论



面向对象技术概述 面向对象技术发展 面向对象与结构化 转化到面向对象
面向对象技术



是一种看待计算机软件系统的观点 是一种系统分析和设计的思想 是一种编程方法 是一组设计模式 是一种编程语言设计思路 是实践者的日常工作
自然语言 结构化分析 分析与设计的鸿沟 结构化设计 编程语言
面向对象 VS 过程
数据流图 数据字典 自然语言 OO方法
面向对象的方法
问题域
需求工程
需求模型 对象模型
OO建模语言 OOA&D 模块和过程 OO编程语言
结构化编程,如C语言 测 试 计算机系统
OOP,如Java语言 测 试 计算机系统
传统结构化方法
分析模 型
设计模 型
实施模 型 测试模 型
功能模块(SC图),模块之间 类和对象实现,类/对象的关联、聚集、继 的连接/调用是模块的附属形 承等连接、连接规范和约束作为显式定 式 义 体系结构设计 根据文档进行单元测试,集成 测试,确认测试 组件图,配置图 单元测试采用类图,集成测试用实现图 和交互图,确认测试采用用例图

uml图例讲解PPT课件

uml图例讲解PPT课件
“上课登记”用例的主要事件流如下: 学生从系统菜单中选择“上课登记”; 系统显示指纹识别界面; 学生将手指放置于界面上; 系统捕获并识别学生的指纹,向学生返回识别的身份信息; 学生选择“确认”按钮; 系统生成一个关于该登记学生及当前日期、时间的新记录,并将该记录 保存到数据库中。 请根据以上描述绘制“上课登记”用例的顺序图。
请按以上描述绘制出使用手机的状态图。
10
.
UML图例讲解
(11)某学生选课系统的查询课程用例如下,学生首先进入选课 系统,然后输入要查询的课程名,系统验证输入的课程名是否 存在,若存在,跳转到对应的显示课程信息的页面;若不存在, 则给出提示信息,返回选课页面。 请根据以上描述绘制活动图。
11
.
UML图例讲解
(4)在一个习题库下,各科老师可以在系统中编写习题及标准 答案,并将编写的习题和答案加入题库中,或者从题库中选取 一组习题组成向学生布置的作业,并在适当的时间公布答案。 学生可以在系统中完成作业,也可以从题库中选择更多的习题 练习。老师可以通过系统检查学生的作业,学生可以在老师公 布答案后对自己的练习进行核对。阅读这一情境,分析出该系 统所包括的实体类并适当添加属性,绘制出分析类图。
uml图例讲解555某银行系统的取款用例执行顺序如下工作人员输冬取款单输入后银行系统请求银行数据库匹配用户迚行身份验证验证通过后数据库注销相应存款返回注销完成信息银行系统在存折上打印取款记彔
UML图例讲解
(1)某个学生成绩管理系统的部分参与者和用例总结如下。
教务管理人员:
①登录系统;
②教师、学生名单管理;
③学期教学计划管理;
④成绩管理;
⑤课程分配,每次课程分配时都必须打印任课通知书。
学生:

UML类图PPT课件

UML类图PPT课件

类的属性
➢ 1. 可见性 ➢ 2. 属性名称 ➢ 3. 属性类型 ➢ 4. 初始值 ➢ 5. 属性字符串
2020/9/25
Software School, Zhengzhou University
8 郑州大学软件学院
(1) 可见性
属性的可见性描述了该属性是否对于其他类能够可见, 从而是否可以被其他类进行引用。
➢ 操作是指类所能执行的动作,也是类的一个 重要组成部分,描述了在软件系统中所代表 的对象具备的动态部分的公共特征抽象。
➢ 一个类可以有任意数量的操作或者根本没有 操作,并且每个操作只能应用于该类的对象。
➢ 属性是描述类的对象特性的值,而操作用于 操纵属性的值进行改变或执行其他动作。
➢ 操作有时称作函数或者方法。 ➢ 在UML中,类操作的语法为:
※公有(Public):允许在类的外部使用或查看该属性
※私有(Private):只有类本身才能访问,外部一概访问不到
※受保护(Protected):经常和继承关系一起使用,允许子类访问父 类中受保护类型的属性
可见性
Public Protected Private Implemented
Rose图注
UML图注
概述
➢ 类图(Class Diagram)是由类、接口等模型元素 以及它们之间的关系构成的。
➢ 类图的目的在于描述系统的构成方式,而不是系统 如何协作运行的。
2020/9/25
Software School, Zhengzhou University
4 郑州大学软件学院

➢ 面向对象系统组织结构的核心。 ➢ 对一组具有相同属性、操作、关系和语义的
关系、关联(Association)关系以及实现

UML详解-类图(格式整齐)

UML详解-类图(格式整齐)
Order类和Customer、Consignee、DeliverOrder是关联关 系。也就是说,一个订单和客户、收货人、送货单是相关 的。
高级材料
33
类图的阅读
读图过程
多重性:用来说明关联的两个类之间的数量关系
源类及多重性 目标类及多重性 分析
Customer(1) Order(1)
Order(0…n) Consignee(1)
类图
高级材料
1
类的定义 类图
类图的阅读 类的关系 高级概念
本章内容
2007-10-8
Copy R高igh级t X材.S料hi, DHU
22
面向对象思想
类的定义
高级材料
33
类的定义
面向对象思想
每个对象都扮演了一个角色,并为其它成员提供特 定的服务或执行特定的行为。
在面向对象世界中,行为的启动是通过将“消息”传 递给对此行为负责的对象来完成的;同时还将伴随 着执行要求附上相关的信息(参数);而收到该消 息的对象则会执行相应的“方法”来实现需求
<<constustor>> sh ape() move() resize() display()
高级材料
55
属性
标准格式:
[可见性] 属性名 [: 类型] [‘[’多重性[次序]‘]’][=初 始值][{特性}]
可见性:可访问性 多重性:属性值个数格式 次序:属性值顺序 特性:属性约束
高级材料
6
用类和对象表示现实世界,用消息和方法来模拟现 实世界的核心思想
高级材料
44
类的定义
什么是类(class)?
具有相同属性、操作、关系
和语义的对象的 描述。பைடு நூலகம்

UML课件5-类图和对象图详解

UML课件5-类图和对象图详解

5.4.3 寻找类(三种常用方法)
1. 使用名词/动词法分析寻找类
收集相关信息 补充的需求规格说明 用例 项目词汇表 其他文档
选取类的属性时只考虑系统用到的特征,不必将所有属 性都表示出来,原则上,由类的属性应能区分每个特定 的对象。
5.1.1 属性
可见性
属性的可访问性,四类: 公共(public)
私有(private)
保护(protected)
实现(implementation) 子类无法继承和访问父类的私有属性和实现属性
先调用Order的dispatch ()方法,它将根据其包含的OrderItem中 产品信息,来按供应商户分拆成若干个DeliverOrder。商户登录 系统后就可以获取其DeliverOrder,并在执行完成后再调用close ()方法。此时,就将调用OrderItem的stateChange()方法来改变 其状态。同时再调用Order的close()方法,判断该Order的所有 的OrderItem是否都已经送到了,如果是就将其真正close()掉。
一个公司有多个部门,一个职员为其中某部门工作,则 可推导该职员为该公司工作。
5.2.2 泛化
Generalization,一般元素和特殊元素之间 的关系。即OO语言中,类之间的继承关系
斜体表示 抽象类
5.2.2 泛化
泛化的目的
自顶向下的属性继承。可以使得子类共享父类的属性 和操作,实现继承。
5.1.2 操作
标准格式:
[可见性] 操作名[ (参数列表) ] [: 返回值类型][{特性}]
例:
+display() #create() -attachXWindow(xwin:XWindowPtr) +getname():String

类图ppt课件

类图ppt课件
系。 1. 依赖关系 表示两个或多个模型元素之间语义上的关系, 客户元素以某种
形式依赖于提供者元素。 实际上,关联、实现和泛化都是依赖 关系。 如图3-10所示。
•图3-10 依赖关系
•图3-5 抽象类的2种表示方法
14
4.2 UML中的类
2.接口 接口是一种类似于抽象类的机制,接口中的方法都是抽象方法。
在UML中,接口有如图3-6所示的两种表示方法。
图标表示法
Collection
《Interface》
构造符号表示法
图3-6 接口的两种表示法
15
4.2 UML中的类
3.关联类 两个类之间具有多对多的关系,并且有些属性不属于关联两端
写字母开头、混合大小写,每个单词以大写开始,避免使用特 殊符号),尽可能避免使用缩写。
8
4.2.1 类的表示
2.属性 属性描述了类的静态特征,在面向对象编程中,把属性表示为
成员变量。例如,在图3-2所示的Order类中,列出了 orderDate(下订单时间)、destArea(送货区域)、price (订单总价格)、paymentType(支付类型)四个属性,它们 是用来描述每个具体的订单对象的。 在属性的前面有一个修饰,用来表示属性的可见性,属性的可 见性一般都是private,这样才符合面向对象的“封装”思想。 通常属性名的第一个字母是小写的。
18
4.2 UML中的类
6.嵌套类 在诸如Java的语言中,允许你将一个类的定义放在另一个类定
义的内部,这就是嵌套类在UML中,可以采用一个描图标来表 示这种关系,如图3-9所示。
图3-9 嵌套类表示法
19
4.3 类图中的关系
4.3.1关系分类 按照关系的性质分为依赖关系、泛化关系、 关联关系、实现关

UML基础教程(很全面的教材)65页PPT

UML基础教程(很全面的教材)65页PPT
※ 用例图是从用户角度描述系统功能, 是 用户所能观察到的系统功能的模型图,用 例是系统中的一个功能单元
1.5.2 类图(Class Diagram)
※ 类图描述系统中类的静态结构。不仅定义系 统中的类,表示类之间的联系如关联、依赖、 聚合等,也包括类的内部结构(类的属性和操 作)
※ 类图是以类为中心来组织的,类图中的其他 元素或属于某个类或与类相关联
而异的表达方法所造成的影响。 (2) UML表示法:UML表示法定义UML符号的表示法,为开发者或开发工具使用这
些图形符号和文本语法为系统建模提供了标准。
1.2.2 UML模型图的构成
事物(Things):UML模型中最基本的构成元素,是具有代表性的成分的抽象 关系(Relationships):关系把事物紧密联系在一起 图(Diagrams ):图是事物和关系的可视化表示
7.1活动图概要 7.2活动图事物 7.3活动图关系 7.4活动图实例 7.5活动图练习
8. 构件图
8.1构件图概要 8.2构件图中的事物及解释 8.3构件图中的关系及解释 8.4构件图的例子 8.5习题
9. 部署图
9.1部署图概要 9.2部署图中的事物及解释 9.3部署图中的关系及解释 9.4部署图的例子 9.5关于部署图与构件图 9.6习题
UML
-8-
1. 前言
1.5 各UML图及特征
1.5.3 对象图( Object Diagram )
※ 对象图是类图的实例,几乎使用与类图完全相 同的标识。他们的不同点在于对象图显示类的 多个对象实例,而不是实际的类
1.5.4 顺序图(Sequence Diagram)
UML
-3-
目录
5.4对消息标签的详细讲解 5.5协作图例子 5.6协作图与顺序图的区别和联系 5.7练习题

UML流程图(PPT 41张)

UML流程图(PPT 41张)

• 结点 • 连接
部署图
老师在线答疑系统部署图
课后练习
老师在线答疑系统的网络白板需求描述: 1、同时使用白板的用户必须是2个,一个老师和一个学生 2、使用白板的2个用户是对等的,两个用户看到的内容是一 样的
3、用户可以在上面写文字和作图,后者包括:直线,圆, 椭圆和矩形
4、用户可以增删,选择,移动上面的文字和图形标记
活动图
老师登陆系统
活动图
练习 1、学生第一次开学入学,首先正确填写表格, 如果表格不正确,那么必须获得帮助以正 确填写它们。接着办理大学的入学手续。 但是,在大学里成功入学后,必须参加指 定的概况介绍,还要至少登记一个研习班 并交付一部分的学费。使用活动图来表达 该流程
顺序图
顺序图用来描述对象之间动态的交互关系, 着重体现对象间消息传递的时间顺序。 • 对象 • 消息
状态图
状态图表示某个类所具有的不同状态和状态 转移时的触发条件。 • 状态 • 转移
状态图
• 老师在线状态图
状态图
练习
1、汽车有向前行驶,向后行驶和停止3种状
态,请使用UML图将3种状态之间的转移关
系表达出来
活动图
活动图用来描述工作的流程,对并行的工 作流程能很好的支持。 • 活动 • 转移的功能单元。 • 参与者 • 用例 • 关联关系 • 依赖关系 • 继承关系
用例图
老师在线答疑系统需求描述 • 他是一个用于老师和学生之间进行即时沟通的系统。 • 系统由老师使用的老师端,学生使用的学生端和一个有公 网地址的登陆服务端组成。 • 老师登陆系统后会在老师列表中出现,并显示出他的专业、 姓名、专长和状态是否忙等信息。也可以看到其他所有登 录的老师的信息。 • 学生登陆后可以看到所有已经登录的老师列表。 • 学生可以选择一个不忙的老师进行问题咨询,和选择的老 师建立连接后就可以通过语音加白板和老师进行交流。此 时其他学生将看到该老师处于忙的状态。

UML类图详细教程PPT课件

UML类图详细教程PPT课件

第46页/共109页
公司直销系统用例图
第47页/共109页
4.2 UML扩展类图
一、聚合和组合 在前面,已经介绍过类之间的简单关联,知道了它们在类图中使用连接类的单线表
示。本节将介绍如何更好地限定这些关联,其方法是以聚合或者组合的形式来定义关联。 这两种新的关联类型都描述了类之间的整体——部分组成关系。 1.聚合
类图支持如下面用例图中用例。 练习步骤:
1)确定可以在用例图中找到的类。 2)创建关联类,给出它们的关联名词。 3)巩固相似的类。 4)确定任何合适的角色名。 5)为任何已经封装到另一个类中的独立功能添加类。 6)添加属性和操作以便提供类图中需要的功能。 7)为操作和属性提供数据类型和参数等信息
第45页/共109页
1)关联关系 关联关系是指类之间的语义联系。关联可以具有如下特性:
•关联名称 •角色名称 •多重性 •导航性
第17页/共109页
多个类可以关联到同一个类
第18页/共109页
多重性: 多重性(mutiplicity)用来指示一个类的多少对象与另一个类的一个对象相关。可
以在类关系的任何一端添加多重性,来指示出多重性,如下图所示。
第11页/共109页
派生的属性: 另一种可以为属性提供的信息是派生值,它可以使用数学函数、字符串函数或者将要
在应用程序中实现的其他商务逻辑。 要想指出一个属性是派生的,需要在属性名之前添 加一个前斜线(/), 并且要附加一个注释,其中包含了派生属性值的指令,如下图所 示。
第12页/共109页
2. 操作(方法)
第19页/共109页
多重性是一个数值或者数值范围,用来指示一个类的几个对象与另一个类的一个对象相 关。如下图所示。

uml类图-对象图-包图PPT课件

uml类图-对象图-包图PPT课件

Company
W heel
Department
-
24
Company Department
-
25
类图的抽象层次
在软件开发的不同阶段使用的类图具有不同的抽 象层次。一般地,类图可分为三个层次,即概念 层,说明层和实现层。
类的概念层,说明层和实现层的划分最先是由
Steve Cook和John Daniels引入的。
➢类 ➢ 接口 ➢ 协作 ➢ 依赖、泛化和关联关系
类图可以包含注解和约束; 类图还可以有包或子系统,二者都用于把 模型元素聚集成更大的组件。
-
5
类(Class)
A class is the descriptor for a set of objects with similar structure, behavior, and relationships.
Camera Sensors::Vision::Camera 包中可以包含其它建模元素,如class, interface, component, node, use case, package, … , 等。 包可以嵌套,但嵌套层次不要过深。 包没有实例,即在系统运行时见不到包。 包之间可以存在依赖关系, 但这种依赖关系不存在传递性。
➢ 概念层(Conceptual)类图描述应用领域中的概念,一般地, 这些概念和类有很自然的联系,但两者并没有直接的映射关 系。
➢ 说明层(Specification)类图描述软件的接口部分,而不是软件 的实现部分。
➢ 实现层(Implementation)类图才真正考虑类的实现问题,揭示 实现细节。
-
3
类图的应用
类图用于对系统静态设计视图建模。与数据模型 不同,它不仅显示了信息的结构,同时还描述了 系统的行为。 类图中可以包含接口,包,关系等建模元素,也 可以包含对象,链等实例。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

属性初始值设置: 可以通过在属性名称和数据类型之后添加等于号(=)来
为属性指定默认值,如下图所示。
属性多重性:
多重性为可选项,它表达该类的每个实例的属性值的个数。可 以像应用于类之间的关系中那样把多重性应用于属性。例如, Student类具有属性Grades。不希望该属性只包含单个值,而是希 望它包含该学生的所有成绩,可以是任意多个。
多个类可以关联到同一个类
多重性: 多重性(mutiplicity)用来指示一个类的多少对象与另一个类
的一个对象相关。可以在类关系的任何一端添加多重性,来指示 出多重性,如下图所示。
多重性是一个数值或者数值范围,用来指示一个类的几个对象与 另一个类的一个对象相关。如下图所示。
关联的多重性
角色 类关系还可以通过添加角色来进一步丰富。在类图中使用角色
模型表达意义: •每个Person对象能够为很 多Company对象工作。 •每个Company对象能够雇佣很多Person对象
然而,当每个Person与雇佣它的Company间存在薪水属性时会发 生什么呢?薪水记录在何处呢?记录在Person类中还是在 Company类中?
答案是薪水实际上是关联本身的特性,对于Person对象和 Company对象之间的每个雇佣链接都存在特定雇佣的特定薪 水。
Teacher
1 maintains
1..*
ReportCard
+ Generate()
contains
1..*
1
Grades
1..*
generates
+ RecordGrades(in student : String, in assignment : String, in grade : Integer) + UpdateGrades(in student : String, in assignment : String, in grade : Integer) + Distribute() - SaveGrades() - LoadGrade(argname)
类的图形表示和示例
在类图中,根据建模的不同景象,类图标中不一定列出全部的
内容。如在建立分析模型或设计模型时,甚至可以只列出类名, 在图中着重表达的是类与类之间的联系;在建立实现 模型时,则应当在类图标中详细给出类的属性和方法等细节。
1. 属性
属性(Attribute)在UML类图标的矩形框中用文字串说明, 如下图所示。
一、聚合和组合 在前面,已经介绍过类之间的简单关联,知道了它们在类图中
使用连接类的单线表示。本节将介绍如何更好地限定这些关联,其 方法是以聚合或者组合的形式来定义关联。这两种新的关联类型都 描述了类之间的整体——部分组成关系。 1.聚合
聚合用来描述两个类之间的整体——部分关系,其中一个类为 整体,它由一个或者多个部分类组成。在聚合中,部分类可以没有 整体类而存在。如下图所示。
contains
student
Administrator generates ReportCard
进一步创建类的关联: 增添WebSite类和Logon类
Teacher
view,maintains
contains
Grades
ReportCard
displays
WebSite
generates
OnlineUser
可视性(Visibility)标记表示: + 公共 # 保护
- 私用 可视性也可以用以下关键字表示:public(公共)、protected(保 护)、private(私用)。 •若可视性标记为“+”或“public”,则为公共属性,可以被外部对象 访问。
•若可视性标记为“#’或“ protected”,则为保护属性,可以被本类 或子类的对 •类(Class):是具有共同结构特征、行为特征、联系和语义的对象 集合的抽象形式。 •关联(Association):它表示类与类之间的关系。
二、UML类图中的符号
(一)类 类(Class)在UML中通常以实线矩形框表示,矩形框中含有 若干分隔框,分别包含类的名字、属性、操作、约束以及其 他成分等,如下图所示。
Logon用例。
现在可以开始创建类的关联:
Teacher记录、更新、查看 Grades Administrator查看 Grades、生成ReportCards Student查看Grades ReportCards包含Grades
Teacher
view,maintains
Grades
view
view
类之间可以建立四种关系:关联、依赖、聚合和泛化。其标记 如下图所示。
Class A 关联关系
Class A 依赖关系
Class B Class B
Class A
Class B
聚合关系
Class A
Class B
泛化关系
1)关联关系 关联关系是指类之间的语义联系。关联可以具有如下特性:
•关联名称 •角色名称 •多重性 •导航性
练习步骤:
1)指出建模的类。 2)指出所有属性及其显示的数据类型。 3)指出所有显示的操作。 4)指出找到的关联。 5)指出建模的角色。 6)指出图中使用的多重性。
例 售票系统的类图
上图中的售票系统类图,它只是售票系统领域模型的一部分。图 中表示了几个重要的类,如Customer、Reservation、Ticket和 Performance。一个顾客可多次订票,但每一次订票只能由一个顾 客来执行。有两种订票方式:个人票或套票,前者只是一张票,
grants access to
view
Logon
Administrator
下一步通过添加多重性让类图的信息更加详细,并且对类图进行 调整以便保证没有冗余的类和关联。
Teacher
1
maintains
contains
Grades
ReportCard
1..*
1..*
1 1..*
displays
generates
组合关联使用带有实心菱形的实线连 接,如下图所示。
由于组合关联指示的部分类是强制的,对于整体类意味着至少有 一个多重性。在下面的示例中,整体类数据库由表和查询组成。 这些关联使用组合表示,因为如果没有数据库,表和查询也不会 存在,如图所示。
可以帮助读者理解第一个类对于第二个类的作用。角色与多重性 显示在相同的位置,在指示类之间关系线的上面或者下面,如下 图所示。
下图显示了player类和Team类在关联中分别扮演两个角色。
关联的限定 类的关联还可以通过限定条件来明确类之间的关系。如下图所
示。
关联的限定
自反关联: 类具有到自身的关联,称为自反关联。
UML允许你使用关联类来建模这种情况,如下图所示。
2)依赖关系
依赖关系是指一个类的元素使用了另一个类。依赖关系描述类 之间的引用关系。
3)泛化关系
泛化关系是描述类之间的继承关系。利用泛化来表达类之间的 相似性 。
练习:阅读一个类图
在这个练习中,将会通过识别到目前为止学习的UML标记符来 阅读下面的类图,如图所示。
后者包括多张票。每场演出都有多张票可供预定,每张票对应一 个唯一的座位号。每次演出用剧目名、日期和时间来标识。
三、学习如何建模类图 创建类图需要两个反复执行的步骤:
1)确定类及其关联。 2)确定属性和操作。 开始创建类图的好起点就是用例图。如下面成绩管理的用例图所 示。
1.确定类和关联 首先要做的是通过分析用例图确定类及其关联。找到第一批
例如,CPU和显示器都可以以独立类的形式存在,但是当它们 组成Computer类时,它们就变为整个计算机的组成部分。
通过提供其他的计算机部件,如键盘、鼠标和扬声器来扩展该示 例,如下图所示。
2.组合 组合是一种特殊的聚合关联。在组合关
联中用来组成整体类的部分类是不能独 立存在。整体类由部分类组成,部分类 需要整体类才能存在。这种关系意味着 销毁整体类将会同时销毁部分类。
Student类
数据类型可以是任何用户需要的内容,包括: • 来自程序设计语言如 Visual Basic、C++、C#和 Java的任 何标准数据类型。 • 一个已经定义的类。 • 接口定义语言(Interface Definition Language,IDL)中的数 据类型列表中的数据类型。 • 读者在自己的系统建模中能够使用的其他类型。
displays
1
Administrator
OnlineUser
WebSite
use
+ UserName : String = ""
# Password : String = ""
+ Logon() + View()
练习: 建模一个类图
在这个练习中,将会从用例图建模一个类图。读者应该遵循
前面介绍的步骤来建模类图支持如下面用例图中用例。
练习步骤:
1)确定可以在用例图中找到的类。 2)创建关联类,给出它们的关联名词。 3)巩固相似的类。 4)确定任何合适的角色名。 5)为任何已经封装到另一个类中的独立功能添加类。 6)添加属性和操作以便提供类图中需要的功能。 7)为操作和属性提供数据类型和参数等信息
公司直销系统用例图
4.2 UML扩展类图
类的自反关联
类的自反关联
关联的导航性 导航性表明类的关联方向。如下图所示。
关联和属性 在类关联和类属性之间存在精密的联系。源类和目标类之间的
关联意味着源类的对象能够承载到目标类对象的引用。如下图所 示。
关联类 OO建模的一个普遍问题是,当类之间具有多对多关系时,一
相关文档
最新文档