Software development is a complex task as there exist various relationships between different pieces of code. If software entities (e.g., classes) are considered as nodes and the relationships between entities (e.g., inheritance) are considered as edges, the static structure of software can be viewed as a software structural network. In this paper, the relationship between the quality of nodes and the characteristics of their neighbors in the software structural network has been investigated. The following observations have been made: On most occasions, the neighbors of the defect-prone nodes tend to have higher code complexity and be more centralized in the software structural network and undergo more frequent changes than those which are defect-free. The observations made in our research can be used to help software engineers assess risks during the software evolution activities (e.g., adding new entities and relationships) with the purpose of improving software designs.
Published in:
Software Engineering and Service Science (ICSESS), 2012 IEEE 3rd International Conference on
Date of Conference: 22-24 June 2012