EDUCBA

EDUCBA

MENUMENU
  • Free Tutorials
  • Free Courses
  • Certification Courses
  • 600+ Courses All in One Bundle
  • Login
Home Software Development Software Development Tutorials Software Engineering Tutorial Coupling in Software Engineering
Secondary Sidebar
Software Engineering Tutorial
  • Advanced
    • Functional Point Analysis
    • Software Quality Control
    • Quality Assurance Tools
    • Prototype model advantages and disadvantages
    • UML Modelling Tools
    • Tomcat Server
    • Quality Software
    • UI Prototyping
    • Hybrid Model
    • Behavioral Model in Software Engineering
    • Flowchart symbols
    • Critical System
    • Legacy System
    • SOA Architecture
    • Software Quality Attributes
    • Software Maintenance
    • Software Cost Estimation
    • Software Inspection
    • Cohesion in Software Engineering
    • Coupling in Software Engineering
    • Component-based Software Engineering
    • Design Modeling in Software Engineering
    • Iterative Methodology
    • System Flow Diagram
    • Data Flow Architecture
    • SEICMM
    • Function Oriented Design
  • Basic
    • What is Software Engineering?
    • What is SDET
    • What Is SDLC
    • SDLC Methodologies
    • Software Classification
    • Software Design
    • Software Design Principles
    • Software Metrics
    • Utility Software Types
    • UI Design Tools
    • User Interface Design Principles
    • Architectural Design in Software Engineering
    • Software Configuration Management
    • Software Configuration Management Tools
    • What is Risk Management?
    • System Engineering
    • Object oriented programming paradigm
    • CASE Tools
  • Models
    • Prototype Model
    • What is Spiral Model
    • Waterfall?Model
    • Prototyping Tools
    • Incremental Model
    • Iterative Model
    • RAD Model
    • Fish Model
    • What is Scrum Methodology?
    • RUP? Methodology
    • COCOMO Model
    • Big Bang Model
    • System Models
    • People Capability Maturity Model
    • Analysis Modeling
    • User Interface Design
    • Capability Maturity Model Integration
    • What is Agile Development?
    • Agile Model Advantages and Disadvantages
    • Agile Process Model
    • Rational Unified Process
  • UML Daigram
    • StarUML
    • Architecture of UML
    • StarUML? Download
    • Types of UML Diagrams
    • UML Activity Diagram
    • UML Component?Diagram
    • UML Deployment Diagram
    • UML Diagram Softwares
    • UML Object?Diagram
    • UML Sequence Diagram
    • UML Use Case Diagram
    • State Diagram
    • Class Diagram
    • UML Dependency
    • UML Interaction Diagrams
    • Data Flow Diagrams
  • Interview Questions
    • Software Engineering Interview Questions
    • SDLC Interview Questions

Related Courses

Software Testing Course

Cyber Security Training

Software Development Course Training

Coupling in Software Engineering

By Priya PedamkarPriya Pedamkar

Coupling in Software Engineering

Introduction to Coupling in Software Engineering

Coupling in Software Engineering is a part of Software Requirement Specification (SRS) documentation that is used to define the factors of dependency and independence of each module of the software with other modules. It is used as an indicator of interdependency amongst the modules, and the lower the coupling value will be, the higher the quality of the software will be. The name coupling is applied for this process, as it is typically deliberated between two modules at a time. The first step taken in the coupling process is to evaluate the association between the two modules and to define the functionally dependent areas in the modules.

Types of Coupling

Coupling between any two modules is identified from the number and types of resources that the modules share with other modules. This resource can be a functional behavior, a common interface, a common field in a user interface, the data picked from a field and shared between two modules, a transaction shared between two modules, etc. Based on these possible dependencies, the coupling in software engineering is classified into six different types of coupling. And, they are

Types of Coupling

  • Common Coupling
  • Content Coupling
  • Data Coupling
  • Control Coupling
  • Stamp Coupling
  • External

Every software requirement specification documentation process should have a classification of these coupling between the dependent modules, whichever is applicable after a brief evaluation performed on the requirement provided by the client.

Start Your Free Software Development Course

Web development, programming languages, Software testing & others

1. Common Coupling

Common Coupling consists of the modules that share the overall constraints in the midst of any two modules of the software system. This also can be a sign of any change made in the common constraint will reflect in the modules that share the common coupling scenario. As any other process, this common coupling also allows space for characterizing the advantages and disadvantages involved in the process. This type of dependency should be evaded as it calls for more maintenance activities and lesser control over the modules. A fine example of this kind of coupling is the login page, where the login module and the backend module are interdependent, as the login validation happens both in the login page level and the backend database level.

2. Content Coupling

Content coupling, as the name says, is a case where two modules share their contents and when a change is made in one module the other module needs to be updated as well. When the modules are not in synch, it leads to higher level of functional misbehavior. For Instance, when two modules share the same data, the primary key columns for both the modules’ databases should be related, or else the content of the modules will reflect non-synch data due to the dependency.

All in One Software Development Bundle(600+ Courses, 50+ projects)
Python TutorialC SharpJavaJavaScript
C Plus PlusSoftware TestingSQLKali Linux
Price
View Courses
600+ Online Courses | 50+ projects | 3000+ Hours | Verifiable Certificates | Lifetime Access
4.6 (86,754 ratings)

3. Data Coupling

When two modules of the software system has only one type of interaction between them, and of that interaction is in the form of data, then this type of coupling is termed as Data Coupling. Other than the form of data, the modules have no other commonly shared resources like the functionality or any other system components. An example of data coupling is that two user interfaces, which share data in terms like module 1 passes data for processing to module 2 and received the processed data back from module 2. Though all the coupling needs to be minimized, this type of coupling is tolerable as it does not affect any other functional behavior of the software.

4. Control Coupling

Control coupling is a functional flow of the software where the two software modules network by provisioning the shared control involving the modules’ functional activities. The impact of this type of coupling on the software application can either be a positive one or a negative one, as it can be defined only based on the type of control being shared by the said modules. It is seen as a positive impact, when the functionality is allowed for reusability. This type of coupling is usually observed in code level, when the arguments are reused in more than one place in the functional part of the code.

5. Stamp Coupling

Stamp coupling is detected between any two modules which share a compilation of an already structured intricate set of data. As the data and elements are pre-organized and well-placed beforehand, there will be no junk or unused data shared between the two coupling modules. This helps in improving the general efficiency of the software and its performance, while the system designer should know the limitations to what extent the stamp coupling can be allowed in the system.

6. External Coupling

External coupling can be described as a situation where the modules are interrelated with common external influencing factors. It can be ‘an external legacy application which sends the same set of data or contents to both modules’, or ‘a hardware requirement common for both modules’, or ‘a common file/ folder being used by both modules’, or ‘when both use same switch/ router in the network for communication’, etc.

Advantages of Coupling in Software Engineering

In the Software Engineering process, as a part of Software Development Lifecycle, the Design phase has ‘coupling’ as one of the essential steps to be completed.

Below are the key advantages of performing the coupling process,

  • It helps in identifying the dependencies of each module with other modules in the
  • It is mainly used for increasing the quality and performance of the software application, as the analysis aids in keeping the coupling value to the
  • Coupling supports the reusability of the functionality amongst the
  • When the dependency between the modules is less, the changes done in one unit will not affect the
  • It provides room for better methods for the maintenance of the

Conclusion

Coupling in Software Engineering is a crucial process, as it is significant in recognizing and limiting the connection amid the various modules of the software. In addition to this, coupling plays a major role in holding the quality and performance of the software system to a maximum level, by keeping in check the link amidst of all the elements in the software.

Recommended Articles

This is a guide to Coupling in Software Engineering. Here we discuss the 6 different types of Coupling in Software Engineering along with the respective advantages. You may also have a look at the following articles to learn more –

  1. Software Engineering Interview Questions
  2. Process of Reverse Engineering
  3. Software Design Principles
  4. Reverse Engineering
Popular Course in this category
Software Testing Training (11 Courses, 2 Projects)
  11 Online Courses |  2 Hands-on Projects |  65+ Hours |  Verifiable Certificate of Completion
4.5
Price

View Course

Related Courses

Cyber Security Training (10 Courses, 3 Projects)4.9
All in One Software Development Bundle (600+ Courses, 50+ projects)4.8
0 Shares
Share
Tweet
Share
Primary Sidebar
Footer
About Us
  • Blog
  • Who is EDUCBA?
  • Sign Up
  • Live Classes
  • Corporate Training
  • Certificate from Top Institutions
  • Contact Us
  • Verifiable Certificate
  • Reviews
  • Terms and Conditions
  • Privacy Policy
  •  
Apps
  • iPhone & iPad
  • Android
Resources
  • Free Courses
  • Java Tutorials
  • Python Tutorials
  • All Tutorials
Certification Courses
  • All Courses
  • Software Development Course - All in One Bundle
  • Become a Python Developer
  • Java Course
  • Become a Selenium Automation Tester
  • Become an IoT Developer
  • ASP.NET Course
  • VB.NET Course
  • PHP Course

ISO 10004:2018 & ISO 9001:2015 Certified

© 2022 - EDUCBA. ALL RIGHTS RESERVED. THE CERTIFICATION NAMES ARE THE TRADEMARKS OF THEIR RESPECTIVE OWNERS.

EDUCBA
Free Software Development Course

C# Programming, Conditional Constructs, Loops, Arrays, OOPS Concept

*Please provide your correct email id. Login details for this Free course will be emailed to you

By signing up, you agree to our Terms of Use and Privacy Policy.

EDUCBA Login

Forgot Password?

By signing up, you agree to our Terms of Use and Privacy Policy.

EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

*Please provide your correct email id. Login details for this Free course will be emailed to you

By signing up, you agree to our Terms of Use and Privacy Policy.

EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you

By signing up, you agree to our Terms of Use and Privacy Policy.

Let’s Get Started

By signing up, you agree to our Terms of Use and Privacy Policy.

This website or its third-party tools use cookies, which are necessary to its functioning and required to achieve the purposes illustrated in the cookie policy. By closing this banner, scrolling this page, clicking a link or continuing to browse otherwise, you agree to our Privacy Policy

Loading . . .
Quiz
Question:

Answer:

Quiz Result
Total QuestionsCorrect AnswersWrong AnswersPercentage

Explore 1000+ varieties of Mock tests View more