In recent years we have been observing a rising interest in adopting various approaches to exploiting machine learning (ML) and automated decision-making processes in several areas of software engineering. These models and algorithms help to reduce effort and risk related to human judgment in favor of automated systems, which are able to make informed decisions based on available data and evaluated with objective criteria.
Software quality is the area that deserves particular attention. At all levels, source code quality, process quality and the quality of entire systems, researchers are still looking for new, more effective methods of evaluating various qualitative characteristics of software systems and the related processes.
Human judgement is inevitable in certain areas, but is also inherently biased by implicit, subjective criteria applied in the evaluation process. Additionally, its economical effectiveness is limited, compared to automated or semi-automated approaches. Therefore, we observe a space for applying ML even more extensively than it is done currently.
We also believe that applying ML can address uncertainty, in an effort to handle the size of complex systems, by supporting better code and design review, and enable automation of analyses that handle fuzzy concepts (e.g., code smells).