UML 对象模型图阅读指南 (转)

简介:
以下内容来自 www.uml.org.cn
 
2008-01-07 作者:Michael Zeiler 来源:gissky
 

ArcInfo 的使用方式由两种:其一便是直接使用ArcGIS 桌面应用程序,ArcMap 和ArcCatalog,进行GIS 操作;其二,可以使用其中提供的框架构建开发自己的GIS 应用程序。

数据建模人员需要站在以上比这两种方式更高的位置来完成自己的工作。用户大多数情况下都会直接使用预先提供的ArcGIS 桌面应用程序创建Geodatabase。当然有时候也会需要你进行一些代码定制,特别是在专业化程度很高的复杂数据模型的模拟上,代码的工作更是不可或缺。

本书的目标之一便是介绍数据建模的概念,这样的数据建模不仅在ArcInfo 的应用程序中适用,还在ArcInfo 的软件组件中使用,这个软件组建便是我们熟悉的所谓的ArcObjects。

本书中,从使用ArcInfo 软件时遇到的概念说起,然后再使用对象模型图来表现ArcInfo中的这些概念,以利于读者理解。
比如,首先从一个ArcCatalog 用户的角度来讨论geodatabase、要素数据集和要素类的结构。接着从程序员的角度用模型图的相关部分介绍geodatabase 数据的访问对象。

这两种视图模式有相似之处,但是也有很大差别。应用程序的用户界面有时隐藏了对于程序员来说非常重要的一些软件组件细节。本书的目标是让你能够站到比用户和开发者这两个角度更高的位置处理数据建模的工作。

1.8.1 解读类模型图

下面图示中,便是贯穿本书的对象模型图的钥匙。

这些符号是基于UML 画图工具创建的,UML 符号是面向对象分析和设计的工业图样标准。

对象模型图中提供的信息非常多,是对象浏览器中信息的重要补充。Visual Basic,或者其它的开发环境,都会列出所有的类和成员,但不会指明这些类之间的关系。所以,对象模型图是非常有利于读者对ArcInfo 组件的理解的!

本书使用UML 来描述ArcInfo 组件,即ArcObjects,并描述你能够创建的数据模型。

以下详细说明。

1.8.2 类和对象

在UML 图中有三种类型的类:抽象类(abstract class)、可创建类(createable class)与可实例化类(instantiable class)。

抽象类不能用以创建新对象,但可以用来指定子类。举个例子,“line”(线)是“primaryline”(干线)和“secondary line”(副干线)的抽象类。

可创建类指的是那些你能够直接使用开发环境中的对象定义语法来创建对象。比如在Visual Basic 中是这样书写:Dim As New <object> 或者CreateObject <object>。

可实例化类不能够直接创建新对象,但是这种类的对象能够作为其它对象的属性被创建或是从其它类的方法中创建。

在Visual Basic 对象浏览器中,你能够查看ArcInfo 所有的可创建类和可实例化类,但看不到抽象类。

1.8.3 关联

在抽象类、可创建类和可实例化类之间,有几种存在的关联(或称关系)。

联系(association)便描述了类之间的关联。在两端的类中可以定义多重性( Multiplicity)关联。

在这张图上,一个业主能有拥有一块或多块宗地;同样地,一块宗地可以被一个或多个业主所共有。

多重性关联就是限制对象类与其它对象关联的数目关系。以下是用于多重性关联的符号:

1 —— 一个并且只有一个,这种多样性是可选的;如果不标明,则默认为“1”
0..1 —— 零个或一个
M..N —— 从M 到N(正整数)
*或者0… * —— 从零到任意正整数
1… * —— 从一到任意正整数

类继承(type inheritance)定义了专门的类,它们拥有超类的属性和方法,并且同时也有自身的属性和方法。

上图说明primary line 和secondary line 是line 的一种类型。

实例化(Instantiation)指定一个类的对象有这样的方法,它能够创建另外一个类的对象。

pole 对象有一个方法能够创建transformer 对象。

聚合(Aggregation)是一种不对称的关联方式,在这种方式下一个类的对象被认为是一个“整体”,而另一个类的对象被认为是“部件”。

一个transformer bank 正好有3 个transformer 。在这个图中transformer 能和一个transformer bank 相关联,但当transformer bank 移除以后,transformer 依然能够存在。

组成(Composition)是一种更为强壮的聚合方式,此种方式下,“整体”对象控制着“部分”对象的生存时间。

一个pole 包含一个或多个crossarm。在这个图中当pole 被移除后,crossarm 就不能再使用了。因为pole 控制着crossarm 的生存时间。

1.8.4 用图形符号描述模型

起初你也许不大习惯使用这种图形符号,可以先试着读解上面的例子,并结合自己的实际情况考虑。尝试使用这样的工作方法,而后你将会发现这样的图的读解释很容易的,而且你也觉得其实花点力气去理解这些符号真的帮助很大——它用简单而富有表现力的方法将对象模型很好的展示给我们,这样理解ArcInfo 组件的概念便轻松简单多了。

如果你需要定制要素,扩展geodatabase 数据访问对象,那么这些UML 符号也是很重要并可以使用的。




本文转自Sam Lin博客园博客,原文链接:http://www.cnblogs.com/samlin/archive/2008/01/16/1041730.html,如需转载请自行联系原作者

目录
相关文章
|
7月前
|
存储 测试技术 开发工具
软考中的UML图、数据流图等二十余种示例
软考中的UML图、数据流图等二十余种示例
613 0
|
6月前
|
设计模式 uml
设计模式学习心得之前置知识 UML图看法与六大原则(下)
设计模式学习心得之前置知识 UML图看法与六大原则(下)
44 2
|
6月前
|
设计模式 数据可视化 程序员
设计模式学习心得之前置知识 UML图看法与六大原则(上)
设计模式学习心得之前置知识 UML图看法与六大原则(上)
46 0
|
6月前
|
数据可视化 测试技术 uml
如果更好的绘制UML图
如果更好的绘制UML图
45 0
|
7月前
|
uml
UML之对象图
UML之对象图
50 1
|
7月前
|
Java uml
UML之组件图(构件图)
UML之组件图(构件图)
143 0
|
7月前
|
程序员 uml
UML图 | 时序图(顺序、序列图)绘制
UML图 | 时序图(顺序、序列图)绘制
593 0
|
7月前
UML-类图和对象图
UML-类图和对象图
105 0
|
7月前
|
测试技术 uml
UML—浅谈常用九种图
UML—浅谈常用九种图
176 0
|
设计模式 数据可视化 程序员
设计模式概述、UML图、软件设计原则
设计模式概述 软件设计模式的产生背景 "设计模式"最初并不是出现在软件设计中,而是被用于建筑领域的设计中。 1977年美国著名建筑大师、加利福尼亚大学伯克利分校环境结构中心主任克里斯托夫·亚历山大(Christopher Alexander)在他的著作《建筑模式语言:城镇、建筑、构造》中描述了一些常见的建筑设计问题,并提出了 253 种关于对城镇、邻里、住宅、花园和房间等进行设计的基本模式。 1990年软件工程界开始研讨设计模式的话题,后来召开了多次关于设计模式的研讨会。直到1995 年,艾瑞克·伽马(ErichGamma)、理査德·海尔姆(Richard Helm)、拉尔夫·约翰森(Ra
75 0