2013USC Research Bank (University of the Sunshine Coast)Requires access

End-to-end semi-automated software refactoring: Improving the usability of refactoring tools

Erica Mealy

Open publisher page 0 citations

Abstract

Few pieces of software are ideal. Requirements may change during design, development or even post deployment, which necessitates the evolution of the software. One process that aides the evolution of software is software refactoring. Software refactoring is a process that aims to remove the `bad smells' of poor code without changing the observable behaviour. The use of refactoring can yield higher-quality code that is easier to maintain, understand and modify. Software refactoring tools support the process of software refactoring by automating key parts of the process. Software refactoring tools, like software development environments, are often designed with little or no user input. This lack of user involvement has been attributed to the tool designers considering themselves examples of their users. The designers of software refactoring tools are not typical users of such tools, due to their detailed knowledge of the inner workings of development languages and compilers. Therefore, it is important to consider the usability of refactoring tools with a typical user in mind. Current refactoring tools suffer from a number of usability issues, the foremost of these being inadequate consideration of the level of automation and support for the whole refactoring process. Full automation of any process involving human users, whilst seemingly desired by the users themselves, can have negative effects on a user's understanding of the system. Therefore, it is important to develop refactoring support with a focus on providing automation that is balanced with maintaining user awareness and involvement. This thesis reports the design, development and evaluation of the StenchBlossom++ end-to-end, semi-automated software refactoring tool which better caters for the needs of software refactoring tool users. To achieve this, Nielsen's Usability Engineering Life Cycle was applied to the software refactoring process to take a first-principles approach to the design of refactoring tool support with usability in mind. By semi-automating the process of software refactoring, StenchBlossom++ provides support which automates the refactoring process whilst still involving the user and maintaining their understanding of the code-under-edit. During the evaluation, StenchBlossom++ exhibited improved usability. Additionally, when tested by nine industrial software developers in a pilot user study, this end-to-end, semi-automated approach better supported the refactoring process than existing tools. The results of the evaluation of StenchBlossom++ support the hypothesis that a refactoring tool could be designed and built that better supports users completing the entire software refactoring process.

About this research paper

What this paper is about

Few pieces of software are ideal. Requirements may change during design, development or even post deployment, which necessitates the evolution of the software. One process that aides the evolution of software is software refactoring. Software refactoring is a process that aims to remove the `bad smells' of poor code without changing the observable behaviour. The use of refactoring can yield higher-quality code that is easier to maintain, understand and modify. Software refactoring tools support the process of software refactoring by automating key parts of the process. Software refactoring tools, like software development environments, are often designed with little or no user input. This lack of user involvement has been attributed to the tool designers considering themselves examples of their users. The designers of software refactoring tools are not typical users of such tools, due to their detailed knowledge of the inner workings of development languages and compilers. Therefore, it is important to consider the usability of refactoring tools with a typical user in mind. Current refactoring tools suffer from a number of usability issues, the foremost of these being inadequate consideration of the level of automation and support for the whole refactoring process. Full automation of any process involving human users, whilst seemingly desired by the users themselves, can have negative effects on a user's understanding of the system. Therefore, it is important to develop refactoring support with a focus on providing automation that is balanced with maintaining user awareness and involvement. This thesis reports the design, development and evaluation of the StenchBlossom++ end-to-end, semi-automated software refactoring tool which better caters for the needs of software refactoring tool users. To achieve this, Nielsen's Usability Engineering Life Cycle was applied to the software refactoring process to take a first-principles approach to the design of refactoring tool support with usability in mind. By semi-automating the process of software refactoring, StenchBlossom++ provides support which automates the refactoring process whilst still involving the user and maintaining their understanding of the code-under-edit. During the evaluation, StenchBlossom++ exhibited improved usability. Additionally, when tested by nine industrial software developers in a pilot user study, this end-to-end, semi-automated approach better supported the refactoring process than existing tools. The results of the evaluation of StenchBlossom++ support the hypothesis that a refactoring tool could be designed and built that better supports users completing the entire software refactoring process.

Why it matters

A significance statement is not available in the OpenAlex record.

Key contribution

A contribution statement is not available in the OpenAlex record.

Method / approach

Method details are not available in the OpenAlex metadata.

Main findings

Findings are not separately available in the OpenAlex metadata.

Limitations

Limitations are not available in the OpenAlex metadata.

Applications

Application details are not available in the OpenAlex metadata.

Available abstract

Few pieces of software are ideal. Requirements may change during design, development or even post deployment, which necessitates the evolution of the software. One process that aides the evolution of software is software refactoring. Software refactoring is a process that aims to remove the `bad smells' of poor code without changing the observable behaviour. The use of refactoring can yield higher-quality code that is easier to maintain, understand and modify. Software refactoring tools support the process of software refactoring by automating key parts of the process. Software refactoring tools, like software development environments, are often designed with little or no user input. This lack of user involvement has been attributed to the tool designers considering themselves examples of their users. The designers of software refactoring tools are not typical users of such tools, due to their detailed knowledge of the inner workings of development languages and compilers. Therefore, it is important to consider the usability of refactoring tools with a typical user in mind. Current refactoring tools suffer from a number of usability issues, the foremost of these being inadequate consideration of the level of automation and support for the whole refactoring process. Full automation of any process involving human users, whilst seemingly desired by the users themselves, can have negative effects on a user's understanding of the system. Therefore, it is important to develop refactoring support with a focus on providing automation that is balanced with maintaining user awareness and involvement. This thesis reports the design, development and evaluation of the StenchBlossom++ end-to-end, semi-automated software refactoring tool which better caters for the needs of software refactoring tool users. To achieve this, Nielsen's Usability Engineering Life Cycle was applied to the software refactoring process to take a first-principles approach to the design of refactoring tool support with usability in mind. By semi-automating the process of software refactoring, StenchBlossom++ provides support which automates the refactoring process whilst still involving the user and maintaining their understanding of the code-under-edit. During the evaluation, StenchBlossom++ exhibited improved usability. Additionally, when tested by nine industrial software developers in a pilot user study, this end-to-end, semi-automated approach better supported the refactoring process than existing tools. The results of the evaluation of StenchBlossom++ support the hypothesis that a refactoring tool could be designed and built that better supports users completing the entire software refactoring process.

Key concepts: Code refactoring, Computer science, Software engineering, Software development, Usability, Software system, Process (computing), Software development process

Related papers

Back to paper searchBrowse research topicsOriginal source
End-to-end semi-automated software refactoring: Improving the usability of refactoring tools — Research Paper | ScholarLens