This document summarizes an empirical study that analyzed static relationships between anti-patterns (ineffective code motifs) and design patterns (effective code solutions) in software systems. The study used tools to detect instances of anti-patterns and design patterns, and found relationships like use, association, aggregation and composition between certain anti-patterns and design patterns. For example, the Command design pattern had relationships with 50% of instances of the SpeculativeGenerality anti-pattern in one system. The study provides evidence that some anti-patterns are more likely than others to have relationships with design patterns.
Related topics: