UML

 

 

OO软件开发经过:

OOA:面向对象分析

OOD               设计

OOP                编程

 

静态图  

动态图

 

统一建模语言(UML unitied modeling language)

UML静态图--------------------------

类图:class diagram

Game.aii

      

 

Game.a 表示包

1..*   表示一个或多个

静态的加下划线

接口方法显示为斜体字抽象方法

抽象类的名称显示为斜体字

实箭头表示引用

空箭头表示继承 extends

空心虚线箭头表示 implement

接口标记   <<interface>>

 

 

实例图:instance diagram 也称对象图

 

每个类的类名都加上了下划线,但没有使用粗体字

引用被显示为针头

一条线加一点空引用,表示图将非常复杂,简单地省略

数组被显示为几排方框

变量参数、和常量有时会包含在UML实例图中

 

 

Die

Die

Die1

Die2

Die3

 上实例图代码:

       Die die1 = new Die();

Die die2 = die1;

Die die3 = new Die();

Die2.equals(die3);     

 

 

用例图

活动图(可选流 ◇)

顺序图(随时间的推移所经历的动态 交互)

类图 (继承、关联、依赖)

构件图(圆圈代表接口)

 

用例图基础:

角色(通常是用户,也可以是系统组件)

用例(通常就是一个功能)

角色与用例的关联

用例与用例的关联

[W1] 

Security Chief可以做Manager的工作

 

Fuel Vehide是包含关系       Eat Meal是扩展关系,相当于可选的

 

 

类图符号基础:

关联名称

图标

描述

单向关联

两个模型元素之间的单向导航关系

双向关联

(指定navigable选项)

两个模型元素之间的双向导航关系

依赖

DI(Dependency Injection)

两个模型元素之间的一种关系;

在依赖关系中,一个模型元素的改变会对

另一个模型元素产生影响

聚集

aggregation

两个模型元素之间的一种关系;

在聚焦关系中,一个模型元素的是另一个、

模型元素的一部分

组成聚集(组合)

composition

聚集关系的特例,组成聚集是紧密偶合的

聚焦关系,作为部分的模型元素不能脱离

整体的模型元素而单独存在

泛化

(好像是继承)

两个模型元素之间的一种关系;

在泛化关系中,一个模型元素(子类)属

于另一种模型元素(超类)的一种

 

B依赖于AA类的实例的属性值改变、方法实现改变时,B类的实例也会随之改变,

一个Flashlight(手电筒)有一个Switch(开关),是组成关联,因为开关是手电筒的一部分,当你抛弃了手电筒,开关也不见;

Battery(电池)和Flashlight之间是聚集关联,因为你可以卸下Battery(电池),并把它用在另一个手电筒中

 

类与类之间关联关系:

1-1关联

1-N关联        N的一端增加外键

N-N关联       必须通过连接表来记录

通过方向分类:

单向

双向       (没有箭头的线)

 

可指定每个类的多重性:

1            恰好1

0..*         0个或多个

1..*         1个或多个

0..1         0个或1

3..9         指定的范围(3个,4个。。。。或9个)

 

 

类图时可以标上角色  +order  -order

+     public

#     protected

-      private

 

关联类:

 

购买的时间等就可以用这个关联类表示

*

1

一个购买各种"Security"(安全设施)的Investor(投资者)

 

在关联线下边 可以用{  } 来表示限制

 

 

组件图: (主要在概要设计阶段)

也是描述系统的、静态的内部结构

组件图所表现的粗粒度的组件之间的关系

通常来说,一个组件可能由N个类组件,组件对外提供的是粗粒度的功能或服务

表现为一个JAR

 

布署图:(系统安装维护时)

相对于组件图,布置图多了物理节点的概念

且各个组件都应该属于各个节点

 

 

UML动态图--------------------------

顺序图和协作图可以统归为交互图======================================

顺序图: (帮助开发者更好地了解系统功能细节)

顺序图的图元:          

组件

生命线(时间线):矩形下的虚线,时间是从上到下的

消息:带前头的线段

激活期:生命线上的矩形,

协作图:(UML2.0中称通信图)cabolation

功能与顺序图基本相似

组件

消息:带前头的线段(其消息通常建议编号,才能知道执行的先后顺序)

 

活动图和状态图可以统归为演化图========================================

状态:既可以是单个对象的状态,也可以是整个流程的状态)

(事件:负责去激发状态的改变,事件既可以来自于外部,也可以来自系统内部)

动作

活动

条件

活动图 (主要用于描述某次业务活动内各个阶段的演化过程)

类似传统的流程图,区别在于活动图多了并行

图元:

开始状态 1

结束状态 有多个

活动           圆角距形

状态           距形

事件           箭头

状态机图 (主要用于描述单个对象各个阶段的演化过程,某对象的生命周期)

 

这里的是实线,不是虚线,画错了

你可能感兴趣的:(UML)