liveBook · Manning

Functional coupling

As explained in Architecture Modernization: Socio-technical alignment of software, strategy, and structure

Functional coupling is a dependency in which components must change together because they contain duplicated or implicitly shared business behavior without a visible technical connection.

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
Figure 12.2 Vlad Khononov’s coupling types

Compare functional coupling with intrusive, model, and contract coupling to judge dependency strength and change risk. section 12.1

How Architecture Modernization: Socio-technical alignment of software, strategy, and structure covers it

How deep it goes
Defines the dependency, contrasts its strength with other coupling types, and illustrates it through duplicated pricing logic.
Examples
Uses inconsistent prices across user interfaces caused by duplicated price and discount calculations.
What it assumes
Assumes a component-level view of software systems, including functions, classes, modules, microservices, or entire systems.
What you can do after
Diagnose hidden business-rule dependencies and evaluate subsystem designs through flow and process modeling.
How it connects
Relates functional coupling to intrusive coupling, model coupling, contract coupling, and domain message flow modeling.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Architecture Modernization: Socio-technical alignment of software, strategy, and structure. The section links point to the parts of the book it draws on.