Softwarearchitektur für gewachsene Systeme

Bestehende Architekturen rekonstruieren, stabilisieren und evolutionär weiterentwickeln

01 Intro

Bei gewachsenen Systemen entspricht die reale Architektur häufig weder der ursprünglichen Dokumentation noch dem gewünschten Zielbild. Abhängigkeiten haben sich verschoben, Grenzen sind erodiert und technische Entscheidungen wurden unter unterschiedlichen Rahmenbedingungen getroffen.
Der Kurs behandelt Architektur deshalb nicht als Neuentwurf auf der grünen Wiese, sondern als Arbeit an einem existierenden System. Die Teilnehmer rekonstruieren Ist-Architekturen, identifizieren strukturelle Probleme und entwickeln realistische Schritte zu einer besser beherrschbaren Architektur.
Kurs-ID
SWE-010
Dauer
3 Tage
Format
Präsenz · Live Online · Inhouse
Vorkenntnisse
Erfahrung in Softwareentwicklung und grundlegendes Verständnis von Softwarearchitektur

02 Trainingsprogramm

Inhalte

Architektur im gewachsenen System
  • geplante Architektur
  • reale Architektur
  • Architekturdrift
  • Erosion
  • Constraints
  • technische Schulden
Ist-Architektur rekonstruieren
  • Code
  • Module
  • Build-Struktur
  • Abhängigkeiten
  • Laufzeit
  • Dokumentation
Abhängigkeiten analysieren
  • statische Abhängigkeiten
  • Laufzeitabhängigkeiten
  • Zyklen
  • Kopplung
  • gemeinsame Daten
  • Dependency Graphs
Grenzen untersuchen
  • Module
  • Komponenten
  • fachliche Grenzen
  • technische Grenzen
  • Verantwortlichkeiten
  • Boundary Erosion
Architekturprobleme erkennen
  • Big Ball of Mud
  • Layer Violations
  • Distributed Monolith
  • Shared Database
  • God Components
  • unklare Ownership
Qualitätsziele für die Weiterentwicklung
  • Änderbarkeit
  • Testbarkeit
  • Deployability
  • Performance
  • Zuverlässigkeit
  • Priorisierung
Zielbilder entwickeln
  • realistische Zielarchitektur
  • Modularisierung
  • Ports and Adapters
  • fachliche Grenzen
  • Services
  • Trade-offs
Architektur schrittweise verändern
  • Architectural Refactoring
  • Branch by Abstraction
  • Strangler Fig
  • Adapter
  • Facades
  • Feature Flags
Datenarchitektur entkoppeln
  • Shared Database
  • Schema Ownership
  • Zugriff kapseln
  • Replikation
  • Migration
  • Übergangslösungen
Architektur absichern
  • Architekturtests
  • Dependency Rules
  • Fitness Functions
  • Continuous Integration
  • Reviews
  • technische Governance
Evolutionäre Architektur
  • kleine Entscheidungen
  • Feedback
  • Optionen offenhalten
  • irreversible Entscheidungen
  • Architekturmetriken
  • Dokumentation
Architektur-Sanierungsprojekt
  • Ist-Architektur visualisieren
  • Probleme identifizieren
  • Qualitätsziele definieren
  • Zielbild entwickeln
  • Übergangsschritte planen
  • Architekturregeln festlegen

03 Durchführung

Rahmen und Organisation

Dauer
3 Tage
Durchführung
Präsenz oder Live Online, vorzugsweise als Inhouse-Schulung
Schwerpunkt
Inhouse-Schulungen für Unternehmen und Teams
Sprache
Deutsch, englische Fachbegriffe und Dokumentation
Unterlagen
Kursunterlagen, Beispiele und Übungsaufgaben
Technik
Eigener Rechner für die praktischen Übungen

Inhouse-Schulungen

Die eigene Systemarchitektur kann als Grundlage für Rekonstruktion und Sanierungsplanung dienen.

04 Zielgruppe

Für wen ist der Kurs gedacht?

Softwarearchitekten, Senior-Entwickler und technische Leads, die bestehende Architekturen weiterentwickeln müssen.

Voraussetzungen

Praktische Softwareentwicklung und grundlegende Architekturkenntnisse.

05 Lernziele

Was Sie nach dem Kurs können

Die Teilnehmer können reale Architekturen rekonstruieren, Architekturdefizite analysieren, realistische Zielbilder entwickeln und strukturelle Veränderungen schrittweise absichern.

06 FAQ

Häufige Fragen

Worin unterscheidet sich der Kurs von den Architekturgrundlagen?
Der Grundlagenkurs vermittelt Architekturprinzipien und Entwurf. Hier ist der Ausgangspunkt ausdrücklich eine bereits vorhandene, gewachsene Architektur mit ihren Constraints.
Wie grenzt sich der Kurs gegen die Legacy-Modernisierung ab?
Der Modernisierungskurs behandelt ein Legacy-System insgesamt. Hier liegt der Schwerpunkt auf dessen architektonischen Strukturen und deren evolutionärer Veränderung.
Geht es um die Migration zu Microservices?
Nur wenn Microservices für das konkrete Problem sinnvoll sind. Eine saubere Modularisierung kann die bessere Zielarchitektur sein.

UC IT Service · Ulrich Cuber · kontakt@uc-it.de

https://www.uc-it.de/coaching/architektur-gewachsene-systeme/