软件生态系统的演化研究:基于生态模型的视角
1. 研究方法类比
在研究自然生态系统和软件生态系统时,可以采用相似的方法。对于自然生态系统,如森林中不同植物物种的植被群落,可在任意选定的不同位置(采样站)采集单个植物样本,以此了解每个物种在该位置的覆盖情况以及整个生态系统中覆盖情况的变化,进而评估生物多样性。对于软件系统,可随机选择属于该生态系统的多个软件项目,统计每个贡献者对生态系统的覆盖情况(以提交次数或其他活动指标衡量)。在这里,贡献者相当于植物物种,他们对项目的提交次数相当于覆盖度。这样就可以运用研究自然生态系统的一系列技术来研究软件生态系统。
2. 层次聚类分析
- 数据处理 :以GNOME生态系统为例,构建一个矩阵,列表示项目(相当于位置),行表示编码者(相当于物种),单元格值为每个编码者的代码提交次数。通过箱线图发现,超过一半(准确地说是54.5%)的编码者仅参与了一个项目,因此在后续分析中忽略这些“单一”编码者,因为他们无法为项目间的相似性或差异性提供有用信息。同时,移除全为零的列(即无编码活动的项目)和非零单元格少于两个的行(即仅在零个或一个项目中活跃的编码者),最终得到一个包含1352个项目和1966个编码者的矩阵。
- 聚类结果 :对该矩阵进行层次聚类后发现,与自然生态系统的结果不同,软件生态系统中存在大量小集群,这意味着编码者比植物在采样站的分布更局限于少数项目,导致大多数项目在聚类树状图中的连接位置更高。例如,将层次聚类应用于24个随机选择的植被数据集(涉及44种植物物种)和从GNOME生态系统中随机选择的24个项目(来自最后四分位数,即至少有28
超级会员免费看
订阅专栏 解锁全文
54

被折叠的 条评论
为什么被折叠?



