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用例之间主要有扩展和使用两种关系,它们是泛化关系的两种不同形式: