UML:修订间差异
跳到导航
跳到搜索
(创建页面,内容为“UML(Unified Modeling Language, 统一建模语言)是软件工程领域中一种通用的、可视化的建模语言 ISO 标准。 UML 主要存在 UML 1.x 和 UML 2 两个大的版本系列,UML 2 于 2005 年正式发布。 从 UML 2 开始,UML 标准被划分为两个相对独立的部分:基础结构和上层结构;新增了包图、组合结构图、外廓图、交互概览图、时间图这 5 种图形(1.x 九种) ===语义结构=== 结…”) |
|||
(未显示同一用户的4个中间版本) | |||
第12行: | 第12行: | ||
既有结构化又有行为的辅助建模结构,包括用例(Use Cases)、部署(Deployments)和信息流(Information Flows)。 | 既有结构化又有行为的辅助建模结构,包括用例(Use Cases)、部署(Deployments)和信息流(Information Flows)。 | ||
===分类=== | ====关系==== | ||
====静态结构图=== | {| class="wikitable" | ||
|+ | |||
!类型 | |||
!Type | |||
!Describe | |||
!Sign | |||
|- | |||
|泛化 | |||
|generalization | |||
|一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。 | |||
|带有空心三角箭头的实线指向基类 | |||
|- | |||
|实现 | |||
|realization | |||
|一个类(class)实现接口(interface,可以是多个)的功能 | |||
|带有空心三角箭头的虚线指向接口 | |||
|- | |||
|依赖 | |||
|dependency | |||
|类与类之间的连接(use a) 。表示一个类依赖于另一个类,如:对静态方法的调用。 | |||
|带有箭头的虚线指向被依赖的类 | |||
|- | |||
|关联 | |||
|association | |||
|关系表示类与类之间的联接(has a), 它使一个类知道另一个类的属性和方法。关联有两个端点, 在每个端点可以有一个基数, 表示这个关联的类可以有几个实例。 | |||
|单箭头表示单向关联, 使用双箭头或不使用箭头表示双向关联 | |||
|- | |||
|聚合 | |||
|aggregation | |||
|整体和个体之间的关系,即 has-a 的关系。关联关系的一种特例,是强的关联关系。Java 语法上不分关联和聚合。 | |||
|空心棱形+带有单箭头的实线指向被聚合的类 | |||
|- | |||
|组合 | |||
|composition | |||
|一种 contains-a 的关系,这种关系比聚合更强,也称为强聚合。与聚合的区别就是“部分”不能脱离“整体”单独存在。 | |||
|实心棱形+带有单箭头的实线指向被聚合的类 | |||
|} | |||
=== 分类 === | |||
====静态结构图==== | |||
类、包(U2)、对象、结合结构(U2)、构件、部署、外廓(U2) | 类、包(U2)、对象、结合结构(U2)、构件、部署、外廓(U2) | ||
{| class="wikitable" | |||
|+ | |||
!类型 | |||
!Type | |||
!说明 | |||
|- | |||
|类 | |||
|Class Diagram | |||
|系统的类/接口的协作和关系。是软件的蓝图,用于详细描述系统内各个对象的相关类,以及这些类之间的静态关系 | |||
|- | |||
|包(U2) | |||
|Package Diagram | |||
|包和包之间的关系。用于展现由模型本身分解而成的组织单元(包)及它们的依赖关系 | |||
|- | |||
|对象 | |||
| | |||
|对象和对象之间的关系 | |||
|- | |||
|结合结构(U2) | |||
| | |||
|系统某一部分的内部结构 | |||
|- | |||
|构件 | |||
| | |||
|构件展示及构件相互依赖关系 | |||
|- | |||
|部署 | |||
| | |||
|构件在各节点部署的展示 | |||
|- | |||
|外廓(U2) | |||
| | |||
|现有图的扩展 | |||
|} | |||
====动态结构图==== | |||
用例、活动、状态、顺序(时序)、通信(协作)、时间(U2)、交互概览(U2) | |||
{| class="wikitable" | |||
|+ | |||
!类型 | |||
!说明 | |||
|- | |||
|用例 | |||
|对象和对象目标之间的关系 | |||
|- | |||
|活动 | |||
|事物执行的控制流和数据流 | |||
|- | |||
|状态 | |||
|对象自身经历的状态转移 | |||
|- | |||
|顺序(时序) | |||
|强调消息执行顺序 | |||
|- | |||
|通信(协作) | |||
|强调对象之间的协作 | |||
|- | |||
|时间(U2) | |||
|强调真实时间信息 | |||
|- | |||
|交互概览(U2) | |||
|对象之间的信息交互 | |||
|} | |||
===业务分析设计过程=== | |||
====业务建模==== | |||
采用软件建模方法分析和理解待开发的业务,描述业务流程;其目标是认识业务本质,该业务本质是后续用例建模的基础。 | |||
====用例建模==== | |||
采用 UML 用例建模技术描述软件需求,该需求模型将为后续用例分析提供输入。 | |||
====用例分析==== | |||
采用 UML 用例分析技术分析软件需求,建立软件系统的分析模型。 | |||
====架构设计==== | |||
在系统的全局范围内,以分析模型为基础,设计系统的架构。 | |||
====构件设计==== | |||
根据架构设计的成果,将分析模型细化,设计系统构件的实现细节。 | |||
====代码实现==== | |||
将系统构件映射到目标语言上。 | |||
===工具及脚本=== | |||
# [https://www.plantuml.com/ plantuml plantuml online] | |||
# [https://app.timelessq.com/office/plantuml-editor timelessq plantuml online] | |||
Example: | |||
<small><nowiki>@startuml | |||
actor 顾客 | |||
actor 收银员 | |||
顾客 --> (下单收衣) | |||
顾客 --> (取衣确认) | |||
收银员 --> (下单收衣) | |||
(下单收衣) .> (使用优惠券) : <<extend>> | |||
@enduml</nowiki></small> | |||
[[分类:Develop]] | [[分类:Develop]] | ||
[[分类:Tools]] | [[分类:Tools]] |
2025年4月17日 (四) 15:52的最新版本
UML(Unified Modeling Language, 统一建模语言)是软件工程领域中一种通用的、可视化的建模语言 ISO 标准。
UML 主要存在 UML 1.x 和 UML 2 两个大的版本系列,UML 2 于 2005 年正式发布。
从 UML 2 开始,UML 标准被划分为两个相对独立的部分:基础结构和上层结构;新增了包图、组合结构图、外廓图、交互概览图、时间图这 5 种图形(1.x 九种)
语义结构
结构建模(Structural Modeling)、行为建模(Behavioral Modeling)、补充建模(Supplemental Modeling)。
动作(Actions)是 UML 中的基本行为单元,用于定义细粒度的行为;在此基础上形成高层次的行为机制,包括状态机(StateMachines)、活动(Activities)和交互(Interactions)等。
既有结构化又有行为的辅助建模结构,包括用例(Use Cases)、部署(Deployments)和信息流(Information Flows)。
关系
类型 | Type | Describe | Sign |
---|---|---|---|
泛化 | generalization | 一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。 | 带有空心三角箭头的实线指向基类 |
实现 | realization | 一个类(class)实现接口(interface,可以是多个)的功能 | 带有空心三角箭头的虚线指向接口 |
依赖 | dependency | 类与类之间的连接(use a) 。表示一个类依赖于另一个类,如:对静态方法的调用。 | 带有箭头的虚线指向被依赖的类 |
关联 | association | 关系表示类与类之间的联接(has a), 它使一个类知道另一个类的属性和方法。关联有两个端点, 在每个端点可以有一个基数, 表示这个关联的类可以有几个实例。 | 单箭头表示单向关联, 使用双箭头或不使用箭头表示双向关联 |
聚合 | aggregation | 整体和个体之间的关系,即 has-a 的关系。关联关系的一种特例,是强的关联关系。Java 语法上不分关联和聚合。 | 空心棱形+带有单箭头的实线指向被聚合的类 |
组合 | composition | 一种 contains-a 的关系,这种关系比聚合更强,也称为强聚合。与聚合的区别就是“部分”不能脱离“整体”单独存在。 | 实心棱形+带有单箭头的实线指向被聚合的类 |
分类
静态结构图
类、包(U2)、对象、结合结构(U2)、构件、部署、外廓(U2)
类型 | Type | 说明 |
---|---|---|
类 | Class Diagram | 系统的类/接口的协作和关系。是软件的蓝图,用于详细描述系统内各个对象的相关类,以及这些类之间的静态关系 |
包(U2) | Package Diagram | 包和包之间的关系。用于展现由模型本身分解而成的组织单元(包)及它们的依赖关系 |
对象 | 对象和对象之间的关系 | |
结合结构(U2) | 系统某一部分的内部结构 | |
构件 | 构件展示及构件相互依赖关系 | |
部署 | 构件在各节点部署的展示 | |
外廓(U2) | 现有图的扩展 |
动态结构图
用例、活动、状态、顺序(时序)、通信(协作)、时间(U2)、交互概览(U2)
类型 | 说明 |
---|---|
用例 | 对象和对象目标之间的关系 |
活动 | 事物执行的控制流和数据流 |
状态 | 对象自身经历的状态转移 |
顺序(时序) | 强调消息执行顺序 |
通信(协作) | 强调对象之间的协作 |
时间(U2) | 强调真实时间信息 |
交互概览(U2) | 对象之间的信息交互 |
业务分析设计过程
业务建模
采用软件建模方法分析和理解待开发的业务,描述业务流程;其目标是认识业务本质,该业务本质是后续用例建模的基础。
用例建模
采用 UML 用例建模技术描述软件需求,该需求模型将为后续用例分析提供输入。
用例分析
采用 UML 用例分析技术分析软件需求,建立软件系统的分析模型。
架构设计
在系统的全局范围内,以分析模型为基础,设计系统的架构。
构件设计
根据架构设计的成果,将分析模型细化,设计系统构件的实现细节。
代码实现
将系统构件映射到目标语言上。
工具及脚本
Example:
@startuml actor 顾客 actor 收银员 顾客 --> (下单收衣) 顾客 --> (取衣确认) 收银员 --> (下单收衣) (下单收衣) .> (使用优惠券) : <<extend>> @enduml