Rule Definition
Excessive coupling is detrimental to modular design since classes are not independent. A large efferent coupling indicates that a class is unfocussed and may also indicate that it is unstable, since it depends on the stability of all the types to which it is coupled. This prevents reuse since a high coupling possibly indicates a namespace is poorly designed and difficult to understand/maintain. Extracting classes from the original class so the class is decomposed into smaller classes can reduce efferent coupling, this improves modularity and promotes encapsulation.
Remediation
Review the architecture
Reference
- https://dzone.com/articles/measuring-code-complexity - https://en.wikipedia.org/wiki/Software_package_metrics - http://www.arisa.se/compendium/node104.html - C., Martin, Robert (2018). Clean architecture : a craftsman's guide to software structure and design. Boston. ISBN 9780134494166. OCLC 1003645626. - Robert Cecil Martin (2002). Agile Software Development: Principles, Patterns and Practices. Pearson Education. ISBN 0-13-597444-5.
Related Technologies
.Net
Technical Criterion
CWE-1121 - Excessive McCabe Cyclomatic Complexity
About CAST Appmarq
CAST Appmarq is by far the biggest repository of data about real IT systems. It's built on thousands of analyzed applications, made of 35 different technologies, by over 300 business organizations across major verticals. It provides IT Leaders with factual key analytics to let them know if their applications are on track.