基于复杂网络的软件网络研究

1.1 复杂网络的基本参数及其含义

复杂网络研究的一个重要方面就是刻画真实系统的网络模型,通过创建网络模型来帮助我们理解网络的这些特性是如何产生和出现的。研究者在很多不同领域的系统都发现了“小世界”(网络拥有较小的平均最短路径长度和较大的平均聚集系数)和“无尺度”(节点的度分布遵循幂律分布)的复杂网络特性。这些复杂网络研究的共同特点就是在网络形成的过程中,并没有强调任何全局规则的作用,而网络的整体行为特性的涌现往往是在一个局部规则作用线产生的结果。

与传统图论研究的不同之处在于:复杂网络从统计角度考察网络中节点的分布及节点间连接的 性质,根据不同的网络组织结构来研究系统功能差异,为系统(结构。性能等)的优化提供理论基础。下面简单介绍下主要参数的基本概念、计算方法以及在软件工程学中的含义(implications for software engineering).

1.平均最短路径长度(average shortest path length)
网络的平均最短路径长度d是所有节点对之间距离的平均值,复杂网络研究一个重要的发现是绝大多数大规模真实网络的平均最短路径长度比想象的要小得多,称之为“小世界”效应。对面向对象软件系统来说,该参数对系统消息传递的设计与优化对象间通信代价的评估与控制系统响应能力的改进有着重要意义
2. 聚集系数(clustering coefficient)
聚集系数也称簇系数,描述网络中节点的聚集情况,即网络有多“紧密”。在社会网络中描述你朋友的朋友可能是你的朋友,假设节点v通过k条边与其他k个节点相连接,E为这k个节点间实际存在的边的数目。那么它与k(k-1)/2之比就是节点v的聚集系数C.在软件系统中,聚集系数反映了不同粒度的软件实体中组成元素的内聚程度以及系统组织分层(层次化)的趋势
3.度分布(degree distribution)
网络中节点的度分布用分布函数P(k)来表示,其含义是一个任意选择的节点恰好有k条边的概率,也等于网络中度为k的节点的个数占网络节点总数的比值。复杂网络的另一个重大发现是绝大多数大规模真实网络的度分布都服从幂律分布(“无尺度”现象),即P(k)-k-r(2<r<3),而不是泊松分布或正态分布。对于面向对象软件系统,度分布刻画了网络中每个节点的连通性**(connectivity),并从系统角度反映了节点的重用度和复杂度** 。
这样看来,度分布可以用来表征系统结构的不均匀性,定性分析结构信息的不确定性,从而,从而估测其复杂性;还可以用来 以及MOOD度量方法中的CF指标
4.介数(betweenness centrality)
介数分为边介数和节点介数两种,节点介数指的网络中所有最短路径中经过该节点的路径数目占最短路径总数的比例;根据节点和边的介数,能够分析软件系统中任意一个类和类之间的某种关联被删除或失效时对整个系统的影响,为系统的重构和优化提供指导,而这正是传统软件度量方法所无法实现的。另一方面,根据社区中元素的聚集系数和社区间边的介数在较高层次分析软件设计的质量或复杂度(依据“高内聚,低耦合”原则),这里社区是指的粒度较大的软件实体,如软构件。包(package)等。
5.度和聚集系数之间的相关性(correlation)
网络中度和聚集系数之间的相关性被用来描述不同网络结构之间的差异,它包含两个方面的内容:连接度不同的节点之间的相关性节点的度与其聚集系数之间的相关性。前者指的是网络中与连接度高的节点相连接的节点的度偏向于高还是低;后者指的是连接度高的节点的聚集系数偏向于高还是低
在软件系统中,度-度的相关性有助于分析不同类型的软件实体间的协作关系(由于功能的层次性,复杂的类或模块都倾向于由相对简单的类或模块组成,而不是直接调用其他复杂的类或模块,这体现了软件的构造性原则,也是软件中度-度负相关的原因)。另一方面,度和聚集系数间的相关性对于分析系统的层次性和模块化程度(度较小的类或模块倾向于聚集在一起,展现出较高的内聚性)。
复杂网络基本参数在软件网络用处

猜你喜欢

转载自blog.csdn.net/daining424/article/details/93726721