UML的9种常用图与建模工具详解「建议收藏」

UML的9种常用图与建模工具详解「建议收藏」UML即UnifiedModelLanguage,是一种建模语言,也是标准建模语言。在软件开发中,当系统规模比较复杂时,需要用图形抽象地来表达复杂的概念,让整个软件设计更具有可读性,可理解性,以便

大家好,又见面了,我是你们的朋友全栈君。

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

UML常用建模图

UML标准建模语言中5种主要的类型图:UML的9种常用图与建模工具详解-mikechen的互联网架构 1、用例图

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

2、静态图

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

3、交互图

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

4、行为图

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

5、实现图

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

UML建模时常见的9种图

UML的9种常用图与建模工具详解-mikechen的互联网架构

1、用例图

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

2、类图

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

3、对象图

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

4、活动图

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

5、状态图

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

6、时序图

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

7、协作图

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

8、组件图

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

9、部署图

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

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

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

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

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

UML工具

UML的9种常用图与建模工具详解-mikechen的互联网架构1.Enterprise Architect(EA)Enterprise Architect是一个全功能的、基于UML的visual CASE工具,主要用于设计、编写、构建并管理以目标为导向的软件系统。它支持用户案例、商务流程模式以及动态的图表、分类、界面、协作、结构以及物理模型。EA是个人推荐使用。

2.Umlet

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

3.Rational Rose

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

4.PowerDesign

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

5.Visio 

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

 

下面我就从项目流程管理的角度进行展开介绍:

一、项目流程管理

比方说官网改版这个项目,我们将整个项目流程划分为【需求收集】-【原型设计】-【UI设计】-【WEB研发】-【网站上线】,并将项目拆解为多个任务,每个任务分配给对应的人,并经历多种任务状态的流转。

UML的9种常用图与建模工具详解「建议收藏」

二、里程碑管理

里程碑,是指完成阶段性工作的标志,不同项目的里程碑不同。拿上面官网改版的项目来说,需求列表、产品原型图、UI设计图等就是里程碑,里程碑划分的颗粒度可大可小,具体看项目组的人员分工情况。

Worktile中,里程碑可以对应为多种任务状态。

UML的9种常用图与建模工具详解「建议收藏」

三、时间跟踪

前面讲到项目拆分成了多个任务,但每个任务的完成时间需要严格把控,才能保证整体项目不会延期。在Worktile中,可以给每个任务设置截止时间,并可查看任务的更新时间。

UML的9种常用图与建模工具详解「建议收藏」

​四、项目甘特图

用甘特图把控整体项目进度,如有任务完成不理想,可及时找到相关负责人。

UML的9种常用图与建模工具详解「建议收藏」

五、文件管理

项目相关的文件,可以上传到项目文件或任务附件中, 沉淀项目资料。Worktile支持企业网盘、项目文件、任务附件多种方式的文件管理。

UML的9种常用图与建模工具详解「建议收藏」

六、用户管理

应该是说项目成员管理,用Worktile可以给每个项目成员添加不同的角色,而每种角色对应不同的权限。比较通用的角色模式如管理员、普通成员、只读成员,这些都可以在后台自由设置。

UML的9种常用图与建模工具详解「建议收藏」

就暂时介绍到这,如果大家有疑问,欢迎在评论区交流。

 

UML类图学习笔记

类图结构
类封装了数据和行为,它是具有相同属性、操作和关系的对象集合的总称。
在系统分析与设计阶段,类通常分为三种:

实体类:实体类是系统需求中的实体,实体类通常保存在永久记忆体中,一般使用数据库表或文件来记录,实体类既包括存储数据的类、传递数据的类和操作数据的类。实体类通常来源于需求说明中的名词(例如:用户、产品)。
控制类:控制类体现了应用的执行逻辑,提供相应的业务操作,将控制类抽象出来可以降低界面和数据库之间的耦合度。控制类通常有动词+名词来命名(例如:UserRegister)。
边界类:边界类用于对外部用户与系统之间的交互对象进行抽象,主要包括界面类(例如:对话框、窗口、菜单)。
类的组成
– 类名:类的名字
– 属性:类的成员变量
– 操作:类的成员方法

属性的表示方式如下所示:
可见性 名称:类型[=缺省值]

可见性:public、private和protected,在类图中分别用+、-和#表示。
名称:属性的名称。
类型:属性的数据类型,可以是基本数据类型,也可以是用户自定义的类型。
缺省值:可选项,表示属性的初始值。
在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)

一. 泛化(Generalization)
【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。例如:老虎是动物的一种,即有老虎的特性也有动物的共性。
【箭头指向】:带三角箭头的实线,箭头指向父类

UML的9种常用图与建模工具详解「建议收藏」

 

 

二. 实现(Realization)
【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现.
【箭头指向】:带三角箭头的虚线,箭头指向接口

 

UML的9种常用图与建模工具详解「建议收藏」

 

 

三. 关联(Association)
【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。
【代码体现】:成员变量
【箭头及指向】:带普通箭头的实心线,指向被拥有者

 UML的9种常用图与建模工具详解「建议收藏」

 

 

上图中,老师与学生是双向关联,老师有多名学生,学生也可能有多名老师。但学生与某课程间的关系为单向关联,一名学生可能要上多门课程,课程是个抽象的东西他不拥有学生。

下图为自身关联:
UML的9种常用图与建模工具详解「建议收藏」

 

 

四. 聚合(Aggregation)
【聚合关系】:是整体与部分的关系,且部分可以离开整体而单独存在。如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。
【代码体现】:成员变量
【箭头及指向】:带空心菱形的实心线,菱形指向整体
UML的9种常用图与建模工具详解「建议收藏」

 

 

五. 组合(Composition)
【组合关系】:是整体与部分的关系,但部分不能离开整体而单独存在。如公司和部门是整体和部分的关系,没有公司就不存在部门。
组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。
【代码体现】:成员变量
【箭头及指向】:带实心菱形的实线,菱形指向整体
UML的9种常用图与建模工具详解「建议收藏」

 

 

六. 依赖(Dependency)

【依赖关系】:是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖.
【代码表现】:局部变量、方法的参数或者对静态方法的调用
【箭头及指向】:带箭头的虚线,指向被使用者

UML的9种常用图与建模工具详解「建议收藏」

 

 

七、总结
各种关系的强弱顺序:
泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖

下面这张UML图,比较形象地展示了各种类图关系:

UML的9种常用图与建模工具详解「建议收藏」

 

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/154304.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • navicate15激活码_在线激活

    (navicate15激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月28日
    151
  • 1277. 统计全为 1 的正方形子矩阵(动态规划)

    1277. 统计全为 1 的正方形子矩阵(动态规划)给你一个 m * n 的矩阵,矩阵中的元素不是 0 就是 1,请你统计并返回其中完全由 1 组成的 正方形 子矩阵的个数。示例 1:输入:matrix =[ [0,1,1,1], [1,1,1,1], [0,1,1,1]]输出:15解释: 边长为 1 的正方形有 10 个。边长为 2 的正方形有 4 个。边长为 3 的正方形有 1 个。正方形的总数 = 10 + 4 + 1 = 15.示例 2:输入:matrix = [ [1,0,1], [1,1,0],

    2022年8月9日
    2
  • java从入门到精通学习路线

    java从入门到精通学习路线目前 Java 在许多行业的客户端方面的应用非常多 比如 OA 邮箱 投票 金融 考试 物流 医疗 矿山等信息方面的系统 Java 开发者在这方面的需求也非常大 待遇也相当不错 工资水平可能和 Java 互联网方向的差不多 但福利和前途则非常好 因为这类工作基本上是政府事业单位及大型企业提供的 对于 java 学习 一套专业系统的 java 学习路线图是不可少的 让你从入门到精通实现系统化 nbsp 第一阶段

    2025年9月28日
    3
  • 父子组件传值方法

    父子组件传值方法vue组件间传值方法:ref、子传父、父传子、VueX、bus。

    2022年5月16日
    47
  • java 根据“|”分割字符串需要使用“\\|” 双反斜杠做特殊处理

    java 根据“|”分割字符串需要使用“\\|” 双反斜杠做特殊处理java 根据“|”分割字符串需要使用“\\|” 双反斜杠做特殊处理

    2022年4月23日
    315
  • 内网IP地址段_专用内网ip

    内网IP地址段_专用内网iptcp/ip协议中,专门保留了三个IP地址区域作为私有地址,其地址范围如下:10.0.0.0/8:10.0.0.0~10.255.255.255172.16.0.0/12:172.16.0.0~172.31.255.255192.168.0.0/16:192.168.0.0~192.168.255.255

    2025年11月16日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号