umbrello学习笔记(1)-类图

umbrello学习笔记(一)----类图

Class Diagram

类图展示了构成系统的不同类以及它们的相互关系。umbrello学习笔记(1)-类图

class:一个类定义了一系列对象的属性和方法。这个类的所有对象(实例化这个类)有相同的行为和属性设置方法(each object has its own set)。术语“类型”有时用来代替类,但值得一提的是这两个是很不相同的,并且类型是更一般的术语。

在UML里,类用矩形代表,和类一样,这个矩形用两个模块来显示类的属性和方法,

umbrello学习笔记(1)-类图umbrello学习笔记(1)-类图

Attributes

    在UML  里,属性能显示它的名字,类型,初始化值,属性也可以显示private,public,protected。

      + 表示r public operations
      # 表示 protected operations
      - 表示 private operations

Operations

   操作方法也能显示它们的方法名,参数,返回类型,以及方法的private,public,protected属性。

    + 表示r public operations
      # 表示 protected operations
      - 表示 private operations

Templates

   类图也有泛型(Java称泛型,这个值用于不指定具体的类或者类型)。当类初始化(对象创建)时这个泛型类是具体的。泛型在C++模型和Java1.5以后的模型中存在。

Class Associations

类能够用不同的方式进行互相关联。

Generalization

继承(Inheritance)是面向对象编程最基础的概念之一。子类继承父类,能获取父类所有的属性和方法,并且能够重写或者修改它们,以及添加更多的属性和方法。

在UML里,两个类之间的泛化关联是通过把他们放在一个层次里,表达derived 类从 base 类的继承概念。泛化是通过一条带箭头的线把两个类连接起来表示,带箭头的一方为父类或者基类,

umbrello学习笔记(1)-类图

umbrello学习笔记(1)-类图

关联(Association)(这个部分翻译的很不好,希望有人给个指导,第一次翻译,不太好)

关联代表了类之间的关系,并对多种类型的对象之间的关系给出了常见的语义和结构。

关联是允许对象间进行互相通信的一种机制。它描述了不同类之间的联系(实际的对象之间的连接被称为对象连接或链接);关联核心的作用是允许单向或双向的。关联的各端还有多个值,这能决定这一端关联的对象有多少可以涉及到另一边的对象。 在UML中,关联被表示为连接参与关系的类线,并且还可以显示的角色和每个参与者的多样性。多重显示为一个非负值的最大边代表一个无限的范围[min.. MAX],用星号(*)。

umbrello学习笔记(1)-类图

umbrello学习笔记(1)-类图

 聚合(Aggregation)

聚合是一种特殊的关联。表示两个类之间并没有相等的状态,但是有整体--部分的关系。聚合描述了一个扮演整体作用的类是怎样由扮演部分作用的类组成的。对聚合而言,一个有整体作用的类总是有一个多重性。

在UML上,聚合用一个带有菱形的线表示,靠近菱形的一边表示整体。

 umbrello学习笔记(1)-类图umbrello学习笔记(1)-类图

组合(Composition)

组合是代表强聚合的关联。这意味着,组合也是由整体--部分关系组成,但是这种关系是非常强的以致于部分不能单独存在。部分只有在整体中才能存在,如果整体消亡啦部分也就不存在啦。

在UML,组合是由带有实体菱形的线表示。菱形一边代表整体。

umbrello学习笔记(1)-类图umbrello学习笔记(1)-类图

Other Class Diagram Items

类图可以包含除了类其他几个项目

Interfaces(接口)

接口是抽象类,实例化时不能直接被创建。它能包含方法但是没有属性。类可以从接口继承(通过关联)和实例并可以被制成这些图。

Datatypes(数据类型)

数据类型是通常内置于编程语言的源代码。常见的例子包括整数和布尔值。他们不能和类有关系,但类可以和他们有关系。。
Enums(枚举)
枚举是值的简单列表。一个典型的例子是枚举一周的每天。一个枚举的选项被称为枚举字面值。像数据类型,他们不可能和类有关系,但类可以有关系给他们。
Packages(包)
包代表编程语言中的命名空间。在示图中它们被用来表示一个系统的一部分,这个系统包含不止一个类,或许上百个类。