论文部分内容阅读
开源软件开发基于自组织、松耦合的开源社区,开发者分布在全球不同位置,进行相对独立的软件开发,开发者的立项、讨论、评价、修改、测试等行为,主要是通过互联网相互沟通、讨论和协商实现,每一位成员既可以是用户,也可以是开发者,可以同时参加多个软件的开发,开发者对项目的贡献不仅体现在软件产品本身,还体现在项目的各个环节。开源软件开发是一种群体软件工程,群体协同行为广泛存在于软件协同开发社区和软件知识分享社区,开发过程是一个社会合作与技术依赖共同作用的结果,需要理解与掌握开发过程中行为(个人、群体、组织)与技术工作的紧密联系,其中的交互、并发与协同演化等特性尤为重要。为开源软件开发者相关特征建立合适的模型,对于帮助理解、预测和影响开源软件开发中的个体、群体和组织的行为,提高开源软件开发效率与质量都具有重要的指导意义。针对上述问题,本文以群体软件工程为研究取向,采用复杂网络分析方法,在实证数据分析和挖掘的基础上,研究开源社区中开发者的行为特征。论文的主要工作包括以下几个方面:1.提出了一个面向开源社区的开发者信息挖掘框架。首先研究了互联网上开源软件开发过程信息的相关数据的主要表现形式,给出了基于互联网的各种数据的定位和自动化获取方法:进而,针对互联网开源软件开发者数据的特点,提出了一种集合软件开发社区和知识分享社区两类数据的挖掘框架,该框架能自动收集、解析和获取开源软件开发过程信息和邮件列表信息,在此基础上,分析了开源社区中开发者参与项目的行为和开发者在知识分享社区中的行为,最后通过实验验证了框架的可行性和有效性。该框架的建立有助于用户根据自身需求和研究数据的特点,选择合适的开发过程信息获取手段。2.基于开发者社交网络分析了开发者在开源社区中的行为。运用社会网络分析方法,结合具体情境,从宏观和微观两个视角分析了开源软件开发中开发者交互行为,研究了开发者在开发过程中隐含的形态与规律,包括开发者在社区中的知识分享行为、参与项目的行为、软件开发过程中的贡献行为、软件维护过程中的维护行为,将这些行为研究应用于开源软件开发中的过程优化,提供若干优化原则,促进开源软件开发中开发效率和软件质量的提高。3.分析了开源软件开发者与软件产品的协同演化。通过研究软件开发者及其维护产品的信息融合,探索了开源软件中开发者维护产品程序包的行为,定量分析了开发者的演化及其与程序包的维护关系,包括开发者数量演化分析、开发者自愿度分析、开发者经验对产品维护影响分析、开发者的流失与对应程序包丢弃行为分析,并且给出了合理解释。