  Background. Refactoring is a critical task in software maintenance and is
generally performed to enforce the best design and implementation practices or
to cope with design defects. Several studies attempted to detect refactoring
activities through mining software repositories allowing to collect, analyze
and get actionable data-driven insights about refactoring practices within
software projects. Aim. We aim at identifying, among the various quality models
presented in the literature, the ones that are more in-line with the
developer's vision of quality optimization, when they explicitly mention that
they are refactoring to improve them. Method. We extract a large corpus of
design-related refactoring activities that are applied and documented by
developers during their daily changes from 3,795 curated open source Java
projects. In particular, we extract a large-scale corpus of structural metrics
and anti-pattern enhancement changes, from which we identify 1,245 quality
improvement commits with their corresponding refactoring operations, as
perceived by software engineers. Thereafter, we empirically analyze the impact
of these refactoring operations on a set of common state-of-the-art design
quality metrics. Results. The statistical analysis of the obtained results
shows that (i) a few state-of-the-art metrics are more popular than others; and
(ii) some metrics are being more emphasized than others. Conclusions. We verify
that there are a variety of structural metrics that can represent the internal
quality attributes with different degrees of improvement and degradation of
software quality. Most of the metrics that are mapped to the main quality
attributes do capture developer intentions of quality improvement reported in
the commit messages.
