UML对象图的示例分析

技术UML对象图的示例分析这篇文章给大家分享的是有关UML对象图的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.UML对象图对象图用于描述被建模系统的模型元素实例之间的结构化信息,

本文是和大家分享UML对象图的样例分析的内容。我觉得边肖很实用,就和大家分享一下作为参考。让我们跟着边肖看一看。

1.UML对象图

对象图用于描述被建模系统的模型元素实例之间的结构化信息,它表示被建模系统在特定时间的部分或全部结构视图。UML对象图主要关注特定的对象实例及其槽,以及实例之间的连接。同一类图可以对应多个对象图。随着时间的推移,多个对象图一起显示了系统在不同时间点的对象状态。与类图的抽象相比,对象图是具体的,通常用于提供相应类图的结构示例或作为相应类图的测试用例。应该说,每个对象图都有它的侧重点,所以每个对象图都应该只专注于表达它所关注的内容。

在UML中,对象实例用实例指定表示(见1.1),对象实例的结构特征用槽表示(见1.2),对象实例和对象实例之间的关系用链接表示(见1.3)。与类图相反,实例对应于类对象,槽对应于类属性的实例,连接对应于类之间关联的实例。有了这些对应,在掌握类图的时候,更容易理解和掌握对象图。

图1.1是UML规范中与对象图相关的建模元素的语法定义,后面在解释具体概念时会详细说明。

UML对象图的示例分析

图1.1 UML规范中类图元素的语法

1.1实例规范

UML对象图实例指定(参见USS第7.3.22节)用于表示建模系统中的实例实体,描述部分或全部模型实例实体。当我们通常编程时,我们口头上谈论的例子在UML中被称为实例规范。示例规范中描述的内容可能包括:

1)一个或多个实例所属的分类器。在实例规范中,如果一个分类器是一个类,那么它描述这个类的对象;如果分类器是一个关联,它描述了关联的一个连接。

2)结构特征的价值。结构化特征用于描述类的结构组成,对应于类的属性。行为特征在类图中通过操作来表达,但在对象图中没有。在实例规范中,我们不必表达所有实例的所有结构特征。

3)如何计算、推导或构造例子。

实例规范用于指示模型化系统中存在的实体。在实例规范中,它的信息可能是不完整的,它只关注于表达感兴趣的信息。从图1.1中可以获得以下信息:

1)实例规范是可打包的元素,因为实例规范是可打包的元素。

2)一个实例规范可以包含任意数量的槽,这可以从它的槽组成属性中看出。

3)一个实例规范最多可以包含一个valuespecification(参见USS第7.3.54节),从其规范组件属性可以看出。简而言之,值规格是指对象的可接受值范围。

4)实例规范可以包含任意数量的分类器,这可以从它的分类器关联属性中看出。

示例规范可以包括槽,每个槽实际上是结构化特征的表达。UML对象图中的实例规范是一个或多个分类器的对象实例,因此它遵循分类器定义的结构或(和)行为规范。没有槽的实例规范并不意味着它没有结构特征,因为这些结构特征可能与这个对象图无关。

需要注意的是,实例规范并不是对建模系统运行时的准确描述,只是一个例子,它只代表相关的结构信息。我们无法从实例规范中推导出运行时对象结构的任何细节。

图1.2是一个使用实例规范的例子,其中每个矩形框都是一个实例规范。图1.3是相应的类图。其中my_car是一个没有插槽的实例,而其他Window实例有两个插槽。您会注意到实例规范的表示方法类似于类图中的类,但也有以下区别:

1)其名称下有下划线,表示此实例及其分类器的名称在线),实例名称和分类器之间使用lsquo:如果有多个分类器,分类器之间用逗号隔开。图1.2中的所有实例规范只有一个分类器。比如my_Car所属的分类器就是Car类,也就是说my_car是Car类的一个实例,而front_left、front_right、rear_left、rear_right分别都是Window类的实例。

2)插槽对应于类中的属性,但它们在实例规范中都有值。如果没有值,通常不会在实例规范中指出。

UML对象图的示例分析

图1.2使用实例规范的例子

10521/371/490393.jpg” alt=”UML对象图的示例分析”>

图1.3图1.2对象图所对应的类图

图1.2是一个相对简单的UML对象图,而在现实应用中,我们可以通过多个对象图来展现同样的实例在不同时间点时各实例的状态,不同的状态是通过槽的不同值来表达的。比如,我们可以采用对象图来表示一个算法,而对于同一算法在不同时间点各实例的状态(表现在槽的值不同)采用不同的对象图来表示。

1.2槽

槽(slot,参见USS的7.3.48节)是用于表示实例规范中被建模实体结构特征的值,槽对应于类图中类的属性,是类属性的实例,而属性是类的结构化特性的描述。从图1.1中可以看出,一个槽具有三个属性:
1)definingFeature表示这一槽所对应的结构化特性是什么。
2)owningInstance表示这一槽是属于哪一个实例规范的。
3)value指示槽的值是多少。

图1.2中每一个Window实例规范都有两个槽。其中name槽的definingFeature应当就是窗口名称,显然name槽的owningInstance是各Window实例,而value对于每一个Window实例就不同了,有的叫“frontleft”,也有的叫“rearleft”。相类似地,is_automatic槽用于表示每一个车窗是不是自动的。

1.3连接

在UML规范中没有专门用于介绍连接(link)的章节,但在实例规范章节中有所提及。其定义了实例规范之间的关系,从类图的角度来看,一个连接就是一个关联关系的实例。图1.2中示例了Car类实例规范与Window类实例规范之间的四个连接。对比图1.2和图1.3我们可以发现,图1.2中的四个连接都是图1.3中关联关系的实例。

感谢各位的阅读!关于“UML对象图的示例分析”这篇文章就分享到这里了,希望

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/132517.html

(0)

相关推荐

  • 戛然而止是什么意思,“戛然而止”的“戛”是什么意思

    技术戛然而止是什么意思,“戛然而止”的“戛”是什么意思意思是:象声词一戛然而止是什么意思、戛的组词:戛然、戛玉、摩戛、戛云、戛击、排戛、嘐戛、磨戛、戛羹、交戛、戛齿、戛敔、铿戛、硗戛、戛触、相戛、戛摩、戛服、戛磨、击戛二

    生活 2021年10月25日
  • jquery字符串怎么转数字

    技术jquery字符串怎么转数字这篇文章主要介绍“jquery字符串怎么转数字”,在日常操作中,相信很多人在jquery字符串怎么转数字问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”jqu

    攻略 2021年11月16日
  • sql无效字符执行sql语句报错的解决方法

    技术sql无效字符执行sql语句报错的解决方法本篇文章为大家展示了sql无效字符执行sql语句报错的解决方法,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。说起来惭愧,总是犯一些小

    攻略 2021年12月1日
  • C++如何实现操作符重载

    技术C++如何实现操作符重载这篇文章主要介绍了C++如何实现操作符重载,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 在C++

    攻略 2021年12月1日
  • Python爬虫怎么把教程转换成PDF电子书

    技术Python爬虫怎么把教程转换成PDF电子书本篇内容介绍了“Python爬虫怎么把教程转换成PDF电子书”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧

    攻略 2021年11月29日
  • javajdbc实现增删改查(java中jdbc预处理更新语句)

    技术java中如何实现JDBC增删改查操作小编给大家分享一下java中如何实现JDBC增删改查操作,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! 我们先看一遍步骤: 这里不推荐使用Stat

    攻略 2021年12月16日