Functional coupling occurs when components must change together despite having no visible technical connection, such as an API call or shared code. The dependency comes from business behavior that is duplicated or implicitly shared across components. section 12.1
Different prices across user interfaces
Several user interfaces displayed different prices because price and discount calculations had been duplicated across three or four components, including JavaScript embedded in HTML. Developers introducing special discount pricing did not realize every copy required an update. section 12.1
Use these questions to assess the dependency:
- Which components contain the same business rule or calculation? section 12.1
- Which changes require coordinated updates even though no interface or shared code reveals the relationship? section 12.1
- Model flows and processes to uncover hidden coupling, then compare possible subsystem boundaries rather than assuming one design. section 12.6
Compare functional coupling with intrusive, model, and contract coupling to judge dependency strength and change risk. section 12.1
