Reliability Modeling, Analysis and Optimization

Taghi M. Khoshgoftaar [*] , Yi Liu and Naeem Seliya
Empirical Software Engineering Laboratory,
Department of Computer Science and Engineering,
Florida Atlantic University, Boca Raton, FL 33431, USA
[*]taghi@cse.fau.edu
The knowledge of the likely problematic areas of a software system is very useful for improving its overall quality. Based on such information, a more focussed software testing and inspection plan can be devised. More specifically, the limited resources allocated for software quality and reliability improvement can be expended in a cost-effective manner. Some of the practical software quality and reliability improvement techniques include, rigorous code design and code reviews, extensive software testing, and skill-based placement of personnel. In software development practice, the amount of project resources allocated for software quality improvement is usually a small fraction of the total budget, thus, asserting the importance of a cost-effective software quality improvement for allowing greater return on investment.
Software measurements, such as software product and process metrics, have been shown to be excellent indicators of software quality.1 ,2 Based on such metrics, software quality classification (SQC) models can be built to predict the risk-based class membership of a software (program) module.3 For example, program modules can be predicted as either fault-prone ( fp) or not fault-prone ( nfp). With the aid of a SQC model, the software quality team can target the available resources to improve the modules predicted as fp, thus, allowing for a better resource utilization. A SQC model is built based on...