Herausforderung Brownfield, Teil 4: Komplexität bewältigen durch Differenzierung

Seite 4: Fazit

Inhaltsverzeichnis

Über dem Sicherheitsnetz aus automatisierten Tests, Versionskontrolle und automatisierter Produktion geht es darum, den Code zu machen und zu halten. Das bedeutet, dass Funktionseinheiten saubere Verantwortlichkeiten haben. Die Prinzipien Single Responsibility und Separation of Concerns beziehen sich jedoch nicht nur auf Klassen oder Methoden, das heißt kleine Funktionseinheiten, sondern auf Einheiten aller Granularitätsebenen.

Bounded Contexts und Partitionen ziehen konzeptionelle Ebenen in die Hierarchie der Funktionseinheiten von Softwaresystemen ein (Abb. 7)

.

Bounded Contexts und Partitionen sind zwei grobe konzeptionelle Funktionseinheiten, die helfen, das große Ganze der Anforderungen an eine Anwendung sauber zu zerlegen. Sie wirken damit den Brownfield erzeugenden Kräften des einen Frontends und des einen Datenmodells entgegen.

Es mag ungewohnt sein, nicht gleich für den gesamten Anforderungshorizont eine Karte in Form von Komponenten oder Klassen zu erstellen. Doch es lohnt sich, das eine große Ganze zu zerlegen in "kulturell" unterschiedliche Gebiete und in denen unterschiedliche Herangehensweisen zu unterscheiden. Die eigene kognitive Last nimmt dadurch ab. Komplexität wird handhabbarer. Nur mit einer solchen hierarchischen Sicht haben Projekte eine Chance, über dem Sicherheitsnetz realistische Kunststücke zu vollführen, die das Stakeholder-Publikum langfristig erfreuen.

Stefan Lieser
ist freiberuflicher Berater/Trainer/Autor aus Leidenschaft. Seine Schwerpunkte liegen im Bereich Clean Code Developer sowie Domain Driven Design.

Ralf Westphal
ist Microsoft MVP für Softwarearchitektur und freiberuflicher Berater, Projektbegleiter und Trainer für Themen rund um .NET-Softwarearchitekturen
(ane)