华东师范大学学报(自然科学版)

• 计算机科学 • 上一篇    下一篇

Java应用系统的复杂网络分析

沈娉婷; 陈良育;   

  1. 华东师范大学 上海市高可信计算重点实验室, 上海 200062
  • 收稿日期:2015-12-18 出版日期:2017-01-25 发布日期:2017-01-13
  • 通讯作者: 陈良育, 男, 副教授, 研究方向为符号计算. E-mail: lychen@sei.ecnu.edu.cn.
  • 基金资助:

    国家自然科学基金(61321064); 上海市重点学科建设项目(B412)

Complex network analysis in Java application systems

SHEN Ping-ting, CHEN Liang-yu   

  1. Shanghai Key Lab of Trustworthy Computing, East China Normal University, Shanghai 200062, China
  • Received:2015-12-18 Online:2017-01-25 Published:2017-01-13

摘要:

大量研究表明, Java 软件系统是一种人工复杂网络, 它的入度分布符合幂律, 然而出度却是对数正态分布. 现有的这些研究都仅仅以 Java 开发工具包, 如 JDK、log4j 和 Tomcat 这一类软件系统为研究对象. 除此之外, 所分析的数据类型也很有限, 只考虑了程序包与类的依赖关系, 忽略了很多有用的数据类型, 比如函数成员变量和函数临时变量. 本文将这两类数据类型纳入了研究范畴, 拓展了类依赖关系. 不仅如此, 本文也将研究粒度细化至函数层面, 构建了函数依赖图. 针对这两类依赖关系, 本文提出了将系统转化为加权有向网络图的理论方法. 全面的实验结果显示, 本文所选取的 10 类 Java 应用系统, 无论是出度还是入度绝大多数都符合幂律分布, 由此证明了所提出的理论方法, 验证了有向加权网络是否具有无标度特性在分析Java应用系统网络结构时是有效的.

关键词: 复杂网络, Java应用系统, 幂律分布, 类依赖图, 函数依赖图

Abstract:

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, log4j 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.

Key words: complex network, Java application systems, power law distribution, class dependence graph, function dependence graph