RELIABILITY METRICS BASED ON THE DEPENDENCE OF DEFECTS ON SOURCE CODE COMPLEXITY - Yaremchuck, S. O. (Systems and Technologies, 2018)
The work has analyzed the few existing metrics of the software systems reliability. Standard metrics have been found to have disadvantages. Existing metrics are not sufficient to assess the reliability in a timely manner during the development phase of software systems. It is determined that the complexity of the source code is a major cause of the errors.The analysis of complexity types for software systems has been performed. It is established need of the additional development of new reliability metrics on the basis of the assessment of the source code complexity.A study of existing complexity metrics has been conducted. Metrics were chosen that are most informative for reliability evaluation. Based on the selected object-oriented code complexity metrics, a single combined complexity assessment has been developed instead of twenty different scale estimates. This reduces the source data array by twenty times, significantly reduces the hardware load and the processing time. The practical use of the combined complexity assessment greatly simplifies the assessment, visualization and understanding of the properties of the system, as well as facilitates in-depth analysis of its reliability.Using combined complexity assessment, code reliability metrics are proposed: the ratio between defective and defect-free modules, the probability of the defects detection in modules, the modular density of defects, the localization and the distribution of defects in the code. The procedure for the designing and the analyzing reliability metrics is described. The proposed reliability metrics are calculated and rendered for various software systems based on their metric data.The analysis of developed metrics was carried out. Directions of their practical using by specialists of software companies have been established. It is proposed to calculate reliability metrics for previously developed and verified systems or their parts, for which metric assessments of complexity and the defects number are known.The proposed reliability metrics can be used to plan resources and perform the efficient verification of newly created code of new iterations, parts, versions, functions, or new systems for a particular developer. Reliability metrics can be calculated for any system similar to the newly developed system in terms of the functionality, complexity assessments, the developer qualification, the process level, and the development methodology.