几何和代数特性

 

对于置换几何来说,集合S是一个有限的集合,而且其描述为点集形成的平面,每一个置换点和点集中的小圆点一一对应,如图2-1所示。

 

连载19:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_关系 

2-1

 

其在点集中的图形则就是将不同的置换点进行连接,例如图2-1所示,我们任意两点AB之间的连接我们称为关系,此关系就是在此几何中置换点之间的关系信息,例如在变换群G1(值-地址置换、地址-值置换、赋值置换)形成的值和地址转换关系,或者G2(抽象置换、继承置换、类自反置换)抽象继承关系,或者G3(泛化置换、特化置换、模板自反置换)泛化和特化关系,以及其不同变换群对应的关系。于是我们使用数学中的准确定义来表示:

笛卡儿积D1x D2x…x Dn的子集叫做在域 D1,D2,…, Dn上的n元关系(Relation)。用R(D1,D2,…, Dn)表示,R是关系名。关系中的每个元素是关系中的元组,通常用t表示。

定义:设X是一个集合,R是设计两个元素的一个规则,如果对于X中的任两个元素a,b均可确定它们是适合R,记做(aRb),或不适合R,就称R是集X的一个二元关系。

如果把aRb用序偶(a,b)表示,那么集X中的所有适合关系R的元素组组成的集合是X*X的一个子集。因此,我们也可把X*X的一个子集R定义为集X中的一个二元关系。更一般,我们把X*Y的一个子集定义为集X于Y间的一个二元关系。

下面讨论二元关系的一些基本性质:

1、对任意的a∈X,均有aRa,则称R是自反的(或称反身的);

2、对任意的a,b∈X,若有aRb,就有bRa,则称R是对称的;

3、对任意的a,b∈X,由aRb和bRa,可推出a=b,则称R是反对称的;

4、对任意的a,b,c∈X,若有aRb和bRc,就有aRc,则称R是传递的。

关系R是自反的,对称的,反对称的和传递的,也常说成R具有自反性,对称性,反对称性和传递性。

这里需要注意,我们所涉及的可置换点并非是一个数域上的点集,其实可置换点是不同置换映射(函数集)形成的定义域(用泛函数学表示的观点:泛函就是定义域是一个函数集,而值域是实数集或者实数集的一个子集,推广开来, 泛函就是从任意的向量空间到标量的映射。也就是说,它是从函数空间到数域的映射。),所以这里需要关注到选择哪种置换而形成的置换映射(即选择什么样的函数)。

软件设计中的结构对象其实均是按照不同的关系构建而成,所以关系是结构对象最为基本的相互关系,由于呈现不同的关系而形成了不同的结构形态。同时需要理解这些结构对象所依赖于在统一的置换点之上的比较才具有意义,不同层面抽象的置换点上的结构只是形态的不同,而其所表达的物理意义则不一致。

但是,由于在不同的变换群中都具有各自的几何,如果我们需要全部表示出来,那么我们就需要使用不同层次来表示这样的多个不同层次的几何,如图2-2所示。

连载19:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_群_02连载19:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_关系_03连载19:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_变换_04连载19:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_群_05连载19:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_群_06连载19:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_变换_07连载19:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_关系_08连载19:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_关系_09连载19:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_群_10 

2-2

 

图中在不同平面上代表作不同的几何,其关系用实线来表示,图中的虚线可与在不同几何中的对应关系,例如UML中的继承图示所对应的关系。

如果我们将这些几何描述综合在一起,那么我们就可以使用多维(大于2个维度)的空间图形来表示,这都根据具体分析和讨论的方便和需要来进行划分。但是这需要注意,其这些置换点不能具有包含关系,例如继承关系所涉及的类的置换体就和值置换就有包含关系,那么这种关系所涉及的是新的几何处理,在下面如果没有单独说明,均不涉及这样的情形。

另外针对多维下的空间描述的图形来说,如果我们只是关注其点与点之间的关系,那么我们可以将一个n维空间的关系转换为一个平面上图的关系(虽然这里没有进行详细的证明,但是其一定是成立的)。例如图2-2的空间关系可以转换为平面的关系图,如图2-3所示。通过这样的方式,我们可以将不同维度的置换进行统一,其在第一章中所谈到的置换的统一化具有确切的理论依据,因此我们可以在针对图中的权重来表达这些置换中的关系程度,也即能够通过量来确定这些关系。

 连载19:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_群_11

2-3

 

在一个点集形成的关系连接以后,其图形就是我们所认识的的常用数据结构:例如线性表、树、图等(如图2-4所示):

连载19:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_几何_12连载19:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_几何_13连载19:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_几何_12连载19:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_几何_15连载19:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_关系_16连载19:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_几何_12连载19:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_关系_18 

2-4

 

而这种关系组成的图形就是线性代数中的偏序结构,所以我们也可以通过将这些有限偏序集合结构转换为哈斯图。

偏序关系:

R是集合A上的一个二元关系,若R满足:

自反性:对任意x∈A,有xRx;

反对称性(即反对称关系):对任意x,y∈A,若xRy,且yRx,则x=y;

传递性:对任意x, y,z∈A,若xRy,且yRz,则xRz。

则称R为A上的偏序关系,通常记作≤。注意这里的≤不必是指一般意义上的“小于或等于”。

哈斯图:

在数学分支序理论中,是用来表示有限偏序集的一种数学图表,它是一种图形形式的对偏序集的传递简约。具体的说,对于偏序集合(S, ≤),把S的每个元素表示为平面上的顶点,并绘制从x到y向上的线段或弧线,只要y 覆盖x(就是说,只要x < y并且没有z使得x < z < y)。这些弧线可以相互交叉但不能触及任何非其端点的顶点。带有标注的顶点的这种图唯一确定这个集合的偏序。

目前我们所涉及到的关系在面向对象的领域中有继承、抽象、包含(include)、扩展(extend)等关系,其中继承和抽象关系是成对出现的,所以可以看着一对偶的关系,而包含和扩展的关系则是单向的关系,需要关注其箭头表示的方式。如图2-5简单的描述,其中左图中A include B A include BA include B 而右图中A extend BA extend CA extend D

 连载19:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_关系_19

连载19:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_变换_20连载19:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_几何_21连载19:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_代数_22连载19:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_关系_23连载19:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_变换_20连载19:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_代数_25连载19:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_关系_23连载19:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_关系_27连载19:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_关系_27连载19:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_关系_27连载19:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_关系_27连载19:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_关系_27连载19:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_关系_27连载19:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_关系_27连载19:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_关系_27连载19:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_变换_35连载19:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_代数_36连载19:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_几何_37连载19:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_变换_38连载19:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_几何_39 

2-5

 

这种关系我们在UML的用例图中也可以看到,虽然我目前不能讲所有关系列举出来,但是,通过这些关系的进一步分类,可以让不同的置换点之间可以使用关系来进行衡量,而在数学的形式化中,虽然不需要关注其实际内容,但是,我们可以使用这样的关系来检测我们进行的可置换点是否准确,这对于我们在软件设计中进行合法性验证是非常重要的。同时我们也可以将用例图中的关系进行进一步扩展,让之不仅仅适用于用例之间的关系,而扩展到软件设计和置换相关的关系表达中。同时,我们也可以看出,用例图的抽象过程和置换也是有各种相同的抽象过程,其用例图是否也可作为置换的某阶段的体现也值得我们去研究一下,这里虽然无法给出其正确的论断,但是的确存在可研究的意义。