UML-类图

来源:互联网 发布:老11选5遗漏数据查询 编辑:程序博客网 时间:2024/05/29 08:33
一、定义

     用于静态对象建模,用于表示类、接口及其关联。

     在系统分析与设计阶段,类通常可以分为三种,分别是实体类(Entity Class)、控制类(Control Class)和边界类(Boundary Class),下面对这三种类加以简要说明:
      (1) 实体类:实体类对应系统需求中的每个实体,它们通常需要保存在永久存储体中,一般使用数据库表或文件来记录,实体类既包括存储和传递数据的类,还包括操作数据的类。实体类来源于需求说明中的名词,如学生、商品等。
      (2) 控制类:控制类用于体现应用程序的执行逻辑,提供相应的业务操作,将控制类抽象出来可以降低界面和数据库之间的耦合度。控制类一般是由动宾结构的短语(动词+名词)转化来的名词,如增加商品对应有一个商品增加类,注册对应有一个用户注册类等。
      (3) 边界类:边界类用于对外部用户与系统之间的交互对象进行抽象,主要包括界面类,如对话框、窗口、菜单等。

二、类图UML表示

     类使用包含类名、属性和操作且带有分隔线的长方形来表示

     
上图对应java类如下:
public class Human {protected String name;private int age;public String evaluate;public void work() {}private String talk() {     return null;}}


在UML类图中,类一般由三部分组成:
      (1) 第一部分是类名:每个类都必须有一个名字,类名是一个字符串。
      (2) 第二部分是类的属性(Attributes):属性是指类的性质,即类的成员变量。一个类可以有任意多个属性,也可以没有属性。
      (3) 第三部分是类的操作(Operations):操作是类的任意一个实例对象都可以使用的行为,是类的成员方法。

注意点:
  • UML规定属性的表示方式为:可见性  名称:类型 [ = 缺省值 ]
  • UML规定操作的表示方式为:可见性  名称(参数列表) [ : 返回类型]
  • “可见性”表示该属性对于类外的元素而言是否可见,包括公有(public)、私有(private)和受保护(protected)三种,在类图中分别用符号+、-和#表示。
  • “参数列表”表示方法的参数,其语法与属性的定义相似,参数个数是任意的,多个参数之间用逗号“,”隔开。
  • “[”,“]”中括号中值为可选值。

三、关联关系

     关联(Association)关系是类与类之间最常用的一种关系,它是一种结构化关系,用于表示一类对象与另一类对象之间有联系。在UML类图中,用实线连接有关联关系的对象所对应的类

1、单项关联:单向关联用带箭头的实线表示
     
表示java代码如下:
public class Human {private Hand hand;}class Hand{}


2、双向关联:无箭头实现表示
     
表示java代码如下:
public class Human {private House house;}class House{private Human[] human;}


3、自关联:类的属性对象类型为该类本身
     
表示java代码如下:
class Children{private Children children;}


4、多重性关联
     多重性关联关系又称为重数性(Multiplicity)关联关系,表示两个关联对象在数量上的对应关系。在UML中,对象之间的多重性可以直接在关联直线上用一个数字或一个数字范围表示。
     对象之间可以存在多种多重性关联关系,常见的多重性表示方式如表1所示:

表示方式

多重性说明

1..1

表示另一个类的一个对象只与该类的一个对象有关系

0..*

表示另一个类的一个对象与该类的零个或多个对象有关系

1..*

表示另一个类的一个对象与该类的一个或多个对象有关系

0..1

表示另一个类的一个对象没有或只与该类的一个对象有关系

m..n

表示另一个类的一个对象与该类最少m,最多n个对象有关系 (m≤n)


     
表示java代码如下:
public class Human {private Mouth mouth;private Hair[] hair;}class Hair{}class Mouth{}

5、聚合关系:用带空心菱形的直线表示
     聚合(Aggregation)关系表示整体与部分的关系。在聚合关系中,成员对象是整体对象的一部分,但是成员对象可以脱离整体对象独立存在。聚合是UML中一种模糊的关联,其不精确的暗示 整体-部分的关系。在代码实现聚合关系时,成员对象通常作为构造方法、Setter方法或业务方法的参数注入到整体对象中
     例如:人(Human)和鞋子(Shoes),如下图所示:
     
表示java代码如下:
public class Human {private Shoes shoes;public Shoes getShoes() {     return shoes;}public void setShoes(Shoes shoes) {     this.shoes = shoes;}}class Shoes{}


6、组合关系:用带实心菱形的直线表示
     组合(Composition)关系也表示类之间整体和部分的关系,但是在组合关系中整体对象可以控制成员对象的生命周期,一旦整体对象不存在,成员对象也将不存在,成员对象与整体对象之间具有同生共死的关系。
     

四、依赖关系依赖关系用带箭头的虚线表示
     依赖(Dependency)关系是一种使用关系,特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另一个事物时使用依赖关系。
     依赖关系通常通过三种方式来实现,第一种也是最常用的一种方式是将一个类的对象作为另一个类中方法的参数,第二种方式是在一个类的方法中将另一个类的对象作为其局部变量,第三种方式是在一个类的方法中调用另一个类的静态方法
     

五、继承关系带空心三角形的直线来表示
     用于描述父类与子类之间的关系,父类又称作基类或超类,子类又称作派生类。
     

六、接口与实现关系带空心三角形的虚线来表示

     






0 0