Methods of Software Quality Prediction With Similarity Measures: As an Expert System

Methods of Software Quality Prediction With Similarity Measures: As an Expert System

DOI: 10.4018/978-1-5225-3185-2.ch004


To improve the software quality the number of errors or faults must be removed from the software. This chapter presents a study towards machine learning and software quality prediction as an expert system. The purpose of this chapter is to apply the machine learning approaches such as case-based reasoning to predict software quality. Five different similarity measures, namely, Euclidean, Canberra, Exponential, Clark and Manhattan are used for retrieving the matching cases from the knowledgebase. The use of different similarity measures to find the best method significantly increases the estimation accuracy and reliability. Based on the research findings in this book it can be concluded that applying similarity measures in case-based reasoning may be a viable technique for software fault prediction
Chapter Preview


The main aim of this chapter is to assess the case-based reasoning (CBR) as an expert system for software quality prediction with similarity measures (Rashid, Patnaik, & Bhattacherjee, 2014). Due to Lack of sufficient tools to evaluate and predict software quality (fault) is one of the major challenges in software engineering field. Identifying and locating faults in software projects is a hard work. Particularly, when project sizes grow, this task becomes costly with complicated testing and evaluation mechanisms. On the other hand, measuring software in a continuous and disciplined manner brings many advantages such as accurate estimation of maintenance costs and schedules, and enhancing process and product qualities. Thorough study of software metric data also gives important clues about the position of possible faults in a module. The aim of this research is to establish a technique for identifying software faults using machine learning methods. It is very common to see large projects being undertaken nowadays. The software being developed in such projects goes through many phases of development and can be very complicated in terms of quality assessment. There will always be a concern for proper quality and effective cost estimation of such software. This can be rather tricky as the project being a large one may cover several unknown and unseen factors that might previously be very difficult to judge. Software fault prediction poses great challenges because fault data may not be available for the entire software module in the training data. In such cases machine learning technique like CBR can be successfully applied to fault diagnosis for customer service support. CBR systems use nearest neighbor algorithm for retrieval of cases from the Knowledgebase. Other machine learning techniques have also been extensively used for software quality (fault) prediction. The majority of today's software quality estimation models are built on using data from projects of a particular organization. Using such data has well known benefits such as ease of understanding and controlling of collecting data (Ganeasn, Khoshgoftaar, & Allen, 2002). But different researchers have reported contradictory results using different software quality estimation modeling techniques. It is still difficult to generalize many of the obtain results. This is due to the characteristics of the datasets being used and dataset’s small size. Correct prediction of the software fault or maintain a software system is one of the most serious activities in managing software project. Software reliability provides measurement of software dependability in which probability of failure is generally time dependent. Various software quality characteristics have been suggested by authors such as James McCall and Barry Boehm. There have been differences in opinion regarding the exact definitions of the qualities of good software. For example maintainability has been used to define the ease with which an error can be located and rectified in the software. This definition also includes the ease with which changes can be incorporated in the software (Hughes & Cotterell, 1968).

Complete Chapter List

Search this Book: