Research on DAASE at the University of Birmingham involves different research topics, e.g. handling concept drift in prediction tasks, exploiting ensembles of learning machines and local methods, designing search algorithms and analysing their computational complexity, and applying and evaluating innovative hyper-heuristic strategies. Our work currently concentrates on two aspects: (1) characterizing software engineering dynamic problems in order to understand in depth the types of changes that they suffer and (2) learning to optimise and predict based on hyper-heuristics and dynamic adaptive approaches able to deal with these changes. The following software engineering problems are currently being investigated (more will be included in the future):
Adaptive Software Effort Estimation
Software prediction tasks are of strategic importance for software developing companies. An example of such task is software effort estimation. Overestimations may result in a company loosing contracts or wasting resources, whereas underestimations may result in poor quality, delayed or unfinished software systems. Most software effort estimation research neglects the fact that software prediction tasks operate in online changing environments. Models are typically trained on a set of projects and evaluated on another set of projects, without considering whether the training projects were really available before the testing projects. Besides possibly leading to incorrect conclusions, this results in inflexible prediction approaches that become obsolete with time.
Our current research concentrates on analysing the types of changes suffered by software effort estimation and how to deal with them to produce adaptive software prediction systems.
Temporal Software Defect Prediction
Software defect prediction consists in determining which modules of a software are likely to contain defects. It is an important task, as it can improve targeting the effort for testing software modules and reduce the number of defects present in the software to be released. Existing work assumes that learning how to predict defects using all training examples available from all previous versions of a software is the best way to predict faults in the current version. However, using training examples from all previous versions may harm predictive performance due to changes in the characteristics of defective modules from one version to another.
Our current research investigates the impact that learning models based on different versions of a software have on the ability of predicting defects over time.
Software Project Scheduling
Scheduling tasks and assigning resources in large-scale software projects is a very challenging problem. In the project scheduling problem (PSP) the goal is to assign employees to tasks such that all employees have all required skills for their tasks, task precedence constraints among tasks are respected, the completion time is minimised, and the cost in terms of salaries is minimised. Current algorithms suffer to find feasible solutions and their success is highly dependent on the characteristics of the project to be scheduled. An example of approach used in an attempt to schedule software projects is evolutionary algorithms.
Our current research concentrates on gaining a deep understanding into how evolutionary algorithms perform to different types of problems and designing algorithms that are more robust to different instances of the PSP.