论文部分内容阅读
软件生态系统可以看作一种结构复杂的社会网络,是目前软件工程领域的最高层次。探讨软件生态系统中的社区结构具有重要的理论和实际意义,如项目推荐、合作预测、影响评估等。已有的社区检测算法,由于没有充分考虑软件生态系统中存在的大量信息交互,使得算法效率低下,很难得到满意的社区检测结果。因此,研究有针对性的理论与方法,对软件生态系统进行社区检测是非常必要的。鉴于此,本文针对软件生态系统中开发者之间的两种交互关系,构建不同类型网络,研究软件生态系统的社区检测方法。针对开发者之间的合作关系,提出基于开发者合作强度综合评价的软件生态系统社区检测方法。首先,结合网络拓扑信息和开发者交互信息计算开发者的合作强度,从拓扑属性和语义属性两方面,对开发者合作强度进行综合评价。然后,借鉴Louvain算法的层次聚类思想,提出一种基于开发者合作强度的社区检测算法。最后,通过GitHub托管平台,将该方法应用于软件生态系统的开发者网络。实验证明了该方法可以为软件生态系统的开发者合作网络识别出更加清晰的社区结构。针对开发者之间的关注关系,提出基于开发者综合影响力评估的软件生态系统社区检测方法。首先,通过建立二步信息传播模型,计算节点的信息传播增益。然后,获取节点的贡献度属性信息进行非占优支配排序,并结合节点信息传播增益,得到节点的综合影响力排序。接着,以影响力较大的节点为中心,以信息传播概率为聚类方向进行社区检测。最后,通过调用GitHub API获取数据进行实验,实验结果表明该方法在开发者影响力排序和社区结构划分上都有着较好的表现。本文从域知识提取、网络构建、模型建立、算法求解等多个角度入手,研究软件生态系统的社区检测理论和方法,大大提高社区检测的求解精度和效率,为构建健康可持续的软件生态系统奠定理论基础。因此,具有重要的理论意义和应用价值。本论文中有图15幅,表10个,参考文献84篇。