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
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).