开源软件现在变得越来越复杂。把开源软件看作复杂网络并进行研究,有助于更好地理解软件系统。同时,开源软件是一种较为复杂的人工系统,通过对它们的研究也可以推动复杂网络理论的应用。以一种基于源代码包的Linux操作系统——Gentoo Linux操作系统为研究对象,我们把该系统中的软件包抽象成节点,软件包之间的依赖关系抽象成边,以此建立复杂网络,并对其进行了分析。发现已有模型不能很好地描述与预测Gentoo网的演化过程,因此,提出了一种新的演化模型。在该模型中,网络现有节点连接新节点的概率不但与现有节点的度有关系,而且也受到现有节点“年龄”的影响。还通过计算机仿真实验把仿真数据与Gentoo真实数据进行了比较,结果显示.新模型更为适合Gentoo网。
Software systems including those based on open-source code are becoming increasingly complex. Studying them as complex networks can provide quantifiable measures and useful insights from the point of view of software engineering. In the meanwhile, as one of the most complex man-made artifacts, they provide a fruitful application domain of complex systems theory. In this paper, we analyze one of the most popular Linux meta packages/distributions called the Gentoo system. In our analysis, we model software packages as nodes and dependencies among them as arcs. Our empirical study shows that the resulting Gentoo network can not be explained by existing random graph models. This motivates our work in developing a new model in which new nodes are connected to old nodes with probabilities that depend not only on the degrees of the old nodes but also the "ages" of these nodes. Through simulation, we demon-strate that our model has better explanatory power than the existing models.