|
|
|
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; |
|
|
|
|
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
|
|
|
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
|
|
Viewed |
|
|
|
Full text
|
|
|
|
|
Abstract
|
|
|
|
|
Cited |
|
|
|
|
| |
Shared |
|
|
|
|
| |
Discussed |
|
|
|
|