Multi-Objective Software Refactoring

  • Multi-Objective Software Refactoring

School of Electronics, Electrical Engineering and Computer Science
& ECIT Global Research Institute

Proposed Project Title: Multi-Objective Software Refactoring

Principal Supervisor:   Des Greer             Second Supervisor: Paul McMullan

Project Description:

In recent years there has been a steadily increasing amount of research into the use of Search Based Software Engineering (SBSE). SBSE is appropriate where there is a very large solution space for a given problem in the Software Engineering lifecycle. For example, it has been applied to such things as determining how to maximise test coverage and completeness, how to prioritise testing, how to maximise value and/or stakeholder satisfaction in software releases, how to allocate resources to a software project and how to design code to reduce coupling. As well as deterministic techniques like linear programming there are many classes of search algorithm that are applicable such as Simulated Annealing, Hill Climbing, Genetic Algorithms, Genetic Programming, Tabu Search and many more.

This project will investigate such things as how to identify functional and non-functional quality attributes in existing code and to investigate if it is possible to specify these, set goals to improve them, measure the improvements and then to recommend refactoring actions or better still automatically refactor the code. With automatic refactoring, changes are made without human intervention and then measurements are made to find if improvements have been made, typically using quality metrics. In existing work,  a multi-objective approach has been employed, meaning that there is more than one quality objective function has been optimized. As you might expect this is not straightforward since some of the attributes that must be optimised may be in conflict or competition. This PhD project is to build on this work to look at other objectives such as testability, comprehensibility, performance etc.

The project research area overlaps with the areas of Software Architecture, Detailed Design, Redundant Code, Code Complexity, Bugs/Potential bugs discovery, test coverage etc,  and will make use of known metrics in these and existing tools that capture them.

The impact of the research could include an increased understanding refactoring and on its effect on code quality along with a working tool that demonstrates new methods for assessing and implementing automated refactoring in an optimal way. The validation can be carried out be using open source software or with an industrial partner on live code.

Reading:

  1. Systematic Literature Review of Search Based Software Engineering: found here
    http://www0.cs.ucl.ac.uk/staff/mharman/ACM-surveys-sbse.pdf
  2. Greer, D., Ruhe, G., Software Release Planning: An Evolutionary and Iterative Approach, Journal Information and Software Technology, 46/4 pp. 243-253, 2004 - http://www.cs.qub.ac.uk/~Des.Greer/greer%20ruhe%20IST.pdf as an example of SBSE
  3. http://refactoring.com/catalog/

Contact details

Supervisor Name: Dr Des Greer                                                Tel: +44 (0)28 9097 4656
QUB Address:       School of EEECS, CS Building                        Email: des.greer@qub.ac.uk