de_DEen_USes_ESfa_IRfr_FRid_IDjapl_PLpt_PTru_RUvizh_CNzh_TW

统一建模语言(UML)全面教程

什么是统一建模语言(UML)?

统一建模语言(UML)是一种标准化的建模语言,由一组集成的图表组成。它被开发出来以帮助系统和软件开发人员指定、可视化、构建和记录软件系统的各种构件。UML也适用于业务建模及其他非软件系统。它代表了一套经过实践证明在建模大型复杂系统方面行之有效的最佳工程实践。

UML在面向对象的软件开发以及整个软件开发过程中起着至关重要的作用。它主要使用图形化符号来表达软件项目的设计,使项目团队能够有效沟通、探索潜在的设计方案,并验证架构决策。

在本教程中,我们将涵盖UML的起源、历史、重要性,其图表的概览(附有示例)、关键术语的术语表、热门书籍,以及现代工具(如Visual Paradigm的AI功能)如何提升UML建模的生产力。

UML的起源

UML的目标是为所有面向对象方法提供一种通用的标准符号,整合前驱符号中的最佳元素。UML支持广泛的应用领域,包括分布式系统、分析、系统设计和部署。

UML源于多种方法论的融合:

  1. 对象建模技术(OMT)由詹姆斯·伦巴ugh(1991年)提出:适用于分析和数据密集型系统。
  2. 博奇方法由格雷迪·博奇(1994年)提出:非常适合设计与实现,尽管其符号(云形)略显不够整洁。
  3. 面向对象的软件工程(OOSE)由伊瓦尔·雅各布森(1992年)提出:引入了用例,这是一种理解系统行为的技术。

1994年,伦巴ugh加入理性公司(Rational Corp.)与博奇合作,将他们的理念融合成“统一方法”。到1995年,雅各布森加入,引入了用例,最终形成了统一建模语言(UML)。这三人——伦巴ugh、博奇和雅各布森——被称为“三剑客”。

UML还受到其他符号体系的影响,例如梅勒和斯莱尔(1998年)、科德和尤尔登(1995年)、维尔夫斯-布罗克(1990年)以及马丁和奥德尔(1992年)的体系。它引入了扩展机制和约束语言等新概念。

UML的发展历史

UML的发展由对象管理组(OMG)推动:

  1. 1996年,OMG发布了提案请求(RFP),促使各组织合作提交联合响应。
  2. 理性公司组建了UML合作伙伴联盟,成员包括数字设备公司、惠普、i-Logix、IntelliCorp、IBM、ICON计算、MCI系统屋、微软、甲骨文、理性软件、德州仪器和尤尼西斯等公司。
  3. 这促成了1997年1月发布UML 1.0,一种定义清晰、表达力强的语言。
  4. 来自IBM、ObjecTime、铂金科技、Ptech、Taskon、赖希科技和Softeam的额外反馈促成了UML 1.1的发布,该版本于1997年秋季被OMG采纳。
  5. UML从1.1版本逐步演进至1.5,随后进入UML 2.0系列,截至2025年,当前版本为2.5。

为什么需要UML?

随着软件战略价值的提升,各行业都在寻求自动化生产、提高质量、降低成本和缩短上市时间的技术。这些技术包括组件技术、可视化编程、设计模式和框架。企业需要应对系统复杂性的方法,解决物理分布、并发性、复制、安全性、负载均衡和容错等问题——而这些在Web开发中尤为突出。

UML通过其主要设计目标回应这些需求(由Page-Jones总结如下:《UML中的基础面向对象设计》):

  1. 提供一种即用型、表达力强的可视化建模语言,用于开发和交换有意义的模型。
  2. 提供可扩展性和专门化机制。
  3. 与编程语言和流程无关。
  4. 为理解该语言提供正式基础。
  5. 促进面向对象工具市场的增长。
  6. 支持协作、框架、模式和组件等高层次概念。
  7. 整合最佳实践。

UML – 概览

UML 提供多种图表,从不同视角查看系统,满足分析师、设计师、程序员、测试人员、质量保证人员、客户和技术作者等利益相关者的需求。每种图表需要不同程度的细节。

UML 2 图表分为两类:

结构图

这些图表展示系统的静态结构、组成部分及其关系。共有七种类型:

  • 类图:描述对象类型和静态关系(关联、继承、聚合)。

UML 类图教程,逐步详解 | 作者:Salma | Medium

 

  • 组件图:展示组件如何构成更大的系统,包括架构和依赖关系。

什么是组件图?

 

  • 部署图:模拟工件在硬件上的物理部署。

What is Deployment Diagram?

 

  • 对象图:展示特定时间的实例和数据值,如同类图的快照。
  • 包图:展示包及其依赖关系,用于多层视图。
  • 组合结构图:展示类的内部结构和协作关系。
  • 配置文件图:定义特定领域的构造型和关系。

行为图

这些描绘了随时间变化的动态行为。共有七种类型:

  • 用例图:描述功能需求、参与者和系统响应。

 

  • 活动图:用步骤、决策和并发来表示工作流程。

UML活动图示例 – 在线购物、处理订单……

 

  • 状态机图:描述对象状态、转换和事件。
  • 顺序图:按时间顺序展示对象之间的交互。

什么是顺序图?

 

  • 通信图:关注对象之间的协作,而非时间。
  • 交互概览图:提供交互的高层次视图。
  • 时序图:展示对象随时间的行为,其坐标轴与顺序图相反。

UML术语表和术语

  • 抽象类:一个永远不会被实例化的类。
  • 参与者:启动系统事件。
  • 活动:活动图中的一个步骤。
  • 活动图:用于流程的类似流程图的图表。
  • 聚合: “部分-整体”关系。
  • 工件: 设计步骤的输出。
  • 关联: 模型元素之间的连接。
  • 关联类: 为关联添加信息。
  • 属性: 对象的特征。
  • 基类: 在泛化中被继承。
  • 分支: 活动图中的决策点。
  • : 相似对象的类别。
  • 类图: 展示类及其关系。
  • 分类器: 具有属性/操作的元素(例如,类、接口)。
  • 协作: 通信图中的消息传递关系。
  • 通信图: 强调对象的角色。
  • 组件: 可部署的代码单元。
  • 组件图: 展示组件/接口。
  • 概念: 领域模型中的名词/抽象概念。
  • 构建阶段: RUP中的主要构建阶段。
  • 依赖: 一个分类器了解另一个分类器的结构。
  • 部署图: 显示处理器。
  • 领域: 系统相关的宇宙。
  • 精化阶段: 规划迭代。
  • 元素: 任何模型项。
  • 封装: 对象中的私有数据。
  • 事件: 触发状态变化。
  • 最终状态: 图表完成点。
  • 分叉: 启动并行线程。
  • 泛化: 继承关系。
  • GoF: 四人组设计模式。
  • 高内聚: 类专注于相关功能。
  • 初始状态: 图表起点。
  • 实例: 从类创建的对象。
  • 接口: 行为契约。
  • 迭代: 添加功能的迷你项目。
  • 连接: 同步并行线程。
  • 低耦合: 最小的类依赖。
  • 成员: 属性或操作。
  • 合并: 合并控制路径。
  • 消息: 对象请求。
  • 方法: 对象函数。
  • 模型: 核心UML构件。
  • 多重性: 数量关系。
  • 可导航性: 关系中的感知。
  • 符号: 图表的规则。
  • 注释: 解释性文本。
  • 对象: 实例或图表参与者。
  • : 分组元素。
  • 包图: 显示包/依赖关系。
  • 模式: 可重用的解决方案。
  • 参数: 操作参数。
  • 多态性: 相同的消息,不同的实现。
  • 私有/受保护/公共: 可见性级别。
  • 处理器: 部署目标。
  • 阅读方向箭头: 关系方向。
  • 实现: 提供接口。
  • 角色: 角色描述。
  • 顺序图: 基于时间的交互。
  • 状态: 系统状态。
  • 状态图: 状态和转换。
  • 静态: 共享/单实例修饰符。
  • 构造型: 自定义UML方言。
  • 子类: 从基类继承。
  • 泳道: 活动图中的责任区域。
  • 时间盒: 固定时间迭代。
  • 转换: 控制/状态变更。
  • 转换阶段: 用户发布。
  • UML: 统一建模语言。
  • 用例: 系统动作。
  • 用例图: 参与者和用例。
  • 可见性: 访问修饰符。
  • 工作流: 为达成结果而进行的活动。

流行的UML书籍

  1. UML精粹:标准对象建模语言简明指南 作者:马丁·福勒。
  2. UML 2与统一过程:实用的面向对象分析与设计 作者:吉姆·阿罗和伊拉·诺斯特纳德。
  3. 学习UML 2.0 作者:拉斯·迈尔斯和金·汉密尔顿。
  4. 使用UML构建Web应用 作者:吉姆·康纳伦。
  5. 统一建模语言参考手册 作者:詹姆斯·伦鲍等人。
  6. UML 2.0风格要素 作者:斯科特·W·安布勒。
  7. 面向Java程序员的UML 作者:罗伯特·C·马丁。
  8. UML简明教程 作者:西蒙·本内特等。
  9. 统一建模语言用户指南 作者:格雷迪·博奇等。
  10. UML 2认证指南:基础与中级考试 作者:蒂姆·魏尔基恩斯和伯恩德·奥斯特赖希。
  11. UML中的面向对象设计基础 作者:梅利尔·佩奇-琼斯。
  12. 使用UML进行用例驱动的面向对象建模:一个带注释的电子商务示例 作者:道格·罗森伯格和肯德尔·斯科特。
  13. 使用UML设计灵活的面向对象系统 作者:查尔斯·里希特。
  14. 使用UML进行用例驱动的面向对象建模 作者:道格·罗森伯格和肯德尔·斯科特。
  15. 使用UML 2.0的系统分析与设计:面向对象方法 作者:艾伦·丹尼斯等。
  16. UML 2.0速成 作者:丹·皮洛内和尼尔·皮特曼。
  17. 面向对象的分析与设计及其应用 作者:格雷迪·博奇等。
  18. UML详解 作者:肯德尔·斯科特。
  19. 设计模式:可重用面向对象软件的元素 作者:埃里希·伽玛等(GoF)。
  20. 对象入门:使用UML 2.0的敏捷模型驱动开发 作者:斯科特·W·安布勒。

利用Visual Paradigm的AI功能提升团队生产力

到2025年,像Visual Paradigm这样的工具已整合了先进的AI功能,以简化UML建模,利用自然语言处理和机器学习等新技术。这些功能可自动化重复性任务,提出改进建议,并支持协作优化,通过减少人工工作量和加快迭代速度,显著提升团队生产力。

Visual Paradigm 中的关键 AI 功能

为什么现在要在 UML 中使用 AI?

AI 使建模民主化,让非专家也能参与,而专家则可以专注于高层次设计。它能够处理大型系统中的复杂性,确保一致性,并与敏捷工作流程集成,实现更快的反馈。借助 Visual Paradigm 等工具的实时协作功能,团队可以在会议中迭代图表,减少错误并缩短上市时间。

提升生产力的示例

  1. 生成类图:输入类似“一个银行系统,其中 User 类包含姓名和账户,与包含余额和交易的 Account 类相关联”的文本。AI 生成图表,建议聚合关系,并通过聊天机器人进行优化(例如,“为 SavingsAccount 添加继承关系”)。这为团队在头脑风暴设计时节省了数小时的手动绘图时间。
  2. 优化用例:对于一个电子商务项目,用文字描述场景。AI 通过自动添加如“处理支付失败”之类的扩展来优化用例图。团队随后可以聊天:“为管理员添加参与者”,模型立即更新以供审查。
  3. 创建开发计划:从 UML 工件出发,AI 生成时间表和待办事项清单,并通过 Agilien 与 Jira 集成。团队可以分析顺序图并获得 AI 规划的冲刺计划,提升分布式团队的协作效率和生产力。

通过采用这些 AI 工具,团队可以专注于创新而非繁琐工作,使UML 在现代软件开发中更加易于使用和高效。要获得实际操作经验,请尝试Visual Paradigm 的免费社区版.