收藏 分享(赏)

第五章 类图和对象图(UML).ppt

上传人:11xg27ws 文档编号:8701385 上传时间:2019-07-08 格式:PPT 页数:87 大小:604KB
下载 相关 举报
第五章 类图和对象图(UML).ppt_第1页
第1页 / 共87页
第五章 类图和对象图(UML).ppt_第2页
第2页 / 共87页
第五章 类图和对象图(UML).ppt_第3页
第3页 / 共87页
第五章 类图和对象图(UML).ppt_第4页
第4页 / 共87页
第五章 类图和对象图(UML).ppt_第5页
第5页 / 共87页
点击查看更多>>
资源描述

1、1,第五章 类图和对象图 教学目标:了解类图、类间的关系 对象图的组成部分教学要求:能建立简单的类图、对象图,2,. 类的定义(续) 类:是对一组具有相同属性、操作、关系和语义的对象的描述。 这些对象可以包括现实世界中的软件事物和硬件事物,甚至也可以包括纯粹概念性的事物。 类图(class diagram)是描述类、接口、协作及他们之间关系的图,用来显示系统中各个类静态结构。 在类图的基础上,可以使用协作图、状态图、组件图和配置图。,第五章 类图和对象图,3,. 类的定义(续) 类在中的表示:分成三个格子的矩形。,第五章 类图和对象图,ClassName,Attribute: Attribut

2、e Type=initialValue,Opetation(arg:Argument Type):ReturnType,类名,属性,操作,4,. 类的定义(续) 类在中的表示:分成三个格子的矩形。,第五章 类图和对象图,图书馆书的类(省略掉属性),图书馆书的类(省略掉操作),5,. 类的定义(续) 类名:是每个类所必须有的构成。用于和其他类区分,是一个文本串。 类名要求应尽量应用领域中的术语,应明确、无歧义,以利于开发人员与用户之间的勾通交流 单独的名称(single name):不包含冒号的字符串。 路径名称(path name):用类所在的包作为前缀的类名。如Business:Item,第

3、五章 类图和对象图,6,. 类的定义(续) 属性:描述了类在软件系统中代表的事物所具备的特性。类可以有无限数量的属性,也可以没有属性。,第五章 类图和对象图,格式: 可见性属性名:类型初始值特性 size :integer =(100),7,. 类的定义(续) 说明: 、可见性描述了该属性对于其他类是否可见,以及是否被其他类引用,而不仅仅是被该类可见。类型如下:,第五章 类图和对象图,8,. 类的定义(续) 说明: 、公有:可以在此类的外部使用和查看该属性。 2、私有:不可以从其他类中访问这个属性 3、受保护的:经常与泛化一起使用(后面章节讲讲到)。,第五章 类图和对象图,9,. 类的定义(续

4、) 说明: 、每个属性必须有个名字区分其他属性。通常情况下属性名由描述所属类的特性的短名词或者名词短语构成(小写字母开头),第五章 类图和对象图,可见性属性名:类型初始值特性 size :integer =(100),10,. 类的定义 说明: 、属性还有取值范围。类型表示该属性的种类。它可以是基本数据类型,例如整数、实数、布尔型和枚举型等,也可以是用户自定义的类型。一般它由所涉及的程序设计语言确定必须为其指定数据类型。当一个类的属性被完整定义后,它的任何一个对象的状态都由这些属性的特性值所决定。,第五章 类图和对象图,可见性属性名:类型初始值特性 size :integer =(100),1

5、1,. 类的定义 说明: 4、初始值:设定初始值的目的、保护系统的完整性,防止遗漏掉取值或被非法取值;、为用户提供易用性,第五章 类图和对象图,可见性属性名:类型初始值特性 size :integer =(100),12,. 类的定义 说明: 、特性是用户对该属性性质的一个约束说明。比如只读,第五章 类图和对象图,可见性属性名:类型初始值特性 size :integer =(100),13,. 类的定义 操作(Operation):类的操作是对类的对象所能做的事物抽象,用于修改、检索类的属性或执行某些动作。也被称为功能。它相当与一个服务的实现,。该服务可以由类的任何对象请求以影响其行为。一个类

6、可以有任何数量的操作或者没有操作,第五章 类图和对象图,格式: 可见性操作名(参数列表):返回类型特性 disply () :Location,14,. 类的定义 说明: 可见性:,第五章 类图和对象图,15,. 类的定义 说明: 操作名是用来描述所属类的行为的短动词或动词短语(通常用小写字母开头)。如果是抽象操作,用斜体字表示。,第五章 类图和对象图,格式: 可见性操作名(参数列表):返回类型特性 disply () :Location,16,. 类的定义 类的操作所提供的服务可以分为两类: 、操作的结果引起对象状态的变化,状态的改变也包括相应动态行为的发生 、为服务的请求者提供返回值。,第

7、五章 类图和对象图,17,. 类的定义 职责(Responsibility):是类或者其它元素的契约或者义务。当一个类被创建时,就声明这个类的所有对象具有相同的种类的状态和相同种类的行为。 类的职责是自由形式的问题,可以写成一个短语、一个句子或者一段短文。,第五章 类图和对象图,heckUser,Responsibilities -核查用户资料 决定是否给该拥护办理信用卡,职责,18,. 类的定义 注释:对属性或者操作进行解释。注释可以为图形或者文本,第五章 类图和对象图,19,. 类之间的关系类不是独立存在的,大多数类以某些方式彼此协作。,第五章 类图和对象图,20,. 类之间的关系类间的关

8、系分为:关联、聚合、实现、泛化、依赖。 关联(Association)表示对象之间的结构关系 泛化(Generalization)表示类之间一般和特殊的关系 依赖(Dependency)表示类之间的使用关系,第五章 类图和对象图,21,. 类之间的关系 1、关联 关联是一种结构关系,它指明一个事物的对象与另一个事物的对象间的联系 例如,一个人为一家公司工作,一家公司有许多办公室。我们就认为人和公司、公司和办公室之间存在某种语义上的联系。在分析设计的类图模型中,则在对应人类和公司类、公司类和办公室类之间建立关联关系,第五章 类图和对象图,22,. 类之间的关系 1、关联 关联的表示方式:用一条连

9、接相同类或者不同类的实线表示。,第五章 类图和对象图,23,. 类之间的关系 1、关联 一个关联可以有两个和多个关联端。关联也有方向,可以分为单向关联(uni-directional association)或双向关联(bi-directional association),第五章 类图和对象图,A,B,A,B,类和之间的双向关联,类到类的单向关联,24,. 类之间的关系 1、关联 关联名:给关联加上名字,描述关联的作用。,第五章 类图和对象图,Company,Person,Employs,25,. 类之间的关系 1、关联 关联名说明:关联的名称并不是必需的,当要明确的给出关联提供角色名或当一

10、个模型存在许多关联并且要对这些关联进行查阅或者区别是才要给出关联名。,第五章 类图和对象图,26,. 类之间的关系 1、关联 角色:当一个类处于关联的某一端时,该类就在这个关系中扮演着一个特定的角色。角色就是关联关系中一个类对另一个类所表现的职责,第五章 类图和对象图,27,. 类之间的关系 1、关联 多重性:关联实例中说明两个类间存在多少个相互连接。有三大扩展机制,多重性是第一种约束。 多重性被表示为用点分隔的区间。表示格式 Minimunmaximum 均为int型的整数,第五章 类图和对象图,28,. 类之间的关系 1、关联,第五章 类图和对象图,29,. 类之间的关系 1、关联 关联类

11、:一个关联可能要记录一些信息,可以引入一个关联类来记录。关联类通过一根虚线与关联连接,第五章 类图和对象图,emplanyer,employee,Company,Person,Employs,1,0n,contract,30,. 类之间的关系 1、关联 关联类可以进一步描述关联的属性、操作及其他信息。他描述的是两个类之间关联的属性,并不描述两个类的属性。,第五章 类图和对象图,31,. 类之间的关系 1、关联 关联的约束:为关联加上一些约束,加强关联的含义。,第五章 类图和对象图,Account,Person,company,32,. 类之间的关系 1、关联 限定关联:给定关联一端的一个对象和

12、限定符值后,可确定另一端的一个对象或对象集。,第五章 类图和对象图,bank,Person,Account:int,01,n,33,. 类之间的关系 1、关联 限定关联 注意:限定符是关联的属性,不是类的属性,第五章 类图和对象图,34,. 类之间的关系 1、关联 关联的种类:,第五章 类图和对象图,EnginePart,自返关联reflexive association(递归关联recurisive association),35,. 类之间的关系 、聚合 聚集:是一种特殊的关联。它表示类间的关系是整体与部分的关系。关联关系中一个类描述了一个较大的事物,它由较小的事物组成,即整体对象拥有部分

13、对象。 表示形式:用空菱形的实线表示,第五章 类图和对象图,36,. 类之间的关系 、聚合,第五章 类图和对象图,University,Institute,整体,部分,聚合,37,. 类之间的关系 、聚合 组合:也是类之间整体与部分的关系,强调部分与整体具有同样的生存期。整体拥有各部分,部分与整体共存,如整体不存在了,部分也会随之消失 表示形式:用实心菱形实心线表示,第五章 类图和对象图,38,. 类之间的关系 、泛化(generalization)关系 泛化关系:定义了一般元素和特殊元素之间的分类关系。也就是一种继承关系。继承是在现有类的基础上定义和实现一个新类的技术,刻画了类的一般性和特殊

14、性。被继承的类称为父类或超类,继承的类称为子类。 表示形式:用空心三角箭头实心线表示,第五章 类图和对象图,39,. 类之间的关系 、依赖(dependency)关系 依赖关系:如果一个类的变化会影响另一个类的变化,则称两个类之间有依赖关系 表示形式:用虚线三角箭头表示,指向被依赖的类,第五章 类图和对象图,40,. 类之间的关系 4、依赖(dependency)关系 改变的因素:.一个类向另一个类发送消息。.一个类是另一个类的数据成员类型.一个类是另一个类的操作的参数类型 注:如果两个类之间有关联,那么这两个类就有依赖关系,但是我们一般不标出依赖关系。,第五章 类图和对象图,41,. 派生属

15、性和派生关联 派生属性(derived attribute)和派生关联(derived association):指可以从其他属性和关联计算推演得到的属性和关联(前自动加斜杠),第五章 类图和对象图,42,. 抽象类和接口 抽象类(abstract class):不能直接产生实例的类,往往只是一些申明。通常把类名写成斜体字,第五章 类图和对象图,接口,con形式,类名,Label形式,类名,ecoration,43,. 抽象类和接口 抽象类和接口的关系: 抽象和接口比较相似 抽象类可以含有属性。接口中声明的所有方法都没有实现部分,而抽象类中某些方法可以有具体的实现。 接口是在没有给出对象的实现

16、和状态的情况下对对象行为的描述。接口包含有操作但不能含有属性.,第五章 类图和对象图,44,.5 版型 版型:建模人员在已有的事物、关系、图三种基本构造块上派生出和特定问题有关的新构造块。,第五章 类图和对象图,45,.6 边界类、控制类和实体类 UML中有三种类版型:边界类(boundary calss)、控制类(control calss)和实体类(entity class),第五章 类图和对象图,46,.6 边界类、控制类和实体类 1、边界类(boundary class):处理系统环境与系统内部之间的通讯,位于系统与外界的交界处。它是系统与外界交换信息的媒介,并将系统与系统环境中的变化

17、隔离开。表示方式如下:,第五章 类图和对象图,47,.6 边界类、控制类和实体类 2、实体类(entity class):保存要放进数据库、文件等持久存储体的信息。实体对象是实体类的实例,被用来保存或更新关于某个现象的信息,他是持久性的。通常独立于应用程序 每个实体类对应数据库中的表,实体类中的属性对应数据库中表的字段,第五章 类图和对象图,48,.6 边界类、控制类和实体类 2、实体类(entity class): 表示方式如下:,第五章 类图和对象图,49,.6 边界类、控制类和实体类 3、控制类(control class):用来为特定于一个或几个用例的控制行为的建模的类。(负责其他类工

18、作的类) 表示方式如下:,第五章 类图和对象图,50,.6 边界类、控制类和实体类 3、控制类(control class) 控制类通常是依赖与应用程序的类,它封装了特定于用例的行为。控制对象是控制类的实例,它经常控制其他的对象,所以控制对象的行为是协调类型的,控制类协调实现用例的规定行为所需要的事件。一般每个用例都通过控制类控制用例中事件的顺序。控制类可以在多个用例间共享。,第五章 类图和对象图,51,.7 类图 类图(Class Diagram ):是描述类、接口、协作以及他们之间关系的图。 类图是系统静态视图的一部分,静态视图包含许多类图。静态视图用于为软件系统进行结构建模,它构造系统的

19、词汇和关系,而结构模型的可视化就是通过类图来实现的,第五章 类图和对象图,52,.7 类图 类图包含:类接口协作依赖、泛化、实现或关联等关系,第五章 类图和对象图,53,.7 类图 类图可以包含有注释、约束等,也可以包含子系统,第五章 类图和对象图,Interface,Collaboration,类图,泛化关系,依赖关系,54,.7 类图 类图抽象层次:根据在软件开发的不同阶段类图有概念层、说明层、实现层三个层次概念层(conceptual):描述应用领域中的概念。类可以从问题域中的概念得出。在画概念层类图时,很少考虑实现的问题,所以一般独立于实现它的软件和程序设计语言。(一般只有一个类名),

20、第五章 类图和对象图,55,.7 类图 类图抽象层次: 说明层(Specification):描述软件的接口部分,不描述软件的实现部分。OO开发方法非常重视区别接口和实现,但在实际开发过程中常常忽略这一差异。一般要求用一个类型描述一个接口,这个接口可能因为实现环境、运行特性或者用户的不同而具有多种实现。,第五章 类图和对象图,56,.7 类图 类图抽象层次: 说明层(Specification):说明层类图有类名、属性名和方法名,但对属性没有类型说明,也没有指明方法的参数和返回类型。,第五章 类图和对象图,57,.7 类图 类图抽象层次: 实现层(Implementation):真正有类的概念

21、,揭示软件的实现部分。(对属性和方法都有详细的描述),第五章 类图和对象图,58,.7 类图 类图应用:类图描述了系统的静态视图,主要支持系统的功能需求-系统应该提供给用户的服务类图可以描述以下三种建模: 为系统的词汇表建模 为简单的协作建模 为逻辑的数据库模式建模,第五章 类图和对象图,59,.7 类图 类图应用(续): 1、为系统的词汇表建模 用UML构建系统通常是从构造系统的基本词汇开始,用于描述系统的边界,用来决定那些抽象是要建模系统的一部分,那些是处于要建模系统之外。系统最基本的元素在这里被确定,系统分析师可以用类图描述抽象和它们的职责。,第五章 类图和对象图,60,.7 类图 类图

22、应用: 2、对简单协作建模 所要构造的软件系统中的类很少有孤立存在的,他们总是和其他的类协同工作,以实现强于单个类的语义,所以在抽象了系统词汇后,系统分析师还必须将这些词汇中的事物系统工作方式可视化和详述,第五章 类图和对象图,61,.7 类图 类图应用: 2、对简单协作建模 在协同建模时,要遵循如下几个方面的策略 识别要模拟的机制.一个机制描述了被建模的部分系统的一些功能和行为,这些功能和行为由类、接口等元素交互作用产生的 对每种机制,识别参与协作的类、接口和其他协作,并识别他们间的关系,第五章 类图和对象图,62,.7 类图 类图应用: 2、对简单协作建模 在协同建模时,要遵循如下几个方面

23、的策略(续) 通过协作的脚本,发现建模的模型是否有被遗漏和有语义错误,并更改 得出相应类的对象,并确定具体的属性和操作。,第五章 类图和对象图,63,.7 类图 类图应用 3、为逻辑的数据库模式建模 在对软件系统进行建模时,要定义系统的动态行为,还需要为动态行为所操作的数据指定相应的格式,这些数据通常被永久保存在数据库中,以便以后检索,传统的逻辑数据库建模工具“实体-关系(E-R)”图只针对数据,而UML的类图允许对行为建模,第五章 类图和对象图,64,第五章 类图和对象图,65,.7 类图 类图应用 3、为逻辑的数据库模式建模 在为数据库建模时,要遵循如下几个方面的策略(一) 在系统中确定的

24、类,他的状态必须操作其应用系统生命周期。 创建包含这些类的类图,并把它们标记成永久性的(persistent),第五章 类图和对象图,66,.7 类图 类图应用 3、为逻辑的数据库模式建模 在为数据库建模时,要遵循如下几个方面的策略(二) 展开这些类的结构信息,即详细的描述属性的细节,并注重关联和构造类的基数 观察系统中的公共模式(循环关联、一对一关联等)它们往往使物理数据库设计复杂化。如有必要,需要创建简化逻辑结构中的抽象。,第五章 类图和对象图,67,.7 类图 类图应用 3、为逻辑的数据库模式建模 在为数据库建模时,要遵循如下几个方面的策略(三) 考虑这些类的行为,扩充那些对于数据存储和

25、数据完整性很重要的操作 如果有可能,通过工具把逻辑设计换成物理设计,第五章 类图和对象图,68,.7 类图 类的确定方法(一): 根据用例描述中的名字确定类的候选者 使用类、职责和协作分析法寻找类 对边界类、控制类和实体类的划分来帮助发现系统的类,第五章 类图和对象图,69,.7 类图 类的确定方法(二): 对领域进行分析,或利用以后的领域分析结果得到类 参考设计模式来确定类 根据其他软件开发过程提供的指导原则寻找类,第五章 类图和对象图,70,.7 类图 建立类图的步骤 研究分析问题的领域,确定系统的需求 确定类,明确类的含义和职责,确定属性和操作 确定类间的关系,把类之间的关系用关联、泛化

26、、聚集、组合、依赖等关系表达出来 调整和细化已得到的类和类之间的关系 绘制类图并增加相应的说明。,第五章 类图和对象图,71,.7 类图 领域分析(domain analysis): 通过对某一领域中的已有应用系统、理论、技术、开发历史等研究。来标识、收集、组织、分析和表示领域模型及软件体系结构的过程 根据以上进行的过程得到结果 也被称为问题分析(problem domain analysis),第五章 类图和对象图,72,课堂作业一: 1.食堂吃饭卡,有那些类,每个类分别有那些属性和操作 2.为食堂用餐建类图,第五章 类图和对象图,73,.8 OO设计的原则 OO设计根本的指导原则是提高可维

27、护性和可复用性。这些原则主要有: 开闭原则(Open/Closed Principle,OCP) 里氏Liskov替换原则(Liskov Substitution Principle,LSP) 依赖倒置原则(Dependency Inversion Principle,DIP) 接口分离原则(Interface Segregation Principle,ISP),第五章 类图和对象图,74,.8 OO设计的原则 1、开闭原则开闭原则指的是一个模块在扩展性方面是开放的,在更改性方面是封闭的. 开闭原则实际上是对“对可变性的封闭原则“:找到一个系统的可变因素,将之封装起来。这个原则意昧着两点:,

28、第五章 类图和对象图,75,.8 OO设计的原则 1、开闭原则1) 一个可变性不应当散落在代码的很多角落里,而应当被封装到一个对象里面。同一种可变性的不同表象意昧着同一个继承等级结构中的具体子类。 继承就当被看作是封装变化的方法,而不应当被认为是从一般的对象生成特殊对象的方法。,第五章 类图和对象图,76,.8 OO设计的原则 1、开闭原则2) 一种可变性不应当与另一种可变性混合在一起。(所有类图的继承结构一般不会超过两层,不然就意昧着将两种不同的可变性混合在了一起。) 开闭原则是总的原则,其它几条是开闭原则的手段和工具。,第五章 类图和对象图,77,.8 OO设计的原则 1、开闭原则,第五章

29、 类图和对象图,t printer,canon,Print(),Epson,Print(),hp,Print(),output,Print(),78,.8 OO设计的原则 2、里氏liskov替换原则子类可以替换父类出现在父类可以出现的任何地方. 开闭原则的关键步骤是抽象化。而基类与子类的继承关系就是抽象化的具体体现,里氏替换原则是对实现抽象化的具体步骤的规范。,第五章 类图和对象图,79,.8 OO设计的原则 3、依赖倒置原则依赖倒转原则讲的是:要依赖于抽象,不要信赖于实现 。 在结构化设计里,高层次的模块通过调用低层次的模块来实现.在OO里面与具体有关的类都是依赖于抽象类或接口,第五章 类

30、图和对象图,80,.8 OO设计的原则 3、依赖倒置原则依赖倒转的缺点: 1) 因为依赖倒转的缘故,对象的创建很可能要使用对象工厂,以避免对具体类的直接引用,此原则的使用还会导致大量的类。对不熟悉面向对象技术的工程师来说,维护这样的系统需要较好地面向对象的设计知识。,第五章 类图和对象图,81,.8 OO设计的原则 3、依赖倒置原则依赖倒转的缺点(续): 2) 依赖倒转原则假定所有的具体类都是会变化的,这也不总是正确的。有一些具体类可能相当稳定、不会发生变化,消费这个具体类实例的客户端完全可以依赖这个具体类型,而不必为此发明一个抽象类型。,第五章 类图和对象图,82,.8 OO设计的原则 4、

31、接口分离原则应当为客户端提供尽可能小的单独接口,而不要提供大的总接口。也即是使用多个专门的接口比使用单一的总接口要好。 接口隔离原则与迪米特都是对一个软件实体与其他的软件实体的通信限制。迪米特原则要求尽可能地限制通信的宽度和深度,接口隔离原则要求通信的宽度尽可能地窄。这样做的结果使一个软件系统在功能扩展过程当中,不会将修改的压力传递到其他对象。,第五章 类图和对象图,83,.8 OO设计的原则 4、接口分离原则一个接口相当于剧本中的一种角色,而此角色在一个舞台上由哪一个演员来演则相当于接口的实现。因此,一个接口应当简单地代表一个角色,而不是多个角色。如果系统涉及到多个角色的话,那么每一个角色都

32、应当由一个特定的接口代表。,第五章 类图和对象图,84,.9 对象图(Object Diagram) 对象图:表示某一时刻一组对象及他们之间的关系的图.可以看成是类图在某一时刻的实例,通过对象图了解系统在某个特定时刻的具体情况. 对象图由节点和连接这些节点的连线组成.,第五章 类图和对象图,objectyt1,objectyt2,85,.9 对象图(Object Diagram) 对象图用途: 捕获实例和连接 在分析和设计阶段创建 捕获交互的静态部分 举例说明数据/对象结构 详细描述瞬态图 由分析人员、设计人员和代码实现人员开发,第五章 类图和对象图,86,.9 对象图 描述公司的部门分组对象图,第五章 类图和对象图,C:Company,D1:Department,Name=”sale”,D2:Department,Name=”HR”,D3:Department,Name=”Product”,D4:Department,Name=”CN Sales”,87,课堂作业: 请设计出学校机构的对象图,第五章 类图和对象图,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报