Search engine for discovering works of Art, research articles, and books related to Art and Culture
ShareThis
Javascript must be enabled to continue!

Using Clustering Techniques to Guide Refactoring of Object-Oriented Classes

View through CrossRef
<p>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.</p>
Victoria University of Wellington Library
Title: Using Clustering Techniques to Guide Refactoring of Object-Oriented Classes
Description:
<p>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.
</p>.

Related Results

A Systematic Literature Review on Software- refactoring Techniques, Challenges, and Practices
A Systematic Literature Review on Software- refactoring Techniques, Challenges, and Practices
Abstract Software-refactoring improves the quality and reduces the complexity during the whole life cycle of the software system. The objective of this work is to elicit th...
Refactoring for Java-Structured Concurrency
Refactoring for Java-Structured Concurrency
Structured concurrency treats multiple tasks running in different threads as a single unit, thereby improving reliability and enhancing observability. The existing IDE (Integrated ...
A Task-driven Grammar Refactoring Algorithm
A Task-driven Grammar Refactoring Algorithm
This paper presents our proposal and the implementation of an algorithm for automated refactoring of context-free grammars. Rather than operating under some domain-specific task, i...
Investigating the Refactoring Capabilities of Small Open-Weight Language Models
Investigating the Refactoring Capabilities of Small Open-Weight Language Models
Refactoring is essential for developing maintainable software. Using Large Language Models in software engineering is widespread, but compared to well-established domains such as c...
The Study on Software Architecture Smell Refactoring
The Study on Software Architecture Smell Refactoring
Abstract Maintenance and complexity issues in software development continue to increase because of new requirements and software evolution, and refactoring is required to h...
Empirical evaluation of feature selection and machine learning techniques to recommend clones for software refactoring
Empirical evaluation of feature selection and machine learning techniques to recommend clones for software refactoring
The article’s subject matter deals with the management of software clones. Software clones are duplicate code fragments that can exist in the same or different software files. Soft...
The Kernel Rough K-Means Algorithm
The Kernel Rough K-Means Algorithm
Background: Clustering is one of the most important data mining methods. The k-means (c-means ) and its derivative methods are the hotspot in the field of clustering research in re...
Optimizing machine learning techniques for genomics clustering
Optimizing machine learning techniques for genomics clustering
Optimisation des techniques d’apprentissage automatique pour le clustering génomique Dans le domaine de la bioinformatique, le clustering est une technique efficace...

Back to Top