UML建模图文详解教程04——对象图


版权声明

  • 本文原创作者:谷哥的小弟
  • 作者博客地址:http://blog.csdn.net/lfdfhl
  • 本文参考资料:《UML面向对象分析、建模与设计(第2版)》吕云翔,赵天宇 著

在这里插入图片描述

对象图

对象图(object diagram)显示了某一时刻的一组对象及它们之间的关系。对象图可被看作是类图的实例,用来表达各个对象在某一时刻的状态。举个例子,对于一场足球比赛,所有球员协同进行比赛,整场比赛相当于系统的类图。如果在比赛的某一时间暂停一下,就可以发现每个球员所处的位置以及和其他球员的关系;更深一步,可以明白这些球员是如何协作的。

核心知识点

请务必熟悉并掌握以下核心知识点。

对象图的组成元素,包括对象和链。

对象

对象是类的实例,是一个封装了状态和行为的具有良好边界和标识符的实体。对象通过其类型、名称和状态区别于其他对象而存在。在 UML中,对象的表示法与类相似,使用一个矩形框表示。

对象的名称在矩形框的顶端显示,用以在某一语境下区别于其他对象。名称是一个字符串,类似于类的名称。对象名也可以有简单名和路径名之分。每个对象都有一个类型,对象的类型必须是具体的类目。

对象名的三种表示法如下:

  • stu:Student 标准表示法
  • :Student 匿名表示法
  • stu 省略类名的表示法

示例如下:
在这里插入图片描述

链是关联关系的实例,是两个或多个对象之间的独立连接。因此,链在对象图中的作用就类似于关联关系在类图中的作用。在 UML中,链同样使用一条实线段来表示。

示例如下:

在这里插入图片描述

链主要用来导航。链一端的一个对象可以得到另一位置上的一个或一组对象,然后向其发送消息。链的每一端也可以显示一个角色名称,但不能显示多重性(因为实例之间没有多重性)。

航空购票系统对象图

在此,我们依然以航空购票系统为例介绍对象图的绘制。

确定对象及对象状态

我们确定系统某一时刻的几个重要对象:用户、机票、机场与航班以及这些对象的状态。

与创建用例图类似,请在Model中创建对象图;图示如下:

在这里插入图片描述
请选择UML Structual ,再选择Object;图示如下:
在这里插入图片描述
创建完毕;图示如下:
在这里插入图片描述
我们先来绘制User对象。

请在工具箱中选择Object,并添加至绘图区;图示如下:

在这里插入图片描述

点击确定后图示如下:

在这里插入图片描述

选择User对象,右键选择功能与属性,再选择设置运行状态;请在此设置变量名和值;图示如下:

在这里插入图片描述

点击确定后,图示如下:

在这里插入图片描述

类似地,我们完成其它对象的绘制;图示如下:

在这里插入图片描述

补充对象间的链

在确定对象图中的对象之后使用链将有关联的对象进行链接得出最终的对象图。

在Object Relationships中选择associate连接有关联的对象;图示如下:

在这里插入图片描述

至此,我们完成了航空购票系统对象图的绘制。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

chatGPT4机器学习数据后最终保留在机器里的是什么? 机器是怎么产生智能的? TensorFlow没有直接开发出类似GPT-4这样的模型

机器学习数据后最终保留在机器里的是机器学习模型。机器学习模型是机器学习系统中的核心,它是机器学习系统能够进行推理和预测的基础。 机器学习模型通常由参数组成。参数是机器学习模型的权重和偏差。机器学习系统通过训练来学习这些参数。训练是指让机器学习系统…

【开源】基于Vue.js的民宿预定管理系统

项目编号: S 058 ,文末获取源码。 \color{red}{项目编号:S058,文末获取源码。} 项目编号:S058,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用例设计2.2 功能设计2.2.1 租客角色…

Mobaxterm 使用lrzsz传输文件(rz/sz)

Mobaxterm 使用lrzsz传输文件报错 1. 现象 最近从xshell切换到Mobaxterm其他一切正常,就是使用rz传输文件时会出现错误,比较苦恼. 会出现以下错误 [rootcentos7 rpmbuild]# rz ▒CCCCCCCCCCC23be50ive.**B0100000023be502. 解决方法 去官网(https://mobaxterm.mobatek.net…

Map使用数字类型作为key的坑

用什么存的一定要用什么类型取出来,他哪个get是Object类型的,即使你放错了类型也不给你提醒,有点无语。

基于C#实现Kruskal算法

这篇我们看看第二种生成树的 Kruskal 算法,这个算法的魅力在于我们可以打一下算法和数据结构的组合拳,很有意思的。 一、思想 若存在 M{0,1,2,3,4,5}这样 6 个节点,我们知道 Prim 算法构建生成树是从”顶点”这个角度来思考的,然…

CentOS7安装Docker运行环境

1 引言 Docker 是一个用于开发,交付和运行应用程序的开放平台。Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件。借助 Docker,您可以与管理应用程序相同的方式来管理基础架构。通过利用 Docker 的方法来快速交付,…

redis-cluster集群模式

Redis-cluster集群 1 Redis3.0引入的分布式存储方案 2集群由多个node节点组成,redis数据分布在节点之中,在集群之中分为主节点和从节点3集群模式当中,主从一一对应,数据写入和读取与主从模式一样,主负责写,从只能读4集群模式自带哨兵模式,可…

待办委托超方便,流程审批效率大提升丨三叠云

流程委托 路径 我的流程 >> 我的待办 功能简介 我的流程增加「待办委托」功能,用户可以将待处理的流程审批委托他人处理。 应用场景: 如果当前审批人不方便审批时,可以委托给指定的人(被委托人)处理&#…

Tomcat 配置

1: 打开 2:选择版本号,我这边是 1.7 3:添加 web 4: 添加jar包 5:添加 6:添加 Tomcat

git的使用记录

GitHub是公有的远程仓库,Gitlab是私有的远程仓库。 git add file git commit -m "add file" git mv filea fileb git log 显示提交记录 git log --oneline 一行的简略信息显示 git log --oneline --decorate 显示当前指针 git reset --ha…

千兆光模块和万兆光模块的发展趋势

千兆光模块和万兆光模块是一种高速光电子器件,以其高速传输、长距离传输和高可靠性而广受关注。光模块是光学通讯系统中极为重要的组成部分之一。不同类型的光模块由于其不同的特性,可以适用于不同的应用场景。下面我们将着重介绍千兆光模块和万兆光模块…

RubyMine 2023:提升Rails/Ruby开发效率的强大利器

在Rails/Ruby开发领域,JetBrains RubyMine一直以其强大的功能和优秀的性能而备受开发者的青睐。现如今,我们迎来了全新的RubyMine 2023版本,它将为开发者们带来更高效的开发体验和无可比拟的工具支持。 首先,RubyMine 2023提供了…