Kohäsion und Kopplung Flashcards
In welchem Zusammenhang stehen Kopplung und Kohäsion?
Kopplung betrachtet Beziehung zwischen Modulen
Kohäsion betrachtet Geschlossenheit eines Moduls (bzgl. einer gewählten Perspektive)
–> keine direkte Abhängigkeit … aber Ziel guter Software-Entwicklung ist hohe Kohäsion und geringe Kopplung, denn:
- Module mit hoher Kopplung beeinflussen bei Änderung viele andere Module –> Folgen nicht absehbar
- Module mit geringer Kohäsion sind schwer klar abzugrenzen –> schlecht wiederverwendbar, schwer zu verstehen
Was versteht man unter Inhaltskopplung?
Modul inkludiert Inhalt eines anderen Moduls oder Teile davon
–> sehr starke Kopplung
Was versteht man unter Kontrollkopplung?
Modul verändert Kontrollfluss eines anderen, z.B. per Übergabeparameter –> Flags
string getName( boolean getSurname) { if (getSurname) return surName; else return foreName; }
Was versteht man unter Datenkopplung?
Module teilen Information, z.B. per Übergabeparameter
string getCustomerName( int id) { … }
Was versteht man unter Bereichskopplung (common coupling)?
Zugriff auf gemeinsame globale Information
–> schwache Kopplung
Was versteht man unter funktioneller Kohäsion?
alle Aufgaben eines Moduls stützen eine gemeinsame Funktion
–> sehr starke Kohäsion
Was versteht man unter zeitlicher Kohäsion?
Aufgaben eines Moduls werden zum gleichen Zeitpunkt benötigt
z.B. Datei öffnen, Array initialisieren,…
eher schwache Kohäsion
Was versteht man unter sequentieller Kohäsion?
Verschiedene Aufgaben eines Moduls sind verkettet (Ausgabe -> Eingabe)
Was versteht man unter logischer Kohäsion?
Aufgaben eines Moduls führen logisch identische Funktion auf verschiedene Datentypen aus.
Was versteht man unter kommunikativer Kohäsion?
Aufgaben eines Moduls beziehen sich auf die gleichen Ein-/Ausgaben
z.B.: Nutzung der Kontonummer –> zugehörigen Kundennamen finden, Guthaben finden, …