3-4 Kohäsion und Kopplung Flashcards
Definieren Sie den Begriff Kopplung.
Der Grad der Interaktion zwischen zwei Komponenten wird als Kopplung der beiden Komponenten bezeichnet.
Sie ist ein Qualitätsmerkmal der SW-Architektur.
Ziel des SW-Grobentwurfs muss deshalb eine möglichst geringe Kopplung sein, da die Modularisierung an Transparenz und Wartbarkeit gewinnt, wenn zwischen den Komponenten nur wenige und einfache Abhängigkeiten existieren.
Definieren Sie den Begriff Kohäsion.
Der Grad der funktionalen Bindung innerhalb einer Komponente wird als Kohäsion bezeichnet.
Eine niedrige Kopplung erzielt man, wenn stark zusammenhängende (Teil-)Funktionalitäten in einer gemeinsamen Komponente untergebracht werden.
Ziel des SW-Grobentwurfs muss deshalb eine möglichst hohe Kohäsion sein, da die Modularisierung an Transparenz und Wartbarkeit gewinnt, wenn jede Komponente nur aus stark funktional zusammenhängenden Teilen besteht.
Zählen Sie die Kopplungsarten auf, in der Reihenfolge Gut zu Schlecht.
- Data (Good)
- Stamp
- Control
- Common
- Content (Bad)
Erklären Sie grob den Begriff Content Coupling.
Zwei Module p und q sind inhaltsgekoppelt, wenn ein Modul p unmittelbare Auswirkungen auf den Inhalt bzw. auf den auszuführenden Codeteil eines anderen Moduls q haben kann.
Dabei beruht die Inhaltskopplung nicht auf einem eigentlichen Aufruf von q durch p; vielmehr wird die Ausführung von evtl. modifizierten Codeteilen von q durch p direkt initiiert.
Erklären Sie grob den Begriff Common Coupling.
Zwei Module sind datenextern (global, über globale Daten) gekoppelt, falls beide auf gemeinsame globale Daten schreibend und lesend zugreifen können.
Nennen Sie Nachteile des Common Coupling.
- Module haben Seiteneffekte, sind schlecht lesbar
- Module haben Zugriff auf mehr Daten als nötig
- Module sind nur im globalen Kontext verständlich
- Schwierig wiederzuverwenden
Erklären Sie grob den Begriff Control Coupling.
Zwei Module besitzen Kontrollkopplung, wenn p ein kontrollflussbestimmendes Element an Modul q übermittelt.
Tritt typischerweise bei Modulen mit logischer Kohäsion auf.
Was ist der Unterschied zwischen Control und Content Coupling?
Im Unterschied zur Inhaltskopplung ist bei der Globalkopplung das aufgerufene Modul q für die Ausführung seines Codes selbst verantwortlich, natürlich unter Berücksichtigung des von p übermittelten Datums.
Nennen Sie Nachteile des Control Coupling.
- führt zur Abhängigkeit der beiden gekoppelten Module.
- widerspricht dem black box Prinzip.
- die Wiederverwendbarkeit ist eingeschränkt.
Erklären Sie grob den Begriff Stamp Coupling.
Zwei Module besitzen Datenstrukturkopplung, falls eine Datenstruktur als Parameter übergeben wird das aufgerufene Modul aber nur Teile (!) der Datenstruktur verwendet.
Werden alle Teile der Datenstruktur verwendet, besteht also keine Datenstrukturkopplung
Nennen Sie Nachteile des Stamp Coupling.
- erzeugt Abhängigkeit zwischen ansonsten unabhängigen Modulen
- bei Änderungsvorgängen unangenehm, begünstigt die Gefahr der Fehlerentstehung.
- es werden mehr Daten übermittelt als nötig.
Erklären Sie grob den Begriff Data Coupling.
Zwei Module sind datengekoppelt, wenn sie Informationen über Parameter austauschen, die homogene Daten sind:
- POD
- data structures (all elements used)
Nennen Sie Vorteile des Data Coupling.
- Schwierigkeiten anderer Kopplungsarten nicht vorhanden.
- vereinfachte Wartung.
- keine unnötigen Verschachtelungen von Daten und / oder Kontrollfluss.
Zählen Sie die Kohäsionsarten auf, in der Reihenfolge Gut zu Schlecht.
- Informational, Functional (Good)
- Sequential
- Communicational
- Procedural
- Temporal
- Logical
- Coincidental (Bad)
Erklären Sie grob den Begriff Coincidental Cohesion.
Ein Modul hat zufällige Kohäsion wenn es mehrere, vollkommen unzusammenhängende Aktionen durchführt.