UML 是统一建模语言的缩写,是一种标准化建模语言,由一组集成的图表组成,旨在帮助系统和软件开发人员指定、可视化、构建和记录软件系统的工件,以及用于业务建模和其他非软件系统。 UML 代表了一组最佳工程实践,这些实践在大型复杂系统的建模中已被证明是成功的。 UML 是开发面向对象软件和软件开发过程的一个非常重要的部分。 UML 主要使用图形符号来表达软件项目的设计。 使用 UML 有助于项目团队沟通、探索潜在的设计并验证软件的架构设计。 在本文中,我们将详细介绍什么是 UML、UML 的历史、每种 UML 图类型的描述以及 UML 示例。您是否正在寻找免费的 UML 工具来更快、更轻松、更快速地学习 UML? Visual Paradigm Community Edition 是一个支持所有 UML 图类型的 UML 软件。 它是国际屡获殊荣的 UML 建模器,但它易于使用、直观且完全免费。 UML 的起源UML 的目标是提供所有面向对象方法都可以使用的标准符号,并选择和集成前体符号的最佳元素。 UML 被设计用于广泛的应用程序。 因此,它为广泛的系统和活动(例如,分布式系统、分析、系统设计和部署)提供了构造。 UML 是由 OMT 统一而来的符号
1994 年,OMT 的创建者 Jim Rumbaugh 离开通用电气并加入 Rational 公司的 Grady Booch 时震惊了软件世界。合作的目的是将他们的想法合并成一个单一的、统一的方法(该公司的工作名称)。方法确实是“统一方法”)。 到 1995 年,OOSE 的创建者 Ivar Jacobson 也加入了 Rational,他的想法(特别是“用例”的概念)被输入到新的统一方法中——现在称为统一建模语言1。 Rumbaugh、Booch 和 Jacobson 团队被亲切地称为“三个朋友” UML 也受到其他面向对象符号的影响:
UML 还包括当时其他主要方法中不存在的新概念,例如扩展机制和约束语言。 UML 的历史
为什么选择 UML随着软件对许多公司的战略价值的增加,该行业正在寻找技术来自动化软件生产并提高质量并降低成本和上市时间。 这些技术包括组件技术、可视化编程、模式和框架。 随着系统范围和规模的增加,企业还寻求技术来管理系统的复杂性。 特别是,他们认识到需要解决反复出现的架构问题,例如物理分布、并发性、复制、安全性、负载平衡和容错。 此外,万维网的发展虽然使某些事情变得更简单,但也加剧了这些架构问题。 统一建模语言 (UML) 旨在响应这些需求。 Page-Jones 在 UML 中的基本面向对象设计中总结了 UML 设计的主要目标如下:
UML - 概述在我们开始研究 UML 的理论之前,我们将非常简短地介绍 UML 的一些主要概念。 关于 UML,首先要注意的是有很多不同的图表(模型)需要习惯。 这样做的原因是可以从许多不同的角度看待一个系统。 软件开发将有许多利益相关者参与其中。 例如:
所有这些人都对系统的不同方面感兴趣,并且每个人都需要不同级别的细节。 例如,编码人员需要了解系统的设计并能够将设计转换为低级代码。 相比之下,技术作家对整个系统的行为感兴趣,需要了解产品的功能。 UML 试图提供一种表达能力很强的语言,以便所有涉众都可以从至少一个 UML 图中受益。 下面快速浏览一下这 13 个图表中的每一个,如下面的 UML 2 图表结构所示: 结构图显示了系统的静态结构及其在不同抽象和实现级别上的部分以及它们如何相互关联。 结构图中的元素代表了系统中有意义的概念,可能包括抽象概念、现实世界概念和实现概念,结构图有以下七种类型: 行为图显示 的 动态行为 了系统中对象 ,可以描述为系统随 发生的一系列变化 时间 ,行为图有以下七种类型: 什么是类图?类图是贯穿几乎所有面向对象方法的核心建模技术。 该图描述了系统中对象的类型以及它们之间存在的各种静态关系。 关系三种主要的关系很重要:
类图示例有关类图的更多详细信息,请阅读文章 什么是类图? 什么是组件图?在统一建模语言中,组件图描述了组件如何连接在一起以形成更大的组件或软件系统。 它说明了软件组件的架构以及它们之间的依赖关系。 那些软件组件包括运行时组件、可执行组件以及源代码组件。 组件图示例有关组件图的更多详细信息,请阅读文章 什么是组件图? 什么是部署图?部署图有助于对面向对象的软件系统的物理方面进行建模。 它是一个结构图,将系统的架构显示为软件工件到部署目标的部署(分布)。 工件代表物理世界中作为开发过程结果的具体元素。 它在静态视图中对运行时配置进行建模,并可视化应用程序中工件的分布。 在大多数情况下,它涉及将硬件配置与存在的软件组件一起建模。 部署图示例有关部署图的更多详细信息,请阅读 什么是部署图? 什么是对象图?对象图是实例图,包括对象和数据值。 静态对象图是类图的一个实例; 它显示了系统在某个时间点的详细状态的快照。 不同之处在于类图表示由类及其关系组成的抽象模型。 但是,对象图表示特定时刻的实例,它本质上是具体的。 对象图的使用相当有限,即显示数据结构的示例。 类图与对象图 - 一个例子有些人可能会发现很难理解 UML 类图和 UML 对象图之间的区别,因为它们都由命名的“矩形块”组成,其中有属性,之间有链接,这使得两个 UML 图看起来相似. 有些人甚至可能认为它们是相同的,因为在 UML 工具中,他们使用类图和对象图的符号放在同一个图编辑器 - 类图中。 但实际上,类图和对象图代表了代码库的两个不同方面。 在本文中,我们将为您提供有关这两个 UML 图的一些想法,它们是什么,它们的区别是什么以及何时使用它们。 类图和对象图的关系您在编程时创建“类”。 例如,在网上银行系统中,您可以创建“用户”、“帐户”、“交易”等类。在课堂管理系统中,您可以创建“教师”、“学生”、“作业”等类. 在每个类中,都有代表类的特征和行为的属性和操作。 类图是一个 UML 图,您可以在其中可视化这些类,以及它们的属性、操作和相互关系。 UML 对象图显示了系统中的对象实例在特定状态下如何相互交互。 它还表示处于该状态的那些对象的数据值。 换句话说,UML 对象图可以看作是在特定状态下如何使用类(在 UML 类图中绘制)的表示。 如果您不喜欢这些定义内容,请查看以下 UML 图示例。 我相信你会在几秒钟内了解它们的区别。 类图示例以下类图示例表示两个类 - 用户和附件。 用户可以上传多个附件,因此这两个类通过关联连接,0..* 作为附件侧的多重性。 对象图示例下面的对象图示例向您展示了当 Peter(即用户)尝试上传两个附件时 User 和 Attachment 类的对象实例“看起来像”。 所以要上传的两个附件对象有两个Instance Specification。 有关对象图的更多详细信息,请阅读文章 什么是对象图? 什么是封装图?包图是 UML 结构图,它显示了包和包之间的依赖关系。 模型图允许显示系统的不同视图,例如,作为多层(又名多层)应用程序 - 多层应用程序模型。 封装图示例有关封装图的更多详细信息,请阅读文章 什么是封装图? 什么是复合结构图?复合结构图是添加到 UML 2.0 的新工件之一。 复合结构图类似于类图,是一种主要用于从微观角度对系统进行建模的组件图,但它描绘的是单个部分而不是整个类。 它是一种静态结构图,显示了类的内部结构以及该结构使之成为可能的协作。 该图可以包括内部部件、部件通过其相互交互或通过该类的实例与部件和外部世界交互的端口,以及部件或端口之间的连接器。 复合结构是一组相互关联的元素,它们在运行时协作以实现某些目的。 每个元素在协作中都有一些定义的角色。 复合结构图示例有关复合结构图的更多详细信息,请阅读文章 什么是复合结构图? 什么是剖面图?概要图使您能够创建特定于域和平台的构造型并定义它们之间的关系。 您可以通过绘制定型形状来创建定型,并通过以资源为中心的界面将它们与组合或概括相关联。 您还可以定义和可视化构造型的标记值。 剖面图示例有关剖面图的更多详细信息,请阅读文章 什么是 UML 中的剖面图? 什么是用例图?用例模型根据用例描述系统的功能需求。 它是系统预期功能(用例)及其环境(参与者)的模型。 用例使您能够将您对系统的需求与系统如何满足这些需求相关联。 将用例模型视为菜单,很像您在餐厅中找到的菜单。 通过查看菜单,您可以了解您可以享用的菜肴、个别菜肴及其价格。 你也知道这家餐厅供应什么样的美食:意大利菜、墨西哥菜、中国菜等等。 通过查看菜单,您会对在该餐厅等待您的用餐体验有一个总体印象。 实际上,菜单“模拟”了餐厅的行为。 因为它是一个非常强大的规划工具,所以用例模型通常由所有团队成员在开发周期的所有阶段使用。 用例图示例有关用例图的更多详细信息,请阅读文章 什么是用例图? 什么是活动图?活动图是逐步活动和动作的工作流的图形表示,支持选择、迭代和并发。 它描述了目标系统的控制流程,例如探索复杂的业务规则和操作,描述用例以及业务流程。 在统一建模语言中,活动图旨在对计算和组织过程(即工作流)进行建模。 活动图示例有关活动图的更多详细信息,请阅读文章 什么是活动图? 什么是状态机图?状态图是 UML 中用来描述系统行为的一种图,它基于 David Harel 的状态图概念。 状态图描绘了允许的状态和转换以及影响这些转换的事件。 它有助于可视化对象的整个生命周期,从而有助于更好地理解基于状态的系统。 状态机图示例有关状态机图的更多详细信息,请阅读文章 什么是状态机图? 什么是序列图?序列图基于时间序列对对象的协作进行建模。 它显示了在用例的特定场景中对象如何与其他对象交互。 借助先进的可视化建模功能,您只需点击几下即可创建复杂的序列图。 此外,一些建模工具如 Visual Paradigm 可以根据您在用例描述中定义的事件流生成序列图。 序列图示例有关序列图的更多详细信息,请阅读文章 什么是序列图? 什么是通信图?与序列图类似,通信图也用于对用例的动态行为进行建模。 与序列图相比,通信图更侧重于显示对象的协作而不是时间序列。 它们实际上在语义上是等效的,因此一些建模工具(例如 Visual Paradigm)允许您从一个生成到另一个。 通信图示例有关通信图的更多详细信息,请阅读文章 什么是通信图? 什么是交互概览图?交互概述图侧重于交互控制流的概述。 它是活动图的变体,其中节点是交互或交互事件。 交互概览图描述了隐藏消息和生命线的交互。 您可以链接“真实”图表并在交互概览图表内的图表之间实现高度导航。 交互概览图示例有关交互概览图的更多详细信息,请阅读文章 什么是交互概览图? 什么是时序图?时序图显示了对象在给定时间段内的行为。 时序图是时序图的一种特殊形式。 时序图和时序图的区别在于轴倒转,时间从左到右增加,生命线显示在垂直排列的单独隔间中。 时序图示例有关时序图的更多详细信息,请阅读文章 什么是时序图? 获取 Visual Paradigm 社区版,这是一个免费的 UML 工具,可以帮助您更快、更有效地学习 UML。 Visual Paradigm Community Edition 支持所有 UML 图类型。 它的 UML 建模器屡获殊荣,易于使用且直观。 UML 术语表和术语
流行的 UML 书籍下面列出了一些最畅销的 UML 书籍,您可以阅读这些书籍来学习 UML。 相关链接 |
|
来自: warrenlynch > 《UML Modeling》