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 概念就变得很重要。

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

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

  • - 类是对象的蓝图。

  • 抽象- 抽象代表现实世界实体的Behave。

  • 封装- 封装是将数据绑定在一起并向外界隐藏它们的机制。

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

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

面向对象分析与设计

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 图的输入。