Transfer Learning for Just-in-Time Design Smells Prediction using Temporal Convolutional Networks

This paper investigates whether the adoption of a transfer learning approach can be effective for just-in-time design smells prediction. The approach uses a variant of Temporal Convolutional Networks to predict design smells and a carefully selected fine-grained process and product metrics. The validation is performed on a dataset composed of three open-source systems and includes a comparison between transfer and direct learning. The hypothesis, which we want to verify, is that the proposed transfer learning approach is feasible to transfer the knowledge gained on mature systems to the system of interest to make reliable predictions even at the beginning of development when the available historical data is limited. The obtained results show that, when the class imbalance is high, the transfer learning provides F1-scores very close to the ones obtained by

[1]  Guilherme Horta Travassos,et al.  Cross versus Within-Company Cost Estimation Studies: A Systematic Review , 2007, IEEE Transactions on Software Engineering.

[2]  Loris Nanni,et al.  Deep learning and transfer learning features for plankton classification , 2019, Ecol. Informatics.

[3]  Girish Suryanarayana,et al.  Chapter 2 – Design Smells , 2015 .

[4]  Qiang Yang,et al.  Boosting for transfer learning , 2007, ICML '07.

[5]  Bernhard Schölkopf,et al.  Correcting Sample Selection Bias by Unlabeled Data , 2006, NIPS.

[6]  Ivor W. Tsang,et al.  Domain Adaptation via Transfer Component Analysis , 2009, IEEE Transactions on Neural Networks.

[7]  Tushar Sharma,et al.  Designite - A Software Design Quality Assessment Tool , 2016, 2016 IEEE/ACM 1st International Workshop on Bringing Architectural Design Thinking Into Developers' Daily Activities (BRIDGE).

[8]  Andrea De Lucia,et al.  Detecting code smells using machine learning techniques: Are we there yet? , 2018, 2018 IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER).

[9]  Diomidis Spinellis,et al.  On the Feasibility of Transfer-learning Code Smells using Deep Learning , 2019, ArXiv.

[10]  Chris F. Kemerer,et al.  A Metrics Suite for Object Oriented Design , 2015, IEEE Trans. Software Eng..

[11]  Vladlen Koltun,et al.  An Empirical Evaluation of Generic Convolutional and Recurrent Networks for Sequence Modeling , 2018, ArXiv.

[12]  Fernando Brito e Abreu,et al.  Candidate metrics for object-oriented software within a taxonomy framework , 1994, J. Syst. Softw..

[13]  Diyi Yang,et al.  Hierarchical Attention Networks for Document Classification , 2016, NAACL.

[14]  Shie Mannor,et al.  The cross entropy method for classification , 2005, ICML.

[15]  Asif Imran Design Smell Detection and Analysis for Open Source Java Software , 2019, 2019 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[16]  Lerina Aversano,et al.  Temporal Convolutional Networks for Just-in-Time Software Defect Prediction , 2020, ICSOFT.

[17]  Girish Suryanarayana,et al.  Refactoring for Software Design Smells: Managing Technical Debt , 2014 .

[18]  Lerina Aversano,et al.  Investigating on the Relationships between Design Smells Removals and Refactorings , 2020, ICSOFT.

[19]  Hui Xiong,et al.  A Comprehensive Survey on Transfer Learning , 2019, Proceedings of the IEEE.

[20]  Tim Menzies,et al.  Heterogeneous Defect Prediction , 2015, IEEE Transactions on Software Engineering.

[21]  M. Stone Cross‐Validatory Choice and Assessment of Statistical Predictions , 1976 .

[22]  Esperanza Manso,et al.  Software Design Smell Detection: a systematic mapping study , 2018, Software Quality Journal.