Interplay of Machine Learning and Software Engineering for Quality Estimations

In this era, the agile mindset has innovated the traditional software engineering (SE) process through the integration of DevOps flow engines, scrum iterations, and automation of continuous integration (CI) and continuous deployment (CD) cycles. However, the CI/CD integration requires manual code-revisions and refactoring at large scales. Recently, machine-learning (ML) is employed in SE that allows legacy codes to be highly dynamic, less coupling in related modules, automatic code versioning, and refactoring, with less coupling among related modules. However, over time, ML models tend to become bulky, with increasing monotonic losses during model training. To address this, SE techniques like code revisions are employed over ML codes to allow low-order training losses, that enables seamless and precise workflow structures. Motivated from the aforementioned discussions, the paper presents a systematic review of the close interplay of SE and ML and possible interactions in different applications. Suitable research questions and case studies are presented for possible adoption scenarios that depict the close ML-SE interplay share with each other, with the concluding remarks. The paper forms useful insights for ML engineers, data science practitioners, and SE quality estimators towards the building of efficient and scalable software solutions.

[1]  Zadia Codabux,et al.  An empirical assessment of technical debt practices in industry , 2017, J. Softw. Evol. Process..

[2]  Ahmed BaniMustafa,et al.  Predicting Software Effort Estimation Using Machine Learning Techniques , 2018, 2018 8th International Conference on Computer Science and Information Technology (CSIT).

[3]  Carmine Gravino,et al.  A systematic literature review of software effort prediction using machine learning methods , 2019, J. Softw. Evol. Process..

[4]  Rakesh Rana,et al.  Machine learning approach for quality assessment and prediction in large software organizations , 2015, 2015 6th IEEE International Conference on Software Engineering and Service Science (ICSESS).

[5]  Santanu Kumar Rath,et al.  Software effort estimation using machine learning techniques , 2014, ISEC '14.

[6]  Wei-Chiang Hong,et al.  Machine Learning Adoption in Blockchain-Based Smart Applications: The Challenges, and a Way Forward , 2020, IEEE Access.

[7]  Md. Motaharul Islam,et al.  A Comparison of Machine Learning Algorithms to Estimate Effort in Varying Sized Software , 2019, 2019 IEEE Region 10 Symposium (TENSYMP).

[8]  Andraž Cej,et al.  Agile software development with Scrum , 2010 .

[9]  Mohammad S. Obaidat,et al.  Automated Machine Learning: The New Wave of Machine Learning , 2020, 2020 2nd International Conference on Innovative Mechanisms for Industry Applications (ICIMIA).

[10]  Atif Mashkoor,et al.  Machine Learning for Software Engineering: A Systematic Mapping , 2020, ArXiv.

[11]  Muhammad Arif Shah,et al.  Ensembling Artificial Bee Colony With Analogy-Based Estimation to Improve Software Development Effort Prediction , 2020, IEEE Access.

[12]  Yong Hu,et al.  Systematic literature review of machine learning based software development effort estimation models , 2012, Inf. Softw. Technol..

[13]  Neeraj Kumar,et al.  Machine Learning Models for Secure Data Analytics: A taxonomy and threat model , 2020, Comput. Commun..

[14]  Karl Meinke,et al.  Machine Learning for Software Engineering: Models, Methods, and Applications , 2018, 2018 IEEE/ACM 40th International Conference on Software Engineering: Companion (ICSE-Companion).

[15]  Rajiv Srivastava,et al.  Comparative Study for Proposed Algorithm for All-Optical Network with Negative Acknowledgement (AO-NACK) , 2017, ICCCT-2017.

[16]  Harald C. Gall,et al.  Software Engineering for Machine Learning: A Case Study , 2019, 2019 IEEE/ACM 41st International Conference on Software Engineering: Software Engineering in Practice (ICSE-SEIP).

[17]  Sudeep Tanwar,et al.  Resolving Conflicts in Requirement Engineering Through Agile Software Development: A Comparative Case Study , 2019 .

[18]  Foutse Khomh,et al.  Machine Learning Software Engineering in Practice: An Industrial Case Study , 2019, ArXiv.

[19]  Mounir Boukadoum,et al.  Machine-Learning Models for Software Quality: A Compromise between Performance and Intelligibility , 2011, 2011 IEEE 23rd International Conference on Tools with Artificial Intelligence.

[20]  D. Sculley,et al.  Hidden Technical Debt in Machine Learning Systems , 2015, NIPS.

[21]  Ivica Crnkovic,et al.  A Taxonomy of Software Engineering Challenges for Machine Learning Systems: An Empirical Investigation , 2019, XP.

[22]  B. Prakash,et al.  A Survey on Software Estimation Techniques in Traditional and Agile Development Models , 2017 .