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 |