Kopplung

Der Begriff Kopplung wird gleichermaßen in der elektronischen Schaltungstechnik, in der Übertragungstechnik und im Software-Engineering benutzt.

  1. In der elektronischen Schaltungstechnik sorgen Kopplungen für gewollte und ungewollte Signalübertragungen zwischen Schaltkreisen oder Leitern. Mit einer Kopplung können Gleich- oder Wechselspannungsanteile von einer Schaltung zu einer anderen übertragen werden. Eine Kopplung kann Bestandteil des schaltungstechnischen Konzepts sein, sie kann aber auch Störgrößen von einer Störquelle in eine Störsenke einkoppeln, d.h. Störsignale von einer Schaltung oder von einem Leiter in einen anderen koppeln. Bei den Kopplungsarten unterscheidet man ganz allgemein zwischen Gleich- und Wechselspannungskopplungen.

    Die Gleichspannungskopplung ist eine galvanische Kopplung bei der Schaltkreise oder Schaltungen leitend miteinander verbunden sind. Die Gleichspannungsanteile können dabei in einem bestimmten Verhältnis gekoppelt werden. Für die galvanische Kopplung werden Spannungsteiler oder Widerstände benutzt, also Komponenten, die Gleichspannungen passieren lassen.

    Anders ist es bei der Wechselspannungskopplung, bei der nur frequenzmäßig selektierte Signalanteile gekoppelt werden, beispielsweise nur höhere oder nur tiefere Frequenzen. Diese Kopplungsarten, die mit Induktivitäten und Kapazitäten arbeiten, heißen dementsprechend induktive Kopplung oder kapazitive Kopplung. Die induktive Kopplung ist eine magnetische Kopplung bei der das magnetische Wechselfeld einer Spule oder eines stromdurchflossenen Leiters in einer anderen Spule oder einem anderen Leiter eine Spannung induziert. Je höher der Strom in dem Leiter, desto größer ist das Magnetfeld, und die induzierte Spannung. Diese ist ebenso abhängig vom Abstand der beiden Leiter. Je geringer der Abstand, desto höher die Induktionsspannung.

    Anders ist es bei der kapazitiven Kopplung, die über ein elektrisches Feld erfolgt. Diese Kopplung arbeitet schaltungstechnisch mit Kondensatoren. Bei ungewollter Störeinkopplung erfolgt die kapazitive Kopplung zwischen zwei nahe beieinander liegenden Leitern und ist abhängig vom Potentialunterschied zwischen den beiden Leitern, weil dieser das elektrische Feld bestimmt. Bei der induktiven Kopplung werden tieferfrequente Signale bevorzugt, also auch Netzfrequenzen, wohingegen die kapazitive Kopplung höherfrequente Signale bevorzugt. Der frequenzmäßige Anteil kann über RC- oder RL-Glieder, über Filter, Übertrager oder Resonanzkreise selektiert werden.

    Eine Variante der Kopplung ist die Rückkopplung, bei der ein Teil des Signals in den gleichen Schaltkreis eingekoppelt wird, aus dem es entnommen wurde. Je nach rückgekoppelter Phasenlage unterscheidet man zwischen Mitkopplung und Gegenkopplung.
  2. In der optischen Übertragung spielt die Kopplung zwischen den Lichtwellenleitern eine entscheidende Rolle, da eine fehlerhafter Kopplung eine hohe Signaldämpfung hervorruft. In der optischen Übertragungstechnik geht es um die reflektionsfreie und dämpfungsarme Einkopplung der Lichtenergie von der Lichtquellle in den Lichtwellenleiter, und um die Kopplung von gleichen und unterschiedlichen Lichtwellenleitern. Hierfür gibt es verschiedene Kopplungsverfahren wie die Linsenkopplung, Schrägschliffkopplung und die Stirnflächenkopplung, die jede für sich anwendungsspezifische Vorteile bieten.
  3. Im Software-Engineering beschreibt die Kopplung die Verknüpfung von Software-Elementen und Modulen und definiert darüber hinaus ein Maß für deren Abhängigkeit. Software-Elemente können beispielsweise Klassen oder Pakete sein. Die Kopplung beschreibt also immer die Interaktion und Abhängigkeit von Teilen der Software untereinander. Es gibt unterschiedliche Typen der Kopplung innerhalb einer Software. Das Ziel einer jeden Software-Entwicklung sollte die Minimierung der Kopplung bei gleichzeitiger Maximierung der Kohäsion sein - Kohäsion beschreibt den Zusammenhalt eines Moduls. Konkret erleichtert eine geringe Kopplung die Wartbarkeit einer Software und macht diese insgesamt stabiler. Kopplung ist ebenso wie Kohäsion, Datenkapselung sowie Information Hiding ein Kriterium für die Modularisierung.

    Mögliche Kopplungen von Modulen

    Mögliche Kopplungen von Modulen

    Die Abbildungen zeigen zunächst die grundlegende Problematik der Kopplung von Modulen. Im Detail ist aber eine Unterscheidung folgender Kopplungstypen sinnvoll:

    Inhaltliche Kopplung. Bedeutet, dass ein Modul auf die Daten eines zweiten Modules direkt zugreifen kann.

    Globale Kopplung. Wiederum der Zugriff von mehreren Module auf den gleichen Datenbestand, der in diesem Fall global ist.

    Steuerungskopplung. Von Steuerungskopplung spricht man, wenn ein Modul beispielsweise durch eine explizite Übergabe eines Parameters ein zweites Modul steuert.

    Datenbereichskopplung. Ein aufrufendes Modul übergibt dem aufgerufenen Modul seinen gesamten Datenbestand, wobei dieses nur einen Teil davon nutzt.

    Datenkopplung. Hier greifen mehrere Module auf den gleichen Datenbestand zu.

    Im Vergleich dazu geht das Institute of Electrical and Electronics Engineers (IEEE) einen Schritt weiter und definiert u.a. verschiedene zusätzliche Typen der Kopplung wie folgt:

    Hybridkopplung. (hybrid coupling) Der durch ein erstes Modul an ein zweites Modul übergegebene Parameter repräsentiert gleichzeitig Daten und einen Funktionscode zur Steuerung des zweiten Moduls.

    Pathologische Kopplung. (pathological coupling) Dies entspricht der o.g. inhaltlichen Kopplung.

    Inhaltliche Kopplung. (content coupling) Ein Modul enthält in Teilen oder komplett ein zweites Modul.

    Die Bereichskopplung (common environment coupling), die Steuerungskopplung (control coupling) sowie die Datenkopplung (data coupling) erklärt das IEEE gleich der erstgenannten Definition.

    Im Zusammenhang mit Kopplung spricht man auch von enger (starker) sowie loser (schwacher) Kopplung. Auch eine statische Kopplung ist möglich beispielsweise durch die Festlegung von Import-Schnittstellen. Im Gegensatz dazu wird eine dynamische Kopplung durch Funktionen und Prozeduren bestimmt. Ordnet man die erstgenannten Kopplungstypen auf einer Skala von eins (= starke Kopplung) bis fünf (= schwache Kopplung) so führt die schwache Kopplung zu der größtmöglichen Unabhängigkeit von Modulen. Damit ist dann auch die bessere Wartbarkeit und Pflege der Module verbunden.

    Nimmt man hier wieder das Beispiel der aspektorientierten Programmierung auf, welches bei der Definition von Kohäsion eingeführt wurde, so ist die Datenkopplung für die Interaktion von Modulen und Aspekten vorteilhaft. Diese entspricht prinzipiell der Datenkopplung zwischen Modulen, wird im Zusammenhang mit Aspekten aber über das Laufzeitsystem gesteuert und eben nicht durch einen Aufruf des Aspektes durch ein Modul, was aus Sicht des Aspektes für eine Kopplung nicht von Bedeutung ist. Die weiteren Kopplungstypen erhöhen hingegen die Abhängigkeit von Aspekten und führen dazu, dass diese nicht mehr wiederverwendbar sind.

    Allgemein gesehen kann die Kopplung in einer Software niemals komplett vermieden werden. Allein schon die Steuerungskopplung führt zu einer höheren Flexibilität und ist damit in Grenzen akzeptabel. Hingegen sollten eine Kopplung der Inhalt oder auch die Hybridkopplung generell vermieden werden. Eine Datenkopplung ist beispielsweise durch die Objektorientierung häufig gegeben - auch wenn das vermieden werden sollte. Ein Entkopplungsbeispiel wären getter- und setter-Methoden anstatt des direkten Zugriffs auf Attribute. So sollte auch die Strukturkopplung vermieden werden, die zum Beispiel bei der Vererbung von Klassen über die Grenzen von Paketen hinweg gegeben ist.

    Abschließend ist festzustellen, dass es keine expliziten Regeln zur Vermeidung von Kopplung gibt. Auch existieren diesbezüglich keine generellen Messgrößen für den Grad einer Kopplung. Letztendlich wird eine geringe Kopplung durch Erfahrung und entsprechende Implementierung umgesetzt.

Informationen zum Artikel
Deutsch: Kopplung
Englisch: coupling
Veröffentlicht: 18.09.2012
Wörter: 1081
Tags: #Elektronik-Grundlagen #Entwicklung, Codierung
Links: Aspektorientierte Programmierung, Attribut, content, Daten, Datenkapselung
1