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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 使用eclipse创建java项目「建议收藏」

    使用eclipse创建java项目「建议收藏」注意:安装前必备环境:安装eclipse之前必须安装JDK环境。安装方法主要有:下载JDK,安装JDK,配置JDK的环境变量,测设JDK是否安装好。具体步骤详见博文: java开发环境搭建 使用eclipse从头一步步创建java项目1.下载eclipse官网地址:http://www.eclipse.org/downloads/下载EclipseIDEforJava

    2022年7月8日
    29
  • checking for ZTS… configure: error: pthreads requires ZTS, please re-compile PHP with ZTS enabled

    checking for ZTS… configure: error: pthreads requires ZTS, please re-compile PHP with ZTS enabled

    2022年2月17日
    53
  • route命令「建议收藏」

    route命令「建议收藏」转载:https://www.kancloud.cn/chunyu/php_basic_knowledge/2106519route命令详解route命令用于显示和操作IP静态路由表。路由表,指

    2022年7月1日
    33
  • Windows 批处理(bat)语法大全

    Windows 批处理(bat)语法大全本文是学习bat整理的笔记,由于内容较多,建议结合右侧文章大纲查看。%~dp0[获取当前路径]%~dp0 “d”为Drive的缩写,即为驱动器,磁盘、“p”为Path缩写,即为路径,目录cd%~dp0:进入批处理所在目录cd%~dp0bin\:进入批处理所在目录的bin目录示例这个示例在win10x64测试正常::作用:以管理员身份安装Apached:c…

    2022年7月21日
    20
  • java出现中文乱码_JAVA中文显示乱码问题「建议收藏」

    java出现中文乱码_JAVA中文显示乱码问题「建议收藏」在基于JAVA的编程中,经常会碰到汉字显示乱码的问题,经一番查询现总结如下。在JSP中建议网页编码方式用GBK,这样会方便一些。这个问题是因为JAVA编码方式转换出现了问题,Java中默认的编码方式是UNICODE,而中国人通常使用的文件和DB都是基于GB2312或者BIG5等编码,故会出现此问题。我知道一定有很多朋友也会碰到这个问题,所以特就总结了一下,来拿出来让大家一起分享了。自己也做个备忘。…

    2022年7月8日
    18
  • kettle工具实现数据清洗「建议收藏」

    kettle工具实现数据清洗「建议收藏」一、Excel输入2.设置参数3.查看被选中的文件名称。单击【显示文件名称…】按钮,弹出【文件读取】对话框,查看被选中读取的文件,如图所示。4.设置工作表5.【字段】选项卡参数6.预览记录二、生成记录1.加入控件3.预览记录三、生成随机数1.加入控件2.配置控件3.预览记录四、获取系统信息1.加入控件2.配置控件3.预览记录五、排序记录1.建…

    2022年10月10日
    1

发表回复

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

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