开发者社交网络可视化分析MF1432047邱怡琳2基于版本控制系统的开发者社交网(VCS-DSN)基于以下原则:如果有两个开发者都向同一个模块或文件提交了代码,那么他们之间就是有联系的。利用版本控制系统构建网络是因为开发者的所有活动都可以很容易地获取,无需人为干预可自动挖掘,直接反映合作代码等。3整个开发者社交网络可以看成一个带权的无向图。•提交者网络。每个开发者可以看做一个顶点。边的权重是两个开发者对同一个模块提交代码的次数和。•模块网络。每个模块可以看做一个顶点。如果一个开发者对两个模块都进行了提交活动,这两个模块则是有联系的。4•度(degree)——一个节点有n条边即度数为n•接近度(closeness)——若一个节点与其他节点的几何距离之和(如最短路径之和)相对较小,我们认为该节点的接近度偏高•中间状态(betweenness)——在整个网络中,一个点在其他两两节点之间的最短路径上多次出现,我们说这样的点具有较高的中间状态值•中央性(centrality)——中央性指的是一个节点对于整个网络的重要程度。5对开发者社交网络的分析有很多应用:发现合作,预测错误,研究代码传输等。这种分析通常利用可视化技术。可视化对社交网络十分重要。如果DSN可用一个适当的方式进行图形化,那么我们就可以很轻松的从图像中得到很多结论。61.使用VCS挖掘开发者提交的源代码文件。2.计算开发者之间的相似度,以相似度为权重构建网络。3.使用过滤技术减少边的数量。4.使用力导向算法构建网络。7VCS-DSN的相似度量采用Cosinesimilarity方式。每个开发者被当做一个向量并且包含所有文件的权重。对于开发者d,文件f的权重:8CosineSimilarity的计算方法是计算两个向量的cosine角度。910•GlobalSimilarityFiltering•MSTConstrainedFiltering•LocalLowSimilarityFiltering111213使用CosineSimilarity和MSTConstrainedFilter构建可视化网络的缺陷在于:•最近的提交和以前的提交重要性相同。•需要手动调整过滤技术的入口。•这种计算方式基于频繁合作意味着沟通的假设。•没有考虑处理文件重命名和文件移动等情况。14使用力导向算法构建可视化网络。1.随机分布初始节点位置;2.计算每次迭代局部区域内两两节点间的斥力所产生的单位位移(一般为正值);3.计算每次迭代每条边的引力对两端节点所产生的单位位移(一般为负值);4.步骤2、3中的斥力和引力系数直接影响到最终态的理想效果,它与节点间的距离、节点在系统所在区域的平均单位区域均有关,需要开发人员在实践中不断调整;5.累加经过步骤2、3计算得到的所有节点的单位位移,迭代。15谢谢观看