A Taxonomy of Software Smells
Home
Tools to detect smells
Detect smells using Designite
Design Smells
Alternative Classes with Different Interfaces
Broken Hierarchy
Broken Modularization
Cut and Paste Programming
Cyclic Hierarchy
Cyclically-dependent Modularization
Data Class
Data Clumps
Deep Hierarchy
Deficient Encapsulation
Divergent Change
Duplicate Abstraction
Feature Envy
Functional Decomposition
God Class
Golden Hammer
Hub-like Modularization
Imperative Abstraction
Inappropriate Intimacy
Incomplete Abstraction
Incomplete Library Class
Inheritance Hierarchies Without Polymorphic Assignments
Insufficient Modularization
Large Class
Lava Flow
Lazy Class
Leaky Encapsulation
List-like Inheritance Hierarchy
Message Chains
Middle Man
Missing Abstraction
Missing Encapsulation
Missing Hierarchy
Multifaceted Abstraction
Multipath Hierarchy
Obsolete Classes
Parallel Inheritance Hierarchies
Poltergeist
Primitive Obsession
Rebellious Hierarchy
Refused Bequest
Shotgun Surgery
Spaghetti Code
Speculative Generality
Speculative Hierarchy
Static Cycles in Dependency Graphs
Subclasses Do Not Redefine Methods
Swiss Army Knife
Switch Statement
The Blob
Too Deep Inheritance Hierarchy
Tree-like Dependency Graph
Type Queries
Unexploited Encapsulation
Unfactored Hierarchy
Unhealthy Inheritance Hierarchy
Unnecessary Abstraction
Unnecessary Hierarchy
Unutilized Abstraction
Visibility of Dependency Graphs
Wide Hierarchy
Home
All rights reserved (c)
Tushar Sharma
2017-23.