Facilitating the Maintenance and Evolution of Software

Topic Description

It has been repeatedly reported that most of the costs associated to a software project are spent with the maintenance of the software, not with its initial development. Insights into how software evolves over time and techniques to reduce maintenance effort are still very much sought.

Many PhD projects are possible within this topic, depending on your interests and background. Projects can be more theoretical, e.g. the quantitative analysis of the evolution of software repositories, or more practical, e.g. developing a technique to ease a particular maintenance aspect. Some ideas:

- improve the visualisation of software evolution to help developers and managers see trends and anticipate potential problems;
- improve the ways to visualise and navigate software to help new developers more quickly understand existing software;
- detect and semi-automatically correct naming convention violations that may hamper understandability of software;
- develop new techniques to triage and fix bugs;
- analyse the history of existing open source software to investigate whether there is a correlation between socio-technical maintenance aspects (e.g. developer churn and defect rate.

Skills Required:

Good programming skills needed, to analyse open source repositories and develop tool prototypes. If the project requires quantitative empirical research, some maths and stats is needed. For the more practical projects, software maintenance experience is a plus, either as a professional developer or as a contributor to open source projects.

Background Reading:

Collections of papers:

- Madhavji, Fernandez-Ramil and Perry (eds), Software Evolution and Feedback: Theory and Practice, Wiley 2006
- T. Mens, S. Demeyer (eds.), Software Evolution, Springer, 2008
- Proc. of the Int'l Conf. on Software Maintenance (ICSM), and Int'l Workshop on Software Evolution (IWPSE), several years, IEEE

Some other papers:

- Zimmermann et al, Mining Version Histories to Guide Software Changes, ICSE'04
- Capiluppi et al, Exploring the Relationship between Cumulative Change and Complexity in an Open Source System, CSMR'05
- Lozano et al, Assessing the effect of clones on changeability (http://oro.open.ac.uk/11976), ICSM’08
- Greevy et al, Analyzing software evolution through feature views, J. of Software Maintenance and Evolution, Nov./Dec. 2006
- Wermelinger et al, Assessing Architectural Evolution: a Case Study (http://oro.open.ac.uk/28753), Empirical Software Eng., 2011
- Dilshener and Wermelinger, Relating Developers’ Concepts and Artefact Vocabulary in a Financial Software Module (http://oro.open.ac.uk/29401/), ICSM'11
- Butler et al., Exploring the Influence of Identifier Names on Code Quality: An empirical study (http://oro.open.ac.uk/19224/), CSMR'10

Report an error on this page