《UML系统建模基础教程_教学资料07》由会员分享,可在线阅读,更多相关《UML系统建模基础教程_教学资料07(40页珍藏版)》请在金锄头文库上搜索。
1、重点内容:类图与对象图的基本概念 类图的组成 使用ROSE创建类图对象图 使用Rose创建类图案例分析,第7章 类图和对象图,一、类图与对象图的基本概念,类图(Class diagram)显示了系统的静态结构,而系统的静态结构构成了系统的概念基础。 类图,就是用于对系统中的各种概念进行建模,并描绘出它们之间关系的图。 在大多数的 UML 模型中,我们可以将这些概念的类型概括为以下四种,分别是: 1 类 2 接口 3 数据类型 4 构件,1、类图的含义,一、类图与对象图的基本概念,在类图中,具体来讲它一共包含了以下几种模型元素,分别是:类、接口、依赖关系、泛化关系、关联关系以及实现关系。 类图可
2、以创建约束、注释和包等。,1、类图的含义,一、类图与对象图的基本概念,对象图中包含对象(Object)和链(Link)。其中对象是类的特定实例,链是类之间关系的实例,表示对象之间的特定关系。,2、对象图的含义,一、类图与对象图的基本概念,类图与对象图的区别:,2、对象图的含义,一、类图与对象图的基本概念,类图的作用是对系统的静态视图进行建模。当对系统的静态视图进行建模时,通常是以以下三种方式来使用类图。 1 为系统的词汇建模。 2 模型化简单的协作。 3 模型化逻辑数据库模式。,3、类图在项目开发中的作用,一、类图与对象图的基本概念,对象图作为系统在某一时刻的快照,是类图中的各个类在某一个时间
3、点上的实例及其关系的静态写照,可以通过以下几个方面来说明它的作用: 1 说明复杂的数据结构。对于复杂的数据结构,有时候很难对其进行抽象成类表达之间的交互关系。使用对象描绘对象之间的关系可以帮助我们说明复杂的数据结构某一时刻的快照,从而有助于对复杂数据结构的抽象。 2 表示快照中的行为。通过一系列的快照,可以有效表达事物的行为。,4、对象图在项目开发中的作用,二、类图的组成,类是面向对象系统组织结构的核心。类是对一组具有相同属性、操作、关系和语义的事物的抽象。 在UML的图形表示中,类的表示法是一个矩形,这个矩形由三个部分构成,分别是:类的名称(Name)、类的属性(Attribute)和类的操
4、作(Operation)。,1、类,二、类图的组成,类的名称是每个类的图形中所必须拥有的元素,用于同其它类进行区分。类的名称通常来自于系统的问题域,并且尽可能地明确表达要描述的事物,不会造成类的语义冲突。,1、类,类的名称,二、类图的组成,属性是类的一个特性,也是类的一个组成部分,描述了在软件系统中所代表的对象具备的静态部分的公共特征抽象,这些特性是这些的对象所共有的。 在UML中,类的属性的表示语法为( 内的内容是可选的): 可见性 属性名称 :属性类型 =初始值 属性字符串,1、类,类的属性,二、类图的组成,(1)可见性:,1、类,类的属性,可见性用以下可视性标记表示: + (公有,pub
5、lic) # (保护,protected) (私有,private),属性名是区别于类中的其他属性的名字。 如“性别”,“年龄”等等。属性名也可为数组形式,如颜色3。,(2)属性名称:,按照UML约定,属性名称的第一个字母小写,如果属性名称包含多个单词,则这些单词要合并,并且除了第一个英文单词外其余单词的首字母要大写。,可见性 属性名称 :属性类型 =初始值 属性字符串,二、类图的组成,(3)属性类型:,1、类,类的属性,属性类型为属性的类型,如Integer,float,bool等。,初始值为属性默认的值。,(4)初始值:,属性字符串是用来指定关于属性的一些附加信息,比如某个属性应该在某个区
6、域有限制。任何希望添加在属性定义字符串中但又没有合适地方可以加入的规则,都可以放在属性字符串中。,在UML中,类的属性可以是任意的类型,包括系统中定义的其他类,都可以被使用。,(5)属性字符串:,可见性 属性名称 :属性类型 =初始值 属性字符串,二、类图的组成,例如 +name:String #sex:String=“男” -score3:float 对应的代码为: public: String name; protected: String sex=“男”; private: float score3;,1、类,类的属性,二、类图的组成,操作指的是类的所能执行的操作,也是类的一个重要组成部
7、分,描述了在软件系统中所代表的对象具备的动态部分的公共特征抽象。 操作由一个返回类型、一个名称以及参数表来描述。其中,返回类型、名称和参数一起被称为操作签名(Signature of the Operation)。操作签名描述了使用该操作所必需的所有信息。在UML中,类的操作的表示语法为( 内的内容是可选的): 可见性 操作名称 (参数表) :返回类型 属性字符串,1、类,类的操作,二、类图的组成,可见性 操作名称 (参数表) :返回类型 属性字符串(1)参数表:参数表是可选项目,即一个操作可以有参数,也可以没有参数。 参数表由逗号分隔的操作的形式参数组成,其格式为: 参数名 : 类型 = 初
8、始值, 例如:x:int=0 ,y:int=0 对应的代码为 int x=0,y=0(2)返回类型: 返回类型是函数的返回值的类型。(3)属性字符串 属性字符串用来附加一些关于操作的除了预定义元素之外的信息,方便对操作的一些内容进行说明。,1、类,类的操作,二、类图的组成,例如: 类的定义如下: public class Circle private: int Center; float radius; public: Circle(); float area(float ratio); float scale(); void move(Point location);,1、类,类的操作,Ci
9、rcle - Center: int -radius: float +Circle() +area(ratio:float):float +scale():float +move(location:Point),二、类图的组成,在标准的UML定义中,有时还应当指明类的另一种信息,那就是类的职责。类的职责指的是对该类的所有对象所具备的那些相同的属性和操作共同组成的功能或服务的抽象。 在声明类的职责的时候,可以非正式的在类图的下方增加一栏,将该类的职责逐条描述出来。类的职责的描述并不是必须的,因此也可以将其作为文档的形似存在,也就是说类的职责其实只是一段或多段文本描述。一个类可以有多种职责,设计得
10、好的类一般至少有一种职责。,1、类,类的职责,二、类图的组成,类的约束指定了该类所要满足的一个或多个规则。在UML中,约束是用一个大括号括起来的文本信息。,1、类,类的约束,二、类图的组成,1、类,类的注释,二、类图的组成,2、接口,接口是在没有给出对象的实现和状态的情况下对对象行为的描述。通常,在接口中包含一系列操作但是不包含属性,并且它没有对外界可见的关联。 接口是一种特殊的类,所有接口都是有构造型的类。一个类可以通过实现接口从而支持接口所指定的行为。 在UML中,接口的表示方式是使用一个带有名称的小圆圈来进行表示的,并且我们可以通过一条Realize(实现关系)线与实现它的类相连接 接口
11、之间也有泛化关系。同样用带有空心三角箭头的线段表示。,二、类图的组成,3、类之间的关系,类与类之间的关系最常用的通常有四种,它们分别是依赖关系(Dependency)、泛化关系(Generalization)、关联关系(Association)和实现关系(Realization)。,二、类图的组成,3、类之间的关系,依赖表示的是两个或多个模型元素之间语义上的连接关系。它只将模型元素本身连接起来而不需要用一组实例来表达它的意思。 它表示了这样一种情形,提供者的某些变化会要求或指示依赖关系中客户的变化。也就是说依赖关系将行为和实现与影响其他类的类联系起来。 依赖关系发生在一个类的元素使用了另一个类
12、。,依赖关系,二、类图的组成,3、类之间的关系,依赖关系,例如:,二、类图的组成,3、类之间的关系,依赖关系,例如:,class Air public void releasePower() /. class Human public void breath() Air freshAir = new Air(); freshAir.releasePower(); public static void main() Human me = new Human(); me.breath(); ,二、类图的组成,3、类之间的关系,泛化关系是用来描述类的一般和具体之间的关系(继承关系)。具体描述建立在对
13、类的一般描述的基础之上,并对其进行了扩展。因此,在具体描述中不仅包含一般描述中所拥有的所有特性、成员和关系,而且还包含了具体描述补充的信息。 泛化关系是使用从子类指向父类的一个带有实现的箭头来表示的,指向父类的箭头是 一个空三角形。,泛化关系,二、类图的组成,3、类之间的关系,关联关系是一种结构关系,指出了一个事物的对象与另一个事物的对象之间的语义上的连接。 关联描述了系统中对象或实例之间的对应关系。一个类的关联的任何一个连接点都叫做关联端,与类有关的许多信息都附在它的端点上。关联端有名称、角色、可见性以及多重性等特性。,关联关系,二、类图的组成,3、类之间的关系,多重性是指在关联关系中,一个
14、类的实例与另外一个类的实例之间的数量上的对应关系。,关联关系,二、类图的组成,3、类之间的关系,关联关系还有两种非常重要的形式,分别为聚集(Aggregation)关系和组成(Composition)关系。 聚集(Aggregation)关系描述的是部分与整体关系的关联。在UML中,它用端点带有空菱形的线段来表示,空菱形指向“整体”。,关联关系,二、类图的组成,3、类之间的关系,组成(Composition)关系则是一种更强形式的关联,也称为强聚合关系。在组合关系中“部分”不能脱离“整体”而独立存在。 在UML中,组合关系使用带实心菱形头的实现来表示,其头部指向“整体”。,关联关系,二、类图的组成,3、类之间的关系,实现关系将一种模型元素(如类)与另一种模型元素(如接口)连接起来,是说明和其实现之间的关系。 在实现关系中,接口只是行为的说明而不是结构或者实现,而类中则要包含了其具体的实现内容,可以通过一个或多个类实现一个接口,但是每个类必须分别实现接口中的操作。在UML中直接用接口道类之间的实线段来表示。而类与类之间的实现关系用带空心三角箭头的虚线连接,三角箭头指向基础类。,实现关系,三、使用Rose创建类图,