




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、类图对象图和包图第1页,共84页,2022年,5月20日,17点7分,星期二2第3章 类图、对象图和包图类图和对象图合称为结构模型视图或者静态视图,用于描述系统的结构或静态特征。类图用来描述系统中的类以及类与类之间的静态关系等;对象用来描述特定时刻实际存在的若干对象以及它们之间的关系。一个系统的模型中可以包含多个对象图,每个对象图描述了系统在某个特定时刻的状态。第2页,共84页,2022年,5月20日,17点7分,星期二3本章学习要点:理解类图的基本概念为系统建模类建模类之间的关联关系理解并建模泛化关系了解依赖关系和实现关系了解对象图和包图的概念构造类图第3页,共84页,2022年,5月20日
2、,17点7分,星期二43.1 类图构建面向对象模型的基础是类、对象以及它们之间的关系。在不同的系统中描述的类可以是各种各样的。在面向对象的处理中,类图处于核心地位,它提供了用于定义和使用对象的主要规则,同时,类图是正向工程(将模型转化为代码)的主要资源,是逆向工程(将代码转化为模型)的生成物。类图是任何面向对象系统的核心。第4页,共84页,2022年,5月20日,17点7分,星期二53.1.1 概述类图是描述类、接口以及它们之间关系的图,它显示了系统中各个类的静态结构。可以用某种面向对象的语言实现类图中的类。 建模对象 对系统的词汇建模 对协作建模 对数据库模式建模 第5页,共84页,2022
3、年,5月20日,17点7分,星期二类图的元素:类(Class)接口(Interface)协作(Collaboration)依赖关系(Dependency)泛化关系(Generalization)关联关系(Association)实现关系(Realization) 3.1.1 概述第6页,共84页,2022年,5月20日,17点7分,星期二一个例子第7页,共84页,2022年,5月20日,17点7分,星期二3.1.2 类及类的表示类是对资源的定义,它所包含的信息主要用来描述某种类型实体的特征以及对该类型实体的使用方法。对象是具体的实体,它遵守类制定的规则。类定义了一组具有状态和行为的对象,这些对
4、象具有相同的属性、操作、关系和语义。类包括名称部分(Name)、属性部分(Attribute)和操作部分(Operation),名称必须有,属性和操作部分可以省略。 8名称属性操作名称名称属性名称操作第8页,共84页,2022年,5月20日,17点7分,星期二1 名称2 属性3 操作4 职责5 约束6 注释3.1.2 类及类的表示第9页,共84页,2022年,5月20日,17点7分,星期二1 名称 应该来自系统的问题域。 应该是一个名词,且不应该有前缀或后缀。 分为简单名称和路径名称。 第10页,共84页,2022年,5月20日,17点7分,星期二2 属性描述了类在软件系统中代表的事物(即对象
5、)所具备的特性。 类可以有任意数目的属性,也可以没有属性。 在UML中,类属性的语法为:第11页,共84页,2022年,5月20日,17点7分,星期二2 属性1. 可见性2. 属性名3. 类型4. 初始值5. 属性字符串第12页,共84页,2022年,5月20日,17点7分,星期二(1) 可见性类型:公有(Public) “”私有(Private)“”被保护(Protected)“” UML中没有默认可见性类型第13页,共84页,2022年,5月20日,17点7分,星期二(2) 属性名 每个属性都必须有一个名字以区别于类中的其他属性。 属性名由描述所属类的特性的名词或名词短语组成。 单字属性名
6、小写,如果属性名包含了多个单词,这些单词要合并,且除了第一个单词外其余单词的首字母要大写。 第14页,共84页,2022年,5月20日,17点7分,星期二(3) 类型 应为属性指定所属的数据类型整型布尔型实型枚举类型系统中的其他类 用户自定义的数据类型第15页,共84页,2022年,5月20日,17点7分,星期二(4) 初始值 目的:保护系统的完整性,防止漏掉取值或被非法的值破坏系统的完整性。为用户提供易用性。 第16页,共84页,2022年,5月20日,17点7分,星期二(5) 属性字符串 指定关于属性的其他信息。任何希望添加在属性定义字符串值但又没有合适地方可以加入的规则,都可以放在属性字
7、符串里。 第17页,共84页,2022年,5月20日,17点7分,星期二特殊类型的属性类的作用域属性:属性下加下划线对象属性:用数组表示第18页,共84页,2022年,5月20日,17点7分,星期二3 操作对类的对象所能做的事务的抽象。一个类可以有任意数量的操作或者根本没有操作。 由返回值类型、名称和参数表描述。 在UML中,类操作的语法为:第19页,共84页,2022年,5月20日,17点7分,星期二3 操作(1)可见性(2)操作名(3)参数表(4)返回类型第20页,共84页,2022年,5月20日,17点7分,星期二(1) 可见性类型:公有(Public) “”私有(Private) “”
8、受保护(Protected) “”包内公有(Package) “”第21页,共84页,2022年,5月20日,17点7分,星期二(2) 操作名 用来描述所属类的行为的动词或动词短语。单字操作名小写,如果操作名包含了多个单词,这些单词要合并,并且除了第一个单词外其余单词的首字母要大写。 第22页,共84页,2022年,5月20日,17点7分,星期二(3) 参数表 一些按顺序排列的属性定义了操作的输入。 是可选的,即操作不一定必须有参数才行。 定义方式:“名称:类型”。若存在多个参数,将各个参数用逗号隔开。参数可以具有默认值。 第23页,共84页,2022年,5月20日,17点7分,星期二(4)
9、返回类型是可选的,即操作不一定必须有返回类型。 绝大部分编程语言只支持一个返回值。 具体的编程语言一般要加一个关键字void来表示无返回值。 第24页,共84页,2022年,5月20日,17点7分,星期二4 职责 类或其他元素的契约或义务。 自由形式的文本。 非形式化的方法。 第25页,共84页,2022年,5月20日,17点7分,星期二5 约束指定了类所要满足的一个或多个规则。 形式化的方法。 第26页,共84页,2022年,5月20日,17点7分,星期二 6 注释注释可以包含图形也可以包含文本。 第27页,共84页,2022年,5月20日,17点7分,星期二3.1.3 定义类实体抽象成类将
10、系统要处理的数据抽象为类的属性处理数据的方法抽象成类的操作要对问题域有透彻的理解依据:需求规格说明书第28页,共84页,2022年,5月20日,17点7分,星期二类之间的关系 关联关系(Association) 泛化关系(Generalization) 依赖关系(Dependency) 实现关系(Realization)第29页,共84页,2022年,5月20日,17点7分,星期二对象之间的通信手段,包括:二元关联关联类或关联与反身关联聚合(Aggregation)组成(Composition)3.2 关联关系 第30页,共84页,2022年,5月20日,17点7分,星期二3.2.1 二元关联
11、只有两个类参与的关联在类图中的关联关系,两个类的相应对象所具有的关系称为链第31页,共84页,2022年,5月20日,17点7分,星期二名称角色多重性约束限定符导航性3.2.1 二元关联第32页,共84页,2022年,5月20日,17点7分,星期二(1) 名称使用一个动词或动词短语来命名关联。清晰而简洁地说明类间关系。关联的名称并不是必需的。 可以前缀或后缀一个指引阅读方向的方向指示符,以消除歧义。一般是从左到右,从上到下阅读。如果方向不同,要指出来。第33页,共84页,2022年,5月20日,17点7分,星期二(2) 角色 关联关系中一个类对另一个类所表现出来的职责。 角色的名称应该是名词或
12、名词短语,以解释对象是如何参与关系的。 可以用角色名代替关联名。第34页,共84页,2022年,5月20日,17点7分,星期二(3) 多重性 指有多少对象可以参与该关联。可以表达一个取值范围、特定值、无限定的范围或一组离散值。 格式:“minimum.maximum” (均为Int型)。赋给一个端点的多重性表示该端点可以有多少个对象与另一个端点的一个对象关联。 确定方式:第35页,共84页,2022年,5月20日,17点7分,星期二(4)约束规定了实现关联端点时必须遵守的规则第36页,共84页,2022年,5月20日,17点7分,星期二(5)限定符使用关键字ID识别对象集合中的对象,称为受限关
13、联第37页,共84页,2022年,5月20日,17点7分,星期二(6) 导航性 描述一个对象通过链进行导航访问另一个对象。使用导航性可以降低类间的耦合度。 包括:单向关联和双向关联。双向导航一般省略箭头。大多数情况都是双向导航第38页,共84页,2022年,5月20日,17点7分,星期二3.2.2 关联类与关联关系相连的类。关联类与关联相对应,表示关联的附加信息关联类是一种将数据值和链接关联在一起的手段第39页,共84页,2022年,5月20日,17点7分,星期二关联类与一般类的不同:一般类描述的是实体,关联类描述的是关系关联类与一般类的相同:关联类也是类,也可以与其他类关联3.2.2 关联类
14、第40页,共84页,2022年,5月20日,17点7分,星期二3.2.3 或关联或关联指多个关联附加约束条件,使类中的对象一次只能参与一个关联关系第41页,共84页,2022年,5月20日,17点7分,星期二3.2.3 反身关联参与关联的对象属于同一个类,称为反身连接。第42页,共84页,2022年,5月20日,17点7分,星期二3.2.4 聚合关系(Aggregation)在关联之上的紧密耦合 表示整体与部分关系的关联。 整体类和部分类都可以独立存在。 第43页,共84页,2022年,5月20日,17点7分,星期二3.2.5 组成关系(Composition)更紧密耦合的关系 表示整体与部分
15、关系的关联。 部分类不能脱离整体类存在。 1.*1.*第44页,共84页,2022年,5月20日,17点7分,星期二3.3 泛化关系(Generalization)存在于一般元素和特殊元素间的分类关系。 可以用于类、用例以及其他模型元素。 描述了一种“is a kind of” 的关系。第45页,共84页,2022年,5月20日,17点7分,星期二3.3.1 泛化的含义和用途一般元素称为超类或父类,特殊元素称为子类子类继承了父类的所有属性和操作,并具有自己独有属性和操作。第46页,共84页,2022年,5月20日,17点7分,星期二3.3.2 泛化的层次泛化可以有多层泛化是类关系中最强的耦合形
16、式,必要时才使用只有在一个类确实是另一个类的特殊类型时才使用泛化第47页,共84页,2022年,5月20日,17点7分,星期二3.3.2 泛化的层次不提倡使用多重泛化第48页,共84页,2022年,5月20日,17点7分,星期二3.3.3 泛化约束泛化约束的表示第49页,共84页,2022年,5月20日,17点7分,星期二3.3.3 泛化约束泛化约束的类型不完全约束incomplete完全约束complete解体约束disjoint重叠约束overlapping第50页,共84页,2022年,5月20日,17点7分,星期二3.4 依赖关系表示两个或多个模型元素之间语义上的关系。 一种元素以某种
17、形式依赖于另一种元素。 关联、实现和泛化都是依赖关系的特例。 第51页,共84页,2022年,5月20日,17点7分,星期二依赖关系1. 使用依赖(Usage):最常用2. 抽象依赖(Abstraction)3. 绑定依赖(Binding)4. 授权依赖(Permission)第52页,共84页,2022年,5月20日,17点7分,星期二实现关系用于规格说明与实现之间的关系,通常用在接口以及实现该接口的类之间。第53页,共84页,2022年,5月20日,17点7分,星期二类关系图第54页,共84页,2022年,5月20日,17点7分,星期二3.5 构造类图模型 迭代进行以下步骤问题域类建模GU
18、I类建模数据访问类建模第55页,共84页,2022年,5月20日,17点7分,星期二3.5 构造类图模型 首先对问题域类建模,步骤是:一、确定可以在用例图中找到的类二、为类图中的类添加必要的特性和操作三、分析类之间的关系第56页,共84页,2022年,5月20日,17点7分,星期二问题域类建模一、确定可以在用例图中找到的类找出系统需求中的所有名词,作为类的候选者,形容词作为属性的线索,动词作为操作的候选者。筛选类:去除冗余、无关、笼统名词、统一不一致的用法。对剩下的名词适当分类(人、事、物)通过检查名词是否存在相关的属性和行为,如果有,则应该建立相应的类。抽象出共享功能,构成单独的类。二、 分
19、析类的属性和操作第57页,共84页,2022年,5月20日,17点7分,星期二例需求(P256)针对图书管理系统的需求,抽象出Borrower、 Librarian、Administrator 、Title、Book和Loan类,抽象出管理员Manager类,Librarian和Administrator 作为Manager类的泛化分析类的属性和操作第58页,共84页,2022年,5月20日,17点7分,星期二类的属性和操作1第59页,共84页,2022年,5月20日,17点7分,星期二类的属性和操作2第60页,共84页,2022年,5月20日,17点7分,星期二类的属性和操作3第61页,共8
20、4页,2022年,5月20日,17点7分,星期二1个Title对应1到多个Book1个Book对应0到1个Loan1个Borrower对应0到多个LoanLibrarian和Administrator 是Manager类的泛化三、分析类之间的关系第62页,共84页,2022年,5月20日,17点7分,星期二问题域类图1第63页,共84页,2022年,5月20日,17点7分,星期二问题域类图2第64页,共84页,2022年,5月20日,17点7分,星期二用户接口类(GUI)建模用户接口类与用例图密切相关图书管理员的接口类系统管理员的接口类第65页,共84页,2022年,5月20日,17点7分,星
21、期二图书管理员的接口类第66页,共84页,2022年,5月20日,17点7分,星期二系统管理员的接口类第67页,共84页,2022年,5月20日,17点7分,星期二数据访问类建模Manager、Borrower、Title、Book和Loan都是持久性类,需要存储到数据库,因此抽象出共享的访问数据库的Persistent类,实现对数据库的增删改查操作。Manager、Borrower、Title、Book和Loan都是Persistent的泛化第68页,共84页,2022年,5月20日,17点7分,星期二数据访问类建模第69页,共84页,2022年,5月20日,17点7分,星期二GUI类与问题
22、域类的关系大多比较简单借书、还书GUI类涉及较多类。第70页,共84页,2022年,5月20日,17点7分,星期二3.6 抽象类抽象的操作,留给子类实现操作全部是抽象的类称为抽象类抽象类不能实例化抽象操作和抽象类用斜体表示第71页,共84页,2022年,5月20日,17点7分,星期二3.7 接口一组没有相应方法实现的操作,类似于抽象类,不能实例化接口只有操作,没有属性通过将接口与类相关联,实现该接口。构造型表示法球型表示法第72页,共84页,2022年,5月20日,17点7分,星期二3.8 对象图 描述参与一个交互的各个对象在交互过程中某一时刻的状态。 可以被看作是类图在某一时刻的实例。 对于
23、每个属性,对象都有特定的值第73页,共84页,2022年,5月20日,17点7分,星期二第74页,共84页,2022年,5月20日,17点7分,星期二3.8 对象图 对象之间的关系称为链,从类图中的关联而来。同一个类图所对应的对象图可以有多个,多个对象图合在一起共同展示了随着时间的推移,在不同时间点系统的对象状态。 第75页,共84页,2022年,5月20日,17点7分,星期二类图和对象图的区别 类图 对象图 类具有三个分栏:名称、属性和操作对象只有两个分栏:名称和属性在类的名称分栏中只有类名对象的名称形式为“对象名:类名”,匿名对象的名称形式为“:类名”类中列出了操作对象图中不包含操作,因为对于属于同一个类的所有对象而言,其操作
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年玻璃浮球合作协议书
- 【小班教案】小班健康:大家的小甜甜
- 《可爱的小绵羊》小班教案
- 2025年扫路车项目合作计划书
- 工程项目合作协议范本大全
- 务工知识培训课件
- 银企直联的发展方向
- 患者及家属授权委托人如何进行
- 民间借贷资产保全
- 2025年微合金粉末项目发展计划
- 保育员与教师协作配合的技巧与案例
- 护理技能培训师竞聘
- 2025届东北师大附属中学高考数学倒计时模拟卷含解析
- 智能交通监控系统运维服务方案(纯方案-)
- 【MOOC】中学教育见习与实习-河北师范大学 中国大学慕课MOOC答案
- 《社会应急力量建设基础规范 第3部分:山地搜救》知识培训
- 《世界各国简介》课件
- 新质生产力与产品创新
- 能力素质模型的正确打开方式(分享)
- 2024年河北省公务员录用考试《行测》真题及答案解析
- 安保服务行业市场调研分析报告
评论
0/150
提交评论