UML九已经介绍过的基本图,然后,我们再来看看对象图和包图。

 一、对象图

谈到对象。我们不得不说一下对象。对象(Object)是对象类的实例(Instance),用于模型化特定的实体。对象是唯一的。能够标识的。比方我和你就是两个对象,我们有自己的名字。

对象的图标与对象类一样是用实线矩形框表示的,矩形框中含有若干分隔框,分别表示对象的名字、属性以及其它成分等。对象名分隔框中包括一个对象的名字,置于框的中央。

对象名的格式为:对象名:类列表[状态列表]。

对象图(Object Diagram)表示一组对象和它们之间的联系。

对象图是一个系统的具体状态在某一时刻的快照。对象图实质上是对象类图的实例,或者是交互图的静态部分的实例,对象图有时也称为实例图。对象图的表示方法与类图没有什么不同,对象图相同是由节点和弧组成。

二、包图

了解包图之前应先学习包的概念。

包(Package)是一种对模型元素进行成组组织的通用机制。

包用于定义一个名字空间(Namespace)或容器(Container)。它本身是UML的一种模型元素。

运用包能够把语义上相近的可能一起变更的模型元素组织在同一个包里。将包中的元素作为一个总体对待,而且控制它们的可视性和存取。

包的图标是一个大矩形(内容框)。左上角带一个小矩形(名字框)。包与包之间的联系主要有两种:依赖(尤其是输入依赖)和泛化。

 1)依赖

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXdsenh4/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

包的依赖联系相同是用一条虚箭线表示,虚箭线从依赖包(源)指向独立包(目标)。

输入依赖(Import Dependency)是包与包之间的一种存取依赖关系。输入是指同意一个包中的元素存取还有一个包中的元素。输入依赖是单向的。它的表示方法是在虚箭线上标有构造型《Import》,箭头从输入方的包指向输出方的包

包之间的合并联系也是一种依赖关系,它用一条带有构造型《merge》的虚箭线表示,从接受合并包(Receiving Package)指向被合并包(Merged Package)。

 2)泛化

包之间的泛化联系与对象类之间的泛化联系十分类似,对象类之间泛化的概念和表示法在此大多能够使用,泛化联系表达事物的一般与特殊的关系。

包图由包和包之间的联系构成,是维护和控制系统整体结构的重要建模工具。

包在非常多方面与对象类相似,可是在建立系统模型时特别要注意差别包和类。对象类是问题领域或解决方式中的事物的抽象。包是把这些事物组织成模型的一种机制。包能够没有标识,由于它没有实例i。在执行系统中不可见;类必须有标识,它有实例,类的实例(对象)是执行系统的组成元素。

三、实战演练

以下各自是我关于机房收费系统的对象图和包图。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXdsenh4/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

四、总结

画对像图和包图的时候要注意。对象图是类图的实例化,把类图详细化就能够了。包图和类图类似。但它没有实例。所以能够没有实例。

版权声明:本文博主原创文章,博客,未经同意不得转载。

UML对象图和包图的更多相关文章

  1. UML对象图、包图

    对象图(Object Diagram)显示了一组对象和他们之间的关系.使用对象图阿狸说明数据结构,类图中的类或组件等实例的快照.对象图和类图一样,反应了系统的静态过程,但它是以实际的或原型化为基础来表 ...

  2. UML精粹4 - 对象图,包图,部署图,用例

    对象图object diagram 对象图是某个时间点上的对象在系统中的快照,也经常被称为实例图.一般在展示组合对象结构时比较有用.例如 组合结构的类图 一个时刻的对象图 包图package diag ...

  3. uml系列(五)——对象图和包图

    对象图,对象图是系统在某一时刻的对像.关系和属性值的快照.相当于看电视的时候的暂停.便于说明设计者的意图,模拟系统的运行状态,分析说明源代码. 再说对象图之前,我们首先需要了解对象是什么.我们一直都再 ...

  4. UML静态视图——类图、对象图、包图

    绘画类的最重要的图是抽象类.让我们回顾一下类的基本内容. 一.分类 1.类的概念: 面向对象编程的类是一个基本概念.类是具有相同特性的.办法.集合语义和一组对象的关系. 2.类分类: 实体类:保存要放 ...

  5. UML 结构图之包图 总结

    [注] 本文不是包图的基础教程, 只是包图的图形总结. 学习UML图形 推荐阅读<UML参考手册>第2版. http://www.umlchina.com/ 推荐微软的开发软件设计模型 h ...

  6. UML九种图 之 包图和对象图

    前言     对象图和包图依然是对系统的静态的描写叙述.UML九种图加上包图,事实上是十幅图. 包图     1.构成           2.包中的元素      类.接口.用例.构件.其他包等.( ...

  7. UML基础 UML对象图解析

    本节向大家介绍一下UML对象图方面的内容,主要包括UML对象图概念介绍,表示法和用途等,希望通过本节的介绍大家对UML对象图有全面的认识,下面让我们一起来学习吧. UML对象图简介 对象图(Objec ...

  8. 【UML 建模】UML建模语言入门 -- 静态图详解 类图 对象图 包图 静态图建模实战

    发现个好东西思维导图, 最近开始用MindManager整理博客 . 作者 :万境绝尘  转载请注明出处 : http://blog.csdn.net/shulianghan/article/deta ...

  9. UML建模语言入门 -- 静态图详解 类图 对象图 包图 静态图建模实战

    发现个好东西思维导图, 最近开始用MindManager整理博客 . 作者 :万境绝尘  转载请注明出处 : http://blog.csdn.net/shulianghan/article/deta ...

随机推荐

  1. UVa 12459 - Bees&#39; ancestors

    称号:区区女性有父亲和母亲,区区无人机只有一个母亲,我问一个单纯的无人机第一n随着祖先的数量. 分析:递归.Fib序列. 状态定义:建立f(k)和m(k)分别用于第一k雌蜂和雄蜂的数量: 递推关系:f ...

  2. 写一个程序,乞讨1+2*2+3*3+n*n值 Java

    public static void main(String[] args) {         // 1*1+2*2+3*3+n*n         int n = 40;         // 1 ...

  3. 自动同步Android源代码的脚本(repo sync)

    #!/bin/bash echo "================start repo sync====================" repo sync -j5 ]; do ...

  4. python获取的信息列表微信公共平台和用户头像

    转载注明原文地址:http://blog.csdn.net/btyh17mxy/article/details/25207889 只写模拟登陆的方式获取微信从信息和头像库列表公共平台, - 相关后,功 ...

  5. lua.c:80:31: fatal error: readline/readline.h: No such file or directory

    make linuxcd src && make linuxmake[1]: Entering directory `/root/lua/lua-5.3.2/src'make all ...

  6. Atitit.软件GUIbutton和仪表板(01)--警报系统--

    Atitit.软件GUIbutton和仪表板(01)--警报系统-- 1. 温度报警防区(鲁大师,360taskman) 1 2. os-区-----cpu_mem_io资源占用监測 1 3. Vm区 ...

  7. C#多线程编程实例 螺纹与窗口交互

    C#多线程编程实例 螺纹与窗口交互 代码: public partial class Form1 : Form { //声明线程数组 Thread[] workThreads = new Thread ...

  8. 安装framework 3.5出现0x800F0922的解决方法

    关闭Windows 防火墙,启动Windows model install服务 重启! 再安装 就ok了

  9. C# 经典排序算法大全

    C# 经典排序算法大全 选择排序 using System; using System.Collections.Generic; using System.Linq; using System.Tex ...

  10. ramoops具体失败原因来解释驱动寄存器

    正在使用linux的ramoops驱动器模块,当编译完成加载.查找驱动程序加载失败.显然,直接用内核代码,为什么会出现这种情况? 第一眼ramoops初始化代码: 180 static int __i ...