Coupling and its Types
Coupling is the single greatest problem in large software systems. One coupling scenario—circular coupling—is familiar to most programmers. It generally occurs when developers lose control of the design of a system, a situation that often occurs in the last feverish days of development, immediately before deployment, when programmers find themselves adding last-minute fixes and features on the fly. When a group of people adds changes in this manner, the coupling in a system typically gets completely out of hand. Circular coupling can suddenly force you to refactor the system's design, which can be a fairly big problem if you're trying to add a relatively simple feature to a system, perhaps in the maintenance phase with limited time available. Coupling is one of those characteristics that people assume is just part of the system. In reality, you can plan and control coupling, leading to much better and simpler systems. The main reason people turn to event-based programming is to reduce the coupling in a system.
Coupling and cohesion are important indicators of the quality of a software system. While coupling looks at the external dependencies between modules, cohesion looks at the internal ones of a single module. In the context of event-based systems, the word module should be understood as component.
In the broadest terms, coupling indicates the presence of interdependencies between classes or components. High-quality software should have a low degree of coupling between its components, because coupling introduces complexity, and complexity makes a system more difficult to understand, test, and maintain. In some sense, you can view coupling as a form of chaos, and attempts have been made to treat coupling like entropy. Most software systems have a significant amount of coupling between their constituent components, because the designers didn't anticipate coupling as a problem, and therefore didn't invest time in preventing it or dealing with it. Given the problems that coupling causes, it's surprising that today there is no standard way to measure coupling between the various parts of a software system.
Some of the main types of coupling are
Questionnaire:
| Name* : |
|||||
| Email* : |
|||||
| Country* : |
|||||
| Phone* : |
|||||
| Subject* : |
|||||
| Upload Homework : Upload another homework (upto 5 uploads max.)
|
|||||
| Due Date |
Time |
AM/PM |
Timezone |
||
| Instructions |
|||||
|
|||||