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