Schichtenmodell – MVC, n-Tier & Trennung von Verantwortlichkeiten
Dieser Beitrag ist eine Begriffserklärung zu Schichtenmodellen – inklusive Prüfungsfragen und Tags.
In a Nutshell
Schichtenmodelle strukturieren Software in logisch getrennte Ebenen – typische Vertreter sind MVC und n-Tier-Architekturen, die Modularität, Wartbarkeit und Testbarkeit fördern.
Kompakte Fachbeschreibung
Das Schichtenmodell in der Softwarearchitektur teilt Anwendungen in klar definierte Ebenen mit spezifischen Aufgaben. Beim n-Tier-Modell (meist 3-Tier) existieren mindestens drei Schichten: Präsentation, Logik, Datenhaltung. MVC (Model-View-Controller) ist ein weit verbreitetes Architekturpattern, das die Benutzeroberfläche (View), die Geschäftslogik (Controller) und die Datenmodelle (Model) trennt. Diese Struktur fördert Wiederverwendbarkeit, Parallelentwicklung und testbare Komponenten. Daten fließen kontrolliert durch die Schichten, wodurch unerwünschte Abhängigkeiten vermieden werden.
Prüfungsrelevante Stichpunkte
- Trennung von Präsentation, Logik, Datenzugriff
- MVC = View, Controller, Model (benutzerzentriert)
- n-Tier = logische Architektur mit 2–n Schichten
- Fördert saubere Trennung von Verantwortlichkeiten (IHK-relevant)
- Erleichtert Testbarkeit und Austauschbarkeit einzelner Komponenten
- Reduziert Angriffsfläche durch klar definierte Schnittstellen
- Spart langfristig Wartungskosten durch saubere Struktur
- Architektur muss in Projektdokumentationen nachvollziehbar sein
Kernkomponenten
- Präsentationsschicht (UI)
- Logik- oder Controllerschicht
- Datenschicht / Repository
- Model-Klassen (MVC)
- Schnittstellen zur Kommunikation
- Validierung und Fehlerbehandlung
- Frameworks und Middleware
- Service-Layer (z.B. REST-API)
- Authentifizierung und Autorisierung
- Unit-Testing pro Schicht
Praxisbeispiel
// Beispiel: MVC mit JavaScript
- Model: Klasse "Produkt" mit Attributen name, preis
- View: HTML-Template mit Platzhaltern
- Controller: JS-Funktion verarbeitet Klick auf "in den Warenkorb"
Erklärung: Controller vermittelt zwischen Benutzer (View) und Datenmodell (Model) – Datenfluss ist klar getrennt.
Vorteile und Nachteile
Vorteile
- Klar strukturierte Codebasis
- Bessere Testbarkeit durch lose Kopplung
- Wiederverwendbare Module
- Teamarbeit durch Parallelentwicklung möglich
Nachteile
- Overhead bei kleinen Projekten
- Initial höherer Aufwand für Planung
- Ggf. erhöhte Komplexität durch Schichtentrennung
Typische Prüfungsfragen (mit Kurzantwort)
- Ziel eines Schichtenmodells? Klare Trennung von Verantwortlichkeiten und bessere Wartbarkeit.
- Drei Schichten des klassischen n-Tier-Modells? Präsentation, Geschäftslogik, Datenhaltung.
- Controller im MVC-Modell? Vermittelt zwischen View und Model – verarbeitet Benutzeraktionen.
- MVC verbessert Testbarkeit? Einzelne Komponenten (z.B. Model) können isoliert getestet werden.
- Lose Kopplung im Schichtenmodell? Jede Schicht kennt nur die direkt benachbarte Schicht, nicht die gesamte Anwendung.
- Schutz vor Sicherheitsproblemen? Kontrollierter Datenfluss verhindert direkten Zugriff auf sensible Daten.
- Rolle von Schnittstellen zwischen Schichten? Ermöglichen modulare Kommunikation und erleichtern spätere Änderungen.
- Wann ist ein Schichtenmodell überdimensioniert? Bei sehr kleinen, linearen Projekten mit einfacher Logik.
Wichtigste Quellen
- https://learn.microsoft.com/en-us/aspnet/mvc/overview/overview
- https://www.ibm.com/docs/en/i/7.5?topic=overview-n-tier-architecture
- https://www.baeldung.com/spring-service-layer
- https://8thlight.com/blog/uncle-bob/2012/08/13/the-clean-architecture.html
- https://angular.io/guide/architecture