摘要
近年来,开源已成为工业界高质量高效率开发核心软件的重要手段。而随着开源软件社区和开发平台的快速发展,可用的开源软件项目数量迅速增加。在共同的开发平台和环境中,开源软件项目相互联系,共同演化,形成软件生态系统。如今,软件生态系统已经成为构建大型软件系统的有效方法,受到了学术界和工业界的广泛关注,而GitHub作为全球最大的开源软件社区,成为了研究软件生态系统的绝佳对象。其中有大量的开源软件项目无法继续开发而最终失败,围绕开源项目形成的软件生态系统也随之消亡。这使得软件生态系统中涉及的每一方都希望有一种关于健康性的度量方法来辅助他们进行决策,而目前还没有一种通用的度量方法来监测和评估软件生态系统的健康性。因此本文开展了如下工作: (1)通过分析开源软件项目的开发流程,提出从项目角色、项目活动和项目产出三方面考虑开源软件项目的健康性,结合软件生态系统的项目网络拓扑结构,构建度量软件生态系统健康性的评估指标体系。 (2)提出基于主成分分析法的软件生态系统健康性度量方法,并通过跟踪开源软件项目随时间的发展揭示了其健康性动态变化规律,并根据软件生态系统的网络结构得到项目的重要性,弥补了以往工作的不足。 (3)提出基于图卷积神经网络和长短期记忆神经网络的开源软件生态系统健康性预测模型GraphSage-LSTM,该模型综合考虑软件生态系统中的项目特征和项目之间交互形成的网络结构来预测软件生态系统的健康性时序变化。 (4)为了验证所提出的的方法模型的有效性,本文通过Ghtorrent数据集对GitHub的软件生态系统进行了一系列实验,实验结果表明了论文方法的有效性。