Softwarearchitektur: Unterschied zwischen den Versionen

Aus Das Sopra Wiki
Thomas (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
Thomas (Diskussion | Beiträge)
Ein bisschen Text zu Boundaries
Zeile 28: Zeile 28:


=== Grenzen abstecken (Boundaries) ===
=== Grenzen abstecken (Boundaries) ===
Die Hauptaufgabe einer Architektur: Man hat eine Menge Komponenten – in unserem Fall vorwiegend Klassen – die bestimmte Funktionalität implementieren und wiederum von anderen Komponenten verwendet werden. Wenn nun also eine Klasse viele verschiedene Methoden unterschiedlichster Natur bereitstellt, dann wird sie auch von sehr vielen anderen Klassen verwendet. Es muss sehr viel an dieser einen "Über-Klasse" gearbeitet werden. Es gibt viele Konflikte und selbst einfache Änderungen betreffen die vielen anderen Klassen, die auf diese eine Komponente zugreifen. Damit ist die Software Veränderungen gegenüber sehr "instabil".
Wenn andererseits sehr viele kleine Klassen mit jeweils sehr wenigen Methoden verwendet werden, dann ist jede einzelne Klasse für sich genommen "nutzlos". Viele Klassen müssen für einfachste Dinge zusammenarbeiten, was nun wieder das Verständnis erschwert.
Schlussendlich geht es also darum, Komponenten (Klassen) und ihre Interaktion (Methodenaufrufe) so voneinander abzugrenzen, dass ein vertretbares Mittel zwischen "Instabilität" und "Nutzlosigkeit" gefunden wird. Oder positiv ausgedrückt: Es geht darum eine optimale Architektur zu finden unter den Gesichtspunkten der "Stabilität" und "Nützlichkeit" der einzelnen Komponenten.


=== In Use Cases denken statt in Implementierungsdetails ===
=== In Use Cases denken statt in Implementierungsdetails ===