Hohe Kohäsion
Hohe Kohäsion bezieht sich auf die Stärke der Zusammengehörigkeit von Elementen innerhalb eines Moduls.
Klassifikation
- KomplexitätMittel
- AuswirkungTechnisch
- EntscheidungstypDesign
- OrganisationsreifeReif
Technischer Kontext
Prinzipien & Ziele
Use Cases & Szenarien
Kompromisse
- Missverständniste bei der Modularisierung.
- Fehlende Integration zwischen hoch kohäsiven Modulen.
- Unzureichende Dokumentation kann zu Verwirrung führen.
- Regelmäßige Code-Reviews durchführen.
- Modulgrenzen klar definieren.
- Dokumentation aktuell halten.
I/O & Ressourcen
- Vorhandene Dokumentation für die Anwendung
- Anforderungsdokumente
- Rückmeldungen von Benutzern
- Sauberer, gut strukturierter Code
- Dokumentationen für Module
- Benutzerfreundliche Schnittstellen
Beschreibung
Hohe Kohäsion ist ein Prinzip in der Softwarearchitektur, das darauf abzielt, dass Module eng verwandte Funktionen ausführen. Dies führt zu besserer Wartbarkeit, Wiederverwendbarkeit und Verständlichkeit des Codes, da Änderungen in einem hoch kohäsiven Modul weniger Auswirkungen auf andere Module haben.
✔Vorteile
- Erhöhte Wartbarkeit
- Bessere Wiederverwendbarkeit
- Klarere Struktur
✖Limitationen
- Übermäßige Modularisierung kann die Leistung beeinträchtigen.
- Hohe Kohäsion kann in einigen Situationen Zuverlässigkeit gefährden.
- Schwierigkeiten bei der Anpassung bestehender Module.
Trade-offs
Metriken
- Modulanzahl
Anzahl der entwickelten Module, die hohe Kohäsion aufweisen.
- Code-Wiederverwendbarkeitsrate
Prozentsatz des Codes, der wiederverwendet wird.
- Wartungsaufwand
Der Aufwand, der für die Pflege und Wartung des Codes benötigt wird.
Beispiele & Implementierungen
E-Commerce-Plattform
Ein modulbasiertes E-Commerce-System, das hohe Kohäsion fördert, indem es verwandte Funktionen in separaten Modulen gruppiert.
Content-Management-System
Ein CMS, das gut strukturierte Module aufweist, um die Wartbarkeit und Wiederverwendbarkeit für Redakteure und Entwickler zu erleichtern.
Finanzanwendung
Eine Anwendung, die hohe Kohäsion nutzt, um eine klare Trennung zwischen den verschiedenen finanziellen Prozessen und Funktionen zu erreichen.
Implementierungsschritte
Erstellen eines vollständigen Architekturplans
Entwickeln und Testen von Modulen
Rückmeldungen von Stakeholdern einholen
⚠️ Technische Schulden & Engpässe
Tech Debt
- Veralteter Code, der nicht refaktoriert wurde.
- Schwache Tests, die das Vertrauen beeinträchtigen.
- Mangelnde Dokumentation führt zu Wissensverlust.
Bekannte Engpässe
Beispiele für Missbrauch
- Funktionen, die in einem einzigen Modul überladen sind.
- Missachtung von modularen Prinzipien.
- Mangelnde Dokumentation für Module.
Typische Fallen
- Wert auf Modularität legen, aber nicht auf Kohäsion.
- Fehlende Integration vernachlässigen.
- Bei der Implementierung von Modulen schlampig sein.
Erforderliche Fähigkeiten
Drivers (Architectural Drivers)
Constraints
- • Kollaboration zwischen Entwicklungsteams ist erforderlich.
- • Eindeutige Dokumentation muss vorhanden sein.
- • Die Software muss mit bestehenden Systemen integriert werden.