软件模型设计基础(7)
作者不祥 来源不祥 http://www.csai.cn 2005年1月2日
重要声明:
对此系列文章,error.cao仅授权www.51CMM.COM.com独家刊登,任何个人或团体不得转载作商业用途。
1. 4注释事物
1.4. 1注解(note)
附加定义性告诉被注解对象的性质、特征、用途等。
如果这样理解注解似乎是可以的,但描述性字符太少,免不了心里不塌实,但如何理解注解呢?就是说明性的文字。
说明什么,什么都可以被说明,只要是这个世界上存在的事物就可以被说明。
但在UML的定义中,这些描述性的文字常常被隐藏起来,并不直接地表示成为注解(事物),作者本人也是如此认为,注解最好的表述方式是隐性。作为被描述的事物本身由于没有直观的表述注解,其脉络是清晰的。
其实这个东西不用来解释,我记得张五常先生的《经济解释》中首先提及的套套逻辑即是如此,因为我们采用的注解的方式来注?quot;注解"这个词。
1.5关系事物
关系是UML中最难表示的一"件"东西(我自己认为,但不知道专家们如何看),难在那里,它就是从系统分析到系统构架的关键。
关于关系我会在下一章详细地说明,其实软件开发仔细想就是我们对现实事物的描述,而这个描述就是关系,其现实事物就是对象(Object)。
以下说明UML中几个典型的关系。
1.5. 1依赖(dependency)
一个元素(被依赖事物的提供者)的变化将影响到另一个元素(依赖事物的接收者),或向其(接收者)提供信息。
关于依赖的语义,我举个简单的例子,一个小孩(依赖事物)是没有获取食物的能力的行为,他的生存就是依赖于他的父母(被依赖事物)对他的抚养(依赖方式)。故依赖被这样定义:一个事物为了达到某个目的,而采用一种依赖方式依赖于被依赖事物。
依赖的形式可能是多样的,这样我们就用依赖关系来表述它,针对不同的依赖的形式,依赖关系有不同的变体
(varieties):
<1>抽象(abstraction):从一个对象中提取一些特性,并用类方法表示。
<2>绑定(binding):为模板参数指定值,以定义一个新的模板元素。
<3>组合(combination):对不同类或包进行性质相似融合。
<4>许可(permission):允许另一个对象对本对象的访问。
<5>使用(usage):声明使用一个模型元素需要用到已存在的另一个模型元素,这样才能正确实现使用者的功能(包括调用、实例化、参数、发送)。
<6>跟踪(trace):声明不同模型中元素的之间的存在一些连接。
<7>访问或连接(access):允许一个包访问另一个包的内容。
<8>调用(call):声明一个类调用其他类的操作的方法。
<9>导出(derive):声明一个实例可从另一个实例导出。
<10>友员(friend):允许一个元素访问另一个元素,不管被访问的元素的具有可见性。
<11>引入(import):允许一个包访问另一个包的内容并被访问组成部分增加别名。
<12>实例(instantitate):关于一个类的方法创建了另一个类的实例声明。
<13>参数(parameter):一个操作和它参数之间的关系。
<14>实现(realize):说明和其实之间的关系。
<15>精化(refine):声明具有两个不同语义层次上的元素之间的映射。
<16>发送(send):信号发送者和信号接收者之间的关系。
UML本身没有提供如此之多的定义,作者根据自身对UML的认识,添加一些,这些东西会在下一章中详细描述。
1.5.2关联(association)
关联是两个或多个特定类之间的关系,它描述了这些类元的实例的联系。参与其中的类元在关联内的位置有序。在一个关联中同一个类可以出现在多个位置上,关联的每一个实例链是引用对象的有序表,关联的外延即这种链的一个集合。在链集合中给定对象可以出现多次,或者在关联的定义允许的情况下可以在同一链中(不同的位置)出现多次。关联将一个组织在一起。如果没有关联,那只是一个无连接类集合。
关联可以有一个名称,但是它的大部分描述建立在关联端点中,每个端点描述了关联中类对象的参与。关联端点只是关联描述的一部分,不是可区分的语义或可用符号表示的概念。
关联名称在包含包的所有关联和类中它必须是唯一的。若名称不唯一,关联的端点并不明确。关联的端点定义在关联位置中给定位置的一个类(角色的参与)。同一个类可以出现在出现在多个位置,但位置是不可以交换的,这个位置的关系就是关联?quot;关系"。当然位置的端点也可以是其他情况下的类元。
如果想了解更多相关内容请访问:
http://51cmm.csai.cn/OO/No039.htm
posted on 2006-03-14 15:57
it110 阅读(154)
评论(0) 编辑 收藏 引用 所属分类:
面向对象