UML 建模 -- 基础知识
1、UML简介
UML(Unidied Modeling Language)为面向对象软件设计提供统一的,标准的,可视化的建模语言。适用于以用例为驱动,以体系结构为中心的软件设计全程
2、UML模型的构成
事务(Things):UML建模中最基本的构成元素,具有代表性的成分的抽象
关系(Relationships):关系把事务紧密联系在一起
图(Diagrams):图是事务和关系的可视化表示
3、事务
UML包含4中事务:构件事务,行为事务,分组事务,注释事务
3.1 构件事务
UML建模的静态部分,表述概念或者物理元素,主要包括如下几种:
类:具有相同属性、相同操作、相同关系、相同语义的对象的描述
接口:描述元素的外部可见行为(服务集合的定义说明)
协作:描述一组事务的相互作用的集合
用例:代表一个系统或者系统一部分行为,是一组动作序列的集合
构件:系统中物理存在,可替换的部件
节点:运行时存在的物理元素
另外:参与者、信号应用,文档库,页表都是上述基本事务的变体
3.2 行为事务
UML建模的动态部分,描述跨越空间和时间的行为
交互:实现某功能的一组构件事务之间的消息的集合,涉及消息、运动序列、链接
状态机:描述事务或者交互在生命周期内响应事件所经历的状态序列
3.3 分组事务
UML建模图的组织部分,描述事务的组织结构
包:把元素组织成组的机制
3.4 注释事务
UML模型的解释部分,用来对模型中的元素进行说明,解释
注解:对元素进行约束或者解释的符合
4、关系
4.1 泛化(generalization):带三角箭头的实线,箭头指向父类
可以说成是继承关系,它指定类子类如何特化父类的属性、行为
4.2 实现(realization): 带三角箭头的虚线,箭头指向接口
是一种类与接口的关系,表示类是接口所有属性和行为的实现
4.3 关联(association):带普通箭头的实线,指向被拥有者
是一种结构关系,表示拥有关系,它使一个类知道另一个类的属性和方法
关联是可以双向的(可以两个箭头或者没有),单项的关联有一个箭头
4.4 聚合(Aggregation):带空心菱形的实线,菱形指向整体
是整体与部分的关系,并且部分可以脱离整体单独存在(汽车和轮胎)
聚合也是关联的一种,是强关联
4.5 组合(Composition):待实心的菱形实现,菱形指向整体
是整体与部分的关系,但是部分不能脱离整体,整体的对象负责代表部分的对象的生命周期
4.6 依赖(dependency):带普通箭头的虚线,指向使用者
是一种使用关系,既一个类的实现需要另一个类的协助,所以尽量不要使用双向依赖(方法参数,静态方法)
5、图
用例图
从用户角度描述系统功能,是用户所能观察到的系统功能的模型图,用例是系统中的一个功能单元
类图
描述系统中类的静态结构,不仅定义系统中的类,表示类之间的关系(关联,依赖),也包括类的内部结构(属性,行为)。
类图是以类为中心来组织的,类图中的其他元素或者属于类或者类相关联
对象图
对象图是类图的实例,几乎使用与类图完全相同的标识,他们的不同点在于对象图显示类的多个对象实例,而不是实际的类。
顺序图
顺序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互。
顺序图的一个用途是用例表示用例中的行为顺序。当执行一个用例行为时,顺序图中的每条消息对应一个类操作或引起状态转换的触发事件。
协作图
协作图描述对象建的协作关系,协作图跟顺序图相似,显示对象间的动态合作关系,除了显示信息交互外,协作图还显示对象以及它们之间的关系
协作图的一个用途表示类操作的实现
状态图
状态图是一个类对象所可能经历的所有历程的模型图,状态图由对象的各个状态和连接这些状态的转换组成
活动图
活动图是状态图的一个变体,用来描述执行算法的工作流程中涉及的活动
活动图描述了一组顺序或者并发的活动。
构件图
结构图为系统的构件建模型(构件既构造应用软件单元),还包括各个构件之间的依赖关系,以便通过这些依赖关系来估计对系统构件的修改给系统可能带来的影响
部署图
部署图描述位于节点实例上运行构件实例的安排,节点是一组运行资源,如计算机,设备或存储器。这个视图允许评估分配结果和资源分配
6、各个UML图的关系
需求分析:用例图-顺序图
BD(基本设计):用例文档-用例图-类图-顺序图
FD/DD(结构设计/详细设计):类图-顺序图