Class structure refactoring of object-oriented softwares using community detection in dependency networks

被引:0
作者
Weifeng Pan
Bing Li
Yutao Ma
Jing Liu
Yeyi Qin
机构
[1] Wuhan University,State Key Laboratory of Software Engineering
[2] Wuhan University,School of Computer
来源
Frontiers of Computer Science in China | 2009年 / 3卷
关键词
object-oriented (OO) software; software refactoring; class refactoring; complex networks; software dependency networks; community detection;
D O I
暂无
中图分类号
学科分类号
摘要
The quality of a software system is largely determined by its internal structures which always degrade over the software evolution. Therefore, the structures have to be reconditioned from time to time. However, the existing methods are very complex and resource-consuming when doing this task. In this paper, we present an approach to recondition the class structures of object-oriented (OO) software systems. It uses attribute-method networks and method-method networks to represent attributes, methods and dependencies between them; It proposes a guided community detection algorithm to obtain the optimized community structures in the method-method networks, which also correspond to the optimized class structures; It also provides a list of refactorings by comparing the optimized class structures with the real class structure in software systems and inspecting the attribute-method networks. The approach is evaluated using the open-source case study, JHotDraw 5.1, and the advantages of our approach are illustrated in comparison with existing methods.
引用
收藏
页码:396 / 404
页数:8
相关论文
共 36 条
[1]  
Mens T.(2004)A survey of software refactoring IEEE Transaction on Software Engineering 30 126-139
[2]  
Tourwé T.(1994)Using metrics to evaluate software system maintainability IEEE Computer Society 27 44-49
[3]  
Coleman D.M.(1983)Managing application program maintenance expenditure Communications of ACM 26 739-746
[4]  
Ash D.(2004)Defining and identifying communities in networks Proceedings of the National Academy of Science of the United States of America 101 2658-2663
[5]  
Lowther B.(2004)Fast algorithm for detecting community structure in networks Physical Review E 69 066133-284
[6]  
Guimaraes T.(1999)A quantitative framework for software restructuring Journal of Software Maintenance: Research and Practice Software Focus 11 245-49
[7]  
Radicchi F.(2006)Improving system design using a clustering approach International Journal of Computer Science and Network Security 6 40-442
[8]  
Castellano C.(1998)Collective dynamics of small world networks Nature 393 400-512
[9]  
Cecconi F.(1999)Emergence of scaling in random networks Science 286 509-307
[10]  
Newman M. E. J.(1970)An efficient heuristic procedure for portioning graphs Bell System Technical Journal 49 291-305