计算机科学

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

  • 沈娉婷 ,
  • 陈良育
展开
  • 华东师范大学 上海市高可信计算重点实验室, 上海 200062

收稿日期: 2015-12-18

  网络出版日期: 2017-01-13

基金资助

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

Complex network analysis in Java application systems

  • SHEN Ping-ting ,
  • CHEN Liang-yu
Expand
  • Shanghai Key Lab of Trustworthy Computing, East China Normal University, Shanghai 200062, China

Received date: 2015-12-18

  Online published: 2017-01-13

摘要

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

本文引用格式

沈娉婷 , 陈良育 . Java应用系统的复杂网络分析[J]. 华东师范大学学报(自然科学版), 2017 , 2017(1) : 38 -51 . DOI: 10.3969/j.issn.1000-5641.2017.01.006

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.

参考文献

[ 1 ] CONCAS G, MARCHESI M, PINNA S, et al. Power-laws in a large object-oriented software system [J]. IEEE Trans Softw Eng, 2007, 33: 687-708.
[ 2 ] DE MOURA A P, LAI Y C, MOTTER A E. Signatures of small-world and scale-free properties in large computer programs [J]. Phys Rev E, 2003, 68: 017102. DOI: 1103/PhysRevE.68.017102.
[ 3 ] KOHRING G A. Complex dependencies in large software systems [J]. Adv Complex Syst, 2009, 12: 565-581.
[ 4 ] LABELLE N, WALLINGFORD E. Inter-package dependency networks in open-source software [J]. Computer Science, arXiv: cs/0411096v1.
[ 5 ] MAILLART T, SORNETTE D, SPAETH S, et al. Empirical tests of Zipf ’s law mechanism in open source linux distribution [J]. Phys Rev Lett, 2008, 101: 218-701.
[ 6 ] ZHENG X, ZENG D, LI H, et al. Analyzing open-source software systems as complex networks [J]. Physica A,2008, 387: 6190-6200.
[ 7 ] HYLAND-WOOD D, CARRINGTON D, KAPLAN S. Scale-free nature of java software package, class and method collaboration graphs [C]//Submitted to the 5th International Symposium on Empirical Software Engineering. 2005.
[ 8 ] FORMAN I R, FORMAN N. Java Reflection in Action [M]. [S.l.]: Manning Publications, 2004: 121-142.
[ 9 ] GIULIO C, MICHELE M, SANDRO P, NICOLA S. On the suitability of Yule process to stochastically model some properties of object-oriented systems [J]. Physica A, 2006, 370: 817-831.
[10] GU Q, XIONG S J, CHEN D X. Correlations between characteristics of maximum influence and degree distributions in software networks [J]. Sci China Inf Sci, 2014, 57(7). DOI: 10.1007/s11432-013-5047-7.
[11] LI C F, LIU L Z, LI X Y. Software networks of Java class and application in fault localization [C]//Proceedings of the International Conference on Intelligent Systems Design and Engineering Application. 2012: 1117-1120.
[12] TETSUO T, TAKAKO N. Analysis of software evolution processes using statistical distribution models [C]//Proc International Workshop Principles of Software Evolution (IWPSE). 2002: 120-123.
[13] LI D Y, HAN Y N, HU J. Complex network thinking in software engineering [C]//Proceedings of the International Conference on Computer Science and Software Engineering, 2008, 1: 264-268.
[14] WHEELDON R, COURNSELL S. Power law distributions in class relationships [C]//Proceedings of the 3rd IEEE International Workshop Source Code Analysis and Manipulation. 2003: 45-54.
[15] VENNERS B. Inside the Java Virtual Machine [M]. 2nd edition. New York: The McGraw-Hill Companies, Inc., 1996: 563-570.
[16] BRUEGGE B, DUTOIT A H. Object-Oriented Software Engineering using UML, Patterns and Java-(Required) [M]. Upper Saddle River, NJ, USA:Prentice Hall Press, 2004: 29-77.
[17] ROUBTSOV V. Cracking Java byte-code encryption [R/OL]. (2003)[2015-01-12]. http://www.javaworld.com/\linebreakarticle/2077342/core-jave/cracking-java-byte-code-encryption.html.
[18] MCCLUSKEY G. Using Java reflection [R/OL]. (1998-01-06)[2015-01-12].http://www.oracle.com/technetwork/\linebreakarticles/java/javareflection-1536171.html.
[19] The JavaTM tutorial [R/OL]. 6th edition. (2015)[2015-01-12]http://docs.oracle.com/javase/tutorial/.
[20] ATANAS R, ANA M, BARBARA G R. Fragment class analysis for testing of polymorphism in Java software [J]. IEEE Trans Softw Eng, 2004, 30:372-386.
[21] CLAUSET A, SHALIZI C R, NEWMAN M E J. Power-law distributions in empirical data [J]. SIAM Review, 2009, 51: 661-703.
[22] MYERS C R. Software systems as complex networks: structure, function, and evolvability of software collaboration graphs [J].Phys Rev E, 2003, 68: 046-116.
[23] NEWMAN, M. E. J. Networks An Introduction [M]. London: Oxford University Press, 2010: 235-266.
[24] ALBERT L B, R\'EKA A. Emergence of scaling in random networks [J].Science, 1999, 286: 509-512.
[25] CHEN T, LI K W, WANG S R, et al. Design and implementation of a tool of Java program analysis based on complex networks (in Chinese) [J].Computer Science, 2009, 36(4): 145-150.

文章导航

/