Predictive Software Quality

Sayed Mohsin Reza, PhD Student

One primary purpose of software design is to reduce costs associated with software maintenance and evolution. As such, software design entails insights and intuitions on how the software may evolve over an extended period. In this context, effective designs are those that can effectively facilitate software maintenance while minimizing quality decay. Therefore, empowering software designers and architects with evidence-based insights on how the software components are likely to evolve over time will have a significant impact on the code quality features.

Predictive Software Quality Research Framework

In this research, we use software quality features information and machine learning techniques to train the data and predict future behavior of software. To be more specific, we investigate the efficacy of detecting software quality features to automatically improve software quality. We analyze large number of software repositories and extract code quality features of all the classes of those software repositories. We use different machine learning techniques to build ML models and train code quality feature dataset to classify software quality features. Using ML automatic prediction on code quality features will allow software quality managers, practitioners to take preventive action against bad quality. Such proactive actions will allow software redesign and prevent code smell/vulnerabilities in the software life cycle.

Resources:

[1] Sayed Mohsin Reza, Omar Badreddin, and Khandoker Rahad. Raw dataset for predictive code quality analysis for software design. https://www.kaggle.com/sayedmohsin/sqa-dataset, 2020. [Online; accessed 22-June-2020]

[2] Sayed Mohsin Reza, Omar Badreddin, and Khandoker Rahad. Modelmine – atool to mine models from open source repositories. https://www.smreza.com/projects/modelmine/, 2020. [Online; accessed 22-June-2020]