Please wait a minute...
Frontiers of Computer Science

ISSN 2095-2228

ISSN 2095-2236(Online)

CN 10-1014/TP

Postal Subscription Code 80-970

2018 Impact Factor: 1.129

Front. Comput. Sci.    2009, Vol. 3 Issue (3) : 396-404    https://doi.org/10.1007/s11704-009-0054-y
Research articles
Class structure refactoring of object-oriented softwares using community detection in dependency networks
Weifeng PAN 1, Yutao MA 1, Jing LIU 1, Yeyi QIN 1, Bing LI 2,
1.State Key Laboratory of Software Engineering, Wuhan University, Wuhan 430072, China; 2.State Key Laboratory of Software Engineering, Wuhan University, Wuhan 430072, China;School of Computer, Wuhan University, Wuhan 430072, China;
 Download: PDF(801 KB)  
 Export: BibTeX | EndNote | Reference Manager | ProCite | RefWorks
Abstract 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.
Keywords object-oriented (OO) software      software refactoring      class refactoring      complex networks      software dependency networks      community detection      
Issue Date: 05 September 2009
 Cite this article:   
Weifeng PAN,Jing LIU,Yutao MA, et al. Class structure refactoring of object-oriented softwares using community detection in dependency networks[J]. Front. Comput. Sci., 2009, 3(3): 396-404.
 URL:  
https://academic.hep.com.cn/fcs/EN/10.1007/s11704-009-0054-y
https://academic.hep.com.cn/fcs/EN/Y2009/V3/I3/396
Seng O, Stanmmel J, Burkhart D. Search-based determination of refactoring for improvingthe class structure of object-oriented system.In: Proceedings of Genetic and Evolutionary Computation Conference. 2006, 1235―1248
Mens T, Tourwé T. A survey ofsoftware refactoring. IEEE Transactionon Software Engineering, 2004, 30(2): 126―139

doi: 10.1109/TSE.2004.1265817
Fowler M. Refactoring-Improvingthe Design of Existing Code. New York: Addison Wesley, 1990
Coleman DM, Ash D, Lowther B, et al. Using metrics to evaluate software system maintainability. IEEE Computer Society, 1994, 27(8):44―49
Guimaraes T. Managingapplication program maintenance expenditure. Communications of ACM, 1983, 26(10): 739―746

doi: 10.1145/358413.358421
Fowler M. Improvingthe Design of Existing Code. New York: Addison Wesley, 1999
Brown WH, Malveau R, McCormick H, et al. Antipatterns: Refactoring Software, Architectures,and Projects in Crises. New York: John Wiley and Sons, 1998
Radicchi F, Castellano C, Cecconi F, et al. Defining and identifying communities in networks. In: Proceedings of the National Academy of Scienceof the United States of America. 2004, 101(9): 2658―2663

doi: 10.1073/pnas.0400054101
Newman M E J. Fast algorithm for detecting community structure in networks. Physical Review E, 2004, 69: 066133

doi: 10.1103/PhysRevE.69.066133
Kang B, Bieman J M. A quantitative frameworkfor software restructuring. Journal ofSoftware Maintenance: Research and Practice Software Focus, 1999, 11(4): 245―284

doi: 10.1002/(SICI)1096-908X(199907/08)11:4<245::AID-SMR193>3.0.CO;2-8
Ivkovic I, Kontogiannis K. A framework for softwarearchitecture refactoring using model transformations and semanticannotations. In: Proceedings of the Conferenceon Software Maintenance and Reengineering. 2006, 135―144
Dudzikan T, Wlodka J. Tool-supported discoveryand refactoring of structural weakness. Dissertaion for the master’s degree. Berlin: TU Berlin, 2002
Czibula I G, Serban G. Improving system design usinga clustering approach. International Journalof Computer Science and Network Security, 2006, 6(12): 40―49
Watts D J, Strogatz S H. Collective dynamics of smallworld networks. Nature, 1998, 393: 400―442

doi: 10.1038/30918
Barabási, Albert R. Emergence of scaling in random networks. Science, 1999, 286: 509―512

doi: 10.1126/science.286.5439.509
Kernighan B W, Lin S. An efficient heuristic procedurefor portioning graphs. Bell System TechnicalJournal, 1970, 49: 291―307
Fiedler M. Algebraicconnectivity of graphs. Czechoslovak MathematicalJournal, 1973, 23(98): 298―305
Scott J. Socialnetwork analysis: a handbook. London: Sage Publications Ltd, 2000
Girvan M, Newman M E J. Community structure in socialand biological networks. In: Proceedingsof Natl. Acad. Sci USA. 2002, 99(12):7821―7826

doi: 10.1073/pnas.122653799
Newman M E J, Girvan M. Finding and evaluating communitystructure in networks. Physical Review, 2004, 69: 026113
Newman M E J. Fast algorithm for detecting community structure in networks. Physical Review, 2004, 69: 066133
Wu F, Huberman B A. Finding communities in lineartime: a physics approach. Euro. Phys JB, 2003, 38: 331―338

doi: 10.1140/epjb/e2004-00125-x
Li Bing, Ma Yutao, Liu Jing, et al. Advances in the Studies on Complex Networksof Software Systems. Advances in Mechanics, 2008, 38(6): 805―814
Bauer M, Trifu M. Architecture-aware adaptiveclustering of OO systems. In: Proceedingsof the 8th European Conference on Software Maintenance and Reengineering. 2004, 3―14
Fortunato S, Barthelemy M. Resolution limit in communitydetection. In: Proceedings of the NationalAcademy of Science of the USA. 2007, 104: 36―41

doi: 10.1073/pnas.0605965104
Mancoridis S,Mitchell BS, Rorres C, et al. Using automatic clustering to produce high-levelsystem organizations of source code. In:Proceedings of 6th International Workshop on Program Comprehension. 1998, 45―53
Tucker A, Swift S, Liu X. Grouping multivariate time series via correlation. IEEE Transaction on Systems, Man, and Cybernetics.Part B. Cybernetics, 2001, 31(2): 235―245
Srivastava A, Schertz C. Efficient integration testingusing dependency analysis. Microsoft Research-TechnicalReport, MSR-TR-2005-94, 2005
Borgatti S P, Everett M G, Freeman L C. Ucinet for windows: software for social network analysis. Analytic Technologies, Harvard, MA, 2002
[1] Ruidong YAN, Yi LI, Deying LI, Weili WU, Yongcai WANG. SSDBA: the stretch shrink distance based algorithm for link prediction in social networks[J]. Front. Comput. Sci., 2021, 15(1): 151301-.
[2] Qianchen YU, Zhiwen YU, Zhu WANG, Xiaofeng WANG, Yongzhi WANG. Estimating posterior inference quality of the relational infinite latent feature model for overlapping community detection[J]. Front. Comput. Sci., 2020, 14(6): 146323-.
[3] Wenmei LIU,Hui LIU. Major motivations for extract method refactorings: analysis based on interviews and change histories[J]. Front. Comput. Sci., 2016, 10(4): 644-656.
[4] Wei DUAN, Zongchen FAN, Peng ZHANG, Gang GUO, Xiaogang QIU. Mathematical and computational approaches to epidemic modeling: a comprehensive review[J]. Front. Comput. Sci., 2015, 9(5): 806-826.
[5] Zihou WANG, Yanni HAN, Tao LIN, Yuemei XU, Song CI, Hui TANG. Topology-aware virtual network embedding based on closeness centrality[J]. Front Comput Sci, 2013, 7(3): 446-457.
[6] Ji LIU , Guishi DENG , . Detecting community structure in networks by representative energy[J]. Front. Comput. Sci., 2009, 3(3): 366-372.
[7] Zonghua LIU , Xiaoyan WU , Pak-Ming HUI , . An alternative approach to characterize the topology of complex networks and its application in epidemic spreading[J]. Front. Comput. Sci., 2009, 3(3): 324-334.
[8] Lili RONG , Tianzhu GUO , Jiyong ZHANG , . A new centrality measure based on sub-tree[J]. Front. Comput. Sci., 2009, 3(3): 356-360.
Viewed
Full text


Abstract

Cited

  Shared   
  Discussed