首页 > 其他分享 >UML基础总结

UML基础总结

时间:2022-12-30 10:03:16浏览次数:69  
标签:总结 对象 基础 类图 Diagram 组件 UML 交互


UML(Unified Modeling Language)统一建模语言

官方网站:​​http://www.uml.org/​

建模是在编码之前进行的设计工作,一般常用于需求分析中,而且在软件功能设计方面也能起到很大的作用。
模型可以提高抽象层次,可以屏蔽或隐藏软件编码上的细节,使得在软件开发前对软件具有宏观把控。
当然UML也不一定是在软件开发前就画好的,很多编译器,比如IDEA、Eclipse等,都有插件可以将java类直接生成对应的UML类图。而常用的UML建模工具,比如Rational Rose,也是具有直接将UML类图转化为java代码的能力的。
UML显然可以是和平台无关的,也可以是和平台有关的。

面向对象建模通常有三种模型,分为对象模型、动态模型、功能模型
(1)对象模型:描述系统的数据结构;
(2)动态模型:描述系统的控制结构;
(3)功能模型:描述系统的功能。
其中对象模型是最基本、最重要的

UML目前最新版本为UML 2.5.1
其包括十三种图表,分成三类

类别

UML图

结构图

类图,对象图,组件图,复合结构图,封装图,包图

行为图

用例图(在需求收集期间由某些方法使用); 活动图和状态机图

交互图

(所有这些都来自更一般的行为图)—— 序列图,协作图,时序图和交互概述图

UML基础总结_类图


UML基础总结_对象图_02

每种图下面仅做简单介绍,深入学习请前往W3CSchool等学习网站,以下图片及相关资料来自W3CSchool(侵删)

1、类图(Class Diagram)

用来显示系统中的类、接口以及它们之间的静态结构和关系的一种静态模型

本图为:订单类图

UML基础总结_对象图_03


我的理解:类图描述了各个类(接口)的内部方法、成员变量的设计,以及类(接口)之间的逻辑关系

2、对象图(Object Diagram)

① 对象图和类图一样反映系统的静态过程,但它是从实际的或原型化的情景来表达的;
② 显示某时刻对象和对象之间的关系。一个UML对象图可看成一个类图的特殊用例,实例和类可在其中显示;
③ 对象图是类图的实例,几乎使用与类图完全相同的标识;
④ 由于对象存在生命周期,因此UML对象图只能在系统某一时间段存在

本图为:订单管理系统对象图

UML基础总结_类图_04


我的理解:对象图和类图在表现形式上很类似,他们的关系很类似进程和程序的关系,即一个类在类图上只能出现一次,但是一个类却可以有很多个实例对象出现在对象图中,他们在UML图里的画法也很类似,可以注意的是,对象图的最上面一栏的写法是:​​对象名:类名​

3、组件图(Component Diagram)

① UML 组件图又称为构件图,他描述的是在软件系统中遵从并实现一组接口的物理的、可替换的软件模块;
② 组件图 = 构件(Component)+接口(Interface)+关系(Relationship)+端口(Port)+连接器(Connector);
③ 组件图给提供了将要建立的系统的高层次的架构视图,这将帮助开发者开始建立实现的路标,并决定关于任务分配及(或)增进需求技能;
④ 组件图不描述该系统的功能,但它描述了用于使这些功能的组件;
⑤ 组件图的目的概括如下:

  • 可视化系统的组成部分;
  • 构建的可执行文件,使用正向和反向工程;
  • 描述的组织和组件的关系。

注:W3CSchool的组件图似乎不太正确 

本图为:机房收费系统组件图

UML基础总结_类图_05


我的理解:组件图是架构师在初期就要设计好的图,主要描述软件部分物理组成,就是抽象层次很高的类(或一组类)与类(或一组类)的关系描述。

4、复合结构图(Composite Structure Diagram)

复合结构图是显示类元的内部结构的图,包括其与系统其他部分的交互点。它显示了部件的配置和关系,它们一起执行包含类元的行为。

UML基础总结_类图_06


5、包图(Package Diagram)

Package可以类似理解为Folder,即文件夹,包图也就是描述项目类似文件夹的这种结构的模型

UML基础总结_UML_07

6、用例图(Use Case Diagram)

① 用例图捕捉了模拟系统中的动态行为,并且描述了用户、需求以及系统功能单元之间的关系。

② 用例图展示了一个外部用户能够观察到的系统功能模型图。

③ 用例图由主角,用例和它们之间的关系组成。

UML基础总结_对象图_08

7、部署图(Deployment Diagram)

① 部署图描述的是系统运行时的结构,展示了硬件的配置及其软件如何部署到网络结构中;

② 部署图通常用来帮助理解分布式系统,一个系统模型只有一个部署图;

③ 部署图用于可视化的软件组件部署的系统中的物理组件的拓扑结构。

UML基础总结_对象图_09

8、活动图(Activity Diagram)

活动图是用来显示消息流从一个活动到另一个活动的图

活动图只能由一个开始元素,可以有多个结束元素

UML基础总结_对象图_10

9、状态机图(State Machine Diagram)

状态机图对一个单独对象的行为建模,指明对象在它的整个生命周期里,响应不同事件时,执行相关事件的顺序

UML基础总结_对象图_11

10、序列图(Sequence Diagram)

​​ ① 序列图将交互关系表示为一个二维图。纵向是时间轴,时间沿竖线向下延伸。横向轴代表了在协作中各独立对象的类元角色。类元角色用生命线表示。当对象存在时,角色用一条虚线表示,当对象的过程处于激活状态时,生命线是一个双道线。

② 消息用从一个对象的生命线到另一个对象生命线的箭头表示。箭头以时间顺序在图中从上到下排列。

UML基础总结_UML_12

11、协作图(Communication Diagram)

协作图是动态图的另一种表现形式,它强调参加交互的各对象结构的信息。协作图是一种类图,它包含类元角色和关联角色,而不仅仅是类元和关联。协作图强调参加交互的各对象的组织。

UML基础总结_UML_13

12、时序图(Timing Diagram)

时序图是用来显示交互的UML交互图,当图的主要目的是为了解释时间。时序图关注条件的变化在时间轴中沿直线的生命线。时序图描述个体量词和量词行为相互作用,注重在模拟条件下的生命线事件引起变化的时间。

UML基础总结_UML_14

13、交互概述图(Interaction Overview Diagram)

① 交互概述图是将不同交互图衔接在一起的图,属于UML2.0的新增图。交互概述图并没有引入新的建模元素,其主要元素来自于活动图和时序图。交互概述图侧重从整体上概览交互过程中的控制流,包括交互图之间的事件或消息流。

② 当前交互概述图主要应用于活动图与时序图之间的协作,主要有两种形式:交互和交互应用,前者适用于控制流相对简单的场景,后者适用于控制流相对复杂的场景。

UML基础总结_UML_15



标签:总结,对象,基础,类图,Diagram,组件,UML,交互
From: https://blog.51cto.com/u_15854687/5979111

相关文章

  • 2022年终总结
    前言今年是我在生活中成长最迅速的一年,也是我在大人的眼中逐渐变得懂事的一年,不再沉迷于游戏,在工作中敢于承担责任,和同事和朋友相处更加自然,这一切的改变都源自于戒游戏......
  • 深度学习基础课:最大池化层的后向传播推导
    大家好~本课程为“深度学习基础班”的线上课程,带领同学从0开始学习全连接和卷积神经网络,进行数学推导,并且实现可以运行的Demo程序线上课程资料:本节课录像回放加QQ群,获得......
  • 7JavaScript基础语法
    第一章1计算机编程基础什么是编程语言编程语言和标记语言的不同常见的数据存储单位及其换算关系内存的主要作用以及特点2编程语言编程:就是让计算机为解决某个问题而使用......
  • 2022 年终总结
    忙忙碌碌无建树,浑浑噩噩又一年又到了感慨时间过得飞快的日子了。疫情依旧,工作按部就班,维护中的项目反而发现了bug,导致几乎有一半时间在旧代码堆里摸爬滚打,忙碌又没有成就......
  • 前端知识总结
    前端知识总结: 1.查看元素大小右键--检查--elements---光标防止到对应元素上(如图中圈中),页面显示大小。 ......
  • 2.1JavaScript基础语法
    第一章1计算机编程基础什么是编程语言编程语言和标记语言的不同常见的数据存储单位及其换算关系内存的主要作用以及特点2编程语言编程:就是让计算机为解决某个问题而使用......
  • 嵌入式:ARM数据定义伪操作全总结
    定义字节存储单元伪操作DCB定义半字存储单元伪操作DCW(DCWU)定义字存储单元伪操作DCD(DCDU)为单精度浮点数定义字存储单元伪操作DCFS(DCFSU)为双精度浮点数定义字存储单元伪操作DC......
  • 2js基础
    目录1JavaScript是什么 42js三种编写位置 43js注释 44js输入输出语句 44.1输出的三种方式 44.2输入【弹框输入】 55字面量 56变量 56.1变量声明 66.2变量赋值 66......
  • 程序设计基础(二)—— 贪心
    引入:贪心算法(greedyalgorithm),是用计算机来模拟一个「贪心」的人做出决策的过程。这个人十分贪婪,每一步行动总是按某种指标选取最优的操作。即为当前解为局部最优解可想......
  • 2022总结与展望--Empirefree
    痛苦与幸福总是贯彻人生的始终,这就是人生,不是吗?目录......