UML - 概述

UML 是一种用于指定、可视化、构建和记录软件系统工件的标准语言。

UML 由对象管理组 (OMG) 创建,UML 1.0 规范草案于 1997 年 1 月向 OMG 提出。

OMG 不断努力创建真正的行业标准。

  • UML 代表统一建模语言

  • UML 不同于其他常见的编程语言,如 C++、Java、COBOL 等

  • UML 是一种用于制作软件蓝图的图形语言。

  • UML 可以被描述为一种通用可视化建模语言,用于可视化、指定、构建和记录软件系统。

  • 尽管 UML 通常用于对软件系统进行建模,但它并不限于此范围。 它还用于对非软件系统进行建模。 例如制造单位的工艺流程等。

UML 不是一种编程语言,但可以使用工具使用 UML 图生成各种语言的代码。 UML与面向对象的分析和设计有直接的关系。 经过一些标准化后,UML 已成为 OMG 标准。

UML 的目标

一图胜千言,这个习语绝对适合描述 UML。 面向对象的概念比 UML 更早引入。 那时,还没有标准的方法来组织和巩固面向对象的开发。 正是在这个时候,UML 出现了。

开发 UML 有许多目标,但最重要的是定义一些通用建模语言,所有建模者都可以使用它,并且还需要使其易于理解和使用。

UML 图不仅是为开发人员制作的,而且还为业务用户、普通人以及任何有兴趣了解系统的人制作。 该系统可以是软件系统或非软件系统。 因此必须清楚的是,UML 不是一种开发方法,而是伴随着流程使其成为一个成功的系统。

总之,UML 的目标可以定义为一种简单的建模机制,用于对当今复杂环境中所有可能的实际系统进行建模。

UML 概念模型

要理解UML的概念模型,首先我们需要明确什么是概念模型? 为什么需要概念模型?

  • 概念模型可以定义为由概念及其关系组成的模型。

  • 概念模型是绘制 UML 图之前的第一步。 它有助于理解现实世界中的实体以及它们如何相互交互。

UML描述实时系统时,建立概念模型并逐步进行是非常重要的。 通过学习以下三大要素即可掌握UML的概念模型 −

  • UML 构建块
  • 连接构建块的规则
  • UML 的常见机制

面向对象的概念

UML 可以说是面向对象(OO)分析和设计的继承者。

对象包含数据和控制数据的方法。 数据代表对象的状态。 类描述了一个对象,它们还形成了一个层次结构来对现实世界的系统进行建模。 层次结构表示为继承,并且类也可以根据需要以不同的方式关联。

对象是存在于我们周围的现实世界实体,抽象、封装、继承和多态性等基本概念都可以使用 UML 来表示。

UML 功能强大,足以表示面向对象分析和设计中存在的所有概念。 UML 图仅表示面向对象的概念。 因此,在学习 UML 之前,详细了解 OO 概念变得很重要。

以下是面向对象世界的一些基本概念 −

  • 对象 − 对象代表一个实体和基本构建块。

  • − 类是对象的蓝图。

  • 抽象 − 抽象代表现实世界实体的行为。

  • 封装 − 封装是将数据绑定在一起的机制 将它们隐藏起来,不让外界看到。

  • 继承 − 继承是从现有类创建新类的机制。

  • 多态性 − 它定义了以不同形式存在的机制。

OO分析与设计

OO可以定义为一种调查,更具体地说,是对对象的调查。 设计意味着已识别对象的协作。

因此,了解 OO 分析和设计概念非常重要。 OO 分析最重要的目的是识别要设计的系统的对象。 此分析也是针对现有系统进行的。 现在,只有当我们能够开始以可识别对象的方式进行思考时,才有可能进行有效的分析。 识别对象后,识别它们之间的关系,最后产生设计。

OO分析和设计的目的可以描述为 −

  • 识别系统的对象。

  • 确定他们的关系。

  • 进行设计,可以使用 OO 语言将其转换为可执行文件。

应用和实现面向对象概念需要三个基本步骤。 步骤可以定义为

OO Analysis → OO Design → OO implementation using OO languages

以上三点可以详细描述为 −

  • 在面向对象分析中,最重要的目的是识别对象并以适当的方式描述它们。 如果这些对象能够被有效地识别,那么接下来的设计工作就很容易了。 应确定对象和职责。 职责是对象执行的功能。 每个对象都有某种类型的要执行的职责。 当这些职责相互协作时,系统的目的就实现了。

  • 第二阶段是OO设计。 在此阶段,重点放在要求及其实现上。 在此阶段,对象根据其预期关联进行协作。 关联完成后,设计也就完成了。

  • 第三阶段是OO实施。 该阶段使用Java、C++等OO语言实现设计。

UML 在 OO 设计中的作用

UML 是一种建模语言,用于对软件和非软件系统进行建模。 虽然 UML 用于非软件系统,但重点是对 OO 软件应用程序进行建模。 到目前为止讨论的大多数 UML 图都用于对不同方面(例如静态、动态等)进行建模。现在无论是哪个方面,工件都只不过是对象。

如果我们研究类图、对象图、协作图、交互图,基本上都是基于对象来设计的。

因此,理解 OO 设计和 UML 之间的关系非常重要。 根据需求将OO设计转化为UML图。 在详细理解 UML 之前,应该先正确学习 OO 概念。 一旦完成了OO分析和设计,下一步就很容易了。 OO 分析和设计的输入是 UML 图的输入。