Afferent Coupling

Afferent coupling measures the responsibility of a class by counting the incoming dependencies, or how often a class is used in other classes. The higher the value, the more important the class is and the bigger its impact on the codebase. Changes to or bugs in these areas can have a big impact since they cover a lot of the codebase. These classes should be stable & thoroughly tested.

High afferent coupling is not necessarily a bad thing and will naturally occur for certain pieces of code (e.g. core functionality will usually score high). It only becomes a problem if those classes change often, or if afferent coupling is unnaturally high across the entire application.

The more classes depend on a class, the higher the chance one of them breaks when it changes.