This proposed project fits within an ongoing successful research programme at the University of Ulster that started in 1996. It extends some collaborative research between staff at UU and a group at Tsinghua University in Beijing.
The biggest challenge in the software development industry is to deliver an application with 100% defects free. Fault prediction is one major area that can assist with planning maintenance activities. Early detection of fault-prone classes can greatly reduce the eventual maintenance burden. Over the past 15 years we have been studying the relationship between change-prone classes and a variety of product metrics. Several commercial C++ applications have been studied and we built our own C++ metrics analyser in order to harvest the required metrics. The purpose of this research was to determine if it was possible, using metrics, to predict future change-prone classes – since these are likely to be the classes which need most attention with respect to testing and restructuring during maintenance activities. In the current planned research we intend to broaden the work to include the use of metrics to understand software architectural issues, which can also consume large amounts of maintenance effort if poorly designed in the first place.
In the next chapter of our research, we will be concentrating on Java and Open Source Software (OSS). We want to study the nature of change-proneness. Change can come from several sources: (i) “Corrective” – namely bug-fixing; (ii) “Perfective” – evolution of a product to better meet business requirements; (iii) “Preventative” – such as code refactoring and architectural re-design, which has been made popular through Agile methods, in order to make code more maintainable and (iv) “Adaptive” - to address the needs of differing software and hardware platforms or possibly to make software more reusable.
The first part of the project will involve the detailed study of OSS to understand the relative importance of each of these 4 categories of change to OSS. This will involve studying the evolution of various OSS products over time and evaluating their associated change logs. The results will be compared with previous studies including Mockus & Votta (2000) and Schach et al (2003).
The second stage of the project will then focus upon one or perhaps two suitable OSS applications identified from the first part of the study. Various product metrics will be harvested from these applications across successive versions of the product. A selection of knowledge reasoning and machine learning techniques will be used to analyse these product metrics and their correlations with the Corrective, Preventative and adaptive categories of change.
Some Java metrics analysers exist and may be used on this project. It may also be necessary to develop our own research analyser, the development of which could also provide a further case study for the research. Strong Java programming skills are therefore desirable.
First Supervisor: Wilkie, FG Dr
Second Supervisor: Wang, HY Dr
Third Supervisor: Zheng, H Dr
Collaboration: This project does not involve collaboration with another establishment