Detecting Software Modularity Violations
Source: Drexel University
This paper presents Clio, an approach that detects modularity violations, which can cause software defects, modularity decay, or expensive refactorings. Clio computes the discrepancies between how components should change together based on the modular structure, and how components actually change together as revealed in version histories. The authors evaluated Clio using 15 releases of Hadoop Common and 10 releases of Eclipse JDT. The results show that hundreds of violations identified using Clio were indeed recognized as design problems or re-factored by the developers in later versions. The identified violations cover multiple symptoms of poor design, some of which are not easily detectable using existing approaches.