【UML用户指南】-15-对高级结构建模-对象图

目录

1、对象图的组成

2、 对象图和类图关系

3、对对象结构建模

4、逆向工程

5、对象图构建要求


对象图对包含在类图中的事物的实例建模。

对象图显示了在某一时间点上一组对象以及它们之间的关系。

对象图用于对系统的静态设计视图或静态交互视图建模。

某一时刻的系统快照建模,表示出对象集、对象的状态以及对象之间的关系。

对象之间不会传递消息

对象图不仅对可视化、详述和文档化结构模型是重要的,而且对通过正向工程和逆向工程构

造系统的静态方面也是重要的。

用 UML,可以使用类图来可视化系统构造块的静态方面。还可以使用交互图来可视化系统的

动态方面,交互图由构造块的实例和在它们中间分发的消息组成。对象图包含一组类图中事

物的实例。因此,对象图表达了交互的静态部分,它由协作的对象组成,但不包含在对象之

间传递的任何消息。在这两种情况下,对象图都表示冻结了的系统运动的某一瞬间,

1、对象图的组成

对象、链、注解和约束,有时也把类放在对象图种。

2、 对象图和类图关系

1、类图描述了一般的情形,实例图描述了从类图派生的具体实例。对象图主要包含对象和链。

2、部署图也可以按照一般的和实例的形式出现:

一般形式的部署图描述结点类型,实例形式的部署图描述了由这些类型描述的结点实例的具体配置。
 

3、对对象结构建模

        在构造类图、构件图或部署图时,真正要做的是获取一组感兴趣的抽象,形成一个组,在这

样的语境下,要显现出组中各抽象的语义及其相互之间的关系。这些图只表示出潜在的可能

性。如果类A到类B有一对多的关联,那么类A的一个实例就可能对应着类B的5个实例,类A的

另一个实例还可能只对应着类B的一个实例。此外,在某一给定的时刻,A的实例和相关的B

的实例,它们的属性和状态机都有一定的值。

        如果冻结一个运行的系统,或者只想象被建模的系统的某一瞬间,就会发现这样的一组对象

:每一个对象都处于一个特定的状态,并与其他对象有特定的关系。可以用对象图来可视化

、详述、构造和文档化这些快照的结构。对象图对于复杂的数据结构建模特别有用。

在为系统的设计视图建模时,可以用一组类图完整地详述抽象的语义以及它们之间的关系。

        然而,用对象图则不能完整地详述系统的对象结构。对于一个类,可以有多个可能的实例,

对于相互间存在关系的一组类,对象间可能的配置是相当多的。因此,在使用对象图时,只

能有意义地显示一组感兴趣的具体对象或原型对象。这就是所谓的为对象结构建模,即对象

图显示了在某一时刻相互联系的一组对象。

        识别想为之建模的机制。机制描述了正建模的系统部分的某些功能或行为,它由一组类、接

口和其他事物的交互产生。

        例如,下图显示了取自一个自主机器人的实现中的一组对象。该图关注机器人为了计算一

个在其中移动的世界模型而使用的机制中所涉及的对象。运行系统还涉及更多的对象,但是

这幅图只关注直接涉及到创建这个世界视图的那些抽象。

如图所示,一个对象表示机器人自身(r是 Robot的实例),而 r当前处于被标记为

moving的状态中。这个对象有一个到w(World的一个实例)的链,World表示该机器人的世

界模型的一个抽象。

此时,w被连接到Area的两个实例。其中之一(a2)具有分别连接到3个Wall对象和一个

Door对象的链。Wall的每个对象都标有各自的当前宽度,并且都与相邻的Wall对象相连。

像这个对象图显示的那样,机器人已经识别出其所在的区域,该区域三面有墙,另一面有门
 

4、逆向工程

选择要进行逆向工程的目标。通常将语境设为一个操作的内部,或者与一个特定类的实例相关。

通过使用工具或简单地走查脚本,在特定的时刻停止执行。

识别出在该语境中相互协作的一组感兴趣的对象,并在对象图中表示它们。

按照理解语义的需要,显露这些对象的状态、识别这些对象之间存在的链。

若最终的图过于复杂,则要修剪它——通过删除与需要回答的关于脚本的问题无密切关系的

对象来实现。若图过于简化,则把某些感兴趣的对象的邻居扩充进来,并更深入地显露出各

对象的状态。

通常,必须手工地添加或标记目标代码中非显式的结构。丢失的信息提供了隐含在最终的代

码中的设计意图。

5、对象图构建要求

注重于表达系统静态设计视图或静态交互视图的一个方面。

表示由一个交互图描绘的动态场景中的一个画面。

只包含对理解该方面不可缺少的那些元素。

提供与它的抽象层次相一致的细节,应该只显露出对理解是不可缺少的那些属性值和其他修饰。

不要过分地简化,这样会使读者对重要的语义产生误解。

当绘制一个对象图时,要遵循如下策略。

给出能表达其用途的名称。

对图中元素进行布局,尽量减少线段交叉。

在空间上组织元素,使得在语义上接近的事物在物理位置上也靠近。

用注解和颜色作为可视化提示,以引起对图的重要特征的注意。

根据表达意图的需要,在图中包括每个对象的值和状态。
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/702499.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CentOS7下快速升级至OpenSSH9.7p2安全版本

一、CentOS7服务器上编译生成OpenSSH9.3p2的RPM包 1、编译打包的shell脚本来源于该项目 https://github.com/boypt/openssh-rpms解压zip项目包 unzip openssh-rpms-main.zip -d /opt cd /opt/openssh-rpms-main/ vim pullsrc.sh 修改第23行为source ./version.env 2、sh pull…

人工智能在肿瘤细胞分类中的应用|顶刊速递·24-06-06

小罗碎碎念 推文主题——人工智能在肿瘤细胞分类中的应用。 重点关注 临床方向的同学/老师建议重点关注第四篇&第六篇文章,最近DNA甲基化和蛋白组学与AI的结合,在顶刊中出现的频率很高,建议思考一下能否和自己的课题结合。 工科的同学重…

全网爆火【MBTI人格测试】是如何实现的?

功能介绍 概述 MBTI人格测试是一款基于Agent Builder框架开发的智能体应用,旨在通过五个精心设计的问题准确分析用户的MBTI性格类型。完成测试后,应用将提供详细的性格分析和建议,帮助用户更好地理解自己的性格特点。 功能详述 1. MBTI测试…

RAG实战4-RAG过程中发生了什么?

RAG实战4-RAG过程中发生了什么? 在RAG实战3中我们介绍了如何追踪哪些文档片段被用于检索增强生成,但我们仍不知道RAG过程中到底发生了什么,为什么大模型能够根据检索出的文档片段进行回复?本文将用一个简单的例子来解释前面的问题…

Linux磁盘管理(MBR、分区表、分区、格式化)

目录 1、简单介绍 2、MBR: 2.1、分区表: 2.2、注意: 2.3、编号问题: 2.4、磁盘的命名: 2.5、格式化分区 1、简单介绍 1.1、track:磁道,就是磁盘上同心圆,从外向里&#xff0c…

Imagic: Text-Based Real Image Editing with Diffusion Models

Imagic: Text-Based Real Image Editing with Diffusion Models Bahjat Kawar, Google Research, CVPR23, Paper, Code 1. 前言 在本文中,我们首次展示了将复杂(例如,非刚性)基于文本的语义编辑应用于单个真实图像的能力。例如…

[Redis] Redis Desktop Manager 安装包和连接和创建流程

1. 安装流程就是next,就可以。 2. 分别填写好: Name(自定义,redis这个库展示的名字), Host, Port, Auth(Redis 的连接password) 3. 要勾选上Use SSL Protocol 选项, 4. 连接到redis上,展示不同的database,…

为什么电容两端电压不能突变

我们先从RC延时电路说起吧,图1是最简单的RC延时电路,给一个阶跃的电压信号,电压会变成黄色曲线这个样子,这是为什么呢? 图1 电压跳变后,电源负极电子移动到电容下极板,排斥上极板电子流动到电源…

rtl8723du android5.1 6818 (wifi 部分)(第三部分)

这部分主要就是 应用了。具体的详细框架 在 android4.4 部分写的差不多的。 之前板卡依然是使用的 mt6620 ,所以在移植的过程中,需要把之前的 wifi 的驱动一点一点的去掉。 1 kernel 的修改。 将驱动拷贝到 wireless 下。 修改Kconfig 修改Makefile 2 驱动的Makefile 的修改…

C语言经典指针运算笔试题图文解析

指针运算常常出现在面试题中&#xff0c;画图解决是最好的办法。 题目1&#xff1a; #include <stdio.h> int main() {int a[5] { 1, 2, 3, 4, 5 };int* ptr (int*)(&a 1);printf("%d,%d", *(a 1), *(ptr - 1));return 0; } //程序的结果是什么&…

深度学习 --- stanford cs231 编程作业(assignment1,Q3: softmax classifier)

stanford cs231 编程作业(assignment1&#xff0c;Q3: softmax classifier softmax classifier和svm classifier的assignment绝大多部分都是重复的&#xff0c;这里只捡几个重点。 1&#xff0c;softmax_loss_naive函数&#xff0c;尤其是dW部分 1&#xff0c;1 正向传递 第i张…

银河麒麟v10 sp3编译制作内核rpm包——筑梦之路

环境信息 下载内核源码包 这里下载4.19版本的内核源码包&#xff0c;当前最新为4.19.315 https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.19.315.tar.xz 准备编译环境 # 安装编译需要的依赖包yum install rpm-devel rpmdevtools yum groupinstall "Developmen…

AI写作助手:简化你的学术写作流程

在日常工作和生活中&#xff0c;我经常使用各种各样的人工智能工具&#xff0c;如AI写作助手、AI语音助手和AI绘图工具等。这些AI工具显著提升了我的工作效率&#xff0c;并极大地简化了我的日常任务。作为一名AI工具的忠实爱好者&#xff0c;我搜集了许多免费的AI工具&#xf…

OZON多少资金可以提现,OZON提现要求

在跨境电商领域&#xff0c;OZON平台凭借其卓越的服务和广泛的用户基础&#xff0c;吸引了众多卖家入驻。然而&#xff0c;对于许多新手卖家而言&#xff0c;关于OZON平台的资金提现问题仍然存在一定的疑惑。本文将详细解析OZON平台上的资金提现政策&#xff0c;帮助卖家们更好…

JAVA小知识15:JAVA到底是值传递还是引用传递?

java中是值传递还是引用传递&#xff1f; 结论&#xff1a;值传递 一、值传递、引用传递 先看一个例子&#xff1a; 在这个例子中函数private static void updata(int i)中的 i 就叫形参 updata(a)中的 a 就叫做实参 值传递&#xff1a;若改变了i的值&#xff0c;但是a的值不变…

2025年最值得期待数据安全保护系统

虽然具体到2025年的数据安全保护系统细节可能尚未完全公开&#xff0c;但从当前趋势和技术创新来看&#xff0c;可以预见一些关键特性和系统可能的发展方向。 1.防泄密软件安企神 持续的技术创新&#xff1a;安企神将继续采用并升级其先进的加密技术&#xff0c;确保数据在传输…

【Mybatis】关于Mybatis手写xml文件的常见问题

明天就是端午节啦 博主今天先提前祝大家端午节快乐呀&#xff01;&#xff01; 文章目录 前言一、尽量做到参数化查询二、关于param注解三、mybatis处理特殊字符1.转义字符2.<![CDATA[]]>&#xff08;CDATA 标记&#xff09; 四、结果映射1、映射好文件与接口 namespace2…

Docker 容器 mysql 配置主从

1、前提条件 集群的条件下 服务器 172.16.11.195 13316:3306 服务器 172.16.11.196 13317:3306 配置好主数据库和从数据 2、配置主从数据库 2.1使用portainer 来管理容器 建立数据库密码 新增配置文件 # mysql-master.cnf [mysqld] server_id110 log-binmysql-binrela…

android 开机动画执行流程

android深入了解开机动画 开机动画的种类 1&#xff1a;View绘制 2&#xff1a;逐帧动画&#xff1a;比较主流的方式&#xff0c;一般动画的文件打包成 bootanimation.zip 存储到 /system/media/ 下。一般.zip文件 > 5M 就会有明显的卡顿&#xff0c;所以一般开机动画只有…

【代码随想录】【算法训练营】【第36天】 [860]柠檬水找零 [406]根据身高重建队列 [452]用最少数量的箭引爆气球

前言 思路及算法思维&#xff0c;指路 代码随想录。 题目来自 LeetCode。 day 36&#xff0c;周三&#xff0c;最难坚持的一天~ 题目详情 [860] 柠檬水找零 题目描述 860 柠檬水找零 解题思路 前提&#xff1a; 思路&#xff1a;维护5&#xff0c;10&#xff0c;20三种…