期刊文献+

Refactoring Software Packages via Community Detection in Complex Software Networks 被引量:4

Refactoring Software Packages via Community Detection in Complex Software Networks
原文传递
导出
摘要 An intrinsic property of software in a real-world environment is its need to evolve, which is usually accompanied by the increase of software complexity and deterioration of software quality, making software maintenance a tough problem. Refactoring is regarded as an effective way to address this problem. Many refactoring approaches at the method and class level have been proposed. But the research on software refactoring at the package level is very little. This paper presents a novel approach to refactor the package structures of object oriented software. It uses software networks to represent classes and their dependencies. It proposes a constrained community detection algorithm to obtain the optimized community structures in software networks, which also correspond to the optimized package structures. And it finally provides a list of classes as refactoring candidates by comparing the optimized package structures with the real package structures. The empirical evaluation of the proposed approach has been performed in two open source Java projects, and the benefits of our approach are illustrated in comparison with the other three approaches. An intrinsic property of software in a real-world environment is its need to evolve, which is usually accompanied by the increase of software complexity and deterioration of software quality, making software maintenance a tough problem. Refactoring is regarded as an effective way to address this problem. Many refactoring approaches at the method and class level have been proposed. But the research on software refactoring at the package level is very little. This paper presents a novel approach to refactor the package structures of object oriented software. It uses software networks to represent classes and their dependencies. It proposes a constrained community detection algorithm to obtain the optimized community structures in software networks, which also correspond to the optimized package structures. And it finally provides a list of classes as refactoring candidates by comparing the optimized package structures with the real package structures. The empirical evaluation of the proposed approach has been performed in two open source Java projects, and the benefits of our approach are illustrated in comparison with the other three approaches.
出处 《International Journal of Automation and computing》 EI CSCD 2013年第2期157-166,共10页 国际自动化与计算杂志(英文版)
基金 supported by National Natural Science Foundation of China(No. 61202048) Zhejiang Provincial Nature Science Foundation of China(No. LQ12F02011) Open Foundation of State Key Laboratory of Software Engineering of Wuhan University of China(No. SKLSE-2012-09-21)
关键词 REFACTORING community detection complex networks PACKAGE SOFTWARE Refactoring; community detection; complex networks; package; software
  • 相关文献

参考文献28

  • 1T. Mens, T. Tourwe. A survey of software refactoring IEEE Transactions on Software Engineering, vol. 30, no. 2 pp. 126-139, 2004. 被引量:1
  • 2M. Fowler, K. Beck. Refactoring: Improving the Design of Existing Code, New York, USA: Addison Wesley, pp. 260- 266, 1999. 被引量:1
  • 3W. F. Pan, B. Li, Y. T. Ma, J. Liu, Y. Y. Qin. Class struc- ture refatoring of object-oriented softwares using commu- nity detection in dependency networks. Frontiers of Com- puter Science in China, vol. 3, no. 3, pp. 396-404, 2009. 被引量:1
  • 4W. J. Brown, R. C. Malveau, H. W. McCormick, T. J. Mow- bray. AntiPatterns: Refactoring Software, Architectures, and Projects in Crises, New York, USA: John Wiley and Sons, pp. 47-56, 1998. 被引量:1
  • 5O. Seng, J. Stanmmel, D. Burkhart. Search-based deter- mination of refactorings for improving the class structure of object-oriented systems. In Proceedings of the 8th An- nual Conference on Genetic and Evolutionary Computa- tion, ACM, New York, USA, pp. 1909-1916, 2006. 被引量:1
  • 6C. R. Myers. Software systems as complex networks: Struc- ture, function, and evolvability of software collaboration graphs. Physical Review E, vol. 68, no. 4, 046116, 2003. 被引量:1
  • 7A. Potanin, J. Noble, M. Frean, R. Biddle. Scale-free geom- etry in OO programs. Communications of the ACM, vol. 48, no. 5, pp. 99-103, 2005. 被引量:1
  • 8G. Concas, M. Marchesi, S. Pinna, N. Serra. Power-laws in a large object-oriented software system. IEEE Transactions on Software Engineering, vol. 33, no. 10, pp. 687-708, 2007. 被引量:1
  • 9W. F. Pan, B. Li, Y. T. Ma, Y. Y. Qin, X. Y. Zhou. Mea- suring structural quality of object-oriented softwares via bug propagation analysis on weighted software networks. Journal of Computer Science and Technology, vol. 25, no. 6, pp. 1202-1213, 2010. 被引量:1
  • 10K. Maruyama, K. Shima. Automatic method refactoring us- ing weighted dependence graphs. In Proceedings of the 21st International Conference on Software Engineering, ACM, Los Angeles, CA, USA, pp. 236-245, 1999. 被引量:1

同被引文献21

引证文献4

二级引证文献5

相关作者

内容加载中请稍等...

相关机构

内容加载中请稍等...

相关主题

内容加载中请稍等...

浏览历史

内容加载中请稍等...
;
使用帮助 返回顶部