Victoria University

Using Clustering Techniques to Guide Refactoring of Object-Oriented Classes

ResearchArchive/Manakin Repository

Show simple item record

dc.contributor.advisor Andreae, Peter
dc.contributor.advisor Groves, Lindsay
dc.contributor.author Cassell, Keith
dc.date.accessioned 2012-05-04T02:43:05Z
dc.date.available 2012-05-04T02:43:05Z
dc.date.copyright 2012
dc.date.issued 2012
dc.identifier.uri http://researcharchive.vuw.ac.nz/handle/10063/2196
dc.description.abstract Much of the cost of software development is maintenance. Well structured software tends to be cheaper to maintain than poorly structured software, because it is easier to analyze and modify. The research described in this thesis concentrates on determining how to improve the structure of object-oriented classes, the fundamental unit of organization for object-oriented programs. Some refactoring tools can mechanically restructure object-oriented classes, given the appropriate inputs regarding what attributes and methods belong in the revised classes. We address the research question of determining what belongs in those classes, i.e., determining which methods and attributes most belong together and how those methods and attributes can be organized into classes. Clustering techniques can be useful for grouping entities that belong together; however, doing so requires matching an appropriate algorithm to the domain task and choosing appropriate inputs. This thesis identifies clustering techniques suitable for determining the redistribution of existing attributes and methods among object-oriented classes, and discusses the strengths and weaknesses of these techniques. It then describes experiments using these techniques as the basis for refactoring open source Java classes and the changes in the class quality metrics that resulted. Based on these results and on others reported in the literature, it recommends particular clustering techniques for particular refactoring problems. These clustering techniques have been incorporated into an open source refactoring tool that provides low-cost assistance to programmers maintaining object-oriented classes. Such maintenance can reduce the total cost of software development. en_NZ
dc.language.iso en_NZ
dc.publisher Victoria University of Wellington en_NZ
dc.subject Refactoring en_NZ
dc.subject Clustering en_NZ
dc.subject Object-oriented en_NZ
dc.title Using Clustering Techniques to Guide Refactoring of Object-Oriented Classes en_NZ
dc.type Text en_NZ
vuwschema.contributor.unit School of Engineering and Computer Science en_NZ
vuwschema.subject.marsden 280302 Software Engineering en_NZ
vuwschema.subject.marsden 280401 Analysis of Algorithms and Complexity en_NZ
vuwschema.type.vuw Awarded Doctoral Thesis en_NZ
thesis.degree.discipline Computer Science en_NZ
thesis.degree.grantor Victoria University of Wellington en_NZ
thesis.degree.level Doctoral en_NZ
thesis.degree.name Doctor of Philosophy en_NZ
vuwschema.subject.anzsrcfor 089999 Information and Computing Sciences not elsewhere classified en_NZ


Files in this item

This item appears in the following Collection(s)

Show simple item record

Search ResearchArchive


Advanced Search

Browse

My Account

Statistics