Project Title: Does REfactoring Software Work? An INDustrial and Open-source Approach (The “REWIND” Project)
Project Summary: In the software development world, refactoring has become part of a developer’s everyday activities. Refactoring is the process of changing code so that it becomes more readable/understandable and hence easier to change, BUT WITHOUT changing what the code does. It is akin to fine tuning a motor car so that the car performs better in some sense and is reliable for longer, but the basic functions of the car stay the same.
In code terms, making changes as simple as moving object-oriented methods and/or fields between classes can help postpone class decay and, taken as a whole contribute to lessening developer costs and problematic bugs arising. In theory, the relevant code becomes easier to understand and maintain and potential for bugs reduced as well. Sixty billion dollars is spent by the EU every year on fixing bugs.
Despite hundreds of studies in the refactoring area, however, there is only anecdotal and little concrete evidence of the true value of doing refactoring or its role in making code better in the long-term. We still have no understanding of whether a) refactoring has any benefits in quantitative terms or, indeed, b) whether refactoring can be harmful to code through the inadvertent seeding of bugs.
The purpose of the PhD is to explore these two related issues through evolutionary code tracking and application of data mining principles. Code from the participating London-based games development company as well as open-source provides the empirical basis of the study; the company will give access to all their code and other repositories and time of their CTO and former lead software architect. The research is novel and timely with significant impact potential. It also promotes techniques transferable to IT practice and research communities alike.
Collaborative project with Industry: Yes
Application Guidelines: Please click here to download
Eligibility Guidelines: Applicants must be eligible for home tuition fees either through nationality, residency (living in the UK for at least three years and not wholly for educational purposes) or other connection to the UK. Applicants will have or be expected to receive a first or upper-second class honours degree in an Engineering, Computer Science, Design, Mathematics, Physics or a similar discipline.
Application deadline: 26/06/2020 by Noon
Call for Position: Please click here to view the call for position