Show simple item record

dc.contributor.authorEilertsen, Anna Maria
dc.date.accessioned2021-12-14T07:13:17Z
dc.date.available2021-12-14T07:13:17Z
dc.date.issued2021-12-22
dc.date.submitted2021-12-08T14:12:03.573Z
dc.identifiercontainer/70/67/b7/bd/7067b7bd-94b1-465a-b8a9-08bdb80da08e
dc.identifier.isbn9788230848067
dc.identifier.isbn9788230854334
dc.identifier.urihttps://hdl.handle.net/11250/2834069
dc.description.abstractAll successful software gets changed. Developers undertake software change tasks by editing the software’s source code to meet new demands. Often, the edits they make are aligned with refactorings and can be performed automatically with refactoring tools that are found in the developers programming environments. Refactorings are time-consuming and error-prone to apply manually. Consequently, automated refactoring tools hold the promise of many benefits, such as the ability to change software faster and with fewer errors. It is therefore surprising that developers largely eschew these tools in favor of applying refactorings manually. Despite the extensive refactoring support of mainstream development environments and despite several decades of research into how these tools can be improved, this disuse still persists. In this dissertation, I address the usability of refactoring tools in the context of software change tasks. In doing so, I aim to identify, understand, and address, barriers that developers face when attempting to use these tools to change software. I present a study of how developers approach software change tasks that are amenable to automation with refactoring tools. I found that developers approach such tasks with one out of three strategies and that the different strategies give rise to different usability problems that prevent them from integrating refactoring tools into their workflow. I also present a theory of refactoring tool usability, based on the ISO 9241-11 definition of usability, and use this theory to identify four usability themes that developers experience as important in refactoring tool design. Then, I conduct a survey of a larger group of developers to investigate how they experience different tools that can support refactoring operations, including the tools that developers use to refactor manually. By comparing their experiences, I explore the different tools’ usability profiles, that is, the combinations of factors that make developers find that tool useful. These profiles indicate that developers seek different experiences from different tools. This information might help refactoring tool makers identify the needs of potential users or ways in which their tools can be improved. Finally, I address multiple of the usability themes that I identified as problematic for developers with existing tools. I do this by proposing a stepwise refactoring tool, that is, a tool that allows the developer to initiate a refactoring and apply it step by step, interleaved with other changes, or even with other refactorings. Taken together, the findings presented in this dissertation provide actionable insights for researchers and toolmakers as well as a foundation from which future researchers can continue the efforts of improving refactoring tools.
dc.language.isoeng
dc.publisherThe University of Bergen
dc.rightsAttribution-NonCommercial-NoDerivs (CC BY-NC-ND). This item's rights statement or license does not apply to the included articles in the thesis.
dc.rights.urihttps://creativecommons.org/licenses/by-nc-nd/4.0/
dc.titleImproving the Usability of Refactoring Tools for Software Change Tasks
dc.typeDoctoral thesis
dc.date.updated2021-12-08T14:12:03.573Z
dc.rights.holderCopyright the Author.
dc.contributor.orcid0000-0002-8586-8460
dc.description.degreeDoktorgradsavhandling
fs.unitcode12-12-0


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record

Attribution-NonCommercial-NoDerivs (CC BY-NC-ND). This item's rights statement or license does not apply to the included articles in the thesis.
Except where otherwise noted, this item's license is described as Attribution-NonCommercial-NoDerivs (CC BY-NC-ND). This item's rights statement or license does not apply to the included articles in the thesis.