统一建模语言UML基础专题之类图和对象图_第1页
统一建模语言UML基础专题之类图和对象图_第2页
统一建模语言UML基础专题之类图和对象图_第3页
统一建模语言UML基础专题之类图和对象图_第4页
统一建模语言UML基础专题之类图和对象图_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、统一建模语言UML基础专题之类图和对象图类图表示不同的实体(人、事物和数据)如何彼此相关,显示了系统的静态结构。类图可用于表示逻辑类,逻辑类通常就是业务人员所谈及的事物种类,比如摇滚乐队、CD、广播剧,或者贷款、住房抵押、汽车信贷及利率的抽象描述。类图还可用于表示实现类,实现类就是程序员要编写的类。实现类图与逻辑类图可能会用来描述一些相同的类。然而,实现类图与逻辑类图不会使用相同的描述属性。类图是一个分为三个部分的矩形。最上面的部分显示类的名称,中间部分显示类的属性,最下面的部分显示类的操作(或者说“方法”)。实际上,最常用、最简单的类图就是一个在里面显示了类名的长方形,因为在UML中,大多数

2、类只要有一个能够清楚表达的命名就可以了。在类名部分还可以显示类的构造类型。类的构造型显示在一对双角括符号“ ”之间,经常放在类的名称上面。常见的构造类型包括实现类(直接显示类名)、接口(在类名上面显示 interface),以及工具类(在类名上面显示 utility)。如果类名用斜体表示,或者在类名下面标上abstract,就表示这个类是一个抽象类。在属性和方法的前面有一个字符用来表示属性或方法的作用域,它们的意义如下:“-”表示属性或方法是私有的(private);“#”表示属性或方法是保护的(protected);“+”表示属性或方法是公用的(public)。紧接在属性或方法的参数名称的冒

3、号(:)号之后,显示了属性的类型或方法的参数的类型。方法的返回值类型显示在方法后面的冒号之后。下图显示了一个类Person的类图,它对应的类的C#源代码如下:Person+name: string+sex: char-age: int+Work(in type: string): void+Person(in name: string, in sex: char, in age: int): void+Speak(): void+Eat(): void类图示意类图示意class Personpublic string name;public char sex;private int age;p

4、ublic Person(string name, char sex, int age)public void Eat()public void Speak()public void Work(string type)对象图用来表示类的实例化对象。对象图用一个两层的矩形来表示,上层标识对象名和类名,下层标识对象的实例化属性值。下面的代码将创建一个Person类的对象mary:Person mary = new Person(Mary, F, 24);对象mary的对象图如图所示:mary: Personname: string =Marysex: char =Fage: int =24对象图示

5、例在一个系统中,类之间存在多种关系,如下所示。 继承(inheritance):继承是指一个类从其父类派生而来,继承了父类的属性和方法。基于类的继承叫做一般化(generalization),基于接口的继承,叫做实现(realization)。 关联(association):类之间的关联大多用来表示变量实例持有对其他对象的引用,这种关系是半永久的,但没有包含关系。 依赖(dependency):依赖是不同类的实例之间的暂时关系。 聚合(aggregation):聚合是关联的一种特殊形式,它意味着一种整体/部分(whole/part)的关系,但是部分也可以作为其他整体的组分,而且部分和整体之间

6、也没有生命期的依赖。 组合(composition):组合是聚合的一种特殊形式,组合的关联性比聚合更强,部分只能作为唯一的一个整体的部分,而且部分的生命周期依赖于整体的生命周期。UML类图对这些关系的表示方法如图6-5所示。具有关联、聚合和组合关系的两个对象之间可能是没有数量关系的一种联系,也可能存在数量关系,比如1对1(不标识)、0个或1个(标识为01)、0个或多个(标识为0*或0n)、1个或多个(标识为1*或1n)或者确切的数字(直接标识数字)。图6-6显示了一个包含了图6-2中的对象的类图。其中包括一个继承关系和两个关联关系。CDSalesReport类继承自Report类。一个CDSa

7、lesReport类与一个CD类关联,但是CD类并不知道关于CDSalesReport类的任何信息。CD类和Band类都彼此知道对方,两个类彼此都可以与一个或者多个对方类相关联。UML类图之间的关系表示方法包含关系的类图下图显示了一个包含多种关系的类图的另一个例子。Person类实现了IHuman接口,Author类继承了Person类;Book类与Author类之间的关联是1对多的,即一本书可能有一个或多个作者;Person读书,这是一种暂时的单向依赖;Book由一个或多个Page组成,每一个Page只能作为一本Book的一部分,这是一种组合关系;Bookshelf里可以不放或者放多本Book,Book也可以放在其他的Bookshelf中,Bookshelf的存在并不能影响Book的存在性,这是一种聚合关系。一个包含多种关系的类图表示各对象之间的关系的对象图说明了系统在某一个特定时刻的状态,经常叫做系统的快照(snapshot)。内幕:UML与源代码UML是一种设计语言,它的目的不是表现细节,而是表现结构,仅仅展示必要的细节。因此,UML不可能与源代码一一对应,只存在结构上的对应关系。作为一种参考,下面列出了图6-7中的类图的C#源代码:interface IHumanclass Person : IHumanvoid Read(Book book)/ class

温馨提示

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

评论

0/150

提交评论