您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
   
 
     
   
 订阅
  捐助
UML 图解:对象图(object diagram)
 
俎涛 ,火龙果软件工程技术中心
1416 次浏览     评价:  
 2020-2-17
 

为什么需要对象图建模

对象图是描述对象及其关系的图,学习对象图,首先要理解什么是对象:

这是英文的词典解释:

Object:a material thing that can be seen and touched。

翻译过来就是:

对象:是可以看到和触摸的物质事物。

可以这么说,我们看到的世界是对象构成的。因为现实世界的对象太多了,所以人采用分类的方式,把对象抽象成类,所以我们的词汇表里大部分的词都不是描述对象的,而是描述类(具有相似特征和行为的一组对象的抽象)。例如:人,马,桌子,汽车,飞机。

回顾上一篇 UML图解:类图,有关于对象和类的关系的介绍:

对象图是面向对象思维的结晶,是以对象的视角描述客观世界的事物:
  • 对象是客观世界存在物,占有空间
  • 具有内部构成
  • 对外表现特征
  • 具有行为
  • 跟外部发生作用
  • 现实世界对象很多,抽象为类:
  • 给类起个名字,能否反应其所代表的对象实例
  • 用属性描述对象的特征
  • 用方法描述对象的行为
  • 对象之间的关系抽象为类的关系:关联,聚合,组成,泛化,实现 等等。

     

    可以看出,对象是抽象类的基础,但是大多数时候,我们看到的都是类图,很少见到有人画对象图。那么,对象图到底有用吗? 我们来看下面的例子:

     

    从以上图例可以看出:

    对象图和类图的关系:
    对象图更接近于客观世界的图,在抽象类图之前,最好先建模对象图,这样的类图才落地。这就像“理论来自于实践”的哲学观。

    对象是客观存在的,而没有两个完全一样的对象,那么我们如何理解庞杂的万物呢?又如何描述这么多对象呢?这就需要我们先从宏观上我们所描述对象其实都是从某种角度对客观存在对象的映射,就像上例,我们先从宏观角度找到对象:地图、蛇、食物,然后在分析他们的内在联系——地图、蛇、食物之间需要能够存在原子单元的对应,这样才能判断蛇吃掉了食物,食物在地图上的某个位置。这样我们就找到了“节点”这个基本对象,地图是按照节点进行坐标定位的,蛇是节点构成的,食物也是一种特殊的节点(可以被吃掉),这个寻找基本对象的过程,就像物质世界找到了原子、生物找到了细胞和基因。这个时候会让我们的认知透彻,也就有可能具有了操控事物的能力。这也正是贪食蛇游戏的分析设计关键所在。



    对象建模的关键:
    在众多的表面对象中寻找构成它们的基本对象,这是发现规律和共性的关键,是简化问题进而解决问题的必由之路。

     

    对象图有什么

    任何UML图都有语义、元素、关系和用途,下面对对象图做个列表描述:

    语义 描述对象在某个时刻的状态和关系
    元素 对象(object)
    关系 对象之间的连接(Link)
    用途 可以在分析类的时候描述对象之间的关系;可以用于描述运行时候的当前的对象快照

     

    图例:贪吃蛇游戏对象图

    为了让读者看的更形象,采用图例的方式介绍对象图的用法,下面是贪吃蛇游戏的对象图:


    对象图说明:

    如下是基于对象图生成的类的说明字典:

     序号  元素  说明
     1.  tail:Node  蛇的尾巴,是一个节点对象
     2.  body:Node[ ]  蛇的身体,是一组节点对象
     3.  head:Node
     蛇的头,是一个节点对象
     4.  food:Food  食物,地图上只有一个食物
     食物对象的属性当前是:
  • pointX=8
  • pointY=8
  • Width=1
  •  5.  snake:Snake  蛇对象,有多个对象构成:头、身体、尾
     蛇对象的属性当前是:
  • direction=up
  • score=10
  • longth=11
  •  6.  map:Map  地图对象,上面有一个食物对象和一个蛇对象
     地图对象的属性当前是:
  • Width=100
  • Color=white
  • Height=100
  •  

    说明:本文的模型采用建模工具EA建模、生成代码、生成数据库。



    UML图解系列:

    1.UML概览
    2.用例图
    3.活动图
    4.类图
    5.对象图
    6.顺序图

     

    后记

    希望您读了此文后有所受益。

    如果您有经验乐于分享,欢迎投稿给我们。

    如果您对我们的培训、咨询和工具感兴趣:

  • 课程:基于UML和EA进行分析设计 7月17、18日
  • 课程:MBSE(基于模型的系统工程)
  • 课程:基于模型的需求管理)方法与实践
  • 课程:基于SysML和EA进行系统设计与建模  
  • 课程:企业架构建模
  • 课程:系统架构建模方法与案例
  • 课程:领域驱动的建模与设计
  • 课程:基于模型的设计
  • 课程:业务建模与业务分析
  • 建模工具:EA
  • 基于模型的需求管理工具:iSpace
  • 咨询方案:MBSE(基于模型的系统工程)
  • 咨询方案:基于UML的模型驱动的开发
  • 欢迎联系我们: 俎涛 Zutao@uml.net.cn

       
    1416 次浏览     评价: 订阅 捐助
     
    相关文章

    UML概览
    UML图解:用例图(Use case diagram )
    UML图解:活动图(activity diagram )
    UML图解:类图(class diagram )
     
    相关文档

    UML统一建模语言参考手册
    网上商城UML图
    UML建模示例:JPetStor
    UML序列图编写规范
     
    相关课程

    UML与面向对象分析设计
    UML + 嵌入式系统分析设计
    业务建模与业务分析
    基于UML和EA进行系统分析设计