“…Such tools exploit different types of approaches, including metrics-based detection (Lanza and Marinescu 2010;Moha et al 2010;Marinescu 2004;Munro 2005), graph-based techniques (Tsantalis and Chatzigeorgiou 2009), mining of code changes (Palomba et al 2015a), textual analysis of source code (Palomba et al 2016b), or search-based optimization techniques (Kessentini et al 2010;Sahin et al 2014). On the other side, researchers investigated how relevant code smells are for developers (Yamashita and Moonen 2013;Palomba et al 2014), when and why they are introduced (Tufano et al 2015), how they evolve over time (Arcoverde et al 2011;Chatzigeorgiou and Manakos 2010;Lozano et al 2007;Ratiu et al 2004;Tufano et al 2017), and whether they impact on software quality properties, such as program comprehensibility (Abbes et al 2011), fault-and change-proneness (Khomh et al 2012;Khomh et al 2009a;D'Ambros et al 2010), and code maintainability Moonen 2012, 2013;Deligiannis et al 2004;Li and Shatnawi 2007;Sjoberg et al 2013).…”