Coupling (computer programming)

In computer science is meant by the term coupling the linkage of different systems, applications, or software modules, as well as a measure that describes the strength of this link and the resultant dependence.

Coupling of systems and applications

Individual applications or systems can work together in different ways. The coupling here describes how this is done. In general, considered here the data flow of an application or a system to another. A distinction is made here:

  • Coupling through human intervention: this is no coupling in the narrow sense, but needs to be listed with. Here, the information is transported by a human between the two systems.
  • Coupling through formatted files: Here, the data transported between applications (also called flat files ) with plain files. All applications involved must understand the appropriate format. The file formats often tab delimited or comma-delimited or XML-based file formats are used.
  • Coupling through converter: The problem is that the various applications must agree on a format for the exchange is solved by the converter. A converter converts a data format to another. Here, he tries to maintain the semantics of the data. In many cases, however, this is not fully possible. In the field of free software, many examples of converters exist. For example, converts dvi2ps a DVI file into a PostScript file to.
  • Coupling by coupling procedures: For coupling via procedures the client system calls to the server to a function by which the data is transmitted. At the same time, the direct is Start a logic on the server side is hereby possible. In most cases, the source code has to be adapted from one or two applications for the coupling of this method, however. In the various programming languages ​​and concepts are different techniques to make this possible (keywords: RPC, or RFC, CORBA, RMI, SOAP and Web Service, Remoting, COM, DCOM. ).

Coupling of modules

Even within an application one considers different types of coupling and that the coupling between individual software modules. In contrast, the term describes the binding dependencies within modules. It aims at a loose coupling as possible, as well as a strong bond (cohesion) for a system.

Types of the coupling

We can distinguish different types of coupling, which can be classified according to their strength. The following rule applies: the lower the coupling is the more independent the module.

Types of coupling according to Myers

Glenford J. Myers in 1974 described the following types of connection:

Originally, these types of coupling were disordered. Only Meilir Page -Jones introduced the above-mentioned order. He also defined another type of coupling: tramp coupling. This prevails when a module accepts parameters, but does not itself used but further extends only to other modules.

Coupling types according to IEEE

Also, the Institute of Electrical and Electronics Engineers ( IEEE) defines different types of coupling, but ' differ in detail from those Myers. In the IEEE 610 standard, Glossary of Software Engineering Terminology, following coupling types can be distinguished:

485925
de