Anti-Pattern Scanner: An Approach to Detect Anti-Patterns and Design Violations