Softwarearchitektur: 3-Schichten-Modell / 3-Tier
Dieser Beitrag ist eine Begriffserklärung zum 3-Schichten-Modell (3-Tier) – inklusive Prüfungsfragen, Merkpunkte und Tags.
In a Nutshell
Das 3-Schichten-Modell trennt Software logisch in Präsentation, Geschäftslogik und Datenzugriff – für klare Zuständigkeiten, Wartbarkeit und Testbarkeit.
Kompakte Fachbeschreibung
Die drei Schichten:
- Präsentation (UI)
- Business Logic (Services/Use Cases)
- Persistence (Repository/ORM/DB)
Kommunikation erfolgt typischerweise von oben nach unten. Jede Schicht kennt nur die direkt darunterliegende. Das macht Systeme lose gekoppelt.
Prüfungsrelevante Stichpunkte
- Trennung von Darstellung, Logik, Datenzugriff
- Klare Verantwortlichkeiten
- Bessere Testbarkeit/Wartbarkeit
- Standard in Java/.NET/Webprojekten (IHK-relevant)
- Komponenten austauschbar (UI-Wechsel)
- Schichten sind Sicherheitsbarrieren
- Modularisierung reduziert Folgekosten
- Architektur muss dokumentiert werden
Kernkomponenten
- Präsentationsschicht
- Logikschicht
- Datenzugriffsschicht
- Schnittstellen zwischen Schichten
- Logging/Fehlerbehandlung
- Unit Tests in Business-Schicht
- DTOs
- Security Layer
- Persistenz (SQL/NoSQL)
Praxisbeispiel
UI (HTML/JS): Eingabe
Business (Controller/Service): Validierung/Verarbeitung
Persistence (ORM/MySQL): Speicherung
Vorteile und Nachteile
Vorteile
- Strukturierte, wartbare Anwendung
- Leichter Austausch von Komponenten
- Gute Testbarkeit
Nachteile
- Initial mehr Aufwand
- Overhead bei sehr kleinen Projekten
Typische Prüfungsfragen (mit Kurzantwort)
- Was beschreibt das 3-Schichten-Modell? Präsentation, Logik, Datenzugriff.
- Welche Schicht validiert Eingaben? Business-Logik.
- Was gehört zur Datenzugriffsschicht? DB-Zugriff, SQL/ORM, Repositories.
Freie Antwort
Für IHK-Projekte ist das Modell ideal, weil es leicht zu zeichnen und zu begründen ist. Wichtig: keine SQLs im Controller und keine DB-Zugriffe aus der UI.
Lernstrategie
- Modell für ein System zeichnen (Shop/Blog).
- CRUD-App strikt nach Schichten implementieren.
- Schichten in Projektdoku erklären.
- Trennung technisch durch Pakete/Namespaces umsetzen.