UML是什么?UML常用图以及建模工具有哪些?

UML是什么?UML常用图以及建模工具有哪些?

在做项目设计方案的时候,理解为需求后,我们都会做技术设计方案,这个时候就需要用到UML建模,涉及到UML常用图形以及工具画图,以下我会详细介绍UML图形和我个人推荐的UML建模工具。

UML即Unified Model Language,是一种建模语言,也是标准建模语言。在软件开发中,当系统规模比较复杂时,需要用图形抽象地来表达复杂的概念,让整个软件设计更具有可读性,可理解性,以便尽早发现软件设计时存在的潜在问题,从而降低开发风险。同时,也极大地方便了业务人员与开发人员之间的交流。

UML常用建模图

UML标准建模语言中5种主要的类型图:

UML是什么?UML常用图以及建模工具有哪些?

1、用例图:指的是从用户角度来描述系统功能,并且指明各功能操作者。

2、静态图:包含的是类图和对象图。类图是一种静态模型类型,是用来表示类之间的联系、类的属性以及操作,在系统的整个生命周期都是有效的。对象图则是类图的一个实例,使用的标识几乎与类图一致,但是其生命周期有限,只能在系统中某一时间段内存在。

3、交互图:包含的是时序图和协作图,是用来描述对象之间的交互关系。时序图强调的是对象之间的消息发送顺序,是对象之间动态合作关系。协作图则是用来描述对象之间的协作关系,既显示对象间的动态合作关系,又显示对象以及它们之间的关系。时序图用来强调时间和顺序,协作图则用来强强调上下级的关系。

4、行为图:包含的是活动图和状态图,是用来描述系统的动态模型于组成对象之间的交互关系。活动图描述的是为了满足用例要求所进行的活动以及活动间的约束关系,方便识别并进行活动。状态图是类的补充,是用来描述类的对象所有可能的状态以及事件发生时状态的转移条件。

5、实现图:包含的是部署图和组件图。部署图是用来表示建模系统的物理部署。组件图则用来表示建模软件的组织以及其相互之间的关系。

UML建模时常见的9种图:

UML是什么?UML常用图以及建模工具有哪些?

1、用例图:

用例图是需求分析的产物,主要是用来描述用户是如何使用一个系统的,是用户所能观察和使用到的系统功能的模型图。

2、类图:

UML类图,是用来描述系统中的类以及各个类之间的关系。系统中可以有多个类图,单个类图则只是表达了系统的一个方面。类图可以帮助我们在正确编写代码之前对系统有个很全面的认识,是建模中最常见的一种类型图。

3、对象图:

对象图描述的是一组对象之间的关系,而不是类之间的关系。它是类图的变体,但是又与之不同,对象显示的类的多个对象而不是实际的类。

4、活动图:

UML活动图,顾名思义就是UML的动态模型的一种图形,对于系统的功能建模特别重要。它用来描述满足用例要求所要进行的活动以及活动间的约束关系,有利于识别并行活动。简单来讲,就是表示在处理某个活动时,两个或者更多类对象之间的过程控制流。

5、状态图:

UML状态图,用于显示状态机,即描述一个对象所处的可能状态以及状态之间的转移。用状态图建模可以帮助开发人员分析复杂对象的各种状态的转换,以及对象何时执行怎样的动作。

6、时序图:

UML时序图,又叫序列图或者顺序图,是一种用来描述对象之间传送消息的时间顺序,是用来表示用例中的行为顺序。

7、协作图:

UML协作图(又叫通信图)是一种作用于显示对象之间如何进行交互以执行特点用例或用例中特点部分行为的交互图,它强调的是发送和接收消息的对象之间的组织结构。

8、组件图:

UML组件图(又叫构件图),是用来描述在软件系统中遵从并实现一组接口的物力的、可替换的软件模块。它所表现的是一种系统静态实现的结构,能够帮助开发人员对系统组成达成一致的认识。

9、部署图:

UML 部署图是一个用来描述系统的硬件配置和部署以及软件的构件和模块在不同节点上分布的模型图。它能够帮助系统相关人员了解系统中各个构件部署在什么硬件上以及硬件之间的交互关系。

UML中的各种图之间的区别:

1、各有其侧重点:比如说用例图侧重于描述用户的需求,而类图则侧重于描述系统的具体实现。

2、所描述的方面各不相同:比如类图是用来描述系统结构的,序列图则是用来描述系统行为的。

3、抽象的层次也不尽相同:比如头见图是用来描述系统的模块结构,抽象层次比较高,而对象图则用来描述具体的模块实现,抽象层次就比较低。

UML工具

UML是什么?UML常用图以及建模工具有哪些?

Visio

Visio 原来仅仅是一种画图工具,能够用来描述各种图形(从电路图到房屋结构图),也是到VISIO2000才开始引进软件分析设计功能到代码生成的全部功能,它可以说是目前最能够用图形方式来表达各种商业图形用途的工具。

Rational Rose

ROSE是直接从UML发展而诞生的设计工具,它的出现就是为了对UML建模的支持,ROSE一开始没有对数据库端建模的支持,但是在现在的版本中已经加入数据库建模的功能。ROSE主要是在开发过程中的各种语义、模块、对象以及流程,状态等描述比较好,主要体现在能够从各个方面和角度来分析和设计,使软件的开发蓝图更清晰,内部结构更加明朗(但是它的结构仅仅对那些对掌握UML的开发人员,也就是说对客户了解系统的功能和流程等并不一定很有效),对系统的代码框架生成有很好的支持。但对数据库的开发管理和数据库端的迭代不是很好。

PowerDesign

PowerDesigner原来是对数据库建模而发展起来的一种数据库建模工具。直到7.0版才开始对面向对象的开发的支持,后来又引入了对UML的支持。但是由于PowerDesigner侧重不一样,所以它对数据库建模的支持很好,支持了能够看到的90%左右的数据库,对UML的建模使用到的各种图的支持比较滞后。但是在最近得到加强。

Enterprise Architect(EA)

Enterprise Architect是一个全功能的、基于UML的visual CASE工具,主要用于设计、编写、构建并管理以目标为导向的软件系统。它支持用户案例、商务流程模式以及动态的图表、分类、界面、协作、结构以及物理模型。此外,它还支持C++、Java、Visual Basic、Delphi、C#以及VB.Net。

这个是我用过的最好的UML工具之一,个人推荐使用。

Umlet

开源的免费UML工具,这个软件实际上是用JAVA写的,还有有一套简化的语言,提供用编码的方式画时序图等各种图,也可以用code的方式自定义页面元素。

最后,UML建模除了画图本身以外,最重要的是理清整个设计方案思路,这一点才UML画图的精髓所在。


money.jpg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/480043.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

炼丹必备!推荐一个超级好用的机器学习云平台

矩池云是一个专业的国内深度学习云平台,拥有着良好的深度学习云端训练体验,和高性价比的自建GPU集群资源。高性价比矩池云拥有很高的性价比,其的计费方式主要分为按时租与按周/月租。按时租用采用的是分钟级的实时计费模式,满足了…

直通BAT必考题系列:深入详解JVM内存模型与JVM参数详细配置

JVM基本是BAT面试必考的内容,今天我们先从JVM内存模型开启详解整个JVM系列,希望看完整个系列后,可以轻松通过BAT关于JVM的考核。 BAT必考JVM系列专题 1.JVM内存模型 2.JVM垃圾回收算法 3.JVM垃圾回收器 4.JVM参数详解 5.JVM性能调优 JV…

论文浅尝 | 基于平行新闻的Bootstrapping关系抽取

笔记整理:吴锐,东南大学大四本科生,研究方向为自然语言处理。Citation:Michael Glass, K. B. . (2012). Bootstrapping relation extraction using parallel news articles. Retrieved from https://pdfs.semanticscholar.org/bfa…

动态规划应用--最长递增子序列 LeetCode 300

文章目录1. 问题描述2. 解题思路2.1 动态规划2.2 二分查找1. 问题描述 有一个数字序列包含n个不同的数字,如何求出这个序列中的最长递增子序列长度?比如2,9,3,6,5,1,7这样一组数字序…

论文浅尝 | 5 篇顶会论文带你了解知识图谱最新研究进展

本文转载自公众号:PaperWeekly。精选 5 篇来自 ICLR 2019、WSDM 2019、EMNLP 2018、CIKM 2018和IJCAI 2018 的知识图谱相关工作,带你快速了解知识图谱领域最新研究进展。WSDM 2019■ 论文解读 | 张文,浙江大学在读博士,研究方向为…

LeetCode 53. 最大子序和(动态规划)

文章目录1. 题目描述2. 解题2.1 暴力求解2.2 动态规划1. 题目描述 题目链接:https://leetcode-cn.com/problems/maximum-subarray/ 《剑指Offer》同题:面试题42. 连续子数组的最大和 给定一个整数数组 nums ,找到一个具有最大和的连续子数组…

java程序员的发展之路和职业规划

在互联网做技术的朋友,往往没有足够的重视,职业规划其实一点都不虚,而是一件非常实在的事情,如果你不是每次碰墙再反思职业规划,而是提前3年左右作出下一步的规划,你早已经走出了一条属于自己的路。 以下是…

图Graph--拓扑排序(Topological Sorting)

文章目录1. 拓扑排序2. 算法实现2.1 Kahn算法2.2 DFS算法2.3 时间复杂度3. 应用4. 类似题目练习一个项目往往会包含很多代码源文件。编译器在编译整个项目时,需按照依赖关系,依次编译每个源文件。比如,A.cpp依赖B.cpp,那在编译时&…

SIGIR20最佳论文:通往公平、公正的Learning to Rank!

星标/置顶小屋,带你解锁最萌最前沿的NLP、搜索与推荐技术文 | 机智的叉烧编 | 兔子酱大家好,我是叉烧。感谢卖萌屋再次给我机会在这里分享~SIGIR2020 的 best paper 终于出炉,这次获奖论文是 Controlling Fairness and Bias in Dynamic Learn…

论文浅尝 | 基于属性嵌入的知识图谱间实体对齐方法

笔记整理:张清恒,南京大学计算机科学与技术系,硕士研究生。论文链接:https://people.eng.unimelb.edu.au/jianzhongq/papers/AAAI2019_EntityAlignment.pdf发表会议:AAAI 2019摘要近来,针对跨知识图谱&…

一篇文章了解架构师能力模型

每一个技术人都有着一个架构师的梦,希望自己有朝一日能登上技术之巅,以下结合我自己13年的从业经验,分别从架构师进阶之路、架构师能力模型(这里是亮点)、架构师技能树、架构师业务技能树谈起,完整的剖析一…

首篇严肃的“BERT学”研究,40+论文对比,解读 BERT 工作原理

BERT解读(论文 TensorFlow源码):https://blog.csdn.net/Magical_Bubble/article/details/89514057?depth_1- 解读ALBERT: https://blog.csdn.net/weixin_37947156/article/details/101529943 一文揭开ALBERT的神秘面纱&#…

图Graph--最短路径算法(Shortest Path Algorithm)

文章目录1. 算法解析BFS,DFS 这两种算法主要是针对无权图的搜索算法。针对有权图,图中的每条边都有权重,如何计算两点之间的最短路径(经过的边的权重和最小)呢?像Google地图、百度地图、高德地图这样的地图软件&#x…

BAT架构师进阶:大型网站架构书籍推荐

“ 书籍推荐分为如下: 大型网站架构系列 分布式系统系列 BAT技术系列 架构设计系列 一:大型网站架构系列 第一本:《大型网站技术架构:核心原理与案例分析》 这本书主要从大型网站架构的特点,架构目标&#xff08…

FLAT:中文NER屠榜之作

本文转载自公众号“夕小瑶的卖萌屋”,专业带逛互联网算法圈的神操作 -----》我是传送门 关注后,回复以下口令: 回复【789】 :领取深度学习全栈手册(含NLP、CV海量综述、必刷论文解读) 回复【入群】&#xf…

Tensorflow实现LSTM详解

关于什么是 LSTM 我就不详细阐述了,吴恩达老师视频课里面讲的很好,我大概记录了课上的内容在吴恩达《序列模型》笔记一,网上也有很多写的好的解释,比如:LSTM入门、理解LSTM网络 然而,理解挺简单&#xff0…

论文浅尝 | 一个模型解决所有问题:实体和事件的神经联合模型

笔记整理:康矫健,浙江大学计算机科学与技术系,硕士研究生。论文链接:https://arxiv.org/pdf/1812.00195.pdf发表会议:AAAI 2019摘要 近来,针对事件抽取的工作大都集中在预测事件的triggers和arguments r…

AutoPep8-----Pycharm自动排版工具

查找pycharm中的external tool的步骤: https://jingyan.baidu.com/article/84b4f565bd39a060f6da3211.html 今天从 PyCharm 入手,写一些可以明显改善开发效率的使用技巧,一旦学会,受用一生。以下代码演示是在 Mac 环境下&#xf…

阿里P8架构师谈:java架构师面试技能24全点

1,JAVA基础扎实,理解io、多线程、集合等基础框架,对JVM原理有一定的了解,熟悉常见类库,常见java api不仅会用更能知其所以然; 2,对Spring,MyBatis/Hibernate,Struts2,SpringMVC等开源框架熟悉并且了解到它的基本原理和…

百度自然语言处理部招人啦!正式、实习都要!研究、落地都有!

星标/置顶小屋,带你解锁最萌最前沿的NLP、搜索与推荐技术2010年,百度自然语言处理部正式成立。十年来,百度NLP聚集了一大批兼具扎实技术实力和实践经验的AI人才,获得数十项国内外权威奖项,申请专利上千件,发…