大量研究表明,Java软件系统是一种人工复杂网络,它的入度分布符合幂律,然而出度却是对数正态分布.现有的这些研究都仅仅以Java开发工具包,如JDK、log4j和Tomcat这一类软件系统为研究对象.除此之外,所分析的数据类型也很有限,只考虑了程序包与类的依赖关系,忽略了很多有用的数据类型,比如函数成员变量和函数临时变量.本文将这两类数据类型纳入了研究范畴,拓展了类依赖关系.不仅如此,本文也将研究粒度细化至函数层面,构建了函数依赖图.针对这两类依赖关系,本文提出了将系统转化为加权有向网络图的理论方法.全面的实验结果显示,本文所选取的10类Java应用系统,无论是出度还是入度绝大多数都符合幂律分布,由此证明了所提出的理论方法,验证了有向加权网络是否具有无标度特性在分析Java应用系统网络结构时是有效的.
A lot of empirical studies have demonstrated that Java software system is a kind of artificial complex network and its in-degree distribution obeys the power law,while out-degree distribution is lognormal.However,most experiment objects in these studies are Java development tools,such as JDK,log4 j and Tomcat,and the type of data analyzed in dependence graph is limited,because they only consider some class dependence relationships and omit certain useful data types,like member variables and local variables.In this paper,we all useful dependence relationships between entities or modules on both class and function levels,and we further propose a novel method to transform a system network into a weighted directed graph.Comprehensive experiment results show that the in- and out-degree of 10 types of Java application systems mostly fit the power law distributions,and our proposed method to detect the scale-free feature of a weighted and directed network is effective in analyzing Java application systems.