Softwarearchitektur: Grundprinzipien & Systemintegration
Dieser Beitrag ist eine Begriffserklärung zu Architekturgrundprinzipien und Systemintegration – inklusive Prüfungsfragen und Tags.
In a Nutshell
In der Praxis ist selten Greenfield: Architektur muss Erweiterung, Integration und Umgebungswechsel (Cloud/OS/DB) berücksichtigen – damit Systeme wartbar und erweiterbar bleiben.
Kompakte Fachbeschreibung
Softwarearchitektur beschreibt Struktur, Komponenten, Beziehungen und Technologien. Bei Integrationsprojekten sind typische Herausforderungen:
- Legacy-Systeme (schlecht dokumentiert, monolithisch)
- Schnittstellen/Datenformate/Protokolle
- Entscheidung: Refactoring vs. Neuimplementierung
- Umgebungswechsel (On-Prem → Cloud, Windows → Linux, DB-Wechsel)
Technische Schulden, modulare Zerlegung, Schichtenmodelle und klare Schnittstellen sind zentrale Hebel.
Prüfungsrelevante Stichpunkte
- Architektur = Struktur/Kommunikation/Abhängigkeiten
- Legacy berücksichtigen (IHK-relevant)
- Schnittstellenfähigkeit als Entwurfsanforderung
- Refactoring statt Neubau bei stabiler Kernlogik
- Integration via REST/Middleware/Adapter
- Security: API-Security, Legacy-DB-Zugriffe
- Wirtschaftlichkeit: Wiederverwendung vs. Neubau
- Doku: Diagramme, Schnittstellenbeschreibung, Migrationsstrategie
Kernkomponenten
- IST-Analyse
- Technische Schulden
- Anforderungsabgleich
- Schnittstellenkonzept
- Integrationsstrategie (Wrapper/Proxy/Adapter)
- Zielumgebung
- Migration (Big Bang vs inkrementell)
- Refactoring
- Kompatibilitätstests
- Dokumentation/Architekturentscheidungen
Praxisbeispiel
Warenwirtschaft (Monolith) bekommt modernes Web-UI:
- REST-API als Middleware
- Adapter Alt-Datenstruktur → JSON
- OpenAPI/Swagger Doku
- bestehende Logik wiederverwenden
Vorteile und Nachteile
Vorteile
- Bestehende Systeme nutzen spart Zeit/Kosten
- Integration verlängert Lebensdauer
Nachteile
- Legacy oft schlecht dokumentiert
- Schnittstellen nachträglich schwer
- Umgebungswechsel birgt Risiken
Typische Prüfungsfragen (mit Kurzantwort)
- Was ist ein Legacy-System? Altsystem, das weiterbetrieben wird.
- Wie bindet man Altsysteme an? Schnittstellen, Adapter/Wrapper, Middleware.
- Wann Refactoring statt Neubau? Wenn Kernlogik stabil ist.