(IJACSA) International Journal of Advanced Computer Science and Applications, Vol. 9, No. 8, 2018 451 | Page www.ijacsa.thesai.org Defects Prediction and Prevention Approaches for Quality Software Development Mashooque Ahmed Memon 1 Department of Computing Faculty of Engineering, Science and Technology (FEST) Karachi, Pakistan Mujeeb-Ur-Rhman Magsi Baloch 2 Department of Mathematics & Computer Science University of Sindh Jamshero Hydrabad, Pakistan Muniba Memon 3 , Syed Hyder Abbas Musavi 4 Department of Computing Faculty of Engineering, Science and Technology (FEST) Karachi, Pakistan AbstractThe demand for distributed and complex business applications in the enterprise requires error-free and high- quality application systems. Unfortunately, most of the developed software contains certain defects which cause failure of a system. Such failures are unacceptable for the development in the critical or sensitive applications. This makes the development of high quality and defect free software extremely important in software development. It is important to better understand and compute the association among software defects and its failures for the effective prediction and elimination of these defects to decline the failure and improve software quality. This paper presents a review of software defects prediction and its prevention approaches for the quality software development. It also focuses a review on the potential and constraints of those mechanisms in quality product development and maintenance. KeywordsSoftware; defects; predictions; preventions; software development I. INTRODUCTION The software is a single entity that has a strong impact on all characteristics of software development for different domains that includes defense, medicine, science, transport, telecommunications and others. The activities of all these domain sectors constantly require high-quality software for their exact needs for the performance [1]. Software quality means being an error-free product that produces predictable results and can be delivered within a time and cost constraints [2, 3]. As a result, it very important to have appropriate approaches to develop high-quality software that can meet the increasing needs in today's business world's. The past studies suggest that no single defect detection technology can solve all types of defects detection problems. So, this review focuses on the effectiveness and efficiency of the defect detection process to meet the quality enhancement and cost reduction. A “defect” is some fault or imperfection in the operation of a software product or process as a result of an error, fault, or failure. The paradigm defines the term "error" as a human action that leads to inappropriate results, and a "defect" as an erroneous decision that results in inaccurate results for a solution to a problem. A single error can result in one or more failures, and multiple failures can cause a failure. To avoid such failures in software products, defect detection activities are performed at each stage of the SDLC, depending on the needs and criticalities of the development. Software defect identifications models [2] are very weak because they have not been able to overcome the unknown relationship between the defects and failures. The relationships understanding among them are very difficult due to the diversity of defects and failures. The "Simplified assumptions" and "heuristics” methods are frequently utilized because of the associated failures associated with failures that lead to difficult tasks for the prediction. Therefore, having an accurate defect prediction model or process in software development can able to reduce high failures and advance the eminence of the software development [4, 5]. The main cause of software failures due to its design flaws which mostly caused by the software engineers due to the misunderstanding of the requirement specifications or developing a defective code. A review study on the various domain system failure estimation suggests that 90% of the failure is due to system defects [6, 7, 21]. The approaches of defect prevention are the process for improving software quality, the core objective of that is to identify frequent causes of defects and to amend the process to avoid this kind of the defect from importunate [8]. The purpose of preventing defects is to identify them at the commencement of the life cycle and avoid them from happening again so that the defects no longer occur. Based on defect analysis, it has established to be a constructive mechanism for detecting and preventing defect requirements at the beginning phase of the software lifecycle. By analyzing the general classified defects taxonomy and past errors it can be better prevented and reliable high performing systems can be developed [11]. In terms of performance and reliability requirements, a smaller number of failures in the software requirement will affect in improved secure and quality software systems. The scope of this paper is to present an insightful exploration of the mechanisms of defect detection and defect prevention approaches that can be pursued for the quality system development processes. The following paper presents the importance of defect prediction in Section 2 and it approaches in Section 3. In the Section 4 it presents defect prevention methodology, and Section 5 discuss its importance. Section 6 concludes and summarizes the paper.