研究文章|开放获取
参会辽、(气,燕,小平风扇,云, ”如何评估的生产力软件生态系统:一个案例研究在GitHub吗”,科学的规划, 卷。2020年, 文章的ID8814247, 13 页面, 2020年。 https://doi.org/10.1155/2020/8814247
如何评估的生产力软件生态系统:一个案例研究在GitHub吗
文摘
随着开源社区的发展,软件生态系统已成为一个受欢迎的角度研究软件开发过程和环境。软件生产率是一个重要的软件生态系统健康的评价指标。一个成功的软件生态系统依赖于长期稳定生产活动的用户,确保软件生态系统可以不断提供用户所需的值。因此,测量的软件生态系统生产力可以帮助维持用户开发效率和稳定的软件生态系统。然而,仍有一些文学开源软件生态系统的生产力。通过模拟自然生态系统,本文给出了相关的软件生态系统生产力的定义,分析了影响因素的生产力软件生态系统。基于生态系统生产力的因素及其相互关系,本文建立了一个软件生态系统生产力模型和以GitHub平台为例做详细的分析和解释。结果表明,该模型可以更好地解释影响因素的生产力软件生态系统。是很有帮助的研究测量软件生态系统健康和软件开发效率。
1。介绍
软件生态系统(瑞士)由一个软件平台,一组内部和外部开发人员和社区服务的社区用户的领域专家组成元素相关的解决方案来满足他们的需求(1]。开源软件的快速发展,一个独立公司的发展模式已经逐渐取代集体智慧合作发展模式。和形成复杂的整体。越来越多的研究人员开始研究这个复杂的整体生成的这种合作模式的软件生态系统。与此同时,如何评估软件生态系统的健康状况已成为一个重要的研究内容在软件生态系统。
软件生态系统生产力的概念主要来自于自然生态系统,在生态系统健康是指一个生态系统的稳定性和可持续性。一个生态系统的健康可以定义为三个特点:生产力,组织结构,和弹性2]。通过模拟自然生态系统,Manikas K et al。3)定义的软件生态系统健康的能力随着时间的推移保持变量和生产力。他们认为演员的效率和鲁棒性影响生态系统。Jansen et al。4)使用效率、鲁棒性和定位评估开源生态系统的健康。软件生态系统健康状况的重要指标,软件生态系统生产力提供了评估标准的开发效率,生产活动和软件生态系统的健康状况。定量评价的软件生态系统生产力提供理论依据ecosystem-related组织的管理者做出更好的决策。目前,详细的软件生态系统生产力的概念不是很清楚,所以很难阐明软件生态系统生产力和实现它的意义在一个特定的开源平台。其次,缺乏通用测量模型和方法评估软件生态系统生产力。很难具体量化和解释软件生态系统生产力。因此,有必要构建一个通用的软件生态系统生产力评估模型。工作效率评估模型的目的是为参与者提供参考依据为生产活动选择合适的软件生态系统。
为了解决上述问题,本文主要就三个贡献。首先,本文提出了软件生态系统生产力的定义。基于自然生态系统生产力的概念和评价方法,软件生态系统生产力的概念和影响因素。然后,根据自然生态系统生产力的模型,构造软件生态系统生产力分析的定量模型通过分析各种因素对生产率的影响。最后,详细说明,典型的开源软件平台选择GitHub的实证研究为例。
本文的结构如下:部分2主要介绍了相关工作的软件生态系统生产力和健康测量。部分3介绍了研究问题和数据集。部分4定义软件生态系统的生产力和给出了软件生态系统生产力模型。部分5的案例研究生产力在GitHub的软件生态系统。部分6验证效率模型。最后,本文在最后一部分总结。
2。相关工作
2003年,梅塞施密特和Szyperski [5]提出的软件生态系统的概念。他们定义了软件生态系统是一个在线社区组织,有一个共同的核心软件技术的兴趣。后来,许多研究者从不同的角度定义了软件生态系统和背景。根据现有文献的详细研究领域的软件生态系统,2013年,Manikas和汉森(1]软件生态系统定义为一组参与者之间的相互作用的一个共同的技术平台,结果在许多软件解决方案或服务。
近年来,有许多不同的软件生态系统领域的研究方向。研究人员研究了软件生态系统从许多方面,如软件生态系统健康和生态系统的体系结构。软件生态系统健康仍然是一个研究课题,很多人关注。目前,有很多聪明的工具或模型来评估个人的健康6)或自然生态系统(2]。然而,在软件生态系统健康、生产力是一个重要的评价指标。如何量化软件生态系统生产力仍然是一个待解决的问题(7]。在健康问题上测量的软件生态系统,Manikas和汉森3)回顾了现有文献对软件系统的健康状况,与自然生态系统和商业生态系统的概念,并定义了生态系统健康状况的软件生态系统维持的能力开发和维护可变性和效率。Gamalielsson et al。8)开发响应性作为一个开源生态系统健康指标一个项目。阿莫林等。9)提出了一个概念框架,积极支持瑞士健康参与者在公共领域。它是基于商业生态系统健康指标包括生产力、健壮性和创造利基Iansiti和莱维恩公司定义的7]。生产力的影响在这个框架主要是指建筑师在平台的功能和管理。在他们的工作中,Eclipse和KDE作为例子来描述体系结构实践,促进和改善生态系统的健康。与我们的工作相比,它讨论了不同软件架构师的角色对生态系统健康的影响。然而,我们工作的目的是通过历史数据来衡量生产率的软件生态系统。伯克et al。10)提出了一个SECO-SAM模型综合评估软件生态系统战略。这个模型包括瑞士生物学、生活方式、环境和医疗组织。生产力是一个基本的软件生态系统健康水平的瑞士生物,但他们只讨论了瑞士的生活方式和环境的案例研究。弗朗哥(11]提出一种测量QuESo模型基于可持续发展的软件生态系统的健康,维护,过程成熟度、网络健康,和资源的健康。本研究主要介绍了指标软件生态系统。这些研究大多使用但不提及任何生产力指标的方法。詹森(4]提供了一个多层次、全面开源生态系统健康操作化(OSEHO)使用三大支柱,是生产力、健壮性和创造利基支柱,评估开源生态系统的健康。和柱子分为三层,理论水平,网络级和项目级。它提供了洞察指标,但不提供详细的操作方法。廖et al。12]提出了衡量开源软件生态系统的可持续性方面的开放、稳定,活动,和可扩展性和应用堆栈溢出的评价方法。和廖et al。13,14)还定义了指标影响GitHub生态系统健康的活力,弹性组织结构,并提出了GitHub生态系统健康预测方法。他们还预测项目和提议的寿命长度预测模型来估计项目寿命开源软件生态系统。
目前的软件生态系统缺乏适当的管理理论,支持工具,和坚实的经验。虽然研究人员提出了一个测量框架软件生态系统健康,他们没有量化模型到一个特定的平台,没有深入分析具体情况的软件生态系统健康的各种因素。软件生态系统生产力发挥了巨大的作用在评估软件生态系统的健康和提高生产率的软件生态系统。本文研究了相关的软件生态系统生产力的影响因素和验证通过构造一个软件生态系统生产力模型。
3所示。研究问题和数据收集
3.1。研究问题
本文的目的是研究开源软件生态系统的生产力。通过定义生产力在GitHub的表示和分析相关因素,我们提出了一个具体的、具体的操作方法和分析模型来评估生产力。为达到这一目的,本文的研究问题回答如下:Q1的定义是什么开源软件生态系统的生产力?和生产率在GitHub平台上可以解释什么?在自然生态系统的基础上,我们定义了软件生态系统生产力包括软件初级生产力和次级生产力。同时,我们将开源软件生态系统的生产力与自然和商业生态系统的生产力。Q2影响生产率的因素是什么?什么是这些因素的具体影响初级生产力和次级生产力?基于定义的问1和自然生态系统生产力的计算模型,我们发现的因素影响生态系统的生产力和生产力提出了一个假设的模型。这是分析和验证的例子研究后者。第三季度我们应该如何衡量开源软件生态系统的生产力?剂量这个假设的开源软件生态系统生产力模型?要回答这个问题,我们使用了一个示例GitHub的研究来解释这种方法和构造模型部分5。第四季度该评价方法和生产力模型可以应用到GitHub的生态系统和其他平台?节6在其他平台上,生产力模型的适用性验证同样的评价方法。
3.2。平台介绍
最大和增长最快的开源生态系统近年来,GitHub已经吸引了数以百万计的开发者发布开源项目。同时,开放api为研究人员提供一种方便的方法来获取所需的数据。因此,本文关注项目在GitHub开源生态系统。GitHub是一个开放源码社区基于拉请求执行代码更改。在开源项目中,用户可以执行各种操作,包括分支,添加星星,看,创建问题,评论,把请求,推动,使提交。用户可分为所有者,核心开发人员,和非核心业务开发人员。用户可以执行所有活动,并将权限分配给其他开发人员。核心开发人员可以直接在代码执行提交活动分配权限后把他们的变化。非核心业务开发人员提交代码更改通过请求和核心开发人员评审后只能执行提交活动。GitHub是开源项目托管平台和专有软件项目。 It is also the most popular open source library at present. GitHub platform saves a lot of historical data of development process. These data provide material for the study of project status. Project data is easy to obtain, and the API of GitHub website provided data crawling routes with high data integrity.
因此,本文把GitHub生态系统为例,建立一个软件生态系统生产力模型,并验证模型的准确性和通用性。
4所示。定义和方法
在这一部分中,首先提供软件生态系统生产力的定义。然后,在实验中使用的方法是详细解释。
4.1。生产力的定义
问1什么是开源软件生态系统的生产力的定义?和生产率在GitHub平台上可以解释什么?
在自然生态系统中,生物生产力是指产生物质在不同生活水平的能力,如个人、团体、生态系统、地区,甚至生态圈。它决定了整个物质循环和能量流动,也是系统的健康状况的一个重要指标(15]。生物生产力的概念包括初级生产力(GPP)和次级生产力。在生态系统初级生产力是指固定太阳能或有机物质生产的植物。次级生产力的能力是指消费者代谢物质生产的主要生产和储存能量通过同化和形成自己的物质和能量。此外,在人类生态学,许多其他能源,如风能,也使用。有许多不同的影响因素和测量方法对不同类型的能源(16]。商业生态系统的生产力被定义为生态系统如何有效地将原材料转化为生物。是生态系统的容量将输入转换为新产品和功能与低成本7]。它强调的创新和降低成本。之间的区别的定义自然生态系统的生产力和商业生态系统是自然生态系统测量生产产品的能力,主要基于总数,而商业生态系统更加注重效率和衡量生产更多的产品以更低的成本。
通过自然生态系统和商业生态系统之间的一个类比,给出了软件生态系统生产力的定义更关注生产和信息。摘要生产力的定义不同于在商业生态系统。它关注软件生态系统生产生态产品的能力,并不能反映软件的创新生态系统。它可以测量活动数据的生态系统。定义1(软件生态系统总效率)。软件生态系统的总效率(SEP)是指信息生成的交互和协作的数量的参与者,在生态系统平台和支持者。在GitHub平台作为一个例子,用户的主要贡献包括构建代码存储库提交代码,提出问题,评论不同的问题和提交。这些行为产生的一系列交互信息。这些信息为生态系统的生产活动带来了活力。就的总生产的生态系统。定义2(软件生态系统初级生产力)。软件生态系统初级生产力(然而)是指所有信息由参与者影响生态系统产品的软件生态系统。不同的软件平台有不同的功能,影响生态系统的产品的信息也是不同的。为例子在GitHub平台、生态系统产品主要代码。因此,信息影响软件生态系统产品由参与者主要包括提交代码,使一个问题,和修复缺陷。定义3(软件生态系统次级生产力)。软件生态系统次级生产力(SESP)是指参与者产生的有价值的信息和生态产品直接影响软件生态产品的软件生态系统。
这些信息通常是由先前生成的信息进一步处理,如审查和合并拉请求,关闭问题和提交,或评论的提交和GitHub中的问题。提交生成大量的代码的信息。批准和合并的代码之后,可以合并到原来的代码库。它会影响项目版本和软件生态系统形成有价值的信息。同样,问题后,提交,或拉请求行为生成,用户将评论这些问题和提交交换信息。这些生产活动的影响信息的生产活动用户的subproductivity软件生态系统。在基于平台的开源软件生态系统中,用户的主要参与者的平台。一系列的活动平台与平台交互生成信息。这个信息促进平台的正常发展,成为能量维持正常运行的软件生态系统。
4.2。生产力模型假设
问2影响生产率的因素是什么?什么是这些因素的具体影响初级生产力和次级生产力?
软件生态系统的生产力指数可以用来评估软件项目的开发效率和软件生态系统的健康。参与者在生态系统开展生产活动。参与者的贡献也是开源软件生态系统的主要能量来源。生产力软件生态系统相互作用生成的主要参与者和平台。影响的主要因素的生产力软件生态系统包括平台因素和用户的因素。平台主要因素是外部因素,对软件生态系统有很大的影响,包括项目受欢迎程度和项目开发语言。参与者的因素主要包括参与者的数量在软件生态系统和参与者贡献的意愿。本文主要研究是否有一定的活动参与者之间的关系和软件生态系统的生产力,这种关系是否可以以类似的方式量化定量模型的自然生态系统的生产力。
在测量模型在自然生态系统的生产力,生产力的主要影响因素是光照辐射,也就是说,输入的能量。初级生产力的计算模型通常是通过乘以系数影响因素的转换照明能源的有效的照明。在陆地生态系统、地理探测平台通常使用GLOPEM模型算法(17)检索初级生产力数据从各种卫星遥感数据。主要生态系统生产力可以表示为
在方程(1),代表主要生态系统生产力,光合成有效辐射,光合成有效辐射的比例是被植物吸收,然后呢是实际的光利用率基于的概念 。的乘法和被植物吸收的光合有效辐射,光利用率的植被。
本文主要分析了影响因素的数量和活动参与者的软件生态系统的生产力。在软件生态系统中,参与者的贡献活动的主要能量来源是开源软件生态系统。因此,根据上述定量模型的自然生态系统生产力,类似的软件生态系统生产力模型表示为线性函数的参与者。我们假设一个定量模型的软件生态系统生产力为方程(2)。然后,我们研究验证的例子:
在方程(2),代表软件生态系统的初级生产力,它是一个线性函数相关的用户数量和贡献的意愿。参与者的数量,是代表活动的因素,介绍了参数,然后呢是一个常数。在不同的自然生态系统,生态系统的初级生产力将随植被吸收光合作用的有效辐射率。同样,在不同的软件生态系统,不同的编程语言,项目,项目的追随者等不完全相同的有效信息生态系统的生产率。这些不同的因素共同构成 。和默认的最低生产率的参与者是1。因此,的价值是参与者的数量当C是负数小于绝对值。
同样,根据次级生产力的定义,次级生产力从初级生产力。也是一个线性函数与用户的数量和贡献的意愿。这个假设可以表示为
在方程(3),是二级软件生态系统的生产力,是生产力的转化率,是常数。根据初级生产力公式,次级生产力的关系模型可以转换如下:
在方程(4),是生产力的转换参数,获得的活跃因子乘以转化率。是一个常数;等于价值与一个常数乘以转化率补充道。也可以预测次级生产力的软件生态系统是线性相关的用户数量和他们的贡献的意愿。
在部分5和6,我们具体分析为不同的平台和软件生产率的影响因素进行了实证研究的可行性和普遍性上述假设的模型来验证模型是否可以表达参与者对生态系统生产力的影响。
4.3。方法
问3我们应该如何衡量开源软件生态系统的生产力?剂量这个假设的开源软件生态系统生产力模型?
生产力的研究方法分析了影响因素。然后,生产力的软件生态系统模型进行了检验和建立。它被分为三个步骤。步骤1(数据收集):首先,选择适当的数据和生态系统划分。为了验证模型的可行性,选择典型的开源软件平台GitHub的实证研究。我们把GitHub平台作为一个例子4。因为项目的受欢迎程度和开发语言是重要平台生态系统影响因素,为了消除这些因素的影响,生态系统,我们把生态系统与不同类型的平台,主要使用开发语言作为索引。平台,不能把生态系统开发语言,我们采用其他划分标准等项目类型和项目的受欢迎程度。步骤2(相关分析):为了分析用户活动软件生态系统生产力的影响,软件生态系统生产力和生态系统参与者之间的关系进行了分析。数据分析了生态系统的生产力和参与者在为期一个月的观察期,之间的关系,不同类型的生态系统的生产力和生产的人在一个单位时间进行了分析。每月使用的数据摘要间隔和数据变量是等距的,人的公式适用于测量系数固定距离变量之间的线性关系,和数据规模适合人相关系数的计算,因此本文使用的相关系数分析参与者之间的相关数据和软件生产率数据: 在方程(5),是第一个月的时候,软件生态系统参与者的数量,是这个软件生态系统的生产力。代表了生产力和参与者之间的相关系数, ; 较大,这表明软件生态系统生产力与参与者呈正相关。负值意味着软件生态系统生产力与参与者负相关。和往往为0,这意味着他们之间没有相关性。步骤3(模型建设):这个模型的建设分为两个部分。第一个是回归分析。根据软件生态系统生产力模型的原型,生产力和参与者之间的线性关系是判断。线性关系的情况下,初始生产力和参与者之间的回归方程是由最小二乘法得到的(18]。因为不同类型的生产者创造的生产力在同一生态系统不同,特定的生态系统呈现不同的回归模型,因为不同的活动的参与者。第二个是真正的建设模式。每个生态系统的回归方程是不一致的。确定回归模型适用于大多数项目,本研究使用事实发现方法(19]。真理的发现是一个方法来衡量多源信息的可靠性和估计真实的信息。这个算法是算法所示的流程1。通过这种方法,我们计算回归方程的可靠性基于每个项目和一般的回归方程,获得更大的准确性。
|
具体算法描述如下。首先,{的初始设置 ,……,},{ ,……,}是由每个项目的回归方程和排序。第一次迭代结果的平均值和 。其次,重量( )整体生态系统中的每一项的计算代表生态系统数量 , 代表生态系统的活动通过回归方程,代表的是活动的结果t-迭代,代表恒定的结果t-迭代。最后的结果t-迭代计算。
在本文中,我们使用事实发现算法来得到真正的软件生态系统生产力量化模型在一个特定的软件生态平台。具体实验过程详细描述部分5。
5。案例研究
本文重点分析用户对生态系统生产力的影响因素。本节中验证用户的数量之间的关系,活动,和生产力。在本节中,我们把GitHub为例,量化的软件生态系统生产力模型,并进行实证研究。
5.1。数据收集
第一个任务是数据收集和预处理。影响生态系统生产力的主要外部因素包括函数类型,项目的普及,和开发语言的流行。开发语言的类型的基础上,本文选择了七个最受欢迎的语言和GitHub平台分为几个技术生态系统生产力分析模型。
为了科学比较每个平台的流行的语言,我们排名前10位的语言在堆栈溢出的四个平台,GitHub, TIOBE, IEEE。如表所示1,我们推翻了这些语言的流行。第一语言在每个平台得到10分,第二个得到9分,等等。添加了四个平台的分数,我们选择7种语言的流行。然后,语言不统一的技术平台的生态系统为主要因素,和生态系统生产力进行了分析。最后的分数JavaScript、Java、C、Cc++, c#、PHP、Python、七个不同的开发语言进行分析。
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
使用上面提到的七个流行的语言,平台分为软件生态系统的不同的语言。根据软件生态系统生产力的定义本文所使用的数据用户贡献的活动。GitHub平台可以节省大量历史数据的开发过程,和网站的API提供高数据抓取数据的完整性。如表所示2,本文使用几个项目在GitHub最高的关注和收集的70个项目最多的恒星在JavaScript中,Java, C,Cc++, c#、PHP、Python。
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5.2。相关分析
数据处理完成后,生产力和参与者之间的关系进行了分析。本文试图找出参与者的数量之间的关系和生产力通过普通用户的统计分析活动。
在一个特定的软件生态系统,有必要选择数据能代表生态系统生产力和与用户的数量进行相关性分析。GitHub生态系统中,最重要的贡献的用户通常来自于拉请求行为,因此公关的数据是一个很好的表示软件生态系统生产力,而公关的价值通常合并到项目代码库。因此,合并后的公关作为转换后的二次生产力。生产力和生态的参与者之间的相关软件生态系统项目进行了分析。
在本文中,每个项目的生产力数据单元和参与者的数据统计时间阈值是根据观察期间计算,和人的相关系数是用于分析参与者的数据和软件生产率数据之间的相关性。结果如图所示1。
如图1在GitHub的平台,可以找到一个高度正相关之间的公关和参与者的总数。其中,协会的最低程度的开发语言是0.922,而最高水平是JavaScript生态学,0.986。公关的数量已经合并,参与者的数量也高度呈正相关,和协会的程度范围从0.811到0.967。因此,可以得出结论,在GitHub的生态系统,之间存在高度正相关的软件生态系统的生产力和生态系统的参与者,参与者的数量直接影响到工作效率。
基于上述分析,生产力和用户的数量之间的关系,得出之间存在高度正相关的软件生态系统的生产力和生态系统的参与者的数量。参与者的数量直接影响生产力的价值。因为生产力来自所有参与者之间的相互作用的生态系统,软件效率的主要影响因素是生产者的数量和活动的生态系统。因此,本文使用的用户数量和用户建立的模型的活动参与者对生产率的影响。
5.3。模型建设
根据上面的相关分析,发现之间有明显的正相关生态系统生产力和参与者的数量。因此,它是必要的,以判断生产力和参与者的数量线性函数关系,进行回归分析。在GitHub平台上,参与者对生产率的影响模型被使用七个代表语言构造。在图2,我们发现有一个线性关系生产力和参与者的数量。特定的项目或生态系统呈现不同的回归模型根据活动的参与者。
(一)
(b)
如图2,在每一个生态系统,生产力是一个线性函数相关参与者的数量。主要和次要生产力模型可以在初级和二级生产力。因此,主要由最小二乘法得到回归方程,如表所示3。
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
因为每个项目的回归方程是不一致的,最低的活动因素,交流,是1.65,最高的是5.46。常数C1−31.99到11.44不等。通过分析,发现活性因子通常可以表示生态系统中的用户的意愿。获得一个回归模型对于大多数项目,参与者对生产率的影响模型构造使用real-discovery方法中描述的部分3:
在方程(6),然而GitHub生态系统的初级生产力,在方程(7),SESP次级生产力。体育代表数量的参与者在软件生态系统。主要活动是2.22,第二个活动是1.20,初级生产力的不断C1−9.44,和次级生产力的不断C2−21.11。在本文,默认最小用户1的生产力。然而,SESP的价值是用户的数量当C是一个负数,Ac∗Cr小于C绝对值。
通过分析软件生态系统生产力的GitHub的平台,这是发现软件生产率模型提出了部分4可以应用于多个软件生态系统。由于特定的生态系统的不同的功能和不同的用户组,用户的活跃程度会有所不同。因此,当使用模型时,我们需要分析软件生态系统的生产力根据用户的活跃度在不同的平台上。通常,用户可以用来替换的平均活动的积极因素来自反演生产力和参与者的数量。
6。验证分析
问4这个评价方法和生产力模型可以应用到GitHub的生态系统和其他平台?
要回答这个问题,我们验证了模型在其他生态系统在本节中,其中包括三个不同的类生态系统在GitHub。然后,生态系统堆栈溢出和Bugzilla的验证。
6.1。验证在GitHub的其他生态系统
在本节中,我们验证了模型在GitHub的三种不同的类生态系统。在生物学上,生态系统的范围可大或小,生产力和生态系统可以代表个人的生产能力,组织、生态系统、地区,甚至生物圈。同样,本文选择三个不同大小和类型的软件生态系统在GitHub验证。单一生态系统软件产品,软件开发团队的生态系统,生态系统的语言。实际生产力和生产力之间的关系模型验证了统计计算。
三种不同的生态系统,莫比,GitBook和Ruby,被选来验证模型。莫比是一个开源项目,致力于促进软件集装箱化的运动。莫比项目中,用户和软件框架、组件和其他软件产品聚集形成软件生态系统。GitBook团队主要是文本编辑器使用Git技术开发团队。GitBook生态系统,用户和软件开发环境、软件产品、服务等通过一个团队凝聚在一起形成一个软件生态系统。Ruby是一个简单和快速的面向对象的脚本语言。这是个很受欢迎的项目在GitHub开发语言。Ruby的生态系统,用户、软件产品和软件开发环境形成一个生态系统开发语言。
图3显示计算的软件生态系统初级生产力是生产力模型。正是符合这一趋势的实际生产力的软件生态系统,和数量大致相同。之间的相关性,通过相关分析,模型将生产力和生产率在单一软件产品生态系统,软件团队的生态系统,生态系统和语言都高于90%。然而,有一个预测和测量值之间的区别。因为这个模型分析了多个生态系统的特点,大型数据集模糊特定生态系统的特点。它造成了预测值的平均生产率不同平台。预测的值大于测量值;这意味着这个生态系统的生产率低于平均生产率的平台,应该改进和用户活动。预测的值小于测量值;这意味着这个生态系统的用户更活跃,和生产率高于平均生产率的平台。 When the productivity of the ecosystem is continuously higher than the prediction model, the model should be adjusted according to the characteristics of this software ecosystem to ensure its accuracy. This fully proved that the abovementioned composition model of software ecosystem primary productivity is applicable to GitHub and other software ecosystems. It was also found that the number of users is limited by the environmental capacity of the ecosystem during the stable operation of the platform. In the software ecosystem, the transition from primary productivity to secondary productivity takes time. It takes some collaboration with other users to convert primary productivity to secondary productivity. Hence, the prediction of secondary productivity was not very good in the last few months. Also, the prediction of secondary productivity of these three ecosystems in GitHub is analyzed. The result is shown in Figure4。
(一)
(b)
(c)
(一)
(b)
(c)
在验证过程中,我们发现的影响因素除了用户的数量和活动的软件生态系统生产力。在GitHub上平台,软件初级生产力问题有高度的相关性与参与者的数量,但当生态系统很小,数据量少,模型的精度将大大减少。在单个项目团队的生产力验证实验,发现每个用户参与公关提交一个或两个问题,但是一些核心开发人员会产生大量提交某些观察期间,导致部分模型中的错误。为什么次级生产力和参与者的数量低于初级生产力是这几所产生的大量提交核心开发人员通常是整合到代码库,所以初级生产力取决于核心开发人员的活动。在项目的初始阶段,核心用户的贡献率通常是高的。然而,随着项目的进展,非核心业务开发人员参与项目的数量将增加,从初级生产力和次级生产力转化的比例将逐渐增加。因此,在下一步的工作中,核心开发人员的用户活动的影响将被考虑。
在实验中,我们还发现,在平台的稳定运行的过程中,没有突然的外力的影响。和用户的数量达到一定水平之后,它仍将在很长一段时间。因此,最重要的初级生产力水平是提高参与者和活跃。在这些开源软件生态系统,从初级生产力次级生产力的转变需要时间,需要发现和协作完成其他用户向次级生产力推动初级生产力。因此,次级生产力的数量在过去的几个月里不是很好。因为生态次级生产力从初级生产力转换,次级生产力几乎是零,当初级生产力较低,所以次级生产力模型过于依赖的核心用户的产品一个小项目团队。因此,为了提高次级生产力,有必要提高初级生产力,转换因子,核心用户的数量。
6.2。验证在其他平台的其他生态系统
为了验证该模型的普遍适用性,我们也验证了模型其他生态系统的生态系统。使用相同的方法,堆栈溢出平台的软件生态系统生产力和Bugzilla平台。Stack Overflow是一个标准的计算机科学,和编程问答网站的主题。堆栈溢出的平台,用户可以执行各种不同的活动,如问题,答案,票,和评论。用户参与团队智能协作活动,如问题和答案,形成一个开源生态系统。它已经被高度流行的软件开发人员和被认为是最成功的开源生态系统之一。Bugzilla是一个缺陷跟踪系统由Mozilla基金会(http://www.mozilla.org)。许多用户,包括开源项目(Apache开放办公室Linux),私人项目和公共机构使用Bugzilla (NASA, IBM)。在Bugzilla,用户的贡献主要是从用户的错误报告的提交,这是传递到缺陷修复,检查活动行为,等等。因此,我们选择这些软件生态系统生产力来验证模型。
在验证之前,这些平台的生态系统和他们的生产力数据确定。堆栈溢出,问题和答案的信息。因此,问题和答案的数量代表了生产力。Bugzilla,用户的贡献从错误报告的bug修复。因此,生产力是由报告的数量。然后,平台上的生态系统划分。根据平台的特点,用户在堆栈溢出通常收集不同的技术领域。因此,堆栈溢出划分根据编程语言。在Bugzilla,有五种类型的项目,所以生态系统划分的项目类型。
然后,我们确定这些生态系统模型的活动因素根据方法部分4所示。3。首先,生产力和参与者的数量之间的相关性进行了分析。这是发现,堆栈溢出,生产力高度与参与者的数量呈正相关。相关性最低的是0.88,最高的是0.995。Bugzilla,还有一个最大的生产力和参与者之间正相关关系至少0.94和0.65。然后,根据方法4所示。3回归分析和真理发现被用来调整生产力模型参数相应的平台。最后,模型验证。堆栈溢出的平台,选择HTML语言的生态系统来验证模型。在Bugzilla平台上,我们选择的单一软件产品Firefox生态系统验证。结果是图所示5。
(一)
(b)
之间的相关性模型两个平台的生产率和实际生产能力超过90%。这个结果证实该模型的软件生态系统生产力适用于其他平台。这是证明该模型能够代表软件生态系统生产力。还发现,在软件生态系统,从初级生产力次级生产力的转变需要时间。花了一些合作与其他用户将初级生产力转化为次级生产力。因此,次级生产力的预测是在第一个和最后一个几个月不是很好。
7所示。讨论和结论
自然生态系统生产力的定义的基础上,提出了一种软件生态系统生产力的定义。类似于自然生态系统的主要和次要的生产力,本文分解软件生态系统生产力为主要和次要生产力根据不同的用户活动对生态系统的影响。此外,在不同的软件生态系统生产力量化。根据生产力的来源,提出的观点数量,规模,和活动的参与者在生态系统生产力发挥最直接和最重要的作用。在验证的过程中参与者的数量和活动之间的关系和软件生态系统的生产力,我们发现初级生产力与参与者人数的高度相关,而次级生产力不与参与者的数量。本文提出了一个模型的软件生态系统生产力。实验结果验证了该模型的有效性。
摘要软件生态系统生产力和组合模型的相关因素进行了研究,希望为进一步的软件生态系统研究提供帮助,软件生态系统健康测量,开发效率测量、等等。本文研究了用户评论等间接的影响因素和外部环境因素对软件生态系统的生产力。然而,分析用户的数量和活动影响因素的软件生态系统生产力,这是不够全面的。
一些威胁影响的有效性提出了测量方法,包括外部威胁和内部威胁。主要的外部威胁是数据集的有效性。在这个工作中,通过数据分析得到了该模型的参数。因此,这个模型的质量是由使用数据集的质量。本文验证数据集的堆栈溢出和Bugzilla倾倒平台,和GitHub数据集通过数据服务GitHub API V3。小生态系统和小数据会导致不准确的采集参数的模型,这将威胁到结论的有效性。内部威胁的是模型只考虑用户数量和用户活动对生产率的影响。然而,可能有其他因素影响模型的准确性。由于大量的数据的特点,用于构建模型、生态系统中的一些具体项目的特点可能被忽视了。和这个模型考虑了生产率的软件生态系统从定性而不是定量的角度来看,忽略了不同事件对生态系统的影响。 For example, in the project-level ecosystem, some core developers frequently submit code during the observation period. It will threaten the validity of the conclusion.
在未来的工作中,我们计划来验证模型的适应性和可靠性在其他开放源代码网站分析和验证其他软件生态系统生产、影响因素等的语言项目和项目的生命长度。很明显,语言会影响用户的意愿导致生态系统。同时,我们考虑使用神经网络来改善模型,特别是强大的多层极端学习机(20.和计划使用一个可视化方法21),开发一个工具来展示各种因素的影响在其生产力和生态系统的发展开源软件生态系统。
数据可用性
使用的数据来支持本研究的发现可以从相应的作者。
的利益冲突
作者宣称没有利益冲突有关的出版。
确认
这项研究是由科学技术部:重点研究和开发项目(2018 yfb003800),湖南省重点实验室财经大数据科技(湖南财经大学)(2017 tp1025),中国NSF(61876190和2018年HNNSF jj2535)和基础研究基金为中央大学中南大学(2019 zzts150)。
引用
- k . Manikas和k·m·汉森”软件生态系统——系统的文献回顾。”系统和软件杂志》上,卷86,不。5,1294 - 1306年,2013页。视图:出版商的网站|谷歌学术搜索
- k, h, m .关,b .傅“生态系统健康评估:方法和方向,”生态学报,21卷,不。12日,第2116 - 2106页,2001年。视图:谷歌学术搜索
- k . Manikas和k·m·汉森”审查软件此次概念框架的建议,健康的”学报的第五届国际研讨会软件生态系统(iwseco - 2013)卷,987,pp。26-37,波茨坦,德国,2013年5月。视图:谷歌学术搜索
- 詹森,“测量开源软件生态系统的健康:超出了项目的范围的健康,”信息与软件技术卷,56号11日,第1519 - 1508页,2014年。视图:出版商的网站|谷歌学术搜索
- d·g·梅塞施密特和c . Szyperski软件生态系统:理解不可或缺的技术和产业美国剑桥,麻省理工学院出版社书,马,2003年。
- x y . m . Chen Li罗,w . Wang l . Wang和w·赵”小说人类活动识别方案智能健康使用多层极端的学习机器,”IEEE物联网》第六卷,没有。2、1410 - 1418年,2019页。视图:出版商的网站|谷歌学术搜索
- m . Iansiti和r·莱维恩公司”重点和主宰:框架操作和技术战略商业生态系统中,“哈佛商学院工作报告03 - 061卷,2004年。视图:谷歌学术搜索
- j . Gamalielsson b Lundell,凌,“响应能力作为衡量评估oss生态系统的健康,”第二届国际研讨会(2010年OSCOMM)建立可持续的开源社区美国,联合会,巴黎圣母院,2010年6月。视图:谷歌学术搜索
- 阿莫林,j·d·麦格雷戈e·s·阿尔梅达c . Flach g·查韦斯,“架构师角色的软件生态系统健康,”第二届研讨会社会、人类和经济方面的软件(洗的17)DBLP萨尔瓦多,巴西,2017年5月。视图:谷歌学术搜索
- 诉伯克,即诉窝,s .詹森和l . Luinenburg”软件生态系统:一个软件生态系统战略评估模型,”诉讼的第四届软件架构,欧洲会议(Ecsa)发起,DBLP同伴卷DBLP,哥本哈根,丹麦,2010年8月。视图:谷歌学术搜索
- o . Franco-Bedoya d·阿梅尔、d .肋和x法语,“QuESo开源软件生态系统质量模型,”软件工程学报》第九届国际会议上和应用程序(ICSOFT-EA),第221 - 209页,维也纳,奥地利,2014年8月。视图:谷歌学术搜索
- z辽、l .邓x风扇et al .,”评价模型和方法的实证研究开源生态系统的可持续性,”对称,10卷,不。12日,2018年。视图:出版商的网站|谷歌学术搜索
- z辽、m .咦,y王et al .,“健康与否:来预测生态系统健康在GitHub,”对称,11卷,不。2,p。144年,2019年。视图:出版商的网站|谷歌学术搜索
- z辽、赵,s .刘et al。”项目寿命的预测模型在开源软件生态系统,”移动网络应用程序,24卷,不。4、1382 - 1391年,2019页。视图:谷歌学术搜索
- f .京和c . a . Ping”影响,四个陆地生产力参数的估计。”陈清朗中央研究院,25卷,不。4、414 - 419年,2001页。视图:谷歌学术搜索
- 王罗x, j .太阳,l . et al .,“短期风速预测通过堆叠与广义correntropy极端的学习机器,”IEEE工业信息,14卷,不。11日,第4971 - 4963页,2018年。视图:出版商的网站|谷歌学术搜索
- j.y.刘j·b·王,问:问:邵,“净初级生产力的时空模式基于Glopem-Cevsa模型对1988 - 2004年的三江源头地区的青海省,中国,“中国植物生态学》杂志上,33卷,不。2、254 - 269年,2009页。视图:谷歌学术搜索
- 张x, x,和m . Lu,“加权最小二乘无网格方法,”Mechanica学报,17卷,不。3、270 - 282年,2003页。视图:谷歌学术搜索
- 问:李,李y, j .高et al。”事实发现和解决冲突在异构数据的来源可靠性估计,”学报2014年ACM SIGMOD国际会议管理的数据雪鸟,页1187 - 1198年,但是,美国,2014年6月。视图:谷歌学术搜索
- 李罗x, y . w . Wang x禁令,黄永发。王,w .赵”,一个健壮的多层极端的学习机器使用内核的风险敏感性丧失标准,“国际期刊的机器学习和控制论,11卷,不。1,第216 - 197页,2020。视图:出版商的网站|谷歌学术搜索
- z辽、d .他x的粉丝,y, z . Chen和s .刘”探索所有同这些合作有关行为在GitHub使用可视化技术的特点,“IEEE访问》第六卷,第24015 - 24003页,2018年。视图:出版商的网站|谷歌学术搜索
版权
版权©2020参会廖等。这是一个开放分布式下文章知识共享归属许可,它允许无限制的使用、分配和复制在任何媒介,提供最初的工作是正确引用。