UML——九种图和几大关系

UML——九种图和几大关系UML——九种图和几大关系

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

UML中的图画完已经有一段时间了,前几天师父验收的时候,发现对这些图及其关系还需要进一步的理解,所以又整理了一下。

UML——九种图和几大关系

九种图

1.用例图


      
        
用来定义系统的功能需求。
        描述角色以及角色与用例之间的连接关系。说明的是谁要使用系统,以及他们使用该系统可以做些什么。一个用例图包含了多个模型元素,如系统、参与者和用例,并且显示了这些元素之间的各种关系,如关联、依赖和泛化。
图例:
UML——九种图和几大关系

2.类图

     
        
对静态结构的描述,用来定义系统中的类和类之间的关系。
类图是描述系统中的类,以及各个类之间的关系的静态视图。能够让我们在正确编写代码以前对系统有一个全面的认识。类图是一种模型类型,确切的说,是一种静态模型类型。
图例:
UML——九种图和几大关系

3.对象图

        表示类的对象实例。
与类图极为相似,它是类图的实例,对象图显示类的多个对象实例,而不是实际的类。它描述的不是类之间的关系,而是对象之间的关系。
图例:
UML——九种图和几大关系

4.活动图

        表示一个连续的活动流,用于描述某个操作执行时的活动状况。
描述用例要求所要进行的活动,以及活动间的约束关系,有利于识别并行活动。能够演示出系统中哪些地方存在功能,以及这些功能和系统中其他组件的功能如何共同满足前面使用用例图建模的商务需求。
图例:
UML——九种图和几大关系

5.状态图

类所描述事物的补充说明,类所有对象可能具有的状态,以及引起状态变化的事物。
描述类的对象所有可能的状态,以及事件发生时状态的转移条件。可以捕获对象、子系统和系统的生命周期。他们可以告知一个对象可以拥有的状态,并且事件(如消息的接收、时间的流逝、错误、条件变为真等)会怎么随着时间的推移来影响这些状态。一个状态图应该连接到所有具有清晰的可标识状态和复杂行为的类;该图可以确定类的行为,以及该行为如何根据当前的状态变化,也可以展示哪些事件将会改变类的对象的状态。状态图是对类图的补充。
图例:
UML——九种图和几大关系

6.序列图

反应若干对象之间的动态协作关系,在时间轴上,对象之间是如何交互的。
序列图是用来显示你的参与者如何以一系列顺序的步骤与系统的对象交互的模型。顺序图可以用来展示对象之间是如何进行交互的。顺序图将显示的重点放在消息序列上,即强调消息是如何在对象之间被发送和接收的。
图例
UML——九种图和几大关系

7.协作图

        和序列图作用相同,强调时间和序列顺序选择顺序图,强调对象之间的关系选择协作图。
和序列图相似,显示对象间的动态合作关系。可以看成是类图和顺序图的交集,协作图建模对象或者角色,以及它们彼此之间是如何通信的。如果强调时间和顺序,则使用序列图;如果强调上下级关系,则选择协作图;这两种图合称为交互图。
图例:
UML——九种图和几大关系

8.构件图

        反应代码的物理结构。
描述代码构件的物理结构以及各种构建之间的依赖关系。用来建模软件的组件及其相互之间的关系,这些图由构件标记符和构件之间的关系构成。在组件图中,构件时软件单个组成部分,它可以是一个文件,产品、可执行文件和脚本等。
图例:
UML——九种图和几大关系

9.部署图

        用来显示系统中软件和硬件的物理构架。
是用来建模系统的物理部署。例如计算机和设备,以及它们之间是如何连接的。部署图的使用者是开发人员、系统集成人员和测试人员。
图例:
UML——九种图和几大关系

几种图的区别:

一:这九种模型图各有侧重

1:用例图侧重描述用户需求,


2:类图侧重描述系统具体实现;

二:描述的方面都不相同

1:类图描述的是系统的结构,


2:序列图描述的是系统的行为;

三:抽象的层次也不同

1:构件图描述系统的模块结构,抽象层次较高,


2:类图是描述具体模块的结构,抽象层次一般,


3:对象图描述了具体的模块实现,抽象层次较低。

 
结构分类、动态行为和模型管理:


1:结构分类包括用例图、类图、对象图、构件图和部署图,


2:动态行为包括状态图、活动图、顺序图和协作图,


3:模型管理则包含类图。


关系

1.泛化

【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何实例化父类的所有行为和特征。
【箭头及指向】:带空心三角箭头的实线,箭头指向父类。
                                                                                   
UML——九种图和几大关系

2.实现

【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实线。
【箭头及指向】:带空心三角箭头的虚线,箭头指向接口。
                                                UML——九种图和几大关系

3.关联

【关联关系】:是一种拥有关系,一个类知道另一个类的属性和方法。如老师与学生的关联可以是双向的,也可以是                          单向的。双向关联可以有两个箭头或都没有箭头,单向关联只有一个箭头。
【箭头及指向】:带普通箭头的实心线,指向被拥有者。
                      UML——九种图和几大关系

4.聚合

【聚合关系】:是整体与部分的关系,且部分可以离开整体而单独存在。如火车和发动机就是整体和部分的关系,发                           动机离开火车仍然可以存在。
 聚合关系是关联关系的一种,是强的关联关系。
【箭头及指向】带空心菱形的实心线,菱形指向整体。
                                                UML——九种图和几大关系

5.组合

【组合关系】:是整体与部分的关系,但部分不能离开整体而单独存在。如我们的胳膊就不能离开人的身体。
                         组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象                          负责代表部分对象的生命周期。
【箭头及指向】:带实心菱形的实线,菱形指向整体。
                                                          UML——九种图和几大关系

6.依赖

【依赖关系】:是一种使用的关系,即一个类的实现需要另一个类的协助,依赖关系普遍存在,当有其他关系时,尽                          量不用依赖关系。
【箭头及指向】:带箭头的虚线,指向被使用者。
                                                             UML——九种图和几大关系

7.包含

【包含关系】:包含关系是用来把一个较复杂的用例所表示的功能分解成较小的步骤。包含关系是依赖的一种。
包含关系是指当多个用例中存在相同的事件流时,可以把这些公共事件流抽象成为公共用例,这个公共用例成为抽象用例,而原始用例称为基础用例,基础用例与抽象用例之间就是包含关系。对于包含关系而言,基础用例是抽象用例执行中不可缺少的一部分,基础用例一般不单独存在且基础用例不知道抽象用例的存在,但是抽象用例知道基础用例的存在。
【箭头及指向】:带虚线的箭头,箭头指向基础用例(父类指向子类)。
                                    UML——九种图和几大关系

8.扩展

【扩展关系】:扩展关系是指用例功能的延伸,相当于为基础用例提供一个附加功能。扩展关系是依赖的一种。
如果一个用例明显的混合了两种或两种以上的不同场景,可以将这个用例分为一个基础用例和一个扩展用例。扩展关系是基础用例在某些特定条件下才触发产生的,扩展用例不是基础用例必须存在的部分,扩展用例可以单独存在,扩展用例知道基础用例的存在,而基础用例不知道扩展用例的存在。
【箭头及指向】:带虚线的箭头,箭头指向基础用例(子类指向父类)。
                               UML——九种图和几大关系


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

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

(0)
上一篇 2022年4月24日 下午9:00
下一篇 2022年4月24日 下午9:00


相关推荐

  • java检验数组重复_java – 如何遍历数组并检查重复项?「建议收藏」

    java检验数组重复_java – 如何遍历数组并检查重复项?「建议收藏」您可以使用嵌套循环遍历数组以查看新输入是否存在.在函数中执行此操作会更好.此外,在执行此操作时,您需要确保您不在第一个元素,否则您将获得空指针异常.for(inti=0;i<=stringArray.length;i++){booleanisInArray=false;System.out.println(“\nEnterastring”);Stringinpu…

    2025年11月27日
    7
  • ARP欺骗攻击的检测和防御[通俗易懂]

    ARP欺骗攻击的检测和防御[通俗易懂]以太网构建由1500个字节的块组成的数据帧。每个以太网数据帧头包括源MAC地址和目的MAC地址。建造以太网数据帧,必须从IP数据包中开始。但在构建过程中,以太网并不知道目标机器的MAC地址,这就需要创建以太网头。唯一可用的信息就是数据包头中的目标IP地址。对于特定主机的数据包传输,以太网协议必须利用目标IP来查找目标MAC地址。这就是ARP地址解析协议。ARP

    2025年7月22日
    5
  • FPGA的图像处理算法

    FPGA的图像处理算法下面简要分析了FPGA技术,包括FPGA技术原理和技术特点等,随后介绍一下FPGA的图像处理系统算法的实现,包括存储模块、运算单元、控制模块以及数据传输模块等内容。智能机器人、多媒体已经计算机的诞生都离不开数字图象处理技术,随着计算机智能化图像处理技术的不断发展,几乎所有领域当中都有数字图象技术的身影。例如军事、公共安全、工业、航天航空、卫星遥感以及生命科学等各种领域。因此对图象处理…

    2022年5月17日
    40
  • 【学习笔记】二元Logistic回归预测

    【学习笔记】二元Logistic回归预测目录 1 基本含义和思想 2 论文 3 进行回归预测的思路是什么 3 求逻辑回归模型的数学过程 3 1 改写函数 3 2 函数变换 3 3 得到离散概率 3 4 最大似然法 3 5 牛顿法 4 逻辑回归在论文 3 中的应用参考文章参考文献 1 基本含义和思想 Logistic 回归和线性回归最大的区别在于 Y 的数据类型 线性回归分析的因变量 Y 属于定量数据 而 Logistic 回归分析的因变量 Y 属于分类数据 分类数据指的是 Y 的结果不是一个值 量 而是一个类别 比如一件衣服的是否有人想购买 这里的 Y 是 是否愿意购买 属于分类

    2026年3月16日
    2
  • ArcGIS二次开发软件安装

    ArcGIS二次开发软件安装本文主要进行介绍 arcgis 二次开发的前期准备 本人目前大三 喜好编程 也正在进行二次开发的学习 闲暇之余写下这几篇文章 希望可以对从事二次开发的小白提供一些帮助吧 下面言归正传 要进行 arcgis 的二次开发 要安装三个必不可少的软件 分别是 ArcGis Desktop ArcGis Engine 以及 MicrosoftVis 其中 ArcGis Desktop 最新版本为 1

    2026年3月18日
    2
  • INT0中断_中断请求寄存器

    INT0中断_中断请求寄存器 当进程执行系统调用时,先调用系统调用库中定义某个函数,该函数通常被展开成前面提到的_syscallN的形式通过INT0x80来陷入核心,其参数也将被通过寄存器传往核心。 在这一部分,我们将介绍INT0x80的处理函数system_call。 思考一下就会发现,在调用前和调用后执行态完全不相同:前者是在用户栈上执行用户态程序,后者在核心栈上执行核心态代码。那么,为了保证在核心内部执行完系统调用…

    2025年11月5日
    5

发表回复

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

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