RELIABILITY METRICS BASED ON THE DEPENDENCE OF DEFECTS ON SOURCE CODE COMPLEXITY
Abstract
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.
References
2. ISO/IEC TR 9126-2:2003 — Software engineering — Product quality — Part 2: External metrics.
3. ISO/IEC TR 9126-3:2003 — Software engineering — Product quality — Part 3: Internal metrics.
4. ISO/IEC 25010:2011.Systems and software Quality Requirements and Evaluation (SQuaRE) – System and software quality models [Electronic resource] – Access mode: http://www.standards.ru/document/4580604.aspx – 01.02.2018.
5. IEC 61513:2001 Nuclear power plants - Instrumentation and control systems important for safety - General requirements for systems.
6. IEC 60880:2010 Software for computers in the safety systems of nuclear power stations.
7. IEEE Std. 982:2005 IEEE Standard Dictionary of Measures of the Software Aspects of Dependability.
8. IEEE Std 610-12:1990 IEEE Standard Glossary of Software Engineering Terminology.
9. IEEE Std. 1061:1998. IEEE Computer Society: Standard for Software Quality Metrics Methodology.
10. Chidamber S. A Metrics Suite for Object-Oriented Design [Text] / S. Chidamber, C. Kemerer // IEEE Transactions on Software Engineering — 1994. — № 20, P. 476-493.
11. Tera-PROMISE Home. [Electronic resource] – Access mode: http://openscience.us/repo/defect/ck/, – 01.02.2018 р.