Skip to main content

What is Coupling? What is Cohesion? Explain different types of Cohesion and Coupling with proper example.

Understanding Coupling and Cohesion in Software Engineering

What is Coupling?

  • Coupling refers to the degree of interdependence between modules or classes in a software system.
  • High coupling indicates strong dependencies, making changes difficult and increasing the risk of unintended consequences.
  • Low coupling promotes modularity, reusability, and maintainability.

Types of Coupling

  • Content Coupling: One module directly modifies data within another. Example: Module A directly changing variables inside Module B. This is extremely undesirable.
  • Common Coupling: Modules share global data. Example: Multiple modules accessing and modifying the same global variable. Difficult to manage and understand.
  • Control Coupling: One module controls the flow of execution in another using flags or parameters. Example: Module A passing a flag to Module B to dictate its behavior. Often avoidable through better design.
  • Stamp Coupling: Modules share a composite data structure, but only use a portion of it. Example: Passing a large object when only a small subset of its data is needed. Inefficient and leads to tight coupling.
  • Data Coupling: Modules communicate through passing data parameters. Example: Module A passing specific data values to Module B. The most desirable form of coupling.

What is Cohesion?

  • Cohesion refers to how closely related the functions within a single module or class are.
  • High cohesion implies that a module performs a single, well-defined task.
  • Low cohesion suggests that a module performs unrelated tasks, making it difficult to understand, maintain, and reuse.

Types of Cohesion

  • Coincidental Cohesion: Parts of a module have no logical relationship. Example: A module containing unrelated functions such as logging and database access. Weakest form of cohesion.
  • Logical Cohesion: A module performs multiple related functions, but each is invoked independently. Example: A module performing several validation operations. Slightly improved over coincidental, but still weak.
  • Temporal Cohesion: Functions within a module are grouped because they are executed at the same time. Example: A module containing functions that are all executed during system initialization. Better than logical, but still not ideal.
  • Procedural Cohesion: Functions are grouped because they are executed in a specific order. Example: A module with functions that perform steps in a particular process. Improves upon temporal.
  • Communicational Cohesion: Functions operate on the same data. Example: A module containing functions that process data from a single input file. Strong cohesion, good design.
  • Sequential Cohesion: Output of one function serves as input for another. Example: A module with functions where the output of one is the direct input of the next. Very strong cohesion.
  • Functional Cohesion: A module performs a single, well-defined function. Example: A module calculating the area of a circle. The strongest form of cohesion and ideal.

Popular Posts

Discuss the important Agile Principles that guide agile development.

Agile Principles: Guiding Lights for UI/UX and Development Individuals and Interactions Over Processes and Tools Prioritize effective communication and collaboration. Foster a team environment that values individual expertise. Recognize that tools support, but don't replace, human interaction. Working Software Over Comprehensive Documentation Deliver functional software increments frequently. Emphasize working software over exhaustive documentation upfront. Focus on iterative development and continuous improvement. Customer Collaboration Over Contract Negotiation Build strong relationships with stakeholders. Incorporate customer feedback throughout the development lifecycle. Adapt to changing requirements flexibly. Responding to Change Over Following a Plan Embrace change as an opportunity for improvement. Adapt to evolving requirements and priorities. Value flexibility and responsiveness over rigid adherence to plans. Business Value Delivery Priorit...

Explain the components of successful email marketing.

Securing Success: The Anatomy of Effective Email Marketing from a Security & Analytics Lens Audience Segmentation & Data Privacy Web Analytics: Utilizes demographic, behavioral, and preference data to create targeted subscriber segments. Internetwork Security:  Implements robust access controls and encryption for sensitive subscriber data (PII). Internetwork Security: Ensures compliance with data privacy regulations (e.g., GDPR, CCPA) for list management. Web Analytics:  Tracks subscriber engagement within segments to refine targeting strategies. Deliverability & Sender Trust Internetwork Security: Employs SPF, DKIM, and DMARC records to authenticate sender identity and prevent spoofing. Web Analytics:  Monitors bounce rates (hard and soft) to identify invalid addresses and maintain list hygiene. Internetwork Security: Actively manages sender reputation to avoid blacklists and improve inbox placement. Web Analytics:  Analyzes inbox placeme...

Explain Agile Testing? What are the principles of Agile Testing?

Agile Testing: A UI/UX Designer's Guide What is Agile Testing? Continuous testing integrated throughout the development lifecycle. Short, iterative testing cycles aligned with sprints. Focus on rapid feedback and continuous improvement. Close collaboration between developers, testers, and designers. Emphasis on automated testing to accelerate the process. Prioritizes user experience testing and feedback. Core Principles of Agile Testing Continuous Feedback: Testing is ongoing and feedback is immediately incorporated. Working Software over Comprehensive Documentation: Focus shifts to functional software, reducing extensive documentation. Customer Collaboration: Active user involvement ensures alignment with requirements. Embrace Change: Adaptability is key to responding to evolving user needs and feedback. Simple Design: Prioritizing user-friendliness and efficiency in UI/UX design. Self-Organizing Teams: Empowered teams manage and adjust testing strate...

Explain the design concepts Modularity and Functional Independence in detail.

Modularity and Functional Independence: Pillars of Robust Software Design Modularity: Breaking Down Complexity Divides a system into independent, interchangeable modules. Each module has a specific, well-defined purpose. Promotes code reusability across different projects. Simplifies development, testing, and maintenance. Enables parallel development by different teams. Improves system understandability and manageability. Facilitates easier updates and modifications without affecting the entire system. Leads to better fault isolation and easier debugging. Functional Independence: The Key to Modular Success Modules should have minimal interaction with other modules. High cohesion within a module: Elements within a module are closely related. Low coupling between modules: Modules are loosely connected, reducing dependencies. Changes in one module have minimal impact on others. Improves system flexibility and adaptability to change. Reduces the risk of cascading fai...

Current Affairs 08 September 2025 | France PM Confidence Vote, Norway Elections, Nepal Flights Halted

Current Affairs – 08 September 2025 Top Headlines 1. France Political Crisis PM François Bayrou lost confidence vote in Parliament. Defeat: 364 votes against vs. 194 in support. President Macron under pressure to pick a new PM. Trigger: public anger over austerity measures & protests. 2. Norway General Election Centre-left Labour Party led by Jonas Gahr Støre wins narrowly. Secured 89 seats vs. 80 for centre-right. Indicates fragile governance & coalition challenges. 3. Nepal Unrest – Flights Suspended Major protests in Nepal force airport closures. Indian airlines IndiGo & Air India suspend flights to Kathmandu. Passengers stranded; Air India cancels flights for 2nd day. 4. Punjab Schools Reopening Delayed Due to heavy floods, reopening postponed to 09 September. DCs ordered to inspect schools for safety before allowing classes. 5. EU Delegation Visit to India Announced EU Political & Security Committee to visit India (10–14 Sept). Focus: defense, security & foreig...