Skip to main content

Table 1 Description of design problems

From: On the identification of design problems in stinky code: experiences and tool support

Name Description
Fat interface Interface of a design component that offers only a general, ambiguous entry-point that provides non-cohesive services, thereby complicating the clients’ logic.
Unwanted dependency Dependency that violates an intended design rule.
Component overload Design components that fulfill too many responsibilities.
Cyclic dependency Two or more design components that directly or indirectly depend on each other.
Delegating abstraction An abstraction that exists only for passing messages from one abstraction to another.
Scattered concern Multiple components that are responsible for realizing a crosscutting concern.
Overused interface Interface that is overloaded with many clients accessing it, that is, an interface with too many clients.
Unused abstraction Design abstraction that is either unreachable or never used in the system.