软件网络中结构洞与紧密度的研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
收稿日期:2009-09-08
基金项目:国家自然科学基金资助项目(60973022)
作者简介:徐久强(1966-),男,辽宁北镇人,东北大学教授;赵 海(1959-),男,辽宁沈阳人,东北大学教授,博士生导师
第31卷第11期2010年11月东北大学学报(自然科学版)Journal of Northeastern U niversity(Natural Science)Vol 31,No.11Nov. 2010
软件网络中结构洞与紧密度的研究
徐久强,刘 红,赵 海,于 双
(东北大学信息科学与工程学院,辽宁沈阳 110004)
摘 要:针对传统的软件度量方法已不能对大型软件进行有效度量的问题,以学科交叉融合为背景、以量化软件度量为目标,主要研究了复杂网络中的结构洞、紧密度 通过对这两个特征量的计算、统计,与软件网络中的度进行关系拟合,可查看在软件网络中,度与结构洞之间的相关性呈幂函数曲线,度与紧密度的相关性呈梯形分布 因此将其作为参考特征量引入到软件网络中,对软件网络中的节点依赖程度和中心化程度进行量化
关 键 词:软件度量;特征量;度;结构洞;紧密度
中图分类号:T P 301.4 文献标志码:A 文章编号:1005 3026(2010)11 1562 04
Research on Structural Holes and Closeness of Software Network
X U J iu qiang,LI U H ong,Z H AO H ai,Y U Shuang
(School of Infor mation Science &Engineer ing ,N ortheastern U niversity,Shenyang 110004,
China.
Correspondent:L IU Hong ,E mail:neu -liuhong @)
Abstract :To solve the problem that the conventional methods cannot metrize the large scale softw ares effectively,the structural holes and closeness in a complex netw ork w ere studied interdisciplinary to quantify the software metrization.The two eigenvalues were calculated statistically so as to fit the degree of softw are netw ork relationally.It w as found that the relation between the degree and structural holes in a software system presents a pow er function curve w hile the relation betw een the degree and its closeness presents a trapezoidal distribution.T herefore,introducing the structural holes and closeness as reference eigenvalues into a softw are network is available to quantify the dependence and the degree of centralization of the nodes in the softw are netw ork.
Key words:softw are metrization;eigenvalue;degree;structural holes;closeness 随着软件技术的发展和互联网的普及,基于网络的软件系统的规模和复杂度剧增,导致软件开发经常处于失控状态,软件产品的质量无法得到保证 软件度量的实质是根据一定的规则,将数字或符号赋予系统、构件、过程或者模型等软件实体的特定属性,从而揭示其内在意义,为软件开发者和项目管理者提供与软件质量相关的各种重要信息[1-3] 因此,用软件度量量化的方法控制软件开发过程和提高软件产品质量,对软件开发的各个阶段进行评估和控制,帮助开发人员客观地分析、评估软件设计和生产,并预测其发展趋势,对于改善并提高软件质量、提升软件过程能力具
有非常重要的意义
在20世纪60年代,软件度量的基础性工作就已展开
[4]
许多研究者也相继进行了系统的实
证分析和软件度量研究[5-6] 20世纪90年代后期,主流的面向对象软件度量方法在实践中得到了广泛的应用和认可[7-8],但在预测软件质量方面还存在一些局限性,主要是对软件复杂性的认识还不够全面[9]
由于目前广泛应用的软件度量方法的特征量不足,不能对大型软件进行有效地度量 本文根据目前的复杂网络研究成果,结合面向对象软件的内部拓扑结构特点,提出了对软件复杂性进行度
量的两个新特征量
结构洞和紧密度,同时尝
试对传统软件复杂性度量进行统计
1 结构洞
1.1 结构洞的定义
结构洞的概念来自 结构洞:竞争的社会结构!一书[10]
,用于社会网络研究 所谓结构洞,∀即社会网络中某个或某些个体和有些个体发生直接联系,但与其他个体不发生直接联系 无直接联系或关系间断的现象,从网络整体看好像网络结构中出现了洞穴 #简单地说,结构洞是指两个关系人之间的非重复关系
软件网络可表示为一个有向图,软件系统中的数据对象、操作、模块、类、构件、子系统被看成图中的节点,它们之间的相互作用(依赖、继承、使用等)被看成边 本文中将假定软件网络中不存在自环,两个节点之间最多只有一条边
如图1所示,用4个节点A ,B ,C ,D 所形成的A 的软件网络来说明结构洞 左图中A 具有3个结构洞(BC,BD,CD ),因为左图中B,C ,D 3个节点之间没有直接联系,只有节点A 同时与这3个类有联系,相对于其他3个节点,节点A 明显具有竞争优势,处于中心位置,最有可能接近软件网络中的所有节点,另3个节点则必须通过它才能与对方发生联系 而右图实际是一个封闭的网络,故不存在结构洞
图1 结构洞的示例
Fig.1 Examples of s tructural holes
用结构洞的网络约束系数对网络的结构洞进行测量,可以用来衡量节点的重要程度 这个系数描述的是网络中某个节点与其他节点直接或间接联系的紧密程度,系数越高,结构洞越少[10]
p ij =
a ij +a j i
k
(a ik +a ki )
(1)
p ij 是节点i 与j 之间的最短路径长度同i 与其所有邻接节点最短路径长度总和之比 这里a ij 指节点i 到节点j 的最短路径长度
c ij =
p ij +
k,k ∃i,k ∃j
p ik p k j
2
(2)
c i j 是节点i 与节点j 相连受到的约束程度 当j
是i 的惟一邻接节点时,c ij 取最大值1;当j 不通
过其他节点与i 间接相连时,c ij 取最小值p 2ij k 是节点的邻接节点
通过式(1)和式(2)可以计算得到节点i 的网络约束系数:
C i =
j
c ij
(3)
结构洞是用来说明某个节点对其他节点的依赖程度,结构洞少说明依赖性强 而网络约束系数是对结构洞的量化 通过计算结构洞的网络约束系数,以此来了解软件网络中具有结构洞的程度,能得到软件网络中节点的结构洞的分布情况 1.2 结构洞与度的关系
节点的度定义为与该节点连接的其他节点的数目 度是从宏观来描述一个节点与其周边节点连接的复杂度 节点的度值越大就说明这个节点越∀重要# 但是对于链式网络却不能反映出这种重要程度
而结构洞从另一个角度说明这个节点的∀重要#程度,并且添补了度的不足 结构洞是用来描述某个节点对其他节点的依赖程度 节点的结构洞越少,说明这个节点对其他节点的依赖性越强
在软件系统eclipse 中,eclipse 是面向对象的软件,节点数为7543,边数为21126 结构洞与度的分布情况如图2所示,横坐标轴是每个节点的度值,纵坐标是每个节点结构洞的网络约束系数值 这说明任意节点的度越大,系数值越小,结构洞越多,相应的节点对其周围节点的依赖性较弱,极端的情况就是某个节点的度值为0,网络约束系数为1,这时这个节点不存在结构洞 这个节点是孤立节点,在软件网络中不被其他操作所调用
图2 结构洞的网络约束系数与度的分布图Fig.2 D i stributi ons of network constraint factor on
structural holes and degree of nodes
在eclipse 2.0.1中,度值为0的孤立节点为1017个 由于孤立节点不影响整个软件的特性,去掉孤立节点后对网络约束系数与度的关系进行曲线拟合,曲线拟合如图3所示,横坐标轴是每个节点的度值,纵坐标是每个节点的网络约束系数
1563
第11期 徐久强等:软件网络中结构洞与紧密度的研究