Lose Kopplung

Lose Kopplung bezeichnet in der Informatik einen geringen Grad der Abhängigkeit mehrerer Hard- oder Software-Komponenten untereinander. Bei loser Kopplung eines Systems lassen sich Änderungen einzelner Komponenten oftmals einfacher durchführen, da die Änderung nur eine lokale Auswirkung hat. Wäre eine enge Kopplung gegeben, so bliebe die Änderung nicht lokal, sondern würde ggf. zusätzliche Anpassungen in allen gekoppelten Komponenten erfordern. Diesem Vorteil steht in einigen Fällen der Nachteil einer etwas geringeren Performance gegenüber.

Taxonomie bei Mehrprozessorsystemen

Es werden Mehrprozessorsysteme in Systeme loser Kopplung (englisch loosely coupled) und entsprechend auch enger Kopplung (englisch tightly coupled) unterschieden.

Von einem lose gekoppelten System spricht man, wenn die Datenübertragung zwischen zwei Systemen über E/A-Systeme (Netzwerk, Datenleitung) erfolgt.

Der Einsatz von lose gekoppelten Systemen ist auf die Bearbeitung von verteilten Problemen ausgerichtet. Ein Beispiel für ein solches Problem ist die auf mehrere Computer verteilte Faktorisierung einer sehr großen Zahl. Jeder Computer würde eine eigene Reihe von Divisoren zu dieser Zahl zugewiesen bekommen, diese durchprobieren und das Ergebnis an den Hauptrechner schließlich zurücksenden.

Software-Architektur

Der Begriff der Kopplung hat sich auch in der Softwarearchitektur etabliert und beschreibt dort, wie eng die Komponenten einer Software miteinander verbunden sind. Eng verbunden mit dem Begriff Kopplung ist in der Softwarearchitektur der Begriff Kohäsion. Man strebt für ein Softwaresystem eine möglichst lose Kopplung zwischen den Komponenten, sowie eine starke Bindung (Kohäsion) innerhalb jeder Komponente an.

Eine lose Kopplung bedeutet in der Softwarearchitektur, dass Komponenten einer Software nur über wenige Schnittstellen mit anderen Komponenten kommunizieren bzw. von anderen Komponenten abhängig sind. Diese Komponenten kommunizieren nicht notwendigerweise über Systemgrenzen, sondern in der Regel innerhalb eines Softwaresystems. Für diesen Fall beschreibt das Entwurfsmuster Fassade, wie dies im Softwaredesign umgesetzt werden kann. Globale Variablen, öffentliche Attribute, Singletons oder beispielsweise die Speicherung von Softwarezuständen in einer Datenbank vergrößern automatisch die Schnittstelle von Komponenten und sind daher zu vermeiden.

Lose Kopplung führt dazu, dass Änderungen in einer Komponente nur dann Änderungen in einer anderen Komponente bedingen, wenn die Änderungen die Schnittstelle betreffen. Lose Kopplung hat daher einen direkten Einfluss auf die Wartbarkeit einer Software.

Siehe auch

Literatur