UML-CHP03_类图_第1页
UML-CHP03_类图_第2页
UML-CHP03_类图_第3页
UML-CHP03_类图_第4页
UML-CHP03_类图_第5页
已阅读5页,还剩81页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、东北石油大学软件学院高俊涛高俊涛 副教授副教授面向对象建模提纲3.13.1对象和类对象和类3.23.2如何阅读类图如何阅读类图3.33.3如何绘制类图如何绘制类图3.4 3.4 对象图对象图3.5 3.5 本章小结本章小结面向对象建模对对象象(Object)有些对象在真实世界中有对等事物,如:苹果、学校、企业。另一些对象则是抽象的概念实体,如:一元二次方程、约束规则、坐标。对象对象行为行为状态状态+ 对象是具有明确语义,并封装了状态和行为的实体。对象是具有明确语义,并封装了状态和行为的实体。面向对象建模CustomerSalesmanProduct面向对象建模类类(Class)类描述了一组拥有

2、相同特性和行为的对象。类描述了一组拥有相同特性和行为的对象。属性(attribute)定义对象所具有的特性。操作(operation)是一个和对象属性相关的函数或过程。类名类名属性属性操作操作属性属性可见性可见性操作操作可见性可见性面向对象建模类图类图显示一组类、接口、协作以及它们之间关系的图。用于对系统静态设计视图建模。类图通常包含下述内容:类接口协作关联关系依赖泛化面向对象建模先看清有哪些类,然后看看类之间存在的关系,并结合多先看清有哪些类,然后看看类之间存在的关系,并结合多重性来理解类图的结构特点以及各个属性和方法的含义。重性来理解类图的结构特点以及各个属性和方法的含义。 面向对象建模读

3、出类:图中共有读出类:图中共有7 7个类:物料需求计划、采购计划、个类:物料需求计划、采购计划、供应商、采购订单、物料信息、供应商商品、订单项。供应商、采购订单、物料信息、供应商商品、订单项。读出关系:从图中关系最复杂(也就是线最密集)的类读出关系:从图中关系最复杂(也就是线最密集)的类开始阅读,本图中最复杂的就是采购计划、供应商、采开始阅读,本图中最复杂的就是采购计划、供应商、采购订单这三个类。购订单这三个类。1 1)采购计划由物料需求计划生成,每个采购计划都要)采购计划由物料需求计划生成,每个采购计划都要选择落实供应商,并最终下达采购订单。选择落实供应商,并最终下达采购订单。2 2)对同一

4、供应商可以下达多个采购订单。)对同一供应商可以下达多个采购订单。 3 3)每个采购订单由多个订单项组成。)每个采购订单由多个订单项组成。面向对象建模多重性:用来说明关联的两个类之间的数量关系多重性:用来说明关联的两个类之间的数量关系 源源类类及及多重性多重性目目标类标类及及多重性多重性说说明明物料需求物料需求计计划划(1.n)采采购计划购计划(1)采采购计划购计划可以由多可以由多个个物料需求物料需求计划计划合合并并生成。每生成。每个个采采购计划购计划至少源于一至少源于一个个物料需求物料需求计划计划。物料需求物料需求计计划划0.n)物料信息物料信息(1)每每个个物料需求物料需求计划计划在制定在制

5、定时时都要都要参参考,一考,一个个物料需物料需求求计划计划可以在多次物料需求可以在多次物料需求计划计划制定制定时时被被参参考。考。供供应应商商(1)供供应应商商品商商品(1n)一一个个供供应应商可以提供多件商品,每件商品必商可以提供多件商品,每件商品必须标须标明明它它的供的供应应商。商。供供应应商商(1)采采购订单购订单(0n)每每个个供供应应商可以下商可以下达达多多个个采采购单购单,每,每个个采采购单购单必必须须指定供指定供应应商。商。采采购订单购订单(1)订单项订单项(1n)每每个个采采购订单购订单可以包含多可以包含多条订单项条订单项,每,每条订单条订单只能只能出出现现在某在某个个采采购订

6、单购订单中,不能中,不能独独立存在。立存在。面向对象建模供应商类的操作选择可以实现将供商信息和采购计划绑供应商类的操作选择可以实现将供商信息和采购计划绑定到一起的功能。定到一起的功能。面向对象建模面向对象建模类图中的基本元素1.1.类类: :对一类具有相同特征的对象的描述,描述一类对象的属性和行为。2.关联关系:表示类之间存在某种语义上的联系。3.聚集关系:表示类之间的关系是整体与部分的关系。4.组成关系:表示整体拥有各部分,部分与整体共存,如整体不存在了,部分也会随之消失。5.继承关系:表示类之间存在分类关系。部部门门公公司司1 1. . .n n1 11 1. . .n n1 1图形图形圆

7、形圆形矩形矩形棱形棱形面向对象建模6、依赖关系:表示这样一种关系,即修改元素X的定义可能会引起对另一个元素Y的定义的修改。7.包:根据一定的分类原则对类进行划分,是类的集合。8.接口:平平时时成成绩绩最最终终成成绩绩基本实体基本实体面向对象建模类图中的基本元素6.依赖关系:表示这样一种关系,即修改元素X的定义可能会引起对另一个元素Y的定义的修改。7.包:根据一定的分类原则对类进行划分,是类的集合。8.对象:描述客观世界中某个具体的实体,是类的实例。9.链接:用于表示对象间的关联关系的一个实例。面向对象建模类类之之间关间关系的表示系的表示为了使系统能够有效地映射问题域,需认识并描述对象之间的以需

8、认识并描述对象之间的以下下5 5种关系种关系:关联组成(整体-部分结构)聚集(整体-部分结构)泛化依赖类1类1类2类2类3类3类4类4类5类5类6类6类7类7类8类8类9类9类10类10面向对象建模对象之间的几种关系五种具体的关系常用以下概念进行总结对象的分类关系分类关系;对象之间的组成关系组成关系;对象属性之间的静态关系静态关系;对象行为之间的动态关系动态关系OO方法运用一般-特殊结构、整体-部分结构、实例连接和消息连接描述对象之间的以上四种关系面向对象建模关联和链链链是存在于两个对象之间的关系,关联关联则是存在于两于类之间的关系。对象是类的实例,链是关联的实例。关联描述的是规则,而链描述的

9、是事实。关联和链有三种不同的形式:关联聚集组成面向对象建模关联和链 面向对象建模关联一个完整的关联定义包含三个部分, 即类之间的关联直线和两个关联端点。关联直线和关联名称定义了该关系的标志和目的。关联端点定义了参与关联的对象遵循的规则,关联端点具有自已的属性,如多重性、约束和角色。关联端点关联端点面向对象建模关联名称( (动词动词命名命名) )每个关联上必须必须具有一个名称,表示关联的真实含义。关联用一条无向线段表示,代表一种双向关联。关联常以动词形式命名动词形式命名,表达两类之间的动态活动,为消除名称歧义,可以提供一个名称方向(不是导航)。面向对象建模关联名称( (名名词词命名命名) )因为

10、关联作用在类上,以名词命名名词命名关联引出新的类考察可能具有的属性(关联的属性):学号课程号上课时间上课地点面向对象建模关联类把关联本身作为一个类,把关联的属性和操作加在关联上面,称为类和类的关联类。面向对象建模关联端点关联端点的特征及属性角色接口说明符可见性多重性定序约束限定符导航性可变性面向对象建模关联角色每个关联有两个角色,也称有两个方向。角色是关联中一端的类对另外一端的类呈现的职责一个角色可以由多个对象来扮演为了明确对象在关联中的角色,可以为角色命名面向对象建模接口说明符类定义了许多操作,称为类的接口。接口就是操作,而实现则被称为方法。多个对象拥有相同操作但实现方法却各不相同的特征称为

11、多态性。面向对象建模可见性对角色名添加可见性符号可以三个级别上描述关联端点的可见性- 私有 (Private)关联端对象对关联外部的任何对象都 是不可访问的+ 公有 (Public)# 保护 (Protected)关联端对象对关联外部除另一端的子孙外的任何对象来说都是不可访问的面向对象建模关联多重性说明一个关联的实例中有多少个相互连接的对象,用来表达对象个数的范围特定值、无限定范围或一组离散值。 1 (1) 0或1 (0.1) 很多 (0.n) 1个或很多 (1.n) 精确指定 (3)面向对象建模导航从一个类的对象可以导航到另一个类的对象。除非另有规定,否则导航是双向的。但有些情况要限定单向导

12、航从学生对象以导航到教师对象,但从教师对象不需要识别学生对象。面向对象建模自身关联自身关联描述的是同一个类的对象之间的关系。面向对象建模整体-部分结构它描述对象之间的组成关系,即:一个对象是另一个对象的组成或部分。客观世界中存在许多这样的现象,聚集聚集表示事物的部分整体关系较弱的情况组合组合表示事物的部分整体关系较强的情况聚集和组合是一种特殊的关联聚集和组合是一种特殊的关联( (具有关联的所有特征具有关联的所有特征) )面向对象建模聚集聚集定义了一种明确的等级关系,一组元素组成了一个更大、更复杂的单元。聚集中的对象必须有一个控制点,也就是一个控制对象,它是所有对象的接口,负责协调对象的行为。聚

13、集是关联的子集,是关联的特化,具有普通关联之外的特征。面向对象建模聚集的特征聚集用于定义和保护对象配置的完整性。聚集定义了一种构造关系,从而把对象的集合看成一个统一的单元处理。聚集将其中的一个对象定义成控制对象为整个集合提供接口,为集合内部对象的行为起指导作用。即通过一个对象控制:依次向下传播。面向对象建模聚集一个部分对象可以属于多个整体对象一个部分对象可以属于多个整体对象,并具有不同的生存周期。所属关系是可以动态变化的。整体对象整体对象部分对象部分对象面向对象建模组成组成是聚集的一种特殊关系,是更强形式的聚集关系。在组合中成员对象的生命周期取决于整体的生命周期。整体不仅控制着成员对象的行为,

14、而且控制着成员对象的创建和解构。所以组合也称为强聚集。面向对象建模组成组成组成表示事物的部分整体关系较强较强的情况。具有强的拥有关系,表示一个实体的分解。整体与部分的生命周期是一致的。一个对象在一个时间内只能是一个组合的一部分。整体要负责对它各个部分的处理及各个部分对象的创建与撤消。面向对象建模组 成考虑组成的部分整体关系,可以用整体移动时,部分是否跟随移动来决定。如果整体及部分一起移动则为组合关系,否则为聚集关系。面向对象建模组成用部分对象类作为一种广义数据类型定义整体对象类的一个属性,一个部分对象只能属于唯一的整体对象一个部分对象只能属于唯一的整体对象,并与它同生同灭。如果一个采购定单被删

15、除,那么采购订单所包含的订单项也随之消除。(体现部分整体关系较强较强的情况)部分对象部分对象整体对象面向对象建模关联、聚集和组成之间的关系关联可以被精化模拟一种限制严格的关系:聚集聚集聚集还可以被进一步精化模拟限制更严格的关系:组成组成关联关联:对象之间互相了解,以便能够在一起工作。聚集聚集:保护配置的完整性如同一个单元在运作通过一个对象控制依次向下传播组成组成:每部分只能是一个配置的成员该部分不能在配置之外存在面向对象建模聚集的语义聚集的目标是保护对象集合的完整性。聚集定义了一个单独的控制点,该对象是控制对象,它指导聚集中所有其他对象的活动。对于控制点的任何指令,该集合都像一个单一对象一样进

16、行工作。使用集合的程度越高,就越能节省时间,也减少了使用或改变聚集对象时可能发生的风险。随着集合中对象和行为的增加,使用控制点和把整个集合作为一个单一单元来使用的方法降低了应用程序的复杂度和维护费用。面向对象建模聚集和组成的实现聚集和组成是设计层次不是实现方面的概念,找不到编码意义上的等价物。面向对象建模泛化(继承)如果类A具有类B的全部属性和全部服务,而且具有自己特有的某些属性或服务,则A叫做B的特殊类(子类),B叫做A的一般类(超类)。类B类B类A类A面向对象建模泛化(继承)泛化是对目的相同的各种对象的特性进行组织的过程。泛化是对许多对象共有特性的描述。泛化不是关联,所以不会使用关联的任何

17、特征或规则。一般描述和具体描述之间的关系,具体描述建立在一般描述的基础之上,并对其进行了扩展。具体描述与一般描述完全一致,具有其所有特性、成员和关系,并且包含补充的信息。面向对象建模与泛化有关的概念超类子类抽象类具体类判别式面向对象建模超类超类包含了两个或更多目的相同对象的特征。水果和苹果类是超类。水果水果苹果苹果西瓜西瓜桔子桔子国光苹果国光苹果黄元帅苹果黄元帅苹果面向对象建模子类子类包含了某种类型对象独有的特征,这种类型的对象是被超类所定义的。一个类即可以是超类,同时又可以是其它超类的子类。苹果是水果的子类,同时又是红香蕉和黄梨苹果的超类。水果水果苹果苹果西瓜西瓜桔子桔子国光苹果国光苹果黄元

18、帅苹果黄元帅苹果面向对象建模判别式判别式是一种属性或规则,它描述如何为一个超类划分子类描述如何为一个超类划分子类的集合的集合。判别式的选择取决于要解决的问题。面向对象建模判别式每个类都定义了一组特征,这些特征都有可能用来定义判别式。判别式用来作为如何区分超类的子类的规则。区分超类的子类至少有有六个标准:属性类型属性的取值范围操作方法关联链面向对象建模依赖依赖代表的是一种客户提供者的关系。依赖性还可以代表先决条件。面向对象建模 依赖依赖(dependency)是一种使用关系其中一个类只是使用另一个类作为它的操作参数。从含有操作的类指向被该操作当做参数使用的类。面向对象建模依赖含义的细微差别UML

19、UML定义了定义了1717个依赖的构造型个依赖的构造型( (分为六组分为六组) )1. 类图中的类和对象间的8个构造型依赖关系2. 应用到包之间的两个构造型依赖关系3. 例之间的两个构造型依赖关系4. 对象之间的交互建模时3个构造型5. 状态机的语境中要用到的一个构造型(发送)6. 系统的元素组织成子系统和模型的语境中用到的一个构造型(跟踪)面向对象建模接口的概念在软件中,以清晰的关注分离来建造系统是很重要的,这使得在系统演化时改变系统的一部分不会影响和破坏系统的其余部分。重要的方法是清楚地描述系统的接缝,即在能够独立变化的那些部分之间画出界线。 面向对象建模接口的定义接口是一组外部可访问的操

20、作,用于为对象类或组件提供服务。接口只是某个类全部操作的一个子集,并不一定要包括类的所有操作。接口是类的变体接口是类的变体。根据定义,它只能拥有操作,不能拥有属性。因此通过接口连接的类或部件之间的耦合是松散耦合。面向对象建模接口的图形表示由于接口的记名变体表示形式使用了类的标准图符,所以可以在此图符的操作分隔区内列出接口的操作的定义。由于接口不得拥有属性,所以接口的记名变体形式的属性分隔区必须为空。车辆面向对象建模接口的名字和接口操作每个接口必须被指定一个名字,用以区分不同的接口。接口是类的变体,因此接口的名字就是类的名字。接口定义一个类提供给外界的运算,而不揭示具内在结构或具体实施。要用接口

21、时,一个具体的类必须对它作实施。USB接口USB接口USB打印机USB打印机USB扫描仪USB扫描仪USB硬盘USB硬盘面向对象建模在系统实现时,可以通过接口的定在系统实现时,可以通过接口的定义实现功能部件的替换或扩充。义实现功能部件的替换或扩充。面向对象建模接口的实现关系类和接口之间的关系被称为实现。实现关系意味着接口中的操作都是公有的。实现关系可以连接的分类符包括接口和类,接口和部件以及用例和协同。其中,接口规定了类或部件的动态行为,用例规定了协同的动态行为。面向对象建模包一个最古老的软件方法问题是:怎样将大系统拆分成小系统。解决这个问题的一个思路是将许多类集合成一个更高层次的单位,形成一

22、个高内聚、低耦合的类的集合。这个思路被松散地应用到许多对象技术中。UML中这种分组机制叫包(Package)。在类图中,包代表了一个子类图。打开一个包,则会出现一个新的类图编辑器。包名面向对象建模包的可见性类型包的可见性类型,表示对包外的元素该类是否可见。当目标语言为Java时,有以下四种选择;当目标语言为C时,仅有前三种。公有包 public私有包 private受保护包 protected在构件内可见的包 package面向对象建模包的合法连接1.从一个包到一个包可以创建一个依赖关系、泛化关系连接。2.从一个包到一个类可以创建一个依赖关系和泛化关系连接。3.从一个包到一个注释体可以创建一个

23、注释连接;或者从一个注释体到一个包可以创建一个注释连接。基本实体基本实体节日节日面向对象建模如何绘制类图第1步:找出对象类第2步:建立类之间的结构关系第3步:建立结构(关联)属性第4步:分解出操作,分配到对象类第5步:画出类图(用例的类簇)建立结构关系建立结构属性定义操作找出对象类绘制类图面向对象建模第第1 1步步: :找出找出对对象象类类找出对象类的方法与类对应的常常是名词或名词短语名词或名词短语。根据用例描述列出名词或名词短语列表,综合整理列表。根据用例描述,画出交互顺序图交互顺序图,找出用例中的对象类。有三种类:边界类:表示相关的行为控制类:关心复杂的行为(特征主要表达为通信)实体类:用

24、来描述复杂的数据结构(特征主要表达为关系)实体对象和控制对象相互交流共同实现用例面向对象建模找出对象类找出对象类: :实例实例各部门每月上报一次物料需求计划物料需求计划,采购部门采购部门进行物料需求计划的物料合并生成采购计划采购计划,由财务部门和采购部门进行采购计划的审核和批准,审核批准后由采购部门根据采购计划选择落实供应商供应商并生成采购订单采购订单以传真形式向供应商下达采购订单(扩展:网上发布订单)物料需求计划物料需求计划采购计划采购计划供供应应商商采购订单采购订单面向对象建模找出对象类找出对象类: :实例实例 面向对象建模第第2 2步步: :建立建立类类之之间间的的关关系系在需求陈述中使

25、用描述性动词动词或动词词组动词词组,通常表示关联关系。因此,在初步确定关联时,大多数关联可以通过直接提取需求陈述中的动词词组而得出。面向对象建模建立类之间的关系建立类之间的关系:实例实例各部门每月上报一次物料需求计划,采购部门进行物料需求计划的物料合并,制定生成采购计划,由财务部门和采购部门进行采购计划的审核和批准,审核批准后由采购部门根据采购计划选择落实供应商并生成采购订单以传真形式向供应商下达采购订单(扩展:网上发布订单)物料需求计划物料需求计划采购计划采购计划供应商供应商采购订单采购订单1 11.n1.n1 11.n1.n生成生成1 1选择落实选择落实0.n0.n0.n0.n1 1下达下

26、达面向对象建模第第3 3步步: :建立建立结构结构( (关联关联) )属属性性分析陈述中的描述性动词或动词词组,考虑类的关联,建立结构(关联)属性可以进一步细化和完善类的结构。例如:各部门上报物料需求计划上报物料需求计划时要考虑增加物料信息类。在生成订单生成订单时,就要考虑增加订单项类。选择供应商选择供应商时,就要考虑增加供应商商品类。面向对象建模建立结构建立结构( (关联关联) )属性属性 面向对象建模第第4 4步步: :分解出操作分配到分解出操作分配到实实体体类类分解操作基本方法根据顺序图分解操作操作表格分解操作操作面向对象建模根据根据顺顺序序图图分解操作分解操作顺序图中的主要元素是对象和

27、消息。顺序图中的消息相当于源对象向目标对象发送了一条命令,此命令启动了目标对象的一个动作。目标对象是消息的接收者,同时也是消息指定动作的拥有者(封装)和执行者。根据事件流描述画出的顺序图列出了所有交互的对象,并且通过交互消息分解出所有对象的操作。面向对象建模表格分解操作表格分解操作 对象动作各部门采购部门物料需求计划采购计划供应商订单生成采购计划上报计划分类合并生成创建计划批准审核批准生成订单获取计划项选择生成创建订单下达下达面向对象建模第第5 5步步: :画画出出类图类图( (用例的用例的类类簇簇) )完整的类图包括:定义类的关联(描述类之间的关系:ER)定义类属性(DD)定义类操作优化类图 面向对象建模面向对象建模定定义类属义类属性和性和类类操作操作定义类的属性和操作。属性和操作是类的基本元素,它不是一次定义完整的,而是一个迭代的过程。尽量以封装的概念去定义类的属性和操作。面向对象建模确定确定属属性性 属性分为基本的3类:链接属性:用于构造类之间的结构状态属性:属性值是状态的各种标识对象特征属性:诸如名字、重量、速度和颜色。一般来说,确定属性的过程包含分析和选

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论