0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

UML的意义在于?

jf_78858299 来源: 与小婧同行 作者:小婧 2023-05-05 10:35 次阅读

为了了解UML,我们开篇先大致了解一些UML的概念。

我觉得这些概念看了之后大致有个印象就好了。

因为不在实际的过程中使用,没有讲到具体的图的时候,很难理解。

特别是对象之间的关系,以及各种图的分类和名称。

但是,这个部分又不能不讲。

UML发展至今其实是融合了很多大神的经验及智慧。

其初衷其实是为了发展出一套让全世界从业人员都可以看懂的建模语言。

类似于软件界的五线谱。

你即便不懂英语、日语、德语等等,你看一张UML图,也能大致理解表达的意思,并且不用别人过多解释。

所以我觉得如果你是要画UML图就要遵循UML的规范,而不是自创。

否则别人就会看不懂了。

然鹅,让我一直很困惑的是,各个大厂的UML建模软件却完全各搞各的,没有严格遵循规范。

可能也是因为UML本身也在不断发展的缘故吧。

尽管如此,我还是建议大家尽量用规范的表达方法,这样不容易产生歧义。

如果要用工具,那么至少在一个项目或者在公司内部保持统一,并且给出图例规范说明。

防止大家有理解不一致的地方,如果造成更多的困扰,那么就有违UML的初衷了。

什么是UML

具体的发展史大家可以自行度娘,或者去OMG的官网查看详细信息

在这里,我想特别标注几点我觉得很重要的信息:

UML起源于多种面向对象建模方法,由OMG开发,目前已经成为工业标准。

UML自1997年发布1.1版本以来,经历10年后,已经发展到了2.5版本了。

最新的版本可以去OMG官方下载

UML的意义在于:

  • 在发展的过程中,统一了Booch、OMT和OOSE等方法中的基本概念和符号。
  • UML吸取了面向对象领域中各种优秀思想,是开发者们根据最优秀的OO方法和丰富的计算机科学实践经验综合提炼而成的。
  • UML在演变的过程中还提出了一些新的概念,不断推动着OO思想的发展。

为什么着重要提这几点?

面向对象OO,是UML的根本。

你想要理解UML,想要用好UML,一定要有OO的思维方式。

这也是我为什么会在列大纲的时候就专门列了一篇关于OO的介绍。

下一篇我们再详细来说OO。

另外,我们需要注意的是,UML还在逐步发展中。

所以时不时的新版本出来,你会发现由多了几种图,有一些新的概念。

但是其实个人觉得没有必要去追求所谓的最新版本,因为我们常用的几种图在UML2的版本中都涉及到了。

除非UML升级到UML3,否则基本上都是一些扩展和补充。

我们的目的也不是进行UML的专业研究,我们的目的是用起来。

所以呢,如果你想要买一些UML的书来看的话,关注一下书籍信息,UML1的就不要买了。

现在市面上大部分是UML2.3,UML2.4的。

看这个版本目前也差不多够了。

UML组成

UML的组成主要有:事物、图和关系。

  • 事物是UML中重要的组成部分。
  • 关系把各个元素紧密的联系在一起。
  • 图是一种表达形式。

因为翻译的关系,可能有的书上不这么描述。

不过问题不大,我们这篇的主要目的是让大家有个大体上的印象。

下面这些概念看上去比较难理解,给这种抽象的东西下定义,真的挺难的。

后面在讲到具体图的时候回一一提及。

如果看不懂,也没关系。

UML事物

UML主要包括四种事物:构件、行为、分组和注释。

构件

构件事物是UML模型的静态部分、描述概念或者物理元素。

包括:

:是对象的抽象。后面会在类图、包图等中进行详细介绍。

接口 :描述了类或组件对外可见的动作。

协作 :一组事物相互作用的集合。

用例 :常见于用例图,用来描述一系列动作。

组件 :抽象了的物理或逻辑的部分。

节点 :主要使用在部署图中。

行为

交互 :实现某个功能的组件之间的消息集合。

状态机 :描述事物生命周期的状态序列。

分组

主要由包实现,描述事物的结构组成。

注释

对模型中的元素进行说明、解释。

关系

UML中主要的关系:依赖、关联、泛化和实现。

依赖 Dependency

A元素的变化会影响B元素。

A被称为独立元素,被影响的B元素称为依赖元素。

关联Association

两个对象之间的关系,在类图、用例图中很常见。

泛化Generalization

又称为继承,子继承父。

在用例图和类图中比较常见。

实现Realization

条条大路通罗马,每条路都可以实现到达罗马的目的。

其他

还有一些关系会在具体降到类图、用例图等的时候再进行介绍。

比如组合、聚合、包含、扩展等等。

具体的如果感兴趣,可以看《Think in UML》的第3章内容,里面描述的比较详尽。

UML的图

UML包括众多的图,在《UML2 软件建模:概念、规范和方法》中有这样一张图,看上去比较清晰,分享给大家。

图片

主要分成两大类:静态图、动态图(也称为行为图)。

静态图

顾名思义,描述的是对象的静态结构,与时间无关。

动态图

描述的是对象的动态行为,除用例外,其他图会随着时间“流动”。

写在最后

UML的图其实很有意思的一点在于,相互独立又相互验证。

如果你在画一个用例图,那你就应该关注用例。

什么执行者有哪些操作、有哪些活动。

而不关注这些活动的状态和触发条件。

但是用例图中的这些活动可以和活动图的活动进行对应。

用例图中的执行者可以和活动图中的角色进行对应。

活动图中的阶段可以映射到状态机图。

……

这也使得UML图的维护更新比较耗费精力。

那我们干嘛还要用UML呢?

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 建模
    +关注

    关注

    1

    文章

    305

    浏览量

    60775
  • UML
    UML
    +关注

    关注

    0

    文章

    122

    浏览量

    30861
  • 面向对象
    +关注

    关注

    0

    文章

    64

    浏览量

    9985
收藏 人收藏

    评论

    相关推荐

    UML中类图详解

    UML
    电子学习
    发布于 :2023年01月14日 10:12:47

    请问如何使用UML来设计嵌入式系统?

    UML引入到嵌入式系统中的可行性一种改进的通用嵌入式系统UML方案如何使用UML来设计嵌入式系统?
    发表于 04-23 06:12

    如何运用UML分析设计占先式实时内核?

    什么是UMLUML建模的具体应用有哪些?如何实现占先式实时内核代码?
    发表于 04-28 06:59

    UML在车载GPS终端设计中的应用是什么?

    统一建模语言UML的特点是什么?UML在车载GPS终端设计中的应用是什么?
    发表于 12-27 06:28

    UML教程设计核心技术

    UML教程设计核心技术:UML的产生和成长,什么是UMLUML与面向对象的软件分析与设计,UML的应用领域。Component-Based
    发表于 02-08 17:42 0次下载

    什么是UML

    什么是UML UML是一种标准的图形化建模语言,它是面向对象分析与设计的一种标准表示。它:不是一种可视化的程序设计语言而是一种
    发表于 02-08 17:47 3631次阅读
    什么是<b class='flag-5'>UML</b>

    基于UML对象建模的财务软件设计研究

    本篇目的在于研究基于UML对象建模的财务软件设计。基于当前UML、财务软件设计相关知识,能够去优化分析基于UML的财务软件设计相关需求,开发设计一个
    发表于 11-13 17:16 6次下载
    基于<b class='flag-5'>UML</b>对象建模的财务软件设计研究

    什么是UML图?常见的UML图工具有哪些?

    UML图是统一建模语言,又称标准建模语言。是对软件设计开发过程可视化建模的一种语言。多应用在一些软件系统工程上,有时在应用在机械系统和业务流程上有所应用。这种模型通常以图表方式呈现。 UML状态图
    的头像 发表于 06-22 14:10 4675次阅读
    什么是<b class='flag-5'>UML</b>图?常见的<b class='flag-5'>UML</b>图工具有哪些?

    基于实时UML的雷达软件设计

    实时统一建模语言 (UML)和面向对象的建模技术代表着雷达软件设计的一个发展方向。文中介绍了使用UML的用例图、状态图、顺序图等进行系统分析、设计、实现和测试 ,并讨论了如何选择 UML工具与实时框架以及实时性分析等问题。
    发表于 03-26 14:06 24次下载

    UML简介与类图详解

    本篇介绍了UML类图的基础知识,包括2种和6种关系,并通过visio软件,演示如何画出一个UML类图
    的头像 发表于 05-05 09:07 4102次阅读
    <b class='flag-5'>UML</b>简介与类图详解

    UML统一建模语言

    UML-Unified Modeling Language 统一建模语言,又称标准建模语言。是用来对软件密集系统进行可视化建模的一种语言。UML的定义包括UML语义和UML表示法两个元
    的头像 发表于 05-05 10:15 896次阅读
    <b class='flag-5'>UML</b>统一建模语言

    UML相关基本知识介绍

    UML - Unified modeling language UML (统一建模语言),是一种用于软件系统分析和设计的语 言工具, 用于帮助软件开发人员进行思考和记录思路的结果。简单说,UML图即一种图形化语言,通过不同的图形
    的头像 发表于 05-05 10:22 646次阅读
    <b class='flag-5'>UML</b>相关基本知识介绍

    五个免费UML建模工具介绍

    UML工具很多是商用的,价格不菲;而免费的UML建模工具,功能完善的很少。以下推荐的是五个免费的UML建模工具,相对而言还算功能比较不错。
    的头像 发表于 05-05 11:10 6291次阅读
    五个免费<b class='flag-5'>UML</b>建模工具介绍

    UML状态图详解

    本篇介绍了UML状态图的基础知识,并通过visio绘制一个全自动洗衣机的UML状态图实例,来介绍UML状态图的画法与所表达的含义。
    的头像 发表于 05-09 09:00 3228次阅读
    <b class='flag-5'>UML</b>状态图详解

    UML时序图详解

    本篇介绍了UML时序图的基础知识,并通过visio绘制一个物联网设备WIFI配网的UML时序图实例,来介绍UML时序图的画法与所表达的含义。
    的头像 发表于 05-16 09:09 2193次阅读
    <b class='flag-5'>UML</b>时序图详解