Softwarearchitektur: Schichtenmodell (MVC, n-Tier)
Dieser Beitrag ist eine Begriffserklärung zum Schichtenmodell – inklusive Prüfungsfragen, Kernelementen und Tags.
In a Nutshell
Schichtenmodelle strukturieren Software in logisch getrennte Ebenen (UI/Logik/Daten). Typische Vertreter sind MVC und n-Tier, die Modularität, Wartbarkeit und Testbarkeit fördern.
Kompakte Fachbeschreibung
Beim n-Tier-Modell (meist 3-Tier) existieren mindestens drei Schichten:
- Präsentation
- Geschäftslogik
- Datenhaltung
MVC (Model-View-Controller) trennt:
- View (Darstellung)
- Controller (Steuerung)
- Model (Datenmodell)
Daten fließen kontrolliert durch die Schichten, sodass unerwünschte Abhängigkeiten vermieden werden. In der Praxis werden Schichtenmodelle häufig durch Frameworks (Angular, Spring, .NET) umgesetzt.
Prüfungsrelevante Stichpunkte
- Trennung von Präsentation, Logik, Datenzugriff
- MVC = View, Controller, Model
- n-Tier = logische Architektur mit 2–n Schichten
- Saubere Verantwortlichkeitstrennung (IHK-relevant)
- Erleichtert Testbarkeit und Austauschbarkeit (Praxisbezug)
- Reduziert Angriffsfläche durch definierte Schnittstellen (Sicherheitsaspekt)
- Spart langfristig Wartungskosten (Wirtschaftlichkeit)
- Architektur muss nachvollziehbar dokumentiert werden (Dokumentationspflicht)
Kernkomponenten
- Präsentationsschicht (UI)
- Logik-/Controller-Schicht
- Datenschicht/Repository
- Model-Klassen (MVC)
- Schnittstellen zwischen Schichten
- Validierung und Fehlerbehandlung
- Frameworks/Middleware
- Service-Layer (z.B. REST)
- Authentifizierung/Autorisierung
- Unit-Testing pro Schicht
Einfaches Praxisbeispiel (MVC)
Model: Produkt(name, preis)
View: HTML-Template
Controller: verarbeitet Klick auf "in den Warenkorb" und aktualisiert Model
Vorteile und Nachteile
Vorteile
- Klar strukturierte Codebasis
- Bessere Testbarkeit durch lose Kopplung
- Wiederverwendbare Module
- Parallelentwicklung im Team
Nachteile
- Overhead bei kleinen Projekten
- Höherer Initialaufwand
- Komplexität durch zusätzliche Schichten
Typische Prüfungsfragen (mit Kurzantwort)
- Ziel eines Schichtenmodells? Trennung von Verantwortlichkeiten und bessere Wartbarkeit.
- Drei Schichten im 3-Tier? Präsentation, Geschäftslogik, Datenhaltung.
- Was macht der Controller im MVC? Verarbeitet Benutzeraktionen und vermittelt zwischen View und Model.
- Wie verbessert MVC die Testbarkeit? Komponenten lassen sich isoliert testen.
Glossar
| Begriff | Definition |
|---|---|
| Schichtenmodell | Trennung von Verantwortlichkeiten in Ebenen |
| MVC | Model-View-Controller zur UI-Strukturierung |
| n-Tier | mehrschichtige Architektur mit mindestens drei Ebenen |
Freie Antwort
In IHK-Projekten ist wichtig, dass jede Schicht nur die benachbarte Schicht kennt und keine „Abkürzungen“ (z.B. DB-Zugriff aus der View) entstehen. Für REST-Backends ist oft die Trennung Controller/Service/Repository Standard.
Lernstrategie
- Zeichne ein Layer-Diagramm für eine Mini-App.
- Baue eine kleine MVC-App in einem Framework.
- Analysiere Architekturdiagramme und finde Layer-Verstöße.
- Vermeide Logik in der View.
Themenanalyse
- Technischer Kern: Separation of Concerns
- Herausforderungen: Abhängigkeiten, Grenzen
- Sicherheit: Kapselung sensibler Daten
- Doku: Architekturdiagramme
- Wirtschaftlichkeit: Wartungskosten reduzieren
Weiterführende Infos
- https://learn.microsoft.com/en-us/aspnet/mvc/overview/overview
- https://www.baeldung.com/spring-service-layer