📜  统一建模语言 (UML) |一个介绍

📅  最后修改于: 2021-09-10 02:40:49             🧑  作者: Mango

统一建模语言 (UML)是一种通用建模语言。 UML 的主要目的是定义一种标准方法来可视化系统的设计方式。它与其他工程领域中使用的蓝图非常相似。

UML不是一种编程语言,而是一种可视化语言。我们使用 UML 图来描绘系统的行为和结构。 UML 帮助软件工程师、商人和系统架构师进行建模、设计和分析。对象管理组 (OMG) 在 1997 年采用统一建模语言作为标准。此后一直由 OMG 管理。国际标准化组织 (ISO) 于 2005 年发布了 UML 作为批准的标准。 UML 多年来一直在修订并定期进行审查。

我们真的需要UML吗?

  • 复杂的应用程序需要多个团队的协作和规划,因此需要一种清晰简洁的方式在它们之间进行通信。
  • 商人不懂代码。因此,UML 对于与系统的非程序员基本要求、功能和流程进行通信变得必不可少。
  • 当团队能够可视化流程、用户交互和系统的静态结构时,可以节省大量时间。

UML 与面向对象的设计和分析相联系。 UML 使用元素并在它们之间形成关联以形成图表。 UML 中的图可以大致分类为:

  1. 结构图——捕捉系统的静态方面或结构。结构图包括:组件图、对象图、类图和部署图。
  2. 行为图——捕捉系统的动态方面或行为。行为图包括:用例图、状态图、活动图和交互图。

下图显示了根据 UML 2.2 的图表层次结构

UML 中使用的面向对象概念 –

  1. 类——类定义了蓝图,即对象的结构和功能。
  2. 对象——对象帮助我们分解大型系统并帮助我们模块化我们的系统。模块化有助于将我们的系统划分为可理解的组件,以便我们可以一块一块地构建我们的系统。对象是用于描述实体的系统的基本单元(构建块)。
  3. 继承——继承是一种机制,子类通过它继承父类的属性。
  4. 抽象——对用户隐藏实现细节的机制。
  5. 封装 – 将数据绑定在一起并保护它免受外部世界的影响称为封装。
  6. 多态性——功能或实体能够以不同形式存在的机制。

UML 2.0 中的添加 –

  • 软件开发方法如敏捷已经被纳入,原始 UML 规范的范围已经扩大。
  • 最初 UML 指定了 9 个图。 UML 2.x 将图的数量从 9 个增加到 13 个,新增的四个图分别是:时序图、通信图、交互概览图和复合结构图。 UML 2.x 将状态图重命名为状态机图。
  • UML 2.x 添加了将软件系统分解为组件和子组件的能力。

结构 UML 图 –

  1. 类图 –使用最广泛的 UML 图是类图。它是所有面向对象软件系统的构建块。我们使用类图通过显示系统的类、它们的方法和属性来描述系统的静态结构。类图还帮助我们识别不同类或对象之间的关系。
  2. 复合结构图——我们使用复合结构图来表示类的内部结构及其与系统其他部分的交互点。复合结构图表示部件及其配置之间的关系,这些关系决定了分类器(类、组件或部署节点)的行为方式。它们代表使用部件、端口和连接器的结构化分类器的内部结构。我们还可以使用复合结构图为协作建模。它们类似于类图,除了它们详细地表示与整个类相比的各个部分。
  3. 对象图 –对象图可以称为系统中实例以及它们之间存在的关系的屏幕截图。由于对象图描绘了对象被实例化时的行为,我们能够研究系统在特定时刻的行为。对象图类似于类图,只是它显示了系统中类的实例。我们使用类图描绘了实际的分类器及其关系。另一方面,对象图表示某个时间点类的特定实例以及它们之间的关系。
  4. 组件图——组件图用于表示系统中物理组件的组织方式。我们使用它们来对实现细节进行建模。组件图描绘了软件系统元素之间的结构关系,并帮助我们了解计划开发是否涵盖了功能需求。当我们设计和构建复杂系统时,组件图变得必不可少。系统组件使用接口来相互通信。
  5. 部署图 –部署图用于表示系统硬件及其软件。它告诉我们存在哪些硬件组件以及在其上运行哪些软件组件。我们将系统架构描述为软件工件在分布式目标上的分布。工件是由系统软件生成的信息。它们主要用于在具有不同配置的多台机器上使用、分发或部署软件时。
  6. 包图——我们使用包图来描述包及其元素的组织方式。包图简单地向我们展示了不同包之间的依赖关系以及包的内部组成。包帮助我们将 UML 图组织成有意义的组并使图易于理解。它们主要用于组织类和用例图。

行为图 –

  1. 状态机图 –状态图用于表示系统或系统部分在有限时间实例中的状况。这是一个行为图,它使用有限状态转换来表示行为。状态图也称为状态机状态图图。这些术语通常可以互换使用。所以简单地说,状态图用于对类的动态行为进行建模,以响应时间和不断变化的外部刺激。
  2. 活动图——我们使用活动图来说明系统中的控制流。我们还可以使用活动图来指代执行用例所涉及的步骤。我们使用活动图对顺序和并发活动进行建模。因此,我们基本上使用活动图直观地描述工作流。活动图侧重于流程的条件及其发生的顺序。我们使用活动图来描述或描绘导致特定事件的原因。
  3. 用例图——用例图用于描述系统或系统的一部分的功能。它们被广泛用于说明系统的功能需求及其与外部代理(参与者)的交互。用例基本上是一个图表,表示可以使用系统的不同场景。用例图为我们提供了系统或系统的一部分做什么的高级视图,而无需深入了解实现细节。
  4. 序列图 –序列图只是按顺序描述对象之间的交互,即这些交互发生的顺序。我们也可以使用术语事件图或事件场景来指代序列图。序列图描述系统中的对象如何以及以何种顺序函数。这些图表被商人和软件开发人员广泛用于记录和理解新系统和现有系统的需求。
  5. 通信图——通信图(在 UML 1.x 中称为协作图)用于显示对象之间交换的有序消息。通信图主要关注对象及其关系。我们可以使用序列图来表示类似的信息,但是,通信图以自由形式表示对象和链接。
  6. 时序图——时序图是序列图的一种特殊形式,用于描述对象在一个时间范围内的行为。我们使用它们来显示控制对象状态和行为变化的时间和持续时间约束。
  7. 交互概述图——交互概述图对一系列动作进行建模,并帮助我们将复杂的交互简化为更简单的事件。它是活动图和序列图的混合体。

参考 –
统一建模语言 – 维基百科
统一建模语言——IBM