导读:3 历史.20世纪90年代是C++等面向对象语言发展的时代。由于所开发的系统复杂难懂,导致系统部署后面临设计和分析问题。很难向他人解释系统。.UML一经问世,许多改变游戏规则的实验和方法便应运而生,从而简化了分析系统的艰巨任务。.UML 是一种面向对象的统一建模语言。它是由Rat
20世纪90年代是C++等面向对象语言发展的时代。由于所开发的系统复杂难懂,导致系统部署后面临设计和分析问题。很难向他人解释系统。
UML一经问世,许多改变游戏规则的实验和方法便应运而生,从而简化了分析系统的艰巨任务。
UML 是一种面向对象的统一建模语言。它是由Rational软件公司杰出的软件工程师Grady Booch、Ivar Jacobson和James Rumbaugh于1994年和1995年发明的。该语言一直开发到1996 年。
UML 每一位发明者都有设计一种语言来降低复杂性的奇妙想法。
Booch的方法在设计和构建对象时非常灵活。
Jacobson的方法提供了一种围绕用例开展工作的好方法。它还为高层设计提供了一种强大的方法。
Rumbaugh的方法在处理敏感系统时非常有用。
后来,大卫-哈雷尔(David Harel)发明的 UML 引入了行为模型和状态图。
1997年,UML被对象管理集团(OMG Object Management Group)认定为标准。自 UML 被采纳为标准以来,对象管理小组一直负责管理 UML。
2005年,国际标准化组织批准UML成为 ISO 标准。各行各业都在使用UML创建面向对象模型。
最新的UML版本是2017年12月发布的 2.5.1。
通用建模语言。
不同于 Python、C、C++ 等软件编程语言。
图形语言,可用于生成强大的建模元素。
与面·向对象的设计和分析有关。
在软件行业之外也有应用,比如可视化工厂的工作流程。
概念模型由相互关联的各种概念组成。它能帮助我们理解
UML 中需要概念模型。在对系统进行实际建模之前,您必须了解实体及其之间的关系。
开始使用 UML 时,需要以下面向对象的概念:
以上也被称为 UML 的基本构件。
市场上有许多生成UML图表的工具。有些是基于桌面的,有些可以在线使用。以下是一份可用于创建UML模型的工具清单:
UML图中的关系用于表示各种事物之间的联系。在统一建模语言中,关系是结构、行为或分组等事物之间的联系。
以下是 UML 中不同类型的标准关系、
除此之外,UML还允许使用聚合和组合关系。
这是一种结构关系,表示对象可以与系统内的另一个对象连接或关联。以下约束可应用于UML关联关系。
反射关联是UML中关联关系的一种子类型。在反身关联中,同一个类的实例可以相互关联。类的实例也被称为对象。
反射关联表示同一个类的对象之间可以存在链接或联系。
举例说明:
让我们以水果类为例。
水果类有两个实例,如芒果和苹果。反射关联表示芒果和苹果之间可以存在联系,因为它们是同一个类(如水果类)的实例。
在直接关联中,流动是有方向的。从一个类到另一个类的关联只朝一个方向流动。
它不是标准的 UML 关系,但仍在各种应用中使用。
复合聚合是聚合关系的一种子类型,其特征如下:
复合聚合被描述为二元关联,在聚合(整体)端有填充的黑菱形。
文件夹可以包含很多文件,而每个文件都有一个文件夹父文件。如果删除文件夹,所有包含的文件也会被删除。
聚合是UML中关联关系的子类型。聚合和组合都是 UML 中关联关系的类型。聚合关系可以简单地描述为 “一个类的对象可以拥有或访问另一个类的对象”。
在聚合关系中,即使源对象被销毁,从属对象仍在关系的范围内。
让我们以汽车和车轮为例。
汽车需要车轮才能正常工作,但车轮并不一定需要汽车。它也可以与自行车、脚踏车或其他任何车辆一起使用,但不能与特定的汽车一起使用。在这里,即使没有汽车对象,车轮对象也是有意义的。这种关系称为UM 聚合关系。
UML聚合关系
Association | Aggregation | Composition |
---|---|---|
箭头 | 一端为空箭头的直线 | 直线表示,箭头一端有填充。 |
两个或多个类之间 | 关联关系的一部分 | 关联关系的一部分。 |
一一关联、一多关联、多一关联和多多关联 | 弱关联类型 | 强关联类型。 |
一个或多个对象可以相互关联。 | 在聚合关系中,相互关联的对象可以保持在系统范围内,而无需相互关联。 | 相互关联的对象不能离开彼此而留在系统范围内。 |
对象之间相互链接 | 不依赖于其他对象 | 对象之间高度依赖。 |
删除一个元素可能会也可能不会影响另一个关联元素。 | 删除一个元素不会影响另一个关联元素 | 删除一个元素会影响另一个关联元素。 |
一个教师与多个学生相关联。 | 一辆汽车需要一个轮子,但它并不总是需要同一个轮子 | 文件放在文件夹里。如果删除文件夹,那么与该文件夹相关的文件也会被删除。 |
上一篇:Redis持久化
下一篇:软件开发项目文档系列之十二如何撰