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

Mealy, Erica Maree (2013). End-to-end semi-automated software refactoring: Improving the usability of refactoring tools PhD Thesis, School of Information Technology and Electrical Engineering, The University of Queensland.

       
Attached Files (Some files may be inaccessible until you login with your UQ eSpace credentials)
Name Description MIMEType Size Downloads
s006727_phd_finalThesis.pdf Thesis full text application/pdf 2.89MB 13
Author Mealy, Erica Maree
Thesis Title End-to-end semi-automated software refactoring: Improving the usability of refactoring tools
Formatted title
End-to-End Semi-automated Software Refactoring: Improving the Usability of Refactoring Tools
School, Centre or Institute School of Information Technology and Electrical Engineering
Institution The University of Queensland
Publication date 2013-05
Thesis type PhD Thesis
Supervisor Paul Strooper
Jim Steel
Total pages 278
Total colour pages 18
Total black and white pages 260
Language eng
Subjects 0803 Computer Software
Formatted 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.
Keyword Software refactoring
Usability
Java
Code-Smells
Software engineering

 
Citation counts: Google Scholar Search Google Scholar
Created: Mon, 20 May 2013, 11:36:49 EST by Erica Mealy on behalf of Scholarly Communication and Digitisation Service