UML 是统一标准建模语言。
优点:
序号 | 优点 |
---|---|
1 | 便于交流,有良好的语义,不会引起歧义。 |
2 | 便于表达,提供图形化可视模型,使系统结构变得直观,易于理解。 |
3 | 利于维护,系统结构可加入版本控制,方便的查看,修改。 |
规约,即规范定义,意味建立的模型是准确的,无歧义的,完整的。 UML 地定了再软件开发过程中所做的所有重要分析,设计,和决策的规格说明。
UML不是可视化的编程语言,但它的模型可以直接对应各种各样的编程语言,也就是说,可以从 UML 模型生成Java、 C++、 Visual Basic 等语言的代码,甚至还可以生成关系数据库中的表。
概念 | 释义 |
---|---|
前向工程 | 从UML模型生成编程语言代码的过程 |
逆向工程 | 从代码实现生成UML模型的过程 |
PS: 目前大多数 CASE工具. 如 Rational Rose、 Visual Paradigm for UML、 Prosa 等, 都既支持前向工程又支持逆向工程。
在软件的开发过程中为软件系统建立清晰、 完整、 准确的文档是非常重要的。 UML 可以为系统的体系结构以及其所有细节建立文档。 UML还可以为需求、 测试、 项目规划活动和软件发布管理活动进行建模。
软件系统的产物包括以下元素(但不限于这些元素):
- 需求
- 体系结构
- 设计
- 源代码
- 项目计划
- 测试
- 原型
- 发布
UML 词汇表包括三种构造模块, 即元素、 关系和图。 元素是模型中的重要抽象,关系将这些元素连接起来, 而图则将这些元素的集合进行分组。
UML 中的元素, 可分为结构元素、行为元素、分组元素和注释元素四种
元素类型 | 简介 | 常见类型 |
---|---|---|
结构元素 | 结构元素是 UML 模型中的名词,也是模型中主要的静态部分, 代表了模型中概念的或物理的元素。 | 类(Class)、 接口(Interface)、 协作(Collaboration)、 用例(Use Case)、 活动类(Activity Class)、 组件(Component)、 节点(Node) |
行为元素 | 行为元素是 UML 模型中的动词, 也是模型中中的动态部分, 代表了跨越时间和空间的行为。 | 交互作用、 状态机 |
分组元素 | 分组元素是 UML 模型中用来组织元素的元素。 | 包(Package) |
注释元素 | 注释元素是 UML 模型中的解释性部分, 可以用于描述、 例解、 注解 UML 模型中的任何元素 | 注解(Note) |
交互作用与状态机:
类别 | 详解 |
---|---|
交互作用 | 一种行为, 由特定的上下文中为完成特定的目的而在对象间交换的消息及组成。 交互作用包括许多其他元素, 如*消息、 动作序列(由消息激活的行为)、 连接(对象间的连接)*等。 |
状态机: | 一种行为,这种行为规定了对象在其生命周期内为响应时间而经历的状态序列, 以及对事件的响应。 状态机也包括许多其他元素, 如状态、 跃迁、事件和活动等。 |
在 UML 模型中,主要有4种关系:
- 依赖关系(Dependency)
- 关联关系(Association)
- 类属关系(Generalization)
- 实现关系(Realization)
UML1.x 定义了9种图, UML2.0 又补充了4种图, 总共定义了13种图。
这13种图可以分为两类:
类型 | 作用 | 包括 |
---|---|---|
结构建模图 | 描述了系统的静态结构 | 类图、 对象图、 组件图、 组合图、 包图、 部署图 |
行为建模图 | 描述了系统的行为 | 用例图、 活动图、 状态机图、 顺序图、 通信图、 定时图、 交互概览图 |
定义了模型的静态结构, 一般用来构成模型的类、 对象、 接口、 物理组件以及元素之间的关系进行建模。
序号 | 名称 | 简介 |
---|---|---|
01 | 类图 (Class Diagram) | 描述系统中各个类的静态结构, 不仅定义了系统系统中的类, 表示了类之间的联系, 还描述了类的内部结构, 在系统的整个生命周期都是有效的。 |
02 | 对象图 (Object Diagram) | 对象图是类图的实例, 使用与类图类似的标识。 一个对象图是一个类图的实例, 对象图只在系统整个生命周期的某一个时间段存在。 |
03 | 组件图 (Component Diagram) | 描述代码组件的物理结构以及各个组件之间的依赖关系。 |
04 | 组合结构图 (Composite Structure Diagram) | 描述了分类器的的内部结构, 它包括分类器与系统其他部分的交互作用。 |
05 | 包图 (Package Diagram) | 描述了包与包之间的关系。 |
06 | 部署图 (Deployment Diagram) | 定义了系统中软硬件的物理体系结构。 |
描述了系统的动态结构, 系统对象间的交互关系以及对象的瞬时状态。
序号 | 名称 | 简介 |
---|---|---|
07 | 用例图 (Use Case Diagram) | 从用户角度描述系统功能, 并指出各个功能的操作者。 |
08 | 活动图 (Activity Diagram) | 描述了为满足用例要求进行的各类活动以及活动间的约束关系。 |
09 | 状态机图 (State Machine Diagram) | 描述了类的对象所有可能状态,以及事件发生时的跃迁条件。 |
10 | 顺序图 (Sequence Diagram) | 描述了对象之间的动态合作关系, 它强调对象之间消息发送的时间顺序, 同时显示对象之间的交互。 |
11 | 通信图 (Communication Diagram) | 描述了类的实例, 实例间的相互关系, 以及实例间的消息流。 |
12 | 定时图 (Timing Diagram) | 描述一个或多个对象在给定时间段的行为。 |
13 | 交互概览图 (Interaction Overview Diagram) | 活动图和顺序图的混合,描述了系统或商业过程中的控制流。 |