UML之对象图和包图

2024-08-26 06:08
文章标签 对象 uml 包图

本文主要是介绍UML之对象图和包图,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

         UML的九种图基本都已经介绍完了,那么我们回过头再来研究一下对象图和包图。

         一、对象图

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

        对象的图标与对象类一样是用实线矩形框表示的,矩形框中含有若干分隔框,分别表示对象的名字、属性以及其他成分等。对象名分隔框中包含一个对象的名字,置于框的中央。对象名的格式为:对象名:类列表[状态列表]。

        对象图(Object Diagram)表示一组对象和它们之间的联系。对象图是一个系统的详细状态在某一时刻的快照。对象图实质上是对象类图的实例,或者是交互图的静态部分的实例,对象图有时也称为实例图。对象图的表示方法与类图没有什么不同,对象图同样是由节点和弧组成。

        二、包图

       了解包图之前应先学习包的概念。包(Package)是一种对模型元素进行成组组织的通用机制。包用于定义一个名字空间(Namespace)或容器(Container),它本身是UML的一种模型元素。运用包可以把语义上相近的可能一起变更的模型元素组织在同一个包里,将包中的元素作为一个整体对待,并且控制它们的可视性和存取。

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

       1)依赖


       包的依赖联系同样是用一条虚箭线表示,虚箭线从依赖包(源)指向独立包(目标)。输入依赖(Import Dependency)是包与包之间的一种存取依赖关系。输入是指允许一个包中的元素存取另一个包中的元素。输入依赖是单向的,它的表示方法是在虚箭线上标有构造型《Import》,箭头从输入方的包指向输出方的包

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

       2)泛化

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

       包图由包和包之间的联系构成,是维护和控制系统总体结构的重要建模工具。包在很多方面与对象类相似,但是在建立系统模型时特别要注意区别包和类。对象类是问题领域或解决方案中的事物的抽象,包是把这些事物组织成模型的一种机制。包可以没有标识,因为它没有实例i,在运行系统中不可见;类必须有标识,它有实例,类的实例(对象)是运行系统的组成元素。

      三、实战演练

      下面分别是我关于机房收费系统的对象图和包图。



         四、总结

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

        

      

       

      

这篇关于UML之对象图和包图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1107755

相关文章

Java第二阶段---09类和对象---第三节 构造方法

第三节 构造方法 1.概念 构造方法是一种特殊的方法,主要用于创建对象以及完成对象的属性初始化操作。构造方法不能被对象调用。 2.语法 //[]中内容可有可无 访问修饰符 类名([参数列表]){ } 3.示例 public class Car {     //车特征(属性)     public String name;//车名   可以直接拿来用 说明它有初始值     pu

HTML5自定义属性对象Dataset

原文转自HTML5自定义属性对象Dataset简介 一、html5 自定义属性介绍 之前翻译的“你必须知道的28个HTML5特征、窍门和技术”一文中对于HTML5中自定义合法属性data-已经做过些介绍,就是在HTML5中我们可以使用data-前缀设置我们需要的自定义属性,来进行一些数据的存放,例如我们要在一个文字按钮上存放相对应的id: <a href="javascript:" d

PHP7扩展开发之对象方式使用lib库

前言 上一篇文章,我们使用的是函数方式调用lib库。这篇文章我们将使用对象的方式调用lib库。调用代码如下: <?php $hello = new hello(); $result = $hello->get(); var_dump($result); ?> 我们将在扩展中实现hello类。hello类中将依赖lib库。 代码 基础代码 这个扩展,我们将在say扩展上增加相关代码。sa

UML- 统一建模语言(Unified Modeling Language)创建项目的序列图及类图

陈科肇 ============= 1.主要模型 在UML系统开发中有三个主要的模型: 功能模型:从用户的角度展示系统的功能,包括用例图。 对象模型:采用对象、属性、操作、关联等概念展示系统的结构和基础,包括类图、对象图、包图。 动态模型:展现系统的内部行为。 包括序列图、活动图、状态图。 因为要创建个人空间项目并不是一个很大的项目,我这里只须关注两种图的创建就可以了,而在开始创建UML图

hibernate修改数据库已有的对象【简化操作】

陈科肇 直接上代码: /*** 更新新的数据并并未修改旧的数据* @param oldEntity 数据库存在的实体* @param newEntity 更改后的实体* @throws IllegalAccessException * @throws IllegalArgumentException */public void updateNew(T oldEntity,T newEntity

类和对象的定义和调用演示(C++)

我习惯把类的定义放在头文件中 Student.h #define _CRT_SECURE_NO_WARNINGS#include <string>using namespace std;class student{public:char m_name[25];int m_age;int m_score;char* get_name(){return m_name;}int set_name

react笔记 8-19 事件对象、获取dom元素、双向绑定

1、事件对象event 通过事件的event对象获取它的dom元素 run=(event)=>{event.target.style="background:yellowgreen" //event的父级为他本身event.target.getAttribute("aid") //这样便获取到了它的自定义属性aid}render() {return (<div><h2>{

Python---文件IO流及对象序列化

文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 前言 前文模块中提到加密模块,本文将终点介绍加密模块和文件流。 一、文件流和IO流概述         在Python中,IO流是用于输入和输出数据的通道。它可以用于读取输入数据或将数据写入输出目标。IO流可以是标准输入/输出流(stdin和stdout),也可以是文件流,网络流等。

第三章 UML类图简介(设计模式笔记)

第三章 UML类图简介 3.1类 3.2接口 名字层必须有<> 3.3 泛化(继承)关系 箭头终点端指向父类(空心三角形) 3.4 关联(组合1)关系 B类是A类的成员变量 ,称A关联B。 箭头终点端指向B 3.5 依赖(组合2)关系 B类是A类的某个方法的参数 ,称A依赖B。 箭头终点端指向B(虚线) 3.6 实现关系 箭头终点端指向接口(虚线,空心

小琳Python课堂:深入理解Python对象:状态、创建与管理

大家好,这里是小琳Python课堂。今天我们继续深入理解Python对象的状态、创建与管理。让我们一起来探索这些概念,以帮助你更好地掌握Python编程。 一、Python对象的状态 1. 实例属性与类属性 Python对象的属性分为实例属性和类属性。实例属性是对象独有的,而类属性则被类的所有实例共享。 实例属性:比如汽车的颜色、品牌和价格,每个汽车对象都有其独特的实例属性。类属性:比如