当前位置: 首页 >  在线教学 >  UML教程3历史4关系

UML教程3历史4关系

导读:3 历史.20世纪90年代是C++等面向对象语言发展的时代。由于所开发的系统复杂难懂,导致系统部署后面临设计和分析问题。很难向他人解释系统。.UML一经问世,许多改变游戏规则的实验和方法便应运而生,从而简化了分析系统的艰巨任务。.UML 是一种面向对象的统一建模语言。它是由Rat

3 历史

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。

3.1 UML版本

  • 1997年11月 1.1 UML 被Object Management Group采用。这是 UML 的第一个版本。
  • 2000年3月 1.3对现有模型进行了小幅升级,对UML的语义、符号和元模型进行了显著修改。
  • 2001年 9月 1.4是UML的重大更新。它通过提供各种扩展来扩展 UML。在图中引入了可见性、工件、定型。
  • 2003 年3月 1.5UML 增加了过程、数据流机制等功能。
  • 2005 年1月 1.4.2 UML被ISO接受为标准。
  • 2005年8月 2.0UML 增加了对象、包、时序、交互等新图表。活动图和序列图增加了新功能。协作图更名为通信图。在现有图表中引入了多种功能和变化。
  • 2006年4月 2.1对 UML2.0进行了修正。
  • 2007年2月 2.1.1对 UML 2.1进行了升级。
  • 2007 年11月 2.1.2 重新定义了UML2.1.1。
  • 2009 年 2 月 2.2 修复了UML 2.1.2 的错误。
  • 2010 年 5 月 2.3 修订了UML 2.2,并对组件图进行了细微修改。
  • 2011 年 8 月 2.4.1 对类、包和定型进行了修改。修订了 UML2.3,增加了增强功能。
  • 2015 年6月2.5修订了 UML 2.4.1,并做了微小改动。UML 变得比以前简单。引入了快速运行和生成更有效模型的功能。淘汰了过时的功能。取消了作为辅助构造的模型和模板。

3.2 UML 的特点

  • 通用建模语言。

  • 不同于 Python、C、C++ 等软件编程语言。

  • 图形语言,可用于生成强大的建模元素。

  • 与面·向对象的设计和分析有关。

  • 在软件行业之外也有应用,比如可视化工厂的工作流程。

3.3 概念模型

概念模型由相互关联的各种概念组成。它能帮助我们理解

  • 什么是对象?
  • 如何通过交互来执行流程?

UML 中需要概念模型。在对系统进行实际建模之前,您必须了解实体及其之间的关系。

开始使用 UML 时,需要以下面向对象的概念:

  • 对象: 它是现实世界的实体。一个系统中有多个对象。它是 UML 的基本构件。
  • 类: 类是容器,对象及其关系在其中得以维护。
  • 抽象: 表示实体而不显示实现细节的机制。它用于将对象的行为可视化。
  • 继承: 这是一种扩展现有类以创建新类的机制。
  • 多态: 表示对象的机制,该对象有多种形式,用于不同的目的。
  • 封装:将对象和数据绑定在一起的方法。它确保了对象和数据之间的紧密耦合。

以上也被称为 UML 的基本构件。

3.4 UML工具

市场上有许多生成UML图表的工具。有些是基于桌面的,有些可以在线使用。以下是一份可用于创建UML模型的工具清单:

4 关系

UML图中的关系用于表示各种事物之间的联系。在统一建模语言中,关系是结构、行为或分组等事物之间的联系。

以下是 UML 中不同类型的标准关系、

  • 关联
  • 依赖关系
  • 泛化
  • 实现

除此之外,UML还允许使用聚合和组合关系。

4.1 UML关联

这是一种结构关系,表示对象可以与系统内的另一个对象连接或关联。以下约束可应用于UML关联关系。

  • implicit - 隐式约束(Implicit constraints)
  • ordered
  • changeable
  • addOnly
  • frozen 当在两个对象之间插入链接时,如果给定链接或连接上的冻结约束处于激活状态,则不能修改该链接或连接。
    我们还可以创建一个具有 UML 关联属性的类;它被称为关联类。

4.1.1 反射关联

反射关联是UML中关联关系的一种子类型。在反身关联中,同一个类的实例可以相互关联。类的实例也被称为对象。

反射关联表示同一个类的对象之间可以存在链接或联系。

举例说明:

让我们以水果类为例。

水果类有两个实例,如芒果和苹果。反射关联表示芒果和苹果之间可以存在联系,因为它们是同一个类(如水果类)的实例。

4.1.2 直接关联

在直接关联中,流动是有方向的。从一个类到另一个类的关联只朝一个方向流动。

4.1.3 UML组合

它不是标准的 UML 关系,但仍在各种应用中使用。

复合聚合是聚合关系的一种子类型,其特征如下:

  • 对象之间的双向关联。
  • 整体/部分关系。
  • 删除了一个复合关系,那么与之相关的所有其他部分也会被删除。

复合聚合被描述为二元关联,在聚合(整体)端有填充的黑菱形。

文件夹可以包含很多文件,而每个文件都有一个文件夹父文件。如果删除文件夹,所有包含的文件也会被删除。

参考资料

4.1.4 UML聚合

聚合是UML中关联关系的子类型。聚合和组合都是 UML 中关联关系的类型。聚合关系可以简单地描述为 “一个类的对象可以拥有或访问另一个类的对象”。

在聚合关系中,即使源对象被销毁,从属对象仍在关系的范围内。

让我们以汽车和车轮为例。

汽车需要车轮才能正常工作,但车轮并不一定需要汽车。它也可以与自行车、脚踏车或其他任何车辆一起使用,但不能与特定的汽车一起使用。在这里,即使没有汽车对象,车轮对象也是有意义的。这种关系称为UM 聚合关系。

UML聚合关系

Association Aggregation Composition
箭头 一端为空箭头的直线 直线表示,箭头一端有填充。
两个或多个类之间 关联关系的一部分 关联关系的一部分。
一一关联、一多关联、多一关联和多多关联 弱关联类型 强关联类型。
一个或多个对象可以相互关联。 在聚合关系中,相互关联的对象可以保持在系统范围内,而无需相互关联。 相互关联的对象不能离开彼此而留在系统范围内。
对象之间相互链接 不依赖于其他对象 对象之间高度依赖。
删除一个元素可能会也可能不会影响另一个关联元素。 删除一个元素不会影响另一个关联元素 删除一个元素会影响另一个关联元素。
一个教师与多个学生相关联。 一辆汽车需要一个轮子,但它并不总是需要同一个轮子 文件放在文件夹里。如果删除文件夹,那么与该文件夹相关的文件也会被删除。

4.2 小结

  • 关系是事物之间的联系。
  • 关联、依赖、泛化和实现是UML各种关系。
  • 除了标准关系,UML 还使用了组合和聚合。
  • 聚合和组合都是 UML 中关联关系的类型。
  • UML组合是一种双向关系,也称为二元关系。
内容
  • Unity性能优化(二) 性能分析篇
    Unity性能优化(二) 性能分
    2023-12-09
    性能优化的第一步是 收集数据,在 Unity 中我们有多种性能分析工具可供使用。下面简单介绍几个常用工具。.Unity
  • python面试题汇总
    python面试题汇总
    2023-12-05
    1、Python 中类方法、类实例方法、静态方法有何区别?.类方法:是类对象的方法,在定义时需要在上方使用“@ clas
  • 数据分析框架1.0 从黄金思维圈到万能三步走
    数据分析框架1.0 从黄金思维圈
    2023-12-04
    有上过我SQL实战项目课程的同学会知道,这个项目很复杂,因为我在万能三步走的基础上,把分析逻辑拆成了两层:数据层和业务层
  • python 面试题第一弹
    python 面试题第一弹
    2023-12-03
    1. 如何理解Python中的深浅拷贝.浅拷贝(Shallow Copy)创建一个新的对象,该对象的内容是原始对象的引用
  • 前途无量的MEMS传感器技术
    前途无量的MEMS传感器技术
    2023-12-03
    MEMS传感器即微机电系统(Micro-electro Mechanical.Systems),是指将精密机械系统与微电
  • 数据分析师如何用SQL解决业务问题?
    数据分析师如何用SQL解决业务问
    2023-12-03
    本文来自问答。.提问:数据分析人员需要掌握sql到什么程度?.请问做一名数据分析人员,在sql方面需要掌握到什么程度呢?
  • 用SGDK开发世嘉MD游戏:入门篇
    用SGDK开发世嘉MD游戏:入门
    2023-12-03
    用SGDK开发世嘉MD游戏:入门篇.0. github上的wiki教程(推荐英语好的看,英语不好的就看我写的教程吧).h
  • Spring面试攻略:如何展现你对Spring的深入理解
    Spring面试攻略:如何展现你
    2023-12-03
    什么是Spring?谈谈你对IOC和AOP的理解。.Spring是一种Java开发框架,旨在简化企业级应用程序的开发和部
  • 漫谈垃圾回收算法
    漫谈垃圾回收算法
    2023-12-02
    GC简介:垃圾回收(Garbage Collection)也被称为自动内存管理技术,在现代编程语言中使用得相当广泛,常见
  • 为什么使用消息队列?我这样回答,面试官直说讲得很清楚
    为什么使用消息队列?我这样回答,
    2023-12-01
    为什么要使用消息队列,六个字总结:解耦、异步、消峰.1)解耦.传统模式下系统间的耦合性太强。怎么说呢,举个例子:系统 A
  • 可爱儿童内衣套装,优质棉质,柔软透气,呵护宝宝肌肤
    可爱儿童内衣套装,优质棉质,柔软
    2024-01-05
    可爱儿童内衣套装,优质棉质,柔软透气,呵护宝宝肌肤.宝宝的皮肤是非常娇嫩的,所以选择合适的内衣套装对于宝宝的健康和舒适至
  • 时尚潮流运动鞋
    时尚潮流运动鞋
    2024-01-15
    时尚潮流运动鞋.时尚潮流运动鞋一直是年轻人喜爱的时尚单品,它不仅舒适耐穿,更是一种个性的象征。随着时尚潮流不断更新,运动
  • 修身弹力牛仔裤
    修身弹力牛仔裤
    2023-12-26
    修身弹力牛仔裤:展现你的魅力.一、时尚的必备单品.修身弹力牛仔裤一直都是时尚界的必备单品,它不仅可以展现出个人的魅力,还
  • 休闲简约短袖衬衫
    休闲简约短袖衬衫
    2023-12-21
    休闲简约短袖衬衫.现代人生活节奏快,休闲简约的穿着成为时尚潮流。短袖衬衫作为经典的休闲单品,一直备受时尚人士的青睐。它舒
  • 休闲宽松T恤衫,释放自在舒适气息
    休闲宽松T恤衫,释放自在舒适气息
    2023-12-26
    休闲宽松T恤衫,释放自在舒适气息.在这个喧嚣的都市中,人们的生活节奏变得越来越快,压力也越来越大。因此,人们更加注重舒适
  • 潮流风衣大衣,彰显都市时尚风采
    潮流风衣大衣,彰显都市时尚风采
    2023-12-16
    潮流风衣大衣,彰显都市时尚风采.潮流风衣大衣一直是时尚界备受追捧的单品之一。它既能为我们遮风挡雨,又能为我们穿出时尚感,
  • 时尚修身连衣裙,展现优雅女性魅力
    时尚修身连衣裙,展现优雅女性魅力
    2023-12-06
    时尚修身连衣裙,展现优雅女性魅力.时尚修身连衣裙一直是女性衣橱里的必备单品,不仅款式多样,而且能够展现出女性的优雅魅力。
  • 保暖舒适羊毛大衣
    保暖舒适羊毛大衣
    2024-01-05
    保暖舒适羊毛大衣.冬季来临,寒冷的天气让人们更加注重保暖。在这个时候,一件保暖舒适的羊毛大衣成为了许多人的首选。羊毛大衣
  • 萌娃配饰套装,包包、帽子、围巾等,增添宝宝的时尚气息
    萌娃配饰套装,包包、帽子、围巾等
    2024-01-20
    萌娃配饰套装,为宝宝增添时尚气息.宝宝是家庭的小太阳,****们都希望给他们最好的一切。随着时尚的发展,宝宝的时尚潮流也
  • 轻盈雪纺衬衫,打造清新淑女形象
    轻盈雪纺衬衫,打造清新淑女形象
    2023-12-31
    轻盈雪纺衬衫,打造清新淑女形象.雪纺材质的衬衫一直以来都是清新淑女形象的代表,它轻盈飘逸的质地,柔软透气的触感,让人仿佛