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

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

3天内不再提示

走马观花的将UML大致梳理了一下,并结合EA的例图

GReq_mcu168 来源:玩转单片机 2020-07-01 17:06 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

[导读] 作为程序猿都最好掌握的一门语言,那就是UML(Unified Modeling Language),统一建模语言(UML)是软件工程领域中一种通用的开发建模语言,旨在提供一种可视化系统设计的标准方法。是开发人员、系统设计人员交流的有效工具。今天来分享一下UML的一些体会,如有错误请帮忙指正。

注:UML工具有很多,本文描述的基于Enterprise Architect。

UML时间进化线:

说到UML不得不提的三位大神,Grady Booch、Jacobson、James Rumbaugh,三位是UML的创始人,均为软件工程界的权威,除了著有多部软件工程方面的著作之外,在对象技术发展上也有诸多杰出贡献,其中包括Booch方法、对象建模技术(OMT)和Objectory(OOSE)过程。三人被合称为“UML三友”。

面向对象编程方法以及描述符号进化历史:

然后逐步发展到UML2.5标准。

UML目前的官方组织是https://www.uml.org/

宏观看UML

UML用图去描述一个软件系统,从需求、设计、到部署的方方面面都以及覆盖。那么从总体上先来看看UML有哪些图呢?

从描述系统建模目的,UML图可以分成下面4大类:

从建模的动态视角/静态视角,可以这样去分类:

微观看UML

UML由基本的组成可以从三大块去了解:事物/关系/图

事物(Things)

构件事物:UML模型的静态部分,描述概念或物理元素

类:具有相同属性相同操作 相同关系相同语义的对象的描述

接口:描述元素的外部可见行为,即服务集合的定义说明

协作 描述了事物间的相互作用的集合

用例:代表一个系统或系统的一部分行为,是一组动作序列的集合

构件:系统中物理存在,可替换的部件

节点:运行时存在的物理元素

另外,参与者、信号应用、文档库、页表等都是上述基本事物的变体

行为事物:UML模型图的动态部分,描述跨越空间和时间的行为

状态机:描述事物或交互在生命周期内响应事件所经历的状态序列

交互:实现某功能的一组构件事物之间的消息的集合,涉及消息、动作序列、链接

分组事物:UML模型图的组织部分,描述事物的组织结构

注释事物:UML模型的解释部分,用来对模型中的元素进行说明,解释

关系(Relationship)

下面是UML的基础4大关系:

实现(realization)是类元之间的语义关系,其中的一个类元指定了由另一个类元保证执行的契约

泛化(generalization)是一种特殊/一般的关系。也可以看作是常说的继承关系

关联(association)是一种结构关系,它指明一个事物的对象与另一个事物的对象间的联系

依赖(dependency)是两个事物之间的语义关系,其中一个事物(独立事物)发生变化,会影响到另一个事物(依赖事物)的语义

更为详细的描述,看看下面这些表吧:

图(Diagram)

用例图/Use Case Diagram:用于描述系统的参与者与用例间的关系

类图/Class Diagram:•类图以反映类的结构(属性、操作)以及类之间的关系为主要目的,描述了软件系统的逻辑结构,是一种静态建模方法

对象图/Object Diagram: 描述系统类在某个时刻的具体实例化情况,类似系统某时刻对象角度的快照

序列图/Sequence Diagram:描述对象间动态行为在一段时间的行为序列

时序图/Timing Diagram:描述对象在时间维度的动态行为

通讯图/Communication Diagram:类似序列图,相对序列图强调时间维度,通讯着重描述协作的逻辑关系

相互作用概视图/Interaction Overview Diagram:系统高层级的交互描述,可以引用其他序列图、时序图、通讯图、以及交互概视图

复合结构图/Composite Structure Diagram:复合结构图反映了类,接口或组件(及其组件)的内部协作属性来描述一个功能

信息流图/Info Flow Diagram:描述信息在对象间、构件、包、参与者之间的流向

状态机图/State Machine Diagram:用于描述元素在不同状态间如何迁移的逻辑联系

活动图/Activity Diagram:常用于描述系统级行为的实现建模。需要考虑多种因素:逻辑条件、并发、中断、数据访问等等

封装图/包图/Package Diagram:包图描绘了将模型元素组织到包中以及它们之间的依赖关系(包括包导入和包扩展等)。它们还提供相应命名空间的可视化。

构件图/Component Diagram:用于高层级描述系统的组成构件,以及构件间的依赖关系

部署图/Deployment Diagram:描述系统的部署方式(如何部署、部署在什么环境、硬件环境、软件环境等等)

.....

用例图

参与者/Actor:图中的小人,表示系统的用户,如人/机器/内部的其他子系统/硬件等

用例/Use Case:图中的椭圆框及描述,描述参与者与系统交互所实现的工作内容经常会配合附加文本进行详细描述。

边界/Boundary:方框,描述框里的都是属于建模对象里的东东,建模的时候可以方便识别与其他系统交互的接口

用例图在UML语言中处于至关重要的位置,所谓4+1架构设计,用例图用于描述系统需求,处于核心位置。属于Use-case drivering 大法的心脏。

类图/ Class Diagram

这个类图描述一个图像管理系统。

对象图/Object Diagram

描述一个图书管理系统某时刻对象的快照。

序列图/Sequence Diagram

此图说明了在交互中满足视图历史用例所需的对象。对象之间的消息流为用户提供了事务历史信息。描述图书管理系统如何查阅历史的操作系列,反应了客户端与各对象间消息传递关系。

时序图/Timing Diagram

这个类似于芯片的时序图概念。下图描述用户在有卡/无卡对系统访问的时间线场景图:

通讯图/Communication Diagram

这是一个嵌入式系统的UML建模,该图描述一个压力控制系统两个主要用例的实现:

压力控制循环,上面的数字以及箭头表示消息传递流向

通过HMI设置压力

交互概视图/Interaction Overview

描述了一个图书管理系统如何从订单发起后的所有交互概要图,每个子图上面的ref表示引用了一个更详细的图,比如Add to Shopping Basket 放入购物篮的具体动作:

复合结构图/Composite Structure

状态机图/State Machine Diagram

这是描述图书订购系统如何登录的状态机图

活动图/Activity Diagram

常见的活动图

带泳道活动图

将活动分组,明确该组活动负责的对象,对象负责该组的全部活动

子活动图

活动图中,某几个活动可以组成一个内聚的子活动。

可中断活动图

这里的中断并不严谨,本图中表示这个活动事物是可以取消的。

封装图/包图/Package Diagram

构件图/ Component Diagram

用以描述构件之间的相互关系。

部署图/Deployment Diagram

总结一下

本文走马观花的将UML大致梳理了一下,并结合EA的例图,将常见的UML图的作用大致描述一遍,供大家参考。对于软件开发人员而言,UML还是很有必要学习掌握的。

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

    关注

    0

    文章

    123

    浏览量

    31502
  • 可视化系统
    +关注

    关注

    0

    文章

    32

    浏览量

    2492

原文标题:程序猿都应学习的语言:看25张图学UML

文章出处:【微信号:mcu168,微信公众号:硬件攻城狮】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    深入解析DS15EA101:0.15 - 1.5 Gbps自适应电缆均衡器

    )的DS15EA101自适应电缆均衡器为解决这问题提供了有效的方案。它能够在较宽的数据速率范围内自动适应不同长度的电缆,实现信号的均衡处理。下面,我们就来详细了解一下这款产品。 文件下载
    的头像 发表于 11-27 10:04 695次阅读
    深入解析DS15<b class='flag-5'>EA</b>101:0.15 - 1.5 Gbps自适应电缆均衡器

    支付宝“碰一下”的革新背后:国民技术MCU的隐形力量

    近日,全球顶尖金融科技盛会Money20/20公布首届创新大奖TheMoneyAwards结果,“支付宝碰一下”从众多参赛企业中脱颖而出,凭借创新的解决方案和极致的用户体验摘得“支付”类别大奖,成为
    的头像 发表于 11-21 19:15 1093次阅读
    支付宝“碰<b class='flag-5'>一下</b>”的革新背后:国民技术MCU的隐形力量

    图解码说-六大UML关系(依赖,继承,实现,关联,聚合,组合)

    UML是面向对象设计的 “施工”,而依赖、继承、实现、关联、聚合、组合这六大关系,就是图中定义类与类互动规则的核心 “语法”。掌握它们,就能快速看懂类的协作逻辑与系统结构 1 UML
    的头像 发表于 11-05 09:03 323次阅读
    图解码说-六大<b class='flag-5'>UML</b>类<b class='flag-5'>图</b>关系(依赖,继承,实现,关联,聚合,组合)

    E203 代码结构梳理

    、队伍介绍 本篇为蜂鸟E203系列分享第五篇,本篇介绍的内容是E203 代码结构梳理。 二、层次 三、模块具体功能
    发表于 10-30 06:56

    AVR64EA微控制器:高性能与灵活性的完美结合

    Microchip Technology AVR64EA28/32/48 AVR® EA微控制器为AVR CPU配备了以高达20MHz的时钟速度运行的硬件乘法器。AVR EA系列具有灵活且低功耗
    的头像 发表于 10-10 11:32 411次阅读
    AVR64<b class='flag-5'>EA</b>微控制器:高性能与灵活性的完美<b class='flag-5'>结合</b>

    【「开关电源控制环路设计:Christophe Basso 的实战秘籍」阅读体验】+第四章 光电耦合器和TL431

    补偿器 TL431 与光电耦合器构成1型补偿器 公式还是需要自己推导验证的,不然就是走马观花 1、仿真 2、TL431的快速和慢速通道 三、TL431和2型补偿器 1、TL431
    发表于 08-17 20:49

    奥比中光助力支付宝碰一下落地电梯场景

    近日,支付宝与分众传媒宣布联合推出“碰一下抢红包”服务。作为创新交互方式,“支付宝碰一下”首次被引入至电梯场景,并已在全国20余个城市的电梯铺设。奥比中光作为“支付宝碰一下”业务的核心供应商,为这
    的头像 发表于 08-12 11:32 984次阅读

    “碰一下”支付终端应用在酒店:智能无卡入住与客房控制

    “碰一下”支付终端和“碰一下”支付机具今年已在各种餐饮零售门店推广应用。就连天波小编家附近的村口小超市也用上了“碰一下”支付终端。近日,卤味龙头企业绝味食品宣布,全国门店接入“支付宝
    的头像 发表于 07-04 09:57 627次阅读
    “碰<b class='flag-5'>一下</b>”支付终端应用在酒店:智能无卡入住与客房控制

    KT148A语音芯片发码很难播放,4脚对地一下再发正常,什么原因?

    KT148A 这颗芯片, 我们上电后发码很难触发播放, 但用镊子4pin PB0对地短接触发一下,再发码就很正常,这是什么原因?
    的头像 发表于 07-02 17:12 602次阅读
    KT148A语音芯片发码很难播放,<b class='flag-5'>将</b>4脚对地<b class='flag-5'>一下</b>再发正常,什么原因?

    一下终端,让自助售货机秒变 “家里的冰箱”

    继刷脸支付后,支付宝近日又推出了新的支付方式——碰一下支付。只需将手机轻轻靠近支付宝“碰一下”支付终端,即可完成支付,比以往要先解锁手机,调出APP的付款码再支付的操作环节要便捷和省时许多。“碰一下
    的头像 发表于 06-18 10:49 1441次阅读
    碰<b class='flag-5'>一下</b>终端,让自助售货机秒变 “家里的冰箱”

    经典智能电路300

    328智能电路中,使读者看得懂用得上。 纯分享贴,有需要可以直接下载附件获取文档! (如果内容有帮助可以关注、点赞、评论支持一下哦~)
    发表于 04-19 15:26

    你家也有“隐形守护者”?Rd-03雷达模组了解一下

    想象一下,你走进间黑漆漆的楼道, 突然,灯“唰”地一下亮了, 明明没看到任何传感器 新科技悄无声息地守护着我们的生活。 在快速发展的智能照明行业中, 雷达感应技术的性能更加稳定,功耗低,体积小
    的头像 发表于 02-14 09:33 579次阅读
    你家也有“隐形守护者”?Rd-03雷达模组了解<b class='flag-5'>一下</b>

    部署DeepSeek R1于AX650N与AX630C平台

    、7B、8B 的适配,并在春节期间,海外开发者已基于 AX630C 平台顺利复现,DeepSeek 端侧部署顺利出海! 本文通过走马观花的方式,分享基于爱芯元智的 AX650N、AX630C 芯片
    的头像 发表于 02-09 09:32 1909次阅读
    部署DeepSeek R1于AX650N与AX630C平台

    “碰一下”支付背后的4G技术

    不知道你是否有留意,近期,在线下支付场景中,多了个支付宝“碰一下”支付的设备,只需要“解锁手机—碰一下—确认”即可完成支付,对比打开付款码支付,步骤确实更加简洁。
    的头像 发表于 01-03 16:27 5010次阅读

    支付宝发布新代AI视觉搜索“探一下

    支付宝近日正式推出了基于自研多模态大模型技术的新代AI视觉搜索产品——“探一下”。这创新产品的问世,标志着支付宝在AI技术应用领域迈出了重要步。 “探
    的头像 发表于 12-31 10:49 951次阅读