UML 统一建模语言

零、UML简介

统一建模语言「Unifited Modeling Language」
UML 是一种开放的方法,特点: 可视化
利于 大规模,复杂系统建模

一、用例图

1. 作用

  • 描述用户需求「用于需求分析阶段」
  • 展示 系统外部的各类执行者 和 系统中用例的 关系

2. 构成

  • 参与者「Actor」 处于系统外部,但与系统内部的功能单元有交互的个体
    通常用小人图形来表示,如下图
  • 用例「Use Case」 系统内部 可见的 系统功能单元
    通常用椭圆来表示,如下图
  • 参与者 和 用例 之间的 关系 通信关系
    通常用箭头来表示,如下图

二、类图

1、作用

  • 显示出类、接口以及它们之间的静态结构和关系
  • 用于描述系统的结构化设计

2、类

包括 名称(Name)、属性(Attribute)和操作(Operation)
状态显示:

  • 抽象斜体
  • 静态下划线

访问权限图中的表示:

  • +:公有(Public)
  • -:私有(Private)
  • #:受保护(Protected)
  • ~:包内公有(Package)
    类图

3、接口

  • 在没有给出对象的实现和状态的情况下对对象行为的描述。
  • 一个类可以实现一个或多个接口
  • 用两层矩形框表示,与类图的区别:顶端有<<interface>>显示:
  • 用一个空心圆表示:
  • 包图

三、类之间的几种关系

1、继承「泛化 Generalization」

  • 子类 is a 父类
  • 类与类,接口与接口,类与接口的继承关系
  • 空心三角+实线 表示,子类 → 父类

2、实现「Realization」

  • 是一种类与接口的关系,表示类是接口所有特征和行为的实现
  • 空心箭头+虚线 表示,箭头 → 接口

3、依赖(Dependency)

类A 用到「use a」 B类,则 A类 依赖 B类「B是 A的变量、参数、返回值」

  • 要避免双向依赖,一般来不应该存在双向依赖
  • 关联、实现、泛化都是依赖关系
  • 带箭头的虚线表示,→ 被依赖元素

4、关联(Association)

A、一般关联

  • 类与类之间的联结,它使一个类知道另一个类的属性和方法,指明了事物的对象之间的联系
  • 关联可以是双向、单向、自身、多维关联
  • 箭头普通的实心线表示
    • B类 是 A类中的一个 属性,A类 → B类
    • 双向的关联 可以有 两个箭头 或 没有箭头
    • 单向的关联 有一个箭头

关联和依赖的区别

  • 依赖:仅当 方法被调用时产生,伴随方法的结束而关系结束
  • 关联:类实例化时产生,类销毁时关系结束
  • 对比:相比依赖关联关系生存期更长

B、聚合(Aggregation)

  • 整体与部分「整体contain a 部分」关系
  • 部分 离开整体而单独存在
  • 聚合 是强的关联关系
  • 关联 和 聚合 在语法上无法区分,必须考察具体的逻辑关系
  • 带空心菱形的实线,部分 ← 菱形整体 或 部分 —菱形 整体

C、组合(Composition)

  • 整体与部分「整体 has a 部分」关系
  • 部分 不能 离开整体而单独存在
  • 比聚合关系还要强的关系
  • 整体负责部分的 生命周期
  • 实心菱形的实线表示,部分 —菱形 整体
    两段各有一个基数,表示每一端都有几个实例「无数个用 n 表示」

5、总结

各种关系的耦合度 强→弱 顺序如下:
泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖

posted @ 2016-03-09 17:31  Liquor  阅读(330)  评论(0编辑  收藏  举报