《UML类图对象图两者之间的异同ppt课件》由会员分享,可在线阅读,更多相关《UML类图对象图两者之间的异同ppt课件(37页珍藏版)》请在金锄头文库上搜索。
1、UML图类图、对象图 v类图描述系统中类的静态结构,它不仅定义系统中的类,描述类之间的联系,还包括类的内部结构类的属性和操作)。类图描述的是一种静态关系,在系统的整个生命周期中都是有效的。v对象图是类图的实例,几乎具有与类图完全相同的标识。它们的不同之处在于对象图显示类图的多个对象实例,而不是实际的类。由于对象存在生命周期,所以对象图只能在系统的某一时间存在。类 图v类图Class Diagram是描述类、接口以及它们之间关系的图,用来显示系统中各个类的静态结构。v虽然一个类图仅仅显示的是系统中的类,但是存在一个变量,确定了显示各个类的真实对象实例的位置,就是对象图。v类图包含三个元素:类、接
2、口、类与类之间的关系。一、类v类是面向对象系统组织结构的核心。是对一组具有相同属性、操作、关系和语义的对象的描述。v类定义了一组有着状态和行为的对象。其中,属性和关联用来描述状态。属性通常用没有身份的数据值表示,如数字和字符串。关联则用有身份的对象之间的关系表示。行为由操作来描述,方法是操作的实现。 v在UML中,类用矩形来表示,并且该矩形被划分为3个部分:名称部分Name)、属性部分Attribute和操作部分Operation)。其中,顶端的部分存放类的名称,中间的部分存放类的属性、属性的类型及其值,底部的部分存放类的操作、操作的参数表和返回类型。v在UML中,还可以根据建模的实际情况来选
3、择隐藏属性部分或操作部分,或者两者都隐藏。v隐藏属性部分或操作部分,并不代表没有属性或操作,只是因为没有显示出来。 1、称号Name)类的名称是每个类中所必须有的元素,用于同其他类相区分。类的名称应该尽可能的明确,以免造成歧义。类的名称是一个字符串,可分为简单名称和路径名称。单独的名称即不包含冒号的字符串叫做简单名;用类所在的包的名称作为前缀的类名叫做路径名。 2、属性Attribute)类的属性是类的一个组成部分,也是一个特性,描述了类在软件系统中代表的事物即对象所具备的特性,这些特性是所有的对象所共有的。类可以有任意数目的属性,也可以没有属性。在UML中,类属性的语法为: 可见性 属性名
4、:类型 =初始值 属性字符串 (1可见性。可见性描述了该属性对于其他类是否可见,以及是否可以被其他类引用,而不仅仅是被该属性所在类可见。类中属性的可见性主要包括公有Public)、私有Private和受保护Protected)。可见性的表示:Public:“+”,具有公共的可见性,其它类都能使用它Protected:“#”,具有受保护的可见性,该类的任何子孙都能使用它Private: “” ,表示具有私有的可见性,只有这个类自身能使用它 如果没有用可见性符号修饰一个属性或者操作,那么就认为它的可见性是公有的 (2属性名根据定义,类的属性首先是类的一部分,而且每个属性都必须有一个名字以区别于类中
5、的其他属性。通常情况下属性名由描述所属类的特性的名词或名词短语组成。按照UML的约定,单字属性名要小写。如果属性名包含了多个单词,这些单词要合并,且除了第一个单词外其余单词的首字母要大写。 (3类型典型的数据类型有:整型、布尔型、实型和枚举类型,这些称为简单类型。简单类型在不同的编程语言中有不同的定义,但是在UML中,类的属性可以用任意类型,包括系统中的其他类。当一个类的属性被完整的定义后,它的任何一个对象的状态都由这些属性的特定值所决定。 (4初始值设定初始值有两个用处:保护系统的完整性,防止漏掉取值或被非法的值破坏系统的完整性;为用户提供易用性。(5属性字符串用来指定关于属性的其他信息,任
6、何希望添加在属性定义字符串值但又没有合适地方可以加入的规则,都可以放在属性字符串里。 3、操作Operation)类的操作是对类的对象所能做的事物的抽象,相当于一个服务的实现,且该服务可以由类的任何对象请求以影响其行为。属性是描述类的对象特性的值;操作用于操纵属性或者执行其他动作。操作通常称为函数,它们位于类的内部,并且只能应用于该类的对象。在UML中,类操作的语法为: 可见性 操作名 (参数表) :返回类型 属性字符串 (1可见性:同属性的可见性。(2操作名:同属性名。(3参数表。参数表是一些按顺序排列的属性定义了操作的输入。参数表是可选的,即操作不一定必须有参数。参数可以具有默认值,这意味
7、着如果操作的调用者没有提供某个具有默认值的参数的值,那么该参数将使用指定的默认值。 (4返回类型。返回类型是可选的。绝大部分编程语言只支持一个返回值,即返回类型之多一个。虽然没有返回类型是合法的,但是具体的编程语言一般要加一个关键字Void来表示无返回值。(5属性字符串:同属性的属性字符串。二、接口Interface)v接口是在没有给出对象的实现和状态的情况下对对象行为的描述。接口包含操作但不包含属性,且它没有对外界可见的关联。一个类可以实现一个或多个接口,且所有的都可以实现接口中的操作。 v接口用来描述类的对外可见的操作集。它既不描述任何结构因此不包含任何属性),也不描述任何实现因此不包含任
8、何实现操作的方法)v接口之间可以存在泛化关系,因此接口实质上和不具有属性和方法、仅具有抽象操作的抽象类很相似v与类一样,接口也可以参与泛化、关联、依赖和实现关系v实现关系将一种元素如类与另一种模型元素如接口连接起来,其中接口只是行为的说明而不是结构或实现。v可用两种方法来表示接口v简化形式。把接口和实现关系画成一个从类伸出的、且一端带有小圆圈的直线v使用扩展形式。把接口表示成具有衍型的类简简化形式的局限性在于不能直接地化形式的局限性在于不能直接地化形式的局限性在于不能直接地化形式的局限性在于不能直接地对对接口提供的操接口提供的操接口提供的操接口提供的操作或者信号作或者信号作或者信号作或者信号进
9、进行可行可行可行可视视化化化化扩扩展形式允展形式允展形式允展形式允许对许对接口中的操作和其它特征接口中的操作和其它特征接口中的操作和其它特征接口中的操作和其它特征进进行可行可行可行可视视化,化,化,化,然后画一个从然后画一个从然后画一个从然后画一个从类类或者构件到接口的或者构件到接口的或者构件到接口的或者构件到接口的实现实现关系关系关系关系 三、类之间的关系v依赖关系Dependency)v 表示类之间的使用关系v泛化关系Generalization)v 表示类之间一般和特殊的关系v关联关系Association)v 表示对象之间的结构关系v实现Realization)v 表示类中规格说明和实
10、现之间的关系 1、依赖关系依赖是两个模型元素之间的一种语义关系,用来描述两个类之间存在的与依赖有关的语义上的连接。其中一个类是独立的,另一个类不是独立的,它依赖于独立的类,需要由独立的类提供服务。如果独立的类变了,将影响依赖于它的类。例如“课程计划与“课程之间存在依赖关系,其中“课程是独立的类,而“课程计划依赖于“课程”。 vUML定义了4种基本依赖类型:v运用Usage依赖v笼统Abstraction依赖v授权Permission依赖v绑定Binding依赖。 v使用依赖use是类中最常用的依赖。声明使用一个模型元素需要用到已存在的另一个模型元素,这样才能正确的实现使用者的功能。v在UML中
11、,依赖用一个从客户指向提供者的虚箭头表示,用一个构造型的关键字来区分它的种类。 v使用依赖v使用依赖是非常直接的,通常表示客户使用提供者提供的服务以实现它的行为。v使用依赖分五种:v运用use)v调用call)v参数Parameter)v发送send)v实例化instantiate) 2、泛化关系泛化关系是一种存在于一般元素和特殊元素之间的分类关系,其中特殊元素与一般元素兼容,且还包含附加的信息。泛化可以用于类、用案以及其他模型元素。泛化关系描述了“is a kind of的关系。在类中,一般元素被称作超类或父类,而特殊元素被称作子类。在UML中,泛化关系用一条从子类指向父类的空心三角箭头表示
12、。 v泛化的实例使用泛化关系的银行帐户类使用泛化关系的银行帐户类 3、关联关系关联关系是一种结构关系,它指明一个事物的对象与另一个事物的对象之间的联系。关联的任何一个连接点都叫做关联端,与类有关的许多信息都附在它的端点上。在UML中,关联关系用一条连接两个类的实现表示。最普通的关联是二元关联。关联的实例之一是链,每个链由一组对象构成,每个对象来自于相应的类,其中二元链包含一对对象。有时同一个类在关联中出现不止一次,这是一个单独的对象就可以与自己关联。 v除了关联的基本形式之外,还有5中应用于关联的修饰,分别是:称号、角色、多重性、聚合和组合。v称号Name)v 关联可以有一个名称,用来描述关联
13、的性质。通常情况下,使用一个动词或动词短语来命名关联v 名称以前缀或后缀一个指引阅读的方向指示符以消除名称含义上可能存在的歧义,方向指示符用一个实心的三角形箭头表示。 v角色Role)v角色是关联关系中一个类对另一个类所表现出来的职责。当类出现在关联的一端时,该关联就在关联关系中扮演一个特定的角色。角色的名称是名词或名词短语,以解释对象是如何参与关系的。 v多重性v关联的多重性是指有多少对象可以参与该关联,多重性可以用来表达一个取值范围、特定值、无限定的范围或一组离散值。v在UML中,多重性是用数字范围来表示的v每个数字范围是一对由圆点分割开来的整数,如0.9v可用特殊的符号*来表示一个没有上
14、界的范围,也即可以认为符号*表示“无穷大”v一个其下界和上界都是相同数字的范围可以简写为一个数字,例如数字范围1.1可用单个数字1来表示v可用一个由数字范围和单个数字组成的列表来表示多重性。例如0, 3.*表示一个给定的实体是可选的、但如果发生就必须至少发生三次以上 一个人能且只能替一个公司工作,但一个一个人能且只能替一个公司工作,但一个公司可以雇用零个或多个雇员公司可以雇用零个或多个雇员 v聚合关系v“is-part-of关系实际上指定了一个对象是另一个对象的一部分,或者反过来说,它表明了一个对象是由若干个其它对象组成的。这种指定对象的组成的关系叫做聚合关系 一个电子邮件消息是由邮件头、一个
15、电子邮件消息是由邮件头、邮件体和未指明数目的附件构成的邮件体和未指明数目的附件构成的v聚合关系有两个特性:反对称性与传递性v反对称性: 如果一个链接是某个聚合关系的实例,那么它就不能用来将一个对象和其自身连接起来v传递性: 如果对象A和对象B以及对象B和对象C之间都是用同一个聚合关系的实例即一个链接相连的,那么就可以认为A和C也是相连的留意,留意,仅当聚合关系使得当聚合关系使得对象可以和其所属象可以和其所属类的的实例例进行行连接接时才能才能应用反用反对称性和称性和传递性性 v组合关系是一种强关联关系,它所描述的“部分对象是依赖于“整体对象的。这种依赖关系通过如下两种方式表现出来:v首先,在任一给定时刻,一个“部分对象只能属于一个组合对象v其次,当一个组合对象被撤销时,所有依赖于这个组合对象的“部分对象都将同时被撤销 4、实现关系实现关系通常在两种情况下被使用:在接口与实现该接口的类之间在用案以及实现该用案的协作之间。在UML中,实现关系的符号与泛化关系的符号类似,用一条带指向接口的空心三角箭头的虚线表示。实现关系还有一种省略的表示方法,即将接口表示为一个小圆圈,并和实现接口的类用一条线段连接。接口的图 实例:图书馆管理系统的类图