Kohäsionskriterien

Details
Vollständiger Name

Kohäsionskriterien (Constantine & Yourdon)

Auch bekannt als

Kohäsionsstufen, Kohäsionsskala, Modulkohäsionstypen

Kernkonzepte:

Sieben Stufen der Kohäsion, geordnet von schlecht (1) bis ideal (7):

Zufällige Kohäsion (1)

Elemente sind willkürlich gruppiert, ohne sinnvollen Zusammenhang. Typisches Zeichen: Utility-Klassen oder Sammelmodule.

Logische Kohäsion (2)

Elemente führen ähnliche Aktivitäten aus, die über ein Steuerflag ausgewählt werden. Beispiel: eine Funktion für alle I/O-Operationen (lesen, schreiben, drucken), gesteuert durch einen Parameter.

Temporale Kohäsion (3)

Elemente sind gruppiert, weil sie zur gleichen Zeit ausgeführt werden. Beispiel: Initialisierungsroutinen beim Programmstart.

Prozedurale Kohäsion (4)

Elemente sind gruppiert, weil sie einer bestimmten Ausführungsreihenfolge folgen. Beispiel: eine Funktion, die Eingaben validiert, dann eine Datei öffnet, dann ein Log schreibt.

Kommunikative Kohäsion (5)

Elemente arbeiten auf denselben Daten, führen aber unterschiedliche Operationen aus. Beispiel: ein Modul, das einen Kundendatensatz sowohl validiert als auch formatiert.

Sequentielle Kohäsion (6)

Die Ausgabe eines Elements dient als Eingabe des nächsten, eine Pipeline bildend. Beispiel: parsen → validieren → transformieren.

Funktionale Kohäsion (7)

Jedes Element trägt zu genau einer wohldefinierten Aufgabe bei. Das Ideal. Beispiel: berechneVersandkosten() tut genau eine Sache.

Hauptvertreter

Larry Constantine und Edward Yourdon ("Structured Design", 1979). Weiterentwickelt von Meilir Page-Jones ("The Practical Guide to Structured Systems Design", 1988).

Wann verwenden:

  • Bewertung der Modulqualität bei Code Reviews oder Refactoring

  • Entscheidung, ob eine Klasse oder ein Modul aufgeteilt werden sollte

  • Argumentation für Refactoring mit konkreten Kriterien statt Bauchgefühl

  • Lehre im Softwaredesign: die Skala macht abstrakte Qualität greifbar

  • Bewertung von Architekturentscheidungen zu Modulgrenzen

Verwandte Anker:

  • GRASP - "High Cohesion" ist eines der neun GRASP-Patterns

  • SOLID SRP - Single Responsibility Principle zielt auf funktionale Kohäsion

  • Clean Architecture - Organisiert Code nach kohäsiven Geschäftsregeln

  • Vertical Slice Architecture - Gruppiert nach Feature-Kohäsion statt technischer Schicht