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依赖于A:当A类的实例的属性值改变、方法实现改变时,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个
结束状态 有多个
活动 圆角距形
状态 距形
事件 箭头
状态机图 (主要用于描述单个对象各个阶段的演化过程,某对象的生命周期)
这里的是实线,不是虚线,画错了