Semantic coupling refers to shared meaning of concepts used by multiple components. It can relate both to business domain-related terms and technical ones.
Domain
Domain-related semantic coupling occurs when multiple components depend on shared definitions of business concepts. For example, what is a policy? When is a customer considered preferred? The meanings of these domain terms can change over time due to business evolution or as deeper insights emerge. When such changes occur, they trigger simultaneous updates across all semantically coupled components.
Technical
Semantic coupling can also arise from technical design choices. Consider using a specific integration protocol, like SOAP, for example. Both the service provider and its consumers must be aware of the protocol’s semantics. Any change to the protocol requires corresponding updates on the consumers’ side to keep the integration working.
Semantic Coupling and Connascence
The levels of static connascence reflect specific types of semantic relationships that can arise across component boundaries. For example, components might have to agree on the use of specific names, assign domain meanings to primitive values, or treat values differently according to their position.
Semantic Coupling in Balanced Coupling
The integration strength model differentiates between two fundamental different kinds of semantic coupling: model coupling and contract coupling.
Semantic coupling that arises from using a shared business domain model (model coupling) is much more prone to cascading changes than semantic coupling in integration-specific interfaces (contract coupling).