Characteristics of multiple-component defects and architectural hotspots: a large system case study

  • Authors:
  • Zude Li;Nazim H. Madhavji;Syed Shariyar Murtaza;Mechelle Gittens;Andriy V. Miranskyy;David Godwin;Enzo Cialini

  • Affiliations:
  • School of Information Science and Engineering, Central South University, Changsha, People's Republic of China and Computer Science Department, University of Western Ontario, London, Canada;Computer Science Department, University of Western Ontario, London, Canada;Computer Science Department, University of Western Ontario, London, Canada;Computer Science Department, University of Western Ontario, London, Canada;IBM Canada Ltd., Toronto, Canada;IBM Canada Ltd., Toronto, Canada;IBM Canada Ltd., Toronto, Canada

  • Venue:
  • Empirical Software Engineering
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

The architecture of a large software system is widely considered important for such reasons as: providing a common goal to the stakeholders in realising the envisaged system; helping to organise the various development teams; and capturing foundational design decisions early in the development. Studies have shown that defects originating in system architectures can consume twice as much correction effort as that for other defects. Clearly, then, scientific studies on architectural defects are important for their improved treatment and prevention. Previous research has focused on the extent of architectural defects in software systems. For this paper, we were motivated to ask the following two complementary questions in a case study: (i) How do multiple-component defects (MCDs)--which are of architectural importance--differ from other types of defects in terms of (a) complexity and (b) persistence across development phases and releases? and (ii) How do highly MCD-concentrated components (the so called, architectural hotspots) differ from other types of components in terms of their (a) interrelationships and (b) persistence across development phases and releases? Results indicate that MCDs are complex to fix and are persistent across phases and releases. In comparison to a non-MCD, a MCD requires over 20 times more changes to fix it and is 6 to 8 times more likely to cross a phase or a release. These findings have implications for defect detection and correction. Results also show that 20% of the subject system's components contain over 80% of the MCDs and that these components are 2---3 times more likely to persist across multiple system releases than other components in the system. Such MCD-concentrated components constitute architectural "hotspots" which management can focus upon for preventive maintenance and architectural quality improvement. The findings described are from an empirical study of a large legacy software system of size over 20 million lines of code and age over 17 years.