In software Engineering, Coupling is a part of SRS documentation used to define the factors of independence and dependency of each module of the software with other modules. It is used as an indicator of interdependency among the modules.
Types of Coupling
In software engineering, Coupling between modules can be identified by looking at the number and type of resources shared with other modules. Below are the 6 types of software coupling:
Common Coupling is a form of Coupling in which the modules share constraints. This can be seen as with any other process because it allows for characterization and advantages to occur; however, this kind also has disadvantages such as more maintenance tasks involved than less control over module behavior due to being coupled together so closely with no ability for isolation or breaking apart on its own terms.
Content Coupling is a technique where modules share their contents, and when one changes, the other needs to be updated as well. This can lead to higher-level malfunctions if they are not synced correctly.
Data Coupling occurs when two software system modules have only one type of interaction between them; this can be as simple as data. The rest of the components are not shared resources such as functionality or other operating systems components.
The controlled Coupling is a functional flow where the two software modules network by providing each other access to their respective functions. The impact of this Coupling on software applications can either be positive or negative, as it can be defined based on the control being shared by the said module.
Stamp coupling is a way for two modules to work more efficiently by sharing data that has been organized and placed beforehand. There will be no unused or junk information shared between these coupled modules, which helps improve performance in systems while also helping the designer limit their system’s ability to stamp couplings.
The process of external Coupling is when modules are interrelated with common factors that come from outside them. It can be described as ‘an application legacy sending data or contents to both,’ hardware requirements for each module, files shared between the two in some way (e.g., through communication), etc.”
- Which Is Better Software Engineering Or Computer Science - September 24, 2021
- What Is Coupling In Software Engineering - September 20, 2021
- Why is it Important to have a Project Manager for Software Development Projects? - September 17, 2021