(Available for 2018/2019)

The projects typically combine a novel software engineering idea with a practical implementation that applies to real-world software. I expect interested students to be good programmers and to be able to come up with fresh ideas for challenging research problems. If you are interested in any of the following topics, make sure you read the suggested material and come up with some ideas.

Parallel Evolutionary Algorithms

The need to improve the scalability of Genetic Algorithms (GAs) has motivated the research on Parallel Genetic Algorithms (PGAs), and different technologies and approaches have been proposed. This project will focus on investigating, designing and evaluating new technologies (e.g., Hadoop, Spark) for PGAs in the context of Software Engineering.

Read more: F. Ferrucci, P. Salza, F. Sarro, "Using Hadoop MapReduce for Parallel Genetic Algorithms: A Comparison of the Global, Grid and Island Models", Evolutionary Computation Journal (2017) Article pre-print

Software Development Effort Estimation

Software development effort is considered the dominant cost of software projects, thus effort estimation is a critical activity for planning and monitoring software project development and for delivering the product on time and within budget. The research projects related to this topic regard the definition and empirical evaluation of multi-objective search-based approach for building novel estimation models.

Read more: F. Sarro, A. Petrozziello, M. Harman, "Multi-Objective Effort Estimation", in Proceedings of the 38th International Conference on Software Engineering (ICSE 2016), pp. 619-630. Article pre-print

Data Imputation Methods for Software Engineering Tasks

Historical software project datasets have been utilized together with machine learning algorithms for various software engineering classification tasks. Unfortunately, the missing values in datasets have negative impacts on the estimation accuracy of such approaches and therefore, could lead to inconsistent results. This project will focus on investigating, designing and evaluating the effectiveness of data imputation methods in the context of Software Engineering.

Read more: J. Huang, J. W. Keung, F. Sarro, Y.-F. Li, Y.T. Yu, W.K. Chan and H. Sun, "Cross-validation based k nearest neighbor imputation for software quality datasets: An empirical study". Journal of Systems and Software. Article pre-print

Software Defect Prediction

Software defect prediction has been an active subject of research since the 1990s. However, despite many proposals for different fault prediction techniques, only our previous study has used the information available from the testing phase in order to improve the performance of predictive models. This project will investigate other metrics useful to improve the accuracy of the estimates.

Read more: D. Bowes, T. Hall, M. Harman, Y.Jia, F. Sarro, F. Wu "Mutation-aware Fault Prediction", in Proceedings of the 25th International Symposium on Software Testing and Analysis, (ISSTA 2016), pp. 330-341 Article pre-print

Software Size Measurement

This project will look at the definition and the empirical evaluation of 2nd generation functional metrics for sizing modern software products.

Read more: S. Di Martino, F. Ferrucci, C. Gravino, F. Sarro, "Web Effort Estimation: Function Points Analysis vs. COSMIC", Information and Software Technology (2016), pp. 90-109, DOI : 10.1016/j.infsof.2015.12.001. Article pre-print

Predictive Analytics for Mobile Apps and App Stores

App development is an increasingly innovative and lucrative software industry. The projects in this area will focus on the analysis and understanding of mobile app store ecosystems and their key mechanisms impacting software engineering tasks.

Read more: W. Martin, F. Sarro, M. Harman, Y. Jia, Y. Zhang, "A Survey on App Store Analysis for Software Engineering" IEEE Journal of Transactions on Software Engineering (2017). Article pre-print