`

类 UML _2

    博客分类:
  • UML
阅读更多

转自:http://mybluesky99.iteye.com/blog/384197

矩形框代表一个类(如图-1),类图分为三层,第一层为类的名称,如果是抽象类类名用斜体字表示,如图中动物类所示。第二层是类的特性(通常就是类的字段和属性)。第三层为类的操作(通常就是方法或行为)。注意前面的符号,“+”表示public,“-”表示private,“#”表示protected.


(图-1)

动物类是一抽象类,它是不能被实例化的,而猪类可以被实例化。

接口:

接口有两种表示方法:矩形表示法(如图-2中的飞翔的接口)和棒棒糖表示法(如图-2中唐老鸭类中实现讲人话的接口)。矩形表示法,顶端有<<接口>>或者<<interface>>,第一行:接口名称,第二行:接口方法。棒棒糖表示法,圆圈旁为接口名称,接口方法在实现类中出现,如唐老鸭类中的讲话。


(图-2)

泛化(Generalization)

表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系。一般化的关系是从子类指向父类的,与继承或实现的方法相反。具体表现:父类父类实例=new 子类();

 

(图-3)

(图-4)

用空心三角形+实线来表示继承(如图-3)。在静态结构图中,在父类和子类间拖放归纳连接,箭头指向父类,另一段指向子类。关联关系是使用实例变量来实现 

用空心三角形+虚线来表示实现接口(如图-4)。在静态结构图中,右击任意类形状(“类”、“参数化的类”、“实用程序”或“元类”),单击“形状显示选项”,然后在“常规选项”下选择“实现链接”。将类形状上的实现链接的控制手柄(黄色小菱形)粘附到接口、类或其他元素的连接点上。

关联(Association)

对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系。关联又分为双向关联、单向关联、自身关联。

双向关联:双向关联是两个类之间的联接。关联总是被假定是双向的;这意味着,两个类彼此知道它们间的联系,除非你限定一些其它类型的关联。如(图-5)Flight 的例子, 显示了在Flight类和Plane类之间的一个标准类型的关联。

 
(
图-5)

一个双向关联用两个类间的实线表示。在线的任一端,你放置一个角色名和多重值。图-5显示Flight与一个特定的Plane相关联,而且Flight类知道这个关联。因为角色名以Plane类表示,所以Plane承担关联中的“assignedPlane”角色。紧接于Plane类后面的多重值描述0...1表示,当一个Flight实体存在时,可以有一个或没有Plane与之关联(也就是,Plane可能还没有被分配)。图-5 也显示Plane知道它与Flight类的关联。在这个关联中,Flight承担“assignedFlights”角色;图-5 的图告诉我们,Plane实体可以不与flight关联(例如,它是一架全新的飞机)或与没有上限的flight(例如,一架已经服役5年的飞机)关联。

由于对那些在关联尾部可能出现的多重值描述感到疑惑,下面列出了一些多重值及它们含义的例子(0..1:0个或1个;1:只能1个;0..*:0个或多个;*:0个或多个;1..*:一个或多个;等等。)

单项关联:在一个单向关联中,两个类是相关的,但是只有一个类知道这种联系的存在。(图-6)显示单向关联的透支财务报告的一个实例。


(图-6)

一个单向的关联,表示为一条带有指向已知类的开放箭头(不关闭的箭头或三角形,用于标志继承)的实线。如同标准关联,单向关联包括一个角色名和一个多重值描述,但是与标准的双向关联不同的时,单向关联只包含已知类的角色名和多重值描述。在(图-6)中的例子中,OverdrawnAccountsReport 知道 BankAccount 类,而且知道 BankAccount 类扮演“overdrawnAccounts”的角色。然而,和标准关联不同,BankAccount 类并不知道它与 OverdrawnAccountsReport 相关联。

依赖(Dependency)

对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。依赖关系具体表现在局部变量,方法的参数,以及对静态方法的调用。比如说动物有几大特征,如新陈代谢,繁殖,有生命。而动物要有生命力,就需要氧气、水及食物,也就是说动物依赖于氧气和水。他们之间是依赖关系,用虚箭头表示。如(图-7)所示。


(图-7)

类图代码:

        abstract class Animal

        {

            public string Metabolism(Oxygen oxygen,Water water)

            {

            }

     }

聚合关系(Aggregation)

聚合关系表示一种弱的拥有关系,即A对象可以拥有B对象,但B对象不是A对象的一部分。聚合关系用空心的菱形加实线箭头来表示。如下图(图-8)所示:


(图-8)

    在逻辑上来说,停车场中有汽车,但汽车并不是停车场的一部分。汽车和停车场之间没有部分和整体之间的关系。

    组合(合成)关系(Composition)

    组合也成为复合和合成关系,是一种强的“拥有”关系,体现了严格的部分与整体的关系,部分和整体的生命周期一样。如下图(图-9)所示,鸟和鸟的翅膀就是组合(合成)关系,他们是部分和整体的关系,并且翅膀和鸟的生命周期相同。合成关系用实心的菱形加实线箭头来表示。合成关系的连线两端还有一个数字,如图(图-9)的数字‘1’和‘2’,这被成为基数。表明这一端的类可以有几个实例,很显然一只鸟只有两个翅膀。如果一个类可以有无数个实例,则就用‘n’表示。关联关系和聚合关系也可以用基数的。


(图
-9

       在严格的组合(合成)关系中,类之间有强依赖关系,在很多情况下,代表整体的对象需要负责保持部分对象的存活。

分享到:
评论

相关推荐

    UML.rar_UML图_uml _关系图

    uml用例关系图,类关系图。等用于vos开发的一系列图。

    C/S架构__Symbian平台下中国移动动态内容分发__UML__个人原创

    中国移动动态内容分发C/S架构__UML__个人原创,鄙人花了十几个小时,重构三次完成。此UML图可作为学习面向对象设计(重用类/设计模式/架构)和Symbian_C/S程序设计的学习资料,其原理请看我的评论。

    UML_and_Rose教程.pdf

    2. 第二周:静态建模:用例和用例图(Use Case Diagram) ............................ 8 2.1 角色和角色之间的关系................................................... 8 2.1.1 角色................................

    set6_chapter012uml_度量软件工程_answer1

    1,一下哪个度量用于根据类操作的复杂度来度量类的复杂性:A:NOCB:DITC:WMCD:RFC2,以下不是UML构造块的一类是: A:UML的基本构成 B:关

    set6_chapter012uml_度量软件工程1

    1,一下哪个度量用于根据类操作的复杂度来度量类的复杂性:A:NOCB:DITC:WMCD:RFC2,以下不是UML构造块的一类是: A:UML的基本构成 B:关

    CityGML_1_0_0_UML_diagrams.pdf

    CityGML是一种用来表现城市三维对象的通用信息模型。它定义了城市中的大部分地理对象的分类及其之间的关系,而且充分地考虑了区域模型的几何、拓扑、语义、外观属性等。其中包括了主题分类之间的层次、聚合、对象...

    uml_java_helloworld.rar_Rational Rose_rose

    这是我的第一个用rational rose创建的项目,用类图 与 java类进行了关联。以后我就只需要在rose中画类图就可以直接完成代码的编译 真好

    JAVA类生成UML图

    JAVA类 生成你想要的UML 图.操作简单.拿去用吧呵呵!

    详解UML图之类图

    详解UML图之类图 详解UML图之类图 详解UML图之类图 详解UML图之类图

    uml-class.zip

    uml类图教程,英文版,及德州扑克类图详解courses.cs.washington.edu

    UML类图中的类 抽象类,具体类,主动类等

    UML类图中的类,抽象类和具体类,主动类和非主动类等

    UML.zip_uml顺序图

    UML包括事物、关系、图、扩展机制。 (1)事物 结构:类、接口、构件、节点等等。 行为:交互(消息)、状态等等。 分组:包、子系统等等。 注释:注释。 (2)关系 依赖、关联(聚合、组合)、泛化、实现。 (3)图...

    eclipse3.5.1_eclipseUML2.2_package.zip

    eclipseUML是一款很好的UML建模插件,还能够将工程反向导出类图,本word文件里面有下载地址和使用方法

    UML_course:课程项目@ UML

    UML_course UML类的课程编程作业或项目。笔记该目录存储了我在马萨诸塞州洛厄尔大学(UML)的课程任务和项目所需的所有必要文档/代码。描述作业系统I (作业系统I ,CS91.515,2014年秋季) 多媒体计算(专题) (MC...

    超市运营管理系统UML设计__类图和动态图.pptx

    超市运营管理系统UML设计__类图和动态图.pptx

    Java高手真经 - Java Web系统设计与架构 (二) UML

    (2)UML上机演练源文件(16个实例文件) uml/usecase_product.mdl //02.用例图——企业产品生产销售管理系统 uml/class_login.mdl //03.类图和包图——企业信息管理系统用户登录和注册模块 uml/component_emis....

    UML类关系图解

    UML java 图示6种类关系,帮忙理解uml的基本概念。

    JDK部分类UML图

    JDK1.6 集合类 UML 图, 更好的使用Collection类。

    实验四 基于UML的类模型实验.doc

    实验四 基于UML的类模型实验.doc visio

Global site tag (gtag.js) - Google Analytics