UML


UML面向对象建模
对象模型表示静态的、结构化的系统的“数据”性质。用面向对象方法开发软件,通常需要建立3种形式的模型,它们分别是描述系统数据结构的对象模型,描述系统控制结构的动态模型和描述系统功能的功能模型。

对象模型-UML类图

UML描述属性:可见性  属性名: 类型名[=初值|{性质串}]
	可见性通常有下述3种(如果未声明可见性,则表示尚未定义,没有默认的可见性):
		§ 公有的(public):(+)
		§ 私有的(private):(-)
		§ 保护的(protected):(#)
	花括号括起来的性质串明确地列出该属性所有可能的取值

UML描述操作:可见性  操作名(参数表): 返回值类型{性质串}
	操作可见性的定义方法与属性相同。
	参数表是用逗号分隔的形式参数的序列:参数名:类型名=默认值

关系的符号
类间关系:
	○ 泛化(Generalization)/ 继承:
		§ 普通泛化
		§ 受限泛化:
			□ 多重:一个子类可以同时多次继承同一个上层基类
			□ 不相交:一个子类不能多次继承同一个基类
			□ 完全:父类的所有子类都已在类图中穷举出来了
			□ 不完全(默认):父类的子类并没有都穷举出来
	○ 实现(Realization)/ 细化:接口实现

类与实例间关系
	○ 依赖(Dependence):使用类(方法中使用)
	
	○ 关联(Association):使用类(作为对象的属性)
		§ 普通关联
		§ 关联限定:在类图中把限定词放在关联关系末端的一个小方框内
		§ 关联角色:显式标明参与此关联的对象的角色
		§ 关联类:为了说明关联的性质可以引入一个关联类来记录这些信息。关联类通过一条虚线与关联连接
	○ 聚合(Aggregation)/ 聚集:作为对象中属性,多个相对独立对象集合在一起
		§ 共享聚合:处于部分方的对象可同时参与多个处于整体方对象的构成
		§ 组合聚合:部分类完全隶属于整体类,部分与整体共存
	○ 组合(Composition)强关联:作为对象中属性,本身就是对象的一部分,独立使用无意义


细见:https://www.jianshu.com/p/2828874af134

动态模型-UML状态图
规定了对象模型中的对象的合法变化序列。对一个对象来说,生命周期由许多阶段组成,生命周期中的阶段也就是对象的状态。状态与事件密不可分,一个事件分开两个状态。事件表示时刻,状态代表时间间隔。通常,用UML提供的状态图来描绘对象的状态、触发状态转换的事件以及对象的行为。各个类的状态图通过共享事件合并起来,从而构成系统的动态模型。

功能模型-UML用例图
表示变化的系统的“功能”性质。通常功能模型用UML用例图:描述外部行为者(actor)所理解的系统功能。在UML中把用用例图建立起来的系统模型称为用例模型。UML用例之间主要有扩展和使用两种关系,它们是泛化关系的两种不同形式:

  • 扩展关系
    向一个用例中添加一些动作后构成了另一个用例,这两个用例之间的关系就是扩展关系,后者继承前者的一些行为,通常把后者称为扩展用例。
  • 使用关系
    当一个用例使用另一个用例时,这两个用例之间就构成了使用关系。通常在描述一般行为的变化时采用扩展关系;在两个或多个用例中出现重复描述又想避免这种重复时,可以采用使用关系