论文部分内容阅读
开源软件的可信性分析是对开源软件演化过程中的软件制品及其开发活动进行分析和评估的统称,对开源软件的产业化和大规模应用具有重要意义。可信证据是对软件可信性进行分析的依据。基于互联网的开源软件创造出一种群体协作驱动的新型软件演化模式,正在从根本上改变着世界软件产业的格局。开源软件的演化过程具有开放性、动态性、网络化、多元化等特征,一方面为其可信性分析提供了丰富的原生态数据,另一方面也对开源软件可信证据的挖掘和分析提出了新挑战。传统的软件可信性分析方法主要针对程序和文档等软件制品,以手动获取相关证据信息为主,没有充分利用开源软件项目的开发过程数据对软件可信性和演化活动的基本规律进行研究,难以适应开源软件的自动化可信评估与开发活动分析的需要。因此,充分利用互联网中可自由获取的开源数据,研究开源软件可信证据模型与框架、可信证据的挖掘与分析,具有重要研究意义和实践价值。针对上述问题和挑战,本文采用实证软件工程的方法在开源软件可信性分析的证据框架、面向开发团队的可信证据挖掘与分析等方面展开研究。首先,研究各种开源数据与可信证据之间的内在联系,建立了一种基于互联网数据的开源软件自动化可信证据框架。该框架用软件制品证据描述软件制品的质量属性,用开发团队证据描述软件项目开发团队的人员、结构和协同特征;其次,本文揭示了开源软件演化过程中开发团队特征与软件可信性的内在联系,并据此对各类开发团队证据进行挖掘与分析,从而给出了多种面向开源软件可信性分析的新型可信证据项。从实证角度验证了所提证据框架的可行性和有效性。本文的主要创新点内容包括以下4个方面:(1)针对开源软件演化过程中的软件可信分析问题,建立了一种基于互联网的开源软件自动化可信证据框架(OSS-ATEF),将软件可信证据划分为软件制品证据和开发团队证据,能够支持面向整个演化过程的软件可信性分析。该框架用于解决互联网数据到软件可信证据的映射问题,通过对大量软件测度进行分析,给出了开源数据到软件可信证据的映射关系及使用依据。本文据此给出了一种自动收集、解析和获取开源软件各种可信证据的工具体系,并以两个著名开源软件为例证实了该证据框架的可行性和有效性。(2)针对开发团队证据中人员贡献和协同行为的特征提取和量化问题,利用开源项目人员贡献度计算方法建立了开发日志信息到人员贡献度证据的映射机制。在此基础上,利用Gnome社区的开源数据构造了面向开发人员行为特征的实证分析实验,验证了开源软件的开发行为符合著名的帕累托定律,并揭示了不同类型的开发行为的贡献比例不存在相似性;设计实现一种面向协同文件数的提交者网络分析方法,提交者网络特征分析实验初步揭示了开源项目开发协同关系的分布规律,为进一步深入理解开源软件演化过程的协同开发特征提供了实证依据。(3)针对开源软件开发团队组织结构特征的提取问题,利用SourceForge社区的开源数据构造了软件项目角色配置结构的实证分析实验。首先,该实验全面统计分析了SourceForge社区中存在的各种角色类型的分布情况及其内涵,初步揭示了项目角色个数与其社区排名之间具有较强的关联关系;进而,该实验基于项目开发过程中的角色同现关系构造了各类角色的绝对中心度和相对中心度计算方法,据此得到一种面向开源软件的角色配置结构模型。该角色模型能够明确直观地反映不同角色类型在软件开发活动中的作用和地位,为OSS-ATEF框架中开发团队组织结构方面的可信证据使用奠定基础。(4)针对开源软件开发团队角色同现特征的提取和角色配置的分级问题,利用SourceForge社区的开源数据,基于Apriori算法构造出一种面向角色配置结构的频繁模式挖掘实验。首先,该实验将社区中的候选项目按照排名划分为三个区间,进而计算了不同区间中各种角色配置结构频繁项集的支持度,实验能够给出具有不同支持度的角色配置结构的频繁项集。实验结果表明,不同排名区间的项目角色配置结构频繁项集的支持度具有很大差异。进而,利用社区中高排名项目的角色频繁项集构造出一种角色配置结构分级方法,为将项目角色配置结构纳入到OSS-ATEF可信证据框架提供了实证依据。