计算机科学 ›› 2018, Vol. 45 ›› Issue (8): 166-173.doi: 10.11896/j.issn.1002-137X.2018.08.030

• 软件与数据库技术 • 上一篇    下一篇

基于复杂网络理论的Java开源系统演化分析

唐倩文, 陈良育   

  1. 上海市高可信计算重点实验室 上海200062
  • 收稿日期:2017-05-22 出版日期:2018-08-29 发布日期:2018-08-29
  • 作者简介:唐倩文(1993-),女,硕士生,CCF会员,主要研究方向为程序分析与验证,E-mail:51151500126@stu.ecnu.edu.cn; 陈良育(1980-),男,副教授,主要研究方向为计算机软件与理论,E-mail:lychen@sei.ecnu.edu.cn(通信作者)。
  • 基金资助:
    本文受上海市教委本科重点课程项目:Java核心原理精讲和技术实践资助。

Analysis of Java Open Source System Evolution Based on Complex Network Theory

TANG Qian-wen, CHEN Liang-yu   

  1. Shanghai Key Laboratory of Trustworthy Computing,Shanghai 200062,China
  • Received:2017-05-22 Online:2018-08-29 Published:2018-08-29

摘要: 随着软件版本的快速迭代,软件代码的规模迅速扩大,软件设计与质量问题已引起了IT领域的广泛关注。利用复杂网络理论研究软件系统的整体性质已经成为解决这些问题的一种重要方法。将软件源码依赖关系表征为网络,借助复杂网络方法,可以更深入地了解代码宏观层面的结构组成并掌握整体演化趋势,有助于开发者优化整体架构,使软件更稳定、性能更好。Tomcat是一种开源的主流Java EE应用服务器,已经在工业界得到了广泛的应用。基于复杂网络方法,通过研究Tomcat的21个历史版本,发现这些版本的类依赖关系网络满足小世界网络性质和无标度网络性质;同时深度分析了其中9个版本的演化过程,发现Tomcat具有优先连接倾向,因而能一直保持软件的鲁棒性。

关键词: Tomcat, 复杂网络理论, 鲁棒性, 软件演化, 优先连接

Abstract: With the fast iteration of software version and the rapid development of software scale,software design and quality issues have aroused wide spread concern in the IT field.Using complex network theory to study the characteristics of software systems has become an important way to solve these problems.Characterizing software source code dependencies as a network,with the complex network method,the structure of the macroscopic level of the code can be deeply understood and the overall evolution trend can be grasped,which help the developers optimize the software architecture and make it better.As an open-source mainstream Java EE application server,Tomcat has been widely used in industry applications.Based on the complex network method,the conclusion comes out that Tomcat’s class dependency networks of all history versions satisfy the nature of small-world network and scale-free network.By deeply analyzing the evolution process of the nine versions,this paper found that Tomcat shows preferential attachment phenomenon,so it can maintain the robustness of software.

Key words: Complex network theory, Preferential attachment, Robustness, Software evolution, Tomcat

中图分类号: 

  • TP311.5
[1]HE K,PENG R,LIU J,et al.Design methodology of networked software evolution growth based on software patterns[J].Journal of Systems Science and Complexity,2006,19(2):157-181.
[2]GODFREY M W,TU Q.Evolution in open source software:A case study[C]∥International Conference on Software Maintenance.IEEE,2000:131.
[3]TIAN H,ZHAO H.Metrics for software structure complexity based on software weighted network[J].Computer Science,2016,43(S2):506-508.(in Chinese) 田鹤,赵海.基于软件加权网络的软件结构复杂性度量[J].计算机科学,2016,43(S2):506-508.
[4]WANG L,WANG Z,YANG C,et al.Linux kernels as complex networks:A novel method to study evolution[C]∥IEEE International Conference on Software Maintenance.IEEE,2009:41-50.
[5]VASA R,SCHNEIDER J G,NIERSTRASZ O.The inevitable stability of software change[C]∥IEEE International Conference on Software Maintenance.DBLP,2007:4-13.
[6]SHEN P T,CHEN L Y.Complex network analysis in Java application systems[J].Journal of East China Normal University Natural (Natural Science),2017(1):38-51.(in Chinese)沈娉婷,陈良育.Java应用系统的复杂网络分析.华东师范大学学报(自然科学版),2017(1):38-51.
[7]MYERS C R.Software systems as complex networks:structure,function,and evolvability of software collaboration graphs[J].Physical Review E,2003,68(4):046116.
[8]BARABÁSI A L,ALBERT R.Emergence of scaling in random networks[J].Science,1999,286(5439):509-512.
[9]汪小帆,李翔,陈关荣.网络科学导论[M].北京:高等教育出版社,2012:81-293.
[10]NEWMAN M E J,WATTS D J.Renormalization group analysis of the small-world network model[J].Physics Letters A,1999,263(4-6):341-346.
[11]CLAUSET A,SHALIZI C R,NEWMAN M E J.Power-Lawdistributions in empirical data[J].Siam Review,2007,51(4):661-703.
[12]WATTS D J,STROGATZ S H.Collective dynamics of ‘small-world’ networks[J].Nature,1998,393(6684):440-442.
[13]LOVROŠUBEL J,BAJEC M.Software systems through complex networks science:review,analysis and applications[C]∥International Workshop on Software Mining.2012:9-16.
[1] 周慧, 施皓晨, 屠要峰, 黄圣君.
基于主动采样的深度鲁棒神经网络学习
Robust Deep Neural Network Learning Based on Active Sampling
计算机科学, 2022, 49(7): 164-169. https://doi.org/10.11896/jsjkx.210600044
[2] 闫萌, 林英, 聂志深, 曹一凡, 皮欢, 张兰.
一种提高联邦学习模型鲁棒性的训练方法
Training Method to Improve Robustness of Federated Learning
计算机科学, 2022, 49(6A): 496-501. https://doi.org/10.11896/jsjkx.210400298
[3] 张程瑞, 陈俊杰, 郭浩.
静息态人脑功能超网络模型鲁棒性对比分析
Comparative Analysis of Robustness of Resting Human Brain Functional Hypernetwork Model
计算机科学, 2022, 49(2): 241-247. https://doi.org/10.11896/jsjkx.201200067
[4] 穆俊芳, 郑文萍, 王杰, 梁吉业.
基于重连机制的复杂网络鲁棒性分析
Robustness Analysis of Complex Network Based on Rewiring Mechanism
计算机科学, 2021, 48(7): 130-136. https://doi.org/10.11896/jsjkx.201000108
[5] 王学光, 张爱新, 窦炳琳.
复杂网络上的非线性负载容量模型
Non-linear Load Capacity Model of Complex Networks
计算机科学, 2021, 48(6): 282-287. https://doi.org/10.11896/jsjkx.200700040
[6] 张久杰, 陈超, 聂宏轩, 夏玉芹, 张丽萍, 马占飞.
基于类粒度的克隆代码群稳定性实证研究
Empirical Study on Stability of Clone Code Sets Based on Class Granularity
计算机科学, 2021, 48(5): 75-85. https://doi.org/10.11896/jsjkx.200900062
[7] 王继文, 吴毅坚, 彭鑫.
基于演化和语义特征的上帝类检测方法
Approach of God Class Detection Based on Evolutionary and Semantic Features
计算机科学, 2021, 48(12): 59-66. https://doi.org/10.11896/jsjkx.210100077
[8] 仝鑫, 王斌君, 王润正, 潘孝勤.
面向自然语言处理的深度学习对抗样本综述
Survey on Adversarial Sample of Deep Learning Towards Natural Language Processing
计算机科学, 2021, 48(1): 258-267. https://doi.org/10.11896/jsjkx.200500078
[9] 何鹏, 喻绿君.
面向群体协作开发的开源软件峭壁分析
Analysis of Open Source Software Cliff Walls for Group Collaborative Development
计算机科学, 2020, 47(6): 51-58. https://doi.org/10.11896/jsjkx.190300140
[10] 吴庆洪, 高晓东.
稀疏表示和支持向量机相融合的非理想环境人脸识别
Face Recognition in Non-ideal Environment Based on Sparse Representation and Support Vector Machine
计算机科学, 2020, 47(6): 121-125. https://doi.org/10.11896/jsjkx.190500058
[11] 张静宣, 江贺.
代码标识符归一化研究现状及发展趋势
Research Status and Development Trend of Identifier Normalization
计算机科学, 2020, 47(3): 1-4. https://doi.org/10.11896/jsjkx.200200009
[12] 卢冬冬, 吴洁, 刘鹏, 盛永祥.
开源软件关键开发者类型及协作网络鲁棒性分析
Analysis of Key Developer Type and Robustness of Collaboration Network in Open Source Software
计算机科学, 2020, 47(12): 100-105. https://doi.org/10.11896/jsjkx.200300147
[13] 陈晓文, 刘光帅, 刘望华, 李旭瑞.
结合LoG边缘检测和增强局部相位量化的模糊图像识别
Blurred Image Recognition Based on LoG Edge Detection and Enhanced Local Phase Quantization
计算机科学, 2020, 47(12): 197-204. https://doi.org/10.11896/jsjkx.191000054
[14] 钟林辉, 扶丽娟, 叶海涛, 齐杰, 徐静.
软件演化历史的逆向工程生成方法研究
Study on Reverse Engineering Generation Method of Software Evolution History
计算机科学, 2020, 47(11A): 549-556. https://doi.org/10.11896/jsjkx.200200067
[15] 高利剑,毛启容.
环境辅助的多任务混合声音事件检测方法
Environment-assisted Multi-task Learning for Polyphonic Acoustic Event Detection
计算机科学, 2020, 47(1): 159-164. https://doi.org/10.11896/jsjkx.190200365
Viewed
Full text


Abstract

Cited

  Shared   
  Discussed   
No Suggested Reading articles found!