Coupling is a property of a collection of modules. Coupling is the energy/strength of interconnection between modules and it is the calculation of the degree of interdependence between modules.
Two modules with high coupling are strongly interconnected so, dependent on each other. The design with high coupling will have more errors.

  • Uncoupled

In the uncoupled modules have no interconnections at all, they are completely independent.

 In this diagram, there are no interconnections in between the modules
so, there is no dependence between the modules or can say that it is 
completely independent.

  • Loosely coupled

The system is made up of relatively independent modules. 

In this diagram, there is the same interconnection between the modules so, there is some dependence between the modules.

  • Highly coupled

The system shares a great deal of dependence between the modules.

In this the diagram, there are many interconnections in
 between the modules so, there are many dependents between
 the modules.


  • A good design will have low coupling. In this case, it is easier to understand one module without understanding the other module. So, the aim is to keep the degree of coupling as low as possible.
low degree of coupling can be achieved by:-
  1. Eliminating unnecessary relationships.
  2. Reducing the number of necessary relationships.
The degree of the module is measured by the number of interconnection between the modules.


 TYPE OF COUPLING ARE:-

  • Content coupling

 during a content coupling, one module will modify the information of another module, or management flow is passed from one module to the opposite module. this can be the worst style of coupling and may be avoided.

  • Common coupling

 The modules have shared knowledge like international knowledge structures. The modifications in international knowledge mean tracing back to any or all modules that access that knowledge to judge the impact of the change. thus it's got disadvantages like issues in reusing modules, reduced ability to regulate knowledge accesses, and reduced maintainability.

  • Control coupling

If the modules communicate bypassing management data, then they're aforementioned to be management coupled. It is often unhealthy if parameters indicate utterly completely different behavior and sensible if parameters permit resolving and reprocess of practicality. Example- kind perform that takes comparison to perform as the associate argument.

  • Stamp coupling

 In stamp coupling, the whole system is passed from one module to a different module. Therefore, it involves tramp knowledgeit should be necessary because of potency factors- this alternative created by the perceptive designer, not a lazy engineer

  • Data coupling

 If the dependency between the modules relies on the actual fact that they impart bypassing solely knowledge, then the modules square measure aforementioned to be knowledge coupled. In knowledge coupling, the elements square measure freelance to every alternative and human activity through knowledge. Module communications don’t contain tramp knowledge. Example-customer charge system.