Deep Learning Approach for Software Maintainability Metrics Prediction

Software maintainability predicts changes or failures that may occur in software after it has been deployed. Since it deals with the degree to which an application may be understood, repaired, or enhanced, it also takes into account the overall cost of the project. In the past, several measures have been taken into account for predicting metrics that influence software maintainability. However, deep learning is yet to be explored for the same. In this paper, we perform deep learning for software maintainability metrics’ prediction on a large number of datasets. Unlike the previous research works, we have relied on large datasets from 299 software and subsequently applied various metrics and functions to the same; 29 object-oriented metrics have been considered along with their impact on software maintainability of open source software. Several metrics have been analyzed and descriptive statistics of these metrics have been pointed out. The proposed long short term memory has been evaluated using measures, such as mean absolute error, root mean square error and accuracy. Five machine learning algorithms, namely, ridge regression with variable selection, decision tree, quantile regression forest, support vector machine, and principal component analysis have been applied to the original datasets, as well as, to the refined datasets. It was found that this paper provides results in the form of metrics that may be used in the prediction of software maintenance and the proposed deep learning model outperforms all of the other methods that were considered. Furthermore, the results of experiment affirm the efficiency of the proposed deep learning model for software maintainability prediction.

[1]  David Lo,et al.  Identifying self-admitted technical debt in open source projects using text mining , 2017, Empirical Software Engineering.

[2]  Qi Luo,et al.  FOREPOST: finding performance problems automatically with feedback-directed learning software testing , 2017, Empirical Software Engineering.

[3]  Swati Mishra,et al.  Maintainability Prediction of Object Oriented Software by using Adaptive Network based Fuzzy System Technique , 2015 .

[4]  Moataz A. Ahmed,et al.  Machine learning approaches for predicting software maintainability: a fuzzy-based transparent model , 2013, IET Softw..

[5]  Zhi-Hua Zhou,et al.  Learning Unified Features from Natural and Programming Languages for Locating Buggy Source Code , 2016, IJCAI.

[6]  Chulwoo Han,et al.  Deep learning networks for stock market analysis and prediction: Methodology, data representations, and case studies , 2017, Expert Syst. Appl..

[7]  P. N. Druzhkov,et al.  A survey of deep learning methods and software tools for image classification and object detection , 2016, Pattern Recognition and Image Analysis.

[8]  Tim Menzies,et al.  Data Mining Static Code Attributes to Learn Defect Predictors , 2007, IEEE Transactions on Software Engineering.

[9]  Horia Demian,et al.  Natural Language Processing and Machine Learning Methods for Software Development Effort Estimation , 2017 .

[10]  Jorma Laaksonen,et al.  Exploiting inter-image similarity and ensemble of extreme learners for fixation prediction using deep features , 2016, Neurocomputing.

[11]  Mohammad Alshayeb,et al.  Software defect prediction using ensemble learning on selected features , 2015, Inf. Softw. Technol..

[12]  Xinli Yang,et al.  TLEL: A two-layer ensemble learning approach for just-in-time defect prediction , 2017, Inf. Softw. Technol..

[13]  Irfan Ahmad,et al.  Three empirical studies on predicting software maintainability using ensemble methods , 2015, Soft Comput..

[14]  Patrick Siarry,et al.  A survey on search-based model-driven engineering , 2017, Automated Software Engineering.

[15]  Bram van Ginneken,et al.  A survey on deep learning in medical image analysis , 2017, Medical Image Anal..

[16]  Sven Apel,et al.  Data-efficient performance learning for configurable systems , 2018, Empirical Software Engineering.

[17]  Xiang Chen,et al.  MULTI: Multi-objective effort-aware just-in-time software defect prediction , 2018, Inf. Softw. Technol..

[18]  Byunghan Lee,et al.  Deep learning in bioinformatics , 2016, Briefings Bioinform..

[19]  Iker Gondra,et al.  Applying machine learning to software fault-proneness prediction , 2008, J. Syst. Softw..

[20]  Giuseppe Scanniello,et al.  Proposing and assessing a software visualization approach based on polymetric views , 2016, J. Vis. Lang. Comput..

[21]  Ruchika Malhotra,et al.  BENCHMARKING FRAMEWORK FOR MAINTAINABILITY PREDICTION OF OPEN SOURCE SOFTWARE USING OBJECT ORIENTED METRICS , 2016 .

[22]  Tim Menzies,et al.  Heterogeneous Defect Prediction , 2018, IEEE Trans. Software Eng..

[23]  Cheng-Zen Yang,et al.  Enhancements for duplication detection in bug reports with manifold correlation features , 2016, J. Syst. Softw..

[24]  Mehdi R. Zargham,et al.  Vulnerability Scrying Method for Software Vulnerability Discovery Prediction Without a Vulnerability Database , 2013, IEEE Transactions on Reliability.

[25]  Tim Menzies,et al.  Bellwethers: A Baseline Method for Transfer Learning , 2017, IEEE Transactions on Software Engineering.

[26]  Barbara G. Ryder,et al.  CCLearner: A Deep Learning-Based Clone Detection Approach , 2017, 2017 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[27]  William Marsh,et al.  Predicting software defects in varying development lifecycles using Bayesian nets , 2007, Inf. Softw. Technol..

[28]  Yuming Zhou,et al.  Connecting software metrics across versions to predict defects , 2017, 2018 IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER).

[29]  D. Sculley,et al.  TensorFlow Estimators: Managing Simplicity vs. Flexibility in High-Level Machine Learning Frameworks , 2017, KDD.

[30]  Yurong Liu,et al.  A survey of deep neural network architectures and their applications , 2017, Neurocomputing.

[31]  Yin-Fu Huang,et al.  Self-adaptive harmony search algorithm for optimization , 2010, Expert Syst. Appl..

[32]  Guigang Zhang,et al.  Deep Learning , 2016, Int. J. Semantic Comput..

[33]  Miroslaw Staron,et al.  A method for forecasting defect backlog in large streamline software development projects and its industrial evaluation , 2010, Inf. Softw. Technol..

[34]  Toon Goedemé,et al.  Faster and more intelligent object detection by combining OpenCL and KR , 2014, J. Ambient Intell. Humaniz. Comput..

[35]  Ming Li,et al.  A Ranking of Software Engineering Measures Based on Expert Opinion , 2003, IEEE Trans. Software Eng..

[36]  Arvinder Kaur,et al.  Statistical Comparison of Modelling Methods for Software Maintainability Prediction , 2013, Int. J. Softw. Eng. Knowl. Eng..

[37]  Russel Pears,et al.  Data stream mining for predicting software build outcomes using source code metrics , 2014, Inf. Softw. Technol..

[38]  Norbert Siegmund,et al.  Transfer learning for performance modeling of configurable systems: An exploratory analysis , 2017, 2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE).

[39]  Jitender Kumar Chhabra,et al.  Improving package structure of object-oriented software using multi-objective optimization and weighted class connections , 2017, J. King Saud Univ. Comput. Inf. Sci..

[40]  Subhashini Venugopalan,et al.  Development and Validation of a Deep Learning Algorithm for Detection of Diabetic Retinopathy in Retinal Fundus Photographs. , 2016, JAMA.

[41]  Alvin Cheung,et al.  Summarizing Source Code using a Neural Attention Model , 2016, ACL.

[42]  Ruchika Malhotra,et al.  A systematic review of machine learning techniques for software fault prediction , 2015, Appl. Soft Comput..

[43]  Ruchika Malhotra,et al.  An exploratory study for software change prediction in object-oriented systems using hybridized techniques , 2017, Automated Software Engineering.

[44]  José Hernández-Orallo,et al.  Evaluation in artificial intelligence: from task-oriented to ability-oriented measurement , 2017, Artificial Intelligence Review.

[45]  Habibollah Haron,et al.  Fuzzy logic for modeling machining process: a review , 2013, Artificial Intelligence Review.

[46]  Fei Wang,et al.  Deep learning for healthcare: review, opportunities and challenges , 2018, Briefings Bioinform..

[47]  Ruqiang Yan,et al.  A sparse auto-encoder-based deep neural network approach for induction motor faults classification , 2016 .

[48]  Maninder Singh,et al.  Software clone detection: A systematic review , 2013, Inf. Softw. Technol..

[49]  Richard Torkar,et al.  Software fault prediction metrics: A systematic literature review , 2013, Inf. Softw. Technol..

[50]  Anuradha Chug,et al.  Software defect prediction analysis using machine learning algorithms , 2017, 2017 7th International Conference on Cloud Computing, Data Science & Engineering - Confluence.

[51]  Anuradha Chug,et al.  Software Maintainability: Systematic Literature Review and Current Trends , 2016, Int. J. Softw. Eng. Knowl. Eng..

[52]  J. Fernando Sánchez-Rada,et al.  Enhancing deep learning sentiment analysis with ensemble techniques in social applications , 2020 .

[53]  Tjalling Haije,et al.  Automatic Comment Generation using a Neural Translation Model , 2016 .

[54]  Diana-Lucia Miholca,et al.  A novel approach for software defect prediction through hybridizing gradual relational association rules with artificial neural networks , 2018, Inf. Sci..

[55]  Ruchika Malhotra,et al.  Comparative analysis of statistical and machine learning methods for predicting faulty modules , 2014, Appl. Soft Comput..

[56]  Waqas Anwar,et al.  Systemized Approach for Software Corrective Maintenance Effort Reduction , 2011 .