UML是统一建模语言的简称,是一种标准化建模语言,由一组集成的图表组成,旨在帮助系统和软件开发人员指定、可视化、构建和记录软件系统的伪影,以及商业建模和其他非软件系统。UML 代表了一系列最佳工程实践,这些实践在大型复杂系统的建模方面被证明是成功的。UML 是开发对象导向软件和软件开发过程的重要组成部分。UML 主要使用图形标注来表达软件项目的设计。使用UML可帮助专案团队进行沟通、探索潜在设计并验证软件的架构设计。在本文中,我们将为您提供关於什麽是 UML 的详细想法、UML 的历史以及每个 UML 图类型的描述,以及 UML 示例。
UML 的目标是提供标准符号,可用於所有面向物件的方法,并选择和集成前体符号的最佳元素。UML 专为各种应用而设计。因此,它为广泛的系统和活动(例如分散式系统、分析、系统设计和部署)提供结构。
UML 是 OMT 统一产生的符号
1994年,OMT的创造者吉姆·伦博离开通用电气,加入理性公司的格雷迪·布赫,震惊了软件界。夥伴关系的目的是将他们的想法合并到单一的统一方法中(该方法的工作标题确实是"统一方法")。
到1995年,OOSE的创造者伊瓦尔·雅各森也加入了理性,他的想法(特别是"使用案例"的概念)被纳入新的统一方法——现在称为统一建模语言1。伦博、布赫和雅各森的团队被亲切地称为 "三个朋友"
UML 也受到其他对象导向记分的影响:
UML 还包括当时其他主要方法中不存在的新概念,例如扩展机制和约束语言。
随着软件的战略价值对许多公司来说增加,该行业寻找技术来自动化软件的生产,提高品质,降低成本和上市时间。这些技术包括元件技术、视觉程序设计、模式和框架。企业还寻求技术来管理系统的复杂性,因为它们的范围和规模在增加。特别是,他们认识到需要解决经常性的建筑问题,如物理分布、并发、复制、安全、负载平衡和容错性。此外,万维网的发展,虽然使一些事情更简单,加剧了这些建筑问题。统一建模语言 (UML) 旨在满足这些需求。Page-Jones 在 UML 中的基本对象导向设计中总结了 UML 设计的主要目标,具体如下:
在我们开始研究 UML 理论之前,我们将对 UML 的一些主要概念进行非常简短的考察。
关於UML,首先需要注意的是,有很多不同的图表(模型)需要习惯。其原因是,可以从许多不同的角度看待一个系统。软件开发将让许多利益相关者发挥作用。
例如:
所有这些人都对系统的不同方面感兴趣,他们每个人都需要不同级别的细节。例如,编码器需要了解系统的设计,并能够将设计转换为低级代码。相比之下,技术作家对系统的整体行为感兴趣,需要了解产品是如何运作的。UML 试图提供一种语言,使所有利益相关者都能从至少一张 UML 图中受益。
下面快速检视以下 UML 2 图结构中显示的这 13 张图表中的每个图:
结构图显示系统及其部分的静态结构,显示不同的抽象和实现级别,以及它们之间是如何相互关联的。结构图中的元素表示系统中有意义的概念,可能包括抽象、真实世界和实施概念,结构图有七种类型如下:
行为图显示系统中物件的动态行为,可描述为系统随时间变化的一系列,有七种行为图如下:
类图是一种中央建模技术,它贯穿几乎所有面向物件的方法。此图描述了系统中的物件类型及其之间存在的各种静态关系。
有三种主要的关系很重要:
有关类图的更多详细资讯,请阅读文章什麽是类图?
在统一建模语言中,元件图描述了元件如何连接在一起以形成更大的元件或软件系统。它说明了软件元件的架构及其之间的依赖性。这些软件元件包括运行时间元件、可执行元件以及原始程序码元件。
有关元件图的更多详细资讯,请阅读文章什麽是组分图?
部署图有助於建模对象导向软件系统的物理方面。它是一个结构图,显示系统的架构作为软件人工制品的部署(分发)到部署目标。文物代表了物理世界中作为发展过程结果的具体元素。它以静态检视对运行时间配置进行模型化,并可视化应用程序中工件的分布。在大多数情况下,它涉及到将硬体配置与所依赖的软件元件一起建模。
有关部署图的更多详细资讯,请阅读文章什麽是部署图?
物件图是实例图,包括对象和数据值。静态物件图是类图的实例:它显示了系统在某个时间点的详细状态的快照。不同的是,类图表示由类及其关系组成的抽象模型。但是,物件图表示特定时刻的实例,这是具体性质。物件图的使用相当有限,即显示数据结构示例。
有些人可能发现很难理解 UML 类图和 UML 物件图之间的区别,因为它们都由命名的「矩形方块」组成,其中包含属性,并且之间有联系,这使得两个 UML 图看起来相似。有些人甚至可能认为他们是相同的,因为在UML工具中,他们同时使用类图和物件图的注释被放在同一个图表编辑器 - 类图中。
但事实上,类图和物件图代表了代码基数的两个不同方面。在本文中,我们将为您提供有关这两个 UML 图的一些想法,它们是什麽,它们的差异是什麽,以及何时使用它们。
程序设计时创建"类"。例如,在网上银行系统中,您可以创建"使用者","帐户","交易"等类。在课堂管理系统中,您可以创建「教师」,「学生」,"分配"等课程。在每个类中,都有代表类特徵和行为的属性和操作。类图是一个 UML 图,您可以可视化这些类,以及它们的属性、操作和相互关系。
UML 物件图显示系统中的物件实例在特定状态下如何相互交互。它还表示处於该状态的这些对象的数据值。换句话说,UML 物件图可以被看作是在特定状态下如何使用类(在 UML 类图中绘制)的表示。
如果您不是这些定义内容的粉丝,请查看以下 UML 图示例。我相信你会在几秒钟内理解他们的差异。
下列类图示例表示两个类 - 使用者和附件。使用者可以上传多个附件,以便两个类与关联连接,附件侧的0.* 为多重性。
以下物件图示例显示使用者和附件类的物件实例在Peter(即使用者)试图上传两个附件的那一刻如何"看起来像"。因此,要上传的两个附件物件有两个实例规范。
有关物件图的更多详细资讯,请阅读文章「什麽是物件图」?
包图是 UML 结构图,显示包与包之间的依赖关系。模型图允许显示系统的不同视图,例如多层(又名多层)应用程序 - 多层应用模型。
有关包图的更多详细资讯,请阅读文章什麽是包图?
复合结构图是添加到UML 2.0的新产品之一。复合结构图类似於类图,是一种主要用於在微观视点建模系统的组分图,但它描绘的是各个部分而不是整个类。它是一种静态结构图,显示一个类的内部结构和该结构使协作成为可能。
此图可以包括内部部分、各部分相互交互的埠,或者该类实例通过这些电例与零件和外部世界相互作用,以及零件或埠之间的连接器。复合结构是一组相互关联的元素,在运行时协同工作以达到某些目的。每个元素在协作中都有一些定义的角色。
有关复合结构图的更多详细资讯,请阅读文章什麽是复合结构图?
配置档图使您能够创建域和平台特定的成见,并定义它们之间的关系。您可以通过绘制刻板印象形状来创建成见,并通过以资源为中心的介面将其与构图或概括联系起来。您还可以定义和可视化标记的成见值。
有关设定档图的更多详细资讯,请阅读UML 中什麽是设定档图的文章?
用例模型从使用案例的角度描述系统的功能要求。它是系统预期功能(使用案例)及其环境(参与者)的模型。使用案例可让您将系统所需的内容与系统如何满足这些需求联系起来。
将用例模型视为功能表,很像您在餐厅找到的功能表。通过查看功能表,您可以了解可供您选择的菜肴、单个菜肴及其价格。您还知道餐厅供应什麽样的美食:义大利菜、墨西哥菜、中餐等。通过查看功能表,您可以全面了解该餐厅等待您用餐的体验。功能表实际上"模仿"了餐厅的行为。
因为它是一个非常强大的规划工具,因此所有团队成员通常都使用使用案例模型在开发周期的所有阶段。
有关使用案例图的更多详细资讯,请阅读文章「什麽是使用案例图」?
活动图是支持选择、反覆运算和并发的步进活动和行动的工作流程的图形表示。它描述了目标系统的控制流程,例如探索复杂的业务规则和操作,描述了使用案例以及业务流程。在统一建模语言中,活动图旨在类比计算过程和组织过程(即工作流程)。
有关活动图的更多详细资讯,请阅读文章什麽是活动图?
状态图是UML中用於描述系统行为的一种图表,它基於大卫·哈雷尔的状态图概念。状态图描绘了允许的状态和过渡以及影响这些过渡的事件。它有助於可视化物体的整个生命周期,从而有助於更好地了解基於状态的系统。
有关状态机器图的更多详细资讯,请阅读文章「什麽是状态机器图」?
序列图根据时间序列对对对象的协作进行模型。它显示了物件在使用案例的特定场景中如何与其他物件相互作用。凭藉先进的视觉建模功能,您可以在很少的点击中创建复杂的序列图。此外,一些建模工具(如视觉范式)可以从您在用例描述中定义的事件流生成序列图。
有关序列图的更多详细资讯,请阅读文章什麽是序列图?
与序列图类似,通信图也用於类比使用案例的动态行为。与序列图相比,通信图更侧重於显示对象的协作,而不是时间序列。它们实际上在语因上是等价的,因此一些建模工具,例如,视觉范式允许您从一个到另一个生成它。
有关通信图的更多详细资讯,请阅读文章什麽是通信图?
交互概述图侧重於对相互作用控制流的概述。它是活动图的变体,其中节点是相互作用或相互作用发生。交互概述图描述了隐藏消息和生命线的交互。您可以将「真实」图表连接起来,并在交互概述图内的图表之间实现高度通航性。
有关交互概述图的更多详细资讯,请阅读文章什麽是交互概述图?
时间图显示物件在给定时间段内的行为。计时图是序列图的一种特殊形式。计时图和序列图之间的差异是轴被反转,以便时间从左到右增加,生命线显示在垂直排列的单独隔间中。
有关计时图的更多详细资讯,请阅读文章什麽是计时图?
获取视觉范式社区版,这是一个免费的UML工具,可以説明您更快、更有效地学习UML。视觉范式社区版支援所有UML图类型。其UML建模机屡获殊荣,易於使用,直观。
下面列出一些最畅销的 UML 书籍,您可以阅读以学习 UML。
您要寻找免费的 UML 工具,以便更快、更轻松、更快地学习 UML 吗?视觉范式社区版是一个 UML 软件,支援所有 UML 图类型。它是一个国际屡获殊荣的UML建模师,但它是易於使用,直观 - 完全免费。
>>: Day15 测试写起乃 - Devise login user
来部落格看图文并茂文章 补觉鸣诗 前面说防火墙 我们会设定 log 记录功能 而一般防火墙内建空间不...
在这系列教学里,我们以撰写一个以购物车为主题的 Kotlin 函式库为例,经过一连串 TDD、语法风...
写在前面 基本上分享会很随意, 主要就是纪录一些我觉得有趣或是 Kaggle 这系列想传达一些 py...
上次学习了基本的阵列语法 这次要来练习简单的阵列使用 都是基本的宣告以及画面显示 主要是练习一维阵列...
popcat 有监於台湾在popcat中被泰国抢下金牌,无聊的我写了这一个咚咚 这次是使用 Pyth...