Coupling and Cohesion in Software Engineering

In this Tutorial, we’ll be discussing the importance of coupling & cohesion in software engineering. But before moving into this topic, we should know what modularization is so we can grasp the concept of coupling easily.


Modularization is the process of dividing a piece of software into several separate modules, each of which operates independently. The fundamental benefit of modularization has been that it provides software easier to comprehend, flexible, and simply testable.

What is coupling in software engineering?

The level of interdependence or interaction between various modules, versions, and components is known as coupling. Inter-module Connectivity is another name for coupling.

Highly connected modules, packages, and components are depending on one another heavily. Loosely connected modules, packages, and components are independent of one another or in some other way.

Types of coupling

  1. Data coupling:

    The sharing of basic data across units.

  2. Stamp coupling:

    When modules exchange architectural or compositional data. A non-global database structure is needed for them. Using reactive components, for instance, providing an object or a structural variable.

  3. Control coupling:

    Use of information through one module can impact how an instruction set is executed in another.

  4. External Coupling:

    When two components shared an input data which was established from outside the software, such as a communication system or device connection.

  5. Common Coupling:

    When two modules are depending on one other and share the very same global data, like in the case of state management in JavaScript frameworks.

  6. Content Coupling:

    When two modules may edit the data of that other component and share code, this is a weak kind of coupling and need to be ignored.

Cohesion is a different idea that is related to coupling.

What is cohesion in Software engineering?

What a module can accomplish internally is referred to as cohesion. As it assesses the strength of the link between capabilities inside a module, package, or component, it is also known as intra-module binding. A component’s concentration on exactly what it wants, such as having just procedures that relate to the class types intended usage, indicates that cohesion must always be strong in a module, package, or other component.

Types of cohesion

  1. Functional Cohesion:

    All the components inside the module are unconcerned with each other except for the task’s execution that is linked to the issue.

  2. Sequential Cohesion:

    Data flow between the components is an example of how the output of one element becomes the input of another element in a module.

  3. Communicational Cohesion:

    The same input and output data are processed by several parts in a module.

  4. Procedural Cohesion:

    A module’s actions must be connected to one another in terms of order; otherwise, they are unrelated.

  5. Coincidental Cohesion:

    The module’s components contribute to the pointless actions that are connected to one another.


Q1. What is coupling and cohesion?

The interactions between modules are referred to as “coupling,” whereas the relationships inside them are referred to as “cohesion.” Therefore, a decline in coupling results in a reduction in the interconnectivity between modules (or classes).

Q2. What is the main difference between coupling and cohesion?

The link between modules is shown by coupling. The module’s cohesion reveals its relative functional strength. The relative independence of the modules is demonstrated via coupling. Cohesion is the extent (quality) of a unit’s or module’s singular focus.

Q3. What is coupling in OOP?

The degree of direct information that one element possesses of another is referred to as coupling in object-oriented design. In other words, how frequently do changes in class A result in changes in class B that are linked. Two different couplings exist: a close coupling Tight coupling, in general, indicates that changes in the two classes frequently coincide.

Copyright 1999- Ducat Creative, All rights reserved.

Anda bisa mendapatkan server slot online resmi dan terpercaya tentu saja di sini. Sebagai salah satu provider yang menyediakan banyak pilihan permainan.