ACM Home Page
Please provide us with feedback. Feedback
Identifying refactoring opportunities by identifying dependency cycles
Full text PdfPdf (109 KB)
Source ACM International Conference Proceeding Series; Vol. 171 archive
Proceedings of the 29th Australasian Computer Science Conference - Volume 48 table of contents
Hobart, Australia
Pages: 35 - 41  
Year of Publication: 2006
ISBN ~ ISSN:1445-1336 , 1-920682-30-9
Authors
Hayden Melton  Department of Computer Science, University of Auckland, Auckland, New Zealand
Ewan Tempero  Department of Computer Science, University of Auckland, Auckland, New Zealand
Publisher
Australian Computer Society, Inc.  Darlinghurst, Australia, Australia
Bibliometrics
Downloads (6 Weeks): 4,   Downloads (12 Months): 41,   Citation Count: 4
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Review this Article  

ABSTRACT

The purpose of refactoring is to improve the quality of a software system by changing its internal design so that it is easier to understand or modify, or less prone to errors and so on. One challenge in performing a refactoring is quickly determining where to apply it. We present a tool (Jepends) that analyses the source code of a system in order to identify classes as possible refactoring candidates. Our tool identifies dependency cycles among classes because long cycles are detrimental to understanding, testing and reuse. We demonstrate our tool on a widely-downloaded, open-source, medium-sized Java program and show how cycles can be eliminated through a simple refactoring.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
 
2
Azureus (2005), 'Azureus project page', http:// azureus.sourceforge.net. Sourceforge project page for Azureus.
 
3
 
4
 
5
6
 
7
 
8
 
9
Hautus, E. (2002), Improving java software through package structure analysis, in 'The 6th IASTED International Conference Software Engineering and Applications'.
 
10
Kuck, D., Muraoka, Y. & Chen, S. (1972), 'On the number of operations simultaneously executable in fortran-like programs and their resulting speedup', IEEE Transactions on Computers 21(12).
 
11
Lagorio, G. (2004), 'Capturing ghost dependencies in java sources', Journal of Object Technology 3(11), 77-95. URL: http://www.jot.fm/issues/ issue_2004_12/article4
 
12
 
13
 
14
Marchesi, M., Pinna, S., Serra, N. & Tuveri, S. (2004), Power laws in smalltalk, in 'ESUG Conference 2004 Research Track'. URL: http://www.iam.unibe.ch/ publikationen/techreports/2004/ iam-04-008/file/at_download
 
15
Martin, R. C. (1996), Granularity, in 'The C++ Report'. http://www.objectmentor.com/ resources/articles/granularity.pdf.
 
16
 
17
 
18
Wheeldon, R. & Counsell, S. (2003), Power law distributions in class relationships, in 'Third IEEE International Workshop on Source Code Analysis and Manipulation', p. 45.
 
19


Collaborative Colleagues:
Hayden Melton: colleagues
Ewan Tempero: colleagues