软件模型设计基础-关系事物

原创 2004年07月30日 14:04:00

 

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;关系"。当然位置的端点也可以是其他情况下的类元。

  在UML 的语义中,位置的关系(类元的关联)称为链。链在系统执行过程中可以被创建和销毁,服从每个关联端点可变性的限制(类元本身的对应或所属关系)。

  以下的关联图是两个参数类,简单的关联就是羊毛的加工是由操作者来实现的,一个操作者可以加工很多羊毛,而羊毛在一个步骤仅仅需要一个加工者(不考虑多个步骤)。

mxsj_7.gif

1.5. 3泛化(Generalization)

  泛化是什么?是一个较广泛的元素和一个较特殊元素之间的类元关系。较特殊的元素完整地包含了较广泛元素,并含有更多的信息。较特殊的元素的实例可以用于任何使用较广泛的元素的地方。

  泛化是两个同类的可泛化元素(如类、包或其他元素)之间的关系,其中一个元素被称为父,另一个为子。对类而言,父类称为超类,子类称为子类。父类说明的直接实例带有所有子类的共同特性,子所说明的实例是上述实例的对象。

  在类(这里指的是C++或JAVA中面向对象编程中类)的继承中,泛化的概念被广泛地应用,其实所谓的泛化就是将特殊的事物抽象出来,主要是面对这些事物的特征,将这些特征和与之相关的事物进行比较,将其共同的特征抽取出来,进行归纳,所得到的结果就是我们需要表现出的该事物的泛化特性。

  在类的实例中,最常见的一个例子就是图形的问题,如描述三角形,或描述正方形,或椭圆等,这些都是图形,好了我从三角形、正方形、椭圆等中抽取该部分的共同特征,将其描述,这个就得到一个图形(从三角形泛化出的结果)描述。

mxsj_71.gif

  学习JAVA或C++的兄弟们一看便知,问题的关键就是基类和继承类的关系。但关于参数类的泛化成一般的类(这个关系比较模糊),我们将在下一章的关系中进行更详细的描述。

1.5.4实现(Implementation)

  1.定义某事物是如何构造的、计算的。例如,类是类型的实现,方法是操作的实现。实现和说明之间是实现关系。

  2.用可执行的媒体(如程序设计语言、数据库、数字化硬件)描述系统功能的一个步骤。对实现而言,必须产生下层的决策以使设计适合具体的实现,并与环境相适应(每种语言有各自的限制)。如果设计得好、实现任何决策不会影响系统的全局。这一步由实现层模型捕捉。特别是静态视图和代码。

  实现是一种关系,是一种将模型元素(如类)与另一种模型元素(如接口)连接起来,其中接口只是行为的说明而不是结构或者实现。客户必须至少支持提供者的所有操作(通过继承或者直接声明)。虽然实现关系意味着有像接口这样的说明元素,它也可以用一个具体的实现元素来暗示它的说明(而不是它的实现)必须被支持。例如,这可以用来表示类的一个优化形式和一个简单低效的形式关系。

  泛化和实现关系都可以将一般描述与具体的描述联系起来。泛化将在同一个语义层内的元素连接起来,而且在同一模型内。实现关系将在不同的语义层内元素连接起来,(接口或类)并且通常建立在不同的模型内。

posted on 2004年07月30日 11:30 AM

几款软件界面模型设计工具

出自:http://www.cnblogs.com/XACOOL/p/5665385.html 一:GUI Design Studio 界面模型设计中很实用的一个工具GUI Design Stud...
  • chenya866
  • chenya866
  • 2017年05月04日 10:38
  • 1117

数据库原理选择题总结(第5章)

第五章 1. 在数据库设计中,将ER图转换成关系数据模型的过程属于()(2001年10月全国卷) A. 需求分析阶段 B. 逻辑设计阶段 C. 概念设计阶段 D. 物理设计阶段 2.在数据库设计中,表...
  • jonahzheng
  • jonahzheng
  • 2013年09月27日 23:14
  • 3523

设计模式---可复用面向对象软件的基础 阅读笔记(一)

设计模式---可复用面向对象软件的基础 阅读笔记(一)            扯些淡:为什么会读这本书,有什么样的意义。目的是为了站在更高层次上去看编码,而且在做的也是产品,对于不想只做个简单的、无...
  • u013793732
  • u013793732
  • 2016年09月03日 16:03
  • 446

软件模型设计基础

软件模型设计基础   2008-06-03 作者:Error.cao 来源:51CMM   第一节 UML 一.UML...
  • legend_x
  • legend_x
  • 2013年12月27日 23:51
  • 657

设计模式-可复用面向对象软件的基础 [读书笔记]

1.将软件与设计模式比拟为城市与建筑模式,那么在面向对象的解决方案里,我们将对象和接口看成墙壁和门窗,模式的核心在于提供了相关问题的解决方案。   在软件设计中可能会遇到很多类似的问题,在每次遇到类似...
  • AnnaLoad
  • AnnaLoad
  • 2016年04月17日 10:26
  • 1505

数据库设计和优化

1.      主键&外键 键和外键是把多个表组织为一个有效的关系数据库的粘合剂。主键和外键的设计对物理数据库的性能和可用性都有着决定性的影响。必须将数据库模式从理论上的逻辑设计转换为实际的物理设计...
  • kingmicrosoft
  • kingmicrosoft
  • 2014年07月25日 11:11
  • 983

E-R模型转换为关系模型

E-R模型到关系模型的转换: (1)实体类型的转换   将每个实体类型转换成一个关系模式,实体的属性即为关系的属性,实体标识符即为关系的键。 (2)联系类型的转换 1)实体间的联系是1:1 ...
  • legend050709
  • legend050709
  • 2014年10月02日 18:29
  • 1659

数据库设计之E-R模型转换成关系模型

背景:数据系统生存期 我们把数据库应用系统从开始规划、设计、实现、维护到最后被新的系统取代而停止使用的整个期间,称为数据库系统生存期。这个生存期一般可以划分成七个阶段:规划、需求分析、概念...
  • lxy344x
  • lxy344x
  • 2014年06月27日 21:34
  • 2404

数据库系统基础教程一:关系数据库与关系代数

6年前曾经学过一本国产的数据库教材,但是当时脑子还没有开化,或者对于教材的内容缺少感性认识,因此学习之后没有任何效果。最近因为要做一个带CMS的系统,需要把数据库理论重新学习一遍,因此买了本数据库系统...
  • zzulp
  • zzulp
  • 2013年01月24日 23:40
  • 4482

软件开发的生命周期模型的选择与软件质量的关系

软件开发生命周期是指软件产品从考虑其概念开始到该软件产品交付使用为止的整个时期。一般包括:概念阶段、需求阶段、设计阶段、实现阶段、测试阶段、安装阶段,以及交付阶段。这些阶段可以有重叠,执行时也可以有迭...
  • Alxima
  • Alxima
  • 2015年06月09日 22:36
  • 740
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:软件模型设计基础-关系事物
举报原因:
原因补充:

(最多只允许输入30个字)