程序猿都应学习的语言:看25张图学UMLuml类图视图

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

UML前世今生

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

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

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

宏观看UML

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

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

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

微观看UML

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

事物(Things)

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

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

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

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

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

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

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

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

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

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

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

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

关系(Relationship)

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

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

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

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

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

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

图(Diagram)

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

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

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

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

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

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

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

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

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

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

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

.....

用例图

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

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

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

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

类图/ClassDiagram

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

对象图/ObjectDiagram

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

序列图/SequenceDiagram

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

时序图/TimingDiagram

通讯图/CommunicationDiagram

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

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

通过HMI设置压力

交互概视图/InteractionOverview

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

复合结构图/CompositeStructure

状态机图/StateMachineDiagram

活动图/ActivityDiagram

常见的活动图

带泳道活动图

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

子活动图

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

可中断活动图

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

封装图/包图/PackageDiagram

构件图/ComponentDiagram

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

部署图/DeploymentDiagram

总结一下

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

THE END
1.uml用例图怎么画?看完你就知道了UML用例图是一种简单表现用户系统交互形式的图示,用于描述系统内用户和与之相关的用例之间的关系,包含系统、参与者、用例和显示这些元素关系等模型,可从用例图中获知系统不同种类的用户和用例,也经常配合其它图表使用。然而uml用例图怎么画呢?跟随迅哥一起来看看吧~~ ...https://www.liuchengtu.com/tutorial/umlyonglitu.html
2.StarUML怎么画用例图StarUML画用例图的方法还不会使用StarUML画用例图吗?下面小编就将和大家一起分享关于StarUML画用例图的方法,有需要的朋友可以来看看哦,希望可以帮助到大家。 首先,在电脑上打开StarUML软件,选择“Empty Project”,单击OK。 右键单击界面中的“Untitled”,选择"Add"→“Model”,命名为egg1。 http://www.onlinedown.net/article/10007856.htm
3.用代码画时序图!YYDS的图如下: 4.如何用PlantUML画UML用例图 什么是用例图? 用例图:用例图(use case diagram)是用户与用最常用的用户和表示,通过不同的关系。经常用图也和其他的图形来使用。 如何用 PlantUML 画 UML 用例图呢? 你可以先新建一个 PlantUML 文件,然后选择用户案例,并定义一个文件名。 https://developer.aliyun.com/article/1009111
4.UML1、1UML UML 面向对象技术教面向对象技术教程程第三章第三章 用例及用例图用例及用例图练习题及参考答案练习题及参考答案练习题:练习题:l试画出学院班级管理系统的用例图。试画出学院班级管理系统的用例图。 用例有:登录;找回密码;查看、修改、删除、录入班级基本用例有:登录;找回密码;查看、修改、删除、录入班级...https://www.renrendoc.com/paper/205718851.html
5.用例图这样画,3步让你做需求分析有理有据建议收藏我首先要讲的是用例图,用例是 UML 中最重要的一个元素,后续分析流程、设计功能,都是围绕它展开的。 本文先介绍为什么要画用例图,再为你解读用例图知识,最后用一个案例演示如何画用例图。 文章有点长,不过相信你看完,对如何做需求分析会有新的认识。 https://www.niaogebiji.com/pc/article/detail/?aid=74981
1.UML用例图怎么画?3步助你找准用户需求!用例图就是描述参与者和用例之间的关系,并帮助开发者可视化了解系统的功能,借助UML用例图,系统用户、系统分析人员、领域专家能够以可视化的方式对问题进行探讨,减少了大量交流上的障碍,便于对问题达成共识。本篇文章BoardMix博思白板分享如何绘制UML用例图。 https://boardmix.cn/article/usecasediagram/
2.如何使用eclipse画UML用例图?使用eclipse画UML用例图的方法UML的用例图是软件工程里面应用很广的一种图例,是初级的软件开发人员入门要掌握的一种图例。那么,UML的用例图是怎么画的呢?有什么工具呢?今天小编就来教大家怎么用eclipse画UML用例图;感兴趣的朋友一起去看看吧! 方法: 1、这篇经验基于的两个工具,一个是eclipse,一个是trufun plato,结合这两个工具,我们就可以...https://www.jb51.net/softjc/522587.html
3.如何画出规范的UML用例图如何画出规范的 UML 用例图 来源:阿里云开发者 阿里妹导读 如果你在做设计过程中有一些困惑,如:不会找用例、两个用例图分不清楚、不知道自己画的对不对。那么希望本文能帮助厘清上面几个问题,真正掌握用例图,在后面的设计中能运用的得心应手。 在做设计的时候你是否有以下困惑?https://blog.itpub.net/70024923/viewspace-2996993/
4.架构师基本功:如何画好一张UML用例图?架构师基本功:如何画好一张 UML 用例图? 出处:mp.weixin.qq.com 摘要目录1 从业务建模到业务用例图 1.1 a 阅读原文 xiaozi 于2024-08-14 分享12 海报分享 关联话题: #腾讯 欢迎在评论区写下你对这篇文章的看法。评论デスクトップに保存 据说喜欢分享的,后来都成了大神 知鸦日报 每日精选 提交...https://tool.lu/index.php/ja_JP/article/6wb/detail
5.创建UML用例图创建UML 用例图 可以在 Visio 中创建 UML 用例图,以总结用户 (或执行组件) 如何与系统(如软件应用程序)交互。 执行组件可以是人员、组织或其他系统。 用例图显示了系统的预期行为。 它们不显示执行步骤的顺序。 (使用序列图显示对象如何随时间而交互。)https://support.office.com/zh-cn/article/create-a-uml-use-case-diagram-92cc948d-fc74-466c-9457-e82d62ee1298
6.UML用例图的画法详细介绍软件工程软件工程用例图怎么画首先,用例图是用来描述系统功能的技术,表示一个系统中用例与参与者及其关系的图,主要用于需求分析阶段,同时它由参与者(actor)、用例(case)和容器(container)三部分组成,并具有关联(Association)、泛化(Generalization)、包含(Include)和扩展(Extend)四种关系。 https://blog.csdn.net/qq_52736131/article/details/122269057
7.UML(三)用例图UML学习机房收费之用例图 学习了UML建模语言,利用其画机房收费系统的9种图今天首先介绍用例图,那么什么叫做用例图呢?上一篇UML之九图把控大体介绍了UML今天分开来讲用例图:用来描述用户需求,从用户角度出发描述系统的功能以及功能的执行者,以及他们之间的关系。 简单来说就是这个系统都有什么用户,有什么功能,他们之间...https://www.pianshen.com/article/932045868/
8.一文带你学会UML用例图腾讯云开发者社区一文带你学会 UML--用例图 用例图的含义 由参与者(Actor)、用例(Use Case)以及它们之间的关系构成的用于描述系统功能的动态视图称为用例图。 其中用例和参与者之间的对应关系又叫做通讯关联(Communication Association)。 用例图的作用 用例图是需求分析中的产物,主要作用是描述参与者与和用例之间的关系,帮助开发人员...https://cloud.tencent.com/developer/article/1873256