To main content

A study of cyclic dependencies on defect profile of software components

Abstract

Background:
Empirical evidence shows that dependency cycles among software components are pervasive in real-life software systems, although such cycles are known to be detrimental to software quality attributes such as understandability, testability, reusability, build-ability and maintainability.

Research goals:
Can the use of extended object-oriented metrics make us better understand the relationships among cyclic related components and their defect-proneness?

Approach:
First, we extend such metrics to mine and classify software components into two groups – the cyclic and the non-cyclic ones. Next, we have performed an empirical study of six software applications. Using standard statistical tests on four different hypotheses, we have determined the significance of the defect profiles of both groups.

Results:
Our results show that most defects and defective components are concentrated in cyclic-dependent components, either directly or indirectly.

Discussion and conclusion:
These results have important implications for software maintenance and system testing. By identifying the most defect-prone set in a software system, it is possible to effectively allocate testing resources in a cost efficient manner. Based on these results, we demonstrate how additional structural properties could be collected to understand component's defect proneness and aid decision process in refactoring defect-prone cyclic related components.

Category

Academic article

Language

English

Author(s)

  • Tosin Daniel Oyetoyan
  • Daniela Soares Cruzes
  • Reidar Conradi

Affiliation

  • Norwegian University of Science and Technology
  • SINTEF Digital / Software Engineering, Safety and Security

Year

2013

Published in

Journal of Systems and Software

ISSN

0164-1212

Publisher

Elsevier

Volume

86

Issue

12

Page(s)

3162 - 3182

View this publication at Cristin