Detecting Design Defects Caused by Design Rule Violations
Sunny Wong, Yuanfang Cai, Michael Dalton · 2009
Research has shown that unintended violations of dependencies can incur modularity decay, higher maintenance cost, and software defects. However, dependency violations may be undetected by traditional software verification and validation techniques. In this paper, we present an approach to detect potential design defects caused by the violation of design rules. We identify the patterns of how different components change together to implement modification requests, and use a logical model to predict change scope according to the design rule theory. We then calculate the differences between the predicted and actual co-change patterns to reveal potential defects. To evaluate our approach, we investigated the version history of 15 releases of Hadoop and 9 releases of Derby. Our approach revealed such issues as poorly designed inheritance hierarchies, tightly coupled cyclical dependencies, and code clones. Some problems we identified were indeed refactored in later versions, validating the effectiveness of our approach. Categories and Subject Descriptors D.2.10 [Software Engineering]: Design—design defect