coupling

The term coupling is used equally in electronic circuitry, transmission technology and software engineering.

1. In electronic circuitry, couplings provide for intentional and unintentional signal transfersbetween circuits or conductors. A coupling can be used to transfer DC or AC components from one circuit to another. Coupling can be part of the circuit design concept, but it can also couple interference from an interference source into an interference sink, i.e. couple interference signals from one circuit or conductor into another. In general, a distinction is made between DC coupling and AC coupling. DC coupling is a galvanic coupling in which circuits are conductively connected to each other. The DC voltage components can be coupled in a certain ratio. Voltage dividers or resistors are used for galvanic coupling, i.e. components that allow DC voltages to pass. The situation is different with AC coupling, where only frequency-selected signal components are coupled, for example only higher or only lower frequencies. These types of coupling, which work with inductances and capacitances, are accordingly called inductive coupling or capacitive coupling. Inductive coupling is a magnetic coupling in which the alternating magnetic field of a coil or a current-carrying conductor induces a voltage in another coil or another conductor. The higher the current in the conductor, the greater the magnetic field, and the induced voltage. This is also dependent on the distance between the two conductors. The smaller the distance, the higher the induction voltage. It is different with capacitive coupling, which takes place via an electric field. In terms of circuitry, this coupling works with capacitors. In the case of unwanted interference coupling, capacitive coupling occurs between two conductors that are close to each other and depends on the potential difference between the two conductors because this determines the electric field. With inductive coupling, lower-frequency signals are preferred, i.e. also line frequencies, whereas capacitive coupling prefers higher-frequency signals. The frequency component can be selected via RC or RL elements, via filters, transformers or resonant circuits. A variant of coupling is feedback, in which part of the signal is coupled into the same circuit from which it was taken. Depending on the phase position that is fed back, a distinction is made between positive and negative feedback.
2. In optical transmission, the coupling between the optical waveguides plays a decisive role, since faulty coupling causes high signal attenuation. Optical transmission technology is concerned with the reflection-free and low-attenuation coupling of light energy from the light source into the optical waveguide, and with the coupling of the same and different optical waveguides. For this purpose, there are various coupling methods such as lens coupling, helical- bevel coupling and face coupling, each of which offers application-specific advantages.
3. In software engineering, coupling describes the linking of software elements and modules and also defines a measure of their dependency. Software elements can be classes or packages, for example. The coupling describes thus always the interaction and dependence of parts of the software among themselves. There are different types of the coupling within a software. The goal of any software development should be to minimize coupling while maximizing cohesion - cohesion describes the cohesion of a module. Specifically, low coupling facilitates the maintainability of a software and makes it more stable overall. Like cohesion, data encapsulation and information hiding, coupling is a criterion for modularization.

Possible couplings of modules

The illustrations show first the fundamental problem of the coupling of modules. In detail, however, it is useful to distinguish between the following coupling types: Content coupling Means that one module can directly access the data of a second module. Global coupling Again, the access of several modules to the same dataset, which in this case is global. Control coupling Control coupling is when a module controls a second module, for example, by explicitly passing a parameter. Data range coupling A calling module passes its entire dataset to the called module, which uses only part of itData coupling Here, several modules access the same dataset. In comparison, the Institute of Electrical and Electronics Engineers( IEEE) goes a step further and defines, among other things, several additional types of coupling as follows: Hybrid coupling (hybrid coupling) The parameter passed by a first module to a second module simultaneously represents data and a function code to control the second module. Pathological coupling (pathological coupling) This corresponds to the above-mentioned content coupling. Content coupling (A module contains in parts or completely a second module. The IEEE explains the common environment coupling, the control coupling as well as thedata coupling in the same way as the first-mentioned definition. In connection with coupling one speaks also of close (strong) as well as loose (weak) coupling. Static coupling is also possible, for example by defining import interfaces. In contrast, dynamic coupling is determined by functions and procedures. If one arranges the first-mentioned coupling types on a scale of one (= strong coupling) to five (= weak coupling) then the weak coupling leads to the greatest possible independence of modules. If one takes up here again the example of aspect-oriented programming, which was introduced with the definition of cohesion, then the data coupling for the interaction of modules and aspects is advantageous. This corresponds in principle to the data coupling between modules, is controlled in connection with aspects however over the run time system and evenly not by a call of the aspect by a module, which is not of importance from view of the aspect for a coupling. The further coupling types increase however the dependence of aspects and lead to the fact that these are no longer reusable. Generally seen coupling can never be avoided completely in a software. Alone the control coupling leads to a higher flexibility and is thus acceptable within limits. On the other hand, content coupling or even hybrid coupling should generally be avoided. Data coupling, for example, is often given by object orientation - even if this should be avoided. A decoupling example would be getter and setter methods instead of direct access to attributes. Thus also the structure coupling should be avoided, which is given for example with the inheritance of classes over the borders of packages. Finally it is to be stated that there are no explicit rules for the avoidance of coupling. Nor do general metrics for the degree of coupling exist in this regard. Ultimately, low coupling is implemented through experience and appropriate implementation.
Informations:
 Englisch: coupling Updated at: 19.09.2012 #Words: 1062 Links: transmission, software engineering (SE), indium (In), signal, distributed computing (DC) Translations: DE Sharing: