Kopplung & Kohäsion
Kopplung und Kohäsion sind Grundprinzipien der Softwarearchitektur, die die Interaktion zwischen Modulen beeinflussen.
Klassifikation
- KomplexitätMittel
- AuswirkungTechnisch
- EntscheidungstypArchitektur
- OrganisationsreifeFortgeschritten
Technischer Kontext
Prinzipien & Ziele
Use Cases & Szenarien
Kompromisse
- Dynamik in der Architektur
- Fehlerhafte Interaktionen zwischen Modulen
- Hohe Abhängigkeiten
- Regelmäßige Überprüfung der Architektur
- Einbeziehung des gesamten Teams
- Einfache Schnittstellen entwerfen
I/O & Ressourcen
- Anforderungen an die Software
- Architekturdiagramme
- Ressourcenzuteilung
- Funktionale Software
- Verbesserte Architektur
- Hohe Kohäsionswerte
Beschreibung
Kopplung beschreibt, wie stark Module miteinander verbunden sind, während Kohäsion die interne Konsistenz eines Moduls bezeichnet. Hohe Kohäsion und niedrige Kopplung sind erstrebenswerte Eigenschaften, die die Wartbarkeit und Flexibilität von Software erhöhen.
✔Vorteile
- Verbesserte Wartbarkeit
- Erhöhte Flexibilität
- Besseres Testen
✖Limitationen
- Kann komplex sein
- Erfordert sorgfältige Planung
- Kann zu Overhead führen
Trade-offs
Metriken
- Kundenzufriedenheitsbewertungen
Messung der Kundenzufriedenheit mit der Software.
- Durchlaufzeiten für Änderungen
Zeit, die benötigt wird, um Änderungen in der Anwendung zu implementieren.
- Fehlerquoten
Anzahl der aufgetretenen Fehler und ihre Auswirkungen.
Beispiele & Implementierungen
E-Commerce-Plattform
Eine modulare E-Commerce-Plattform, die verschiedene Dienstleistungen über Mikroservices bereitstellt.
Finanzanwendung
Eine Finanzanwendung, die durch hohe Kohäsion und niedrige Kopplung eine verbesserte Benutzererfahrung bietet.
Inhaltsverwaltungssystem
Ein Modul-basiertes System zur Verwaltung digitaler Inhalte.
Implementierungsschritte
Erstellen von Architekturdiagrammen
Dokumentation der Module
Schulung des Teams
⚠️ Technische Schulden & Engpässe
Tech Debt
- Veraltete Abhängigkeiten
- Technische Schulden bei der Modularisierung
- Unzureichende Testabdeckung
Bekannte Engpässe
Beispiele für Missbrauch
- Vernachlässigung der Modulgrenzen
- Übermäßige Verwendung globaler Variablen
- Schlechte Dokumentation der Module
Typische Fallen
- Zu viele Abhängigkeiten schaffen
- Nicht getestete Module implementieren
- Änderungswünsche ohne Analyse umsetzen
Erforderliche Fähigkeiten
Drivers (Architectural Drivers)
Constraints
- • Budgetbeschränkungen
- • Zeitliche Einschränkungen
- • Technologische Beschränkungen