Architektur
Die Softwarearchitektur beschreibt den grundlegenden Aufbau eines Softwaresystems. Sie legt fest, wie Komponenten strukturiert sind und miteinander kommunizieren. Im Folgenden werden zentrale Architekturkonzepte erläutert, die für die Abschlussprüfung relevant sind.
Drei-Schichten-Architektur
Die Drei-Schichten-Architektur ist ein bewährtes Architekturmodell zur Trennung von Verantwortlichkeiten innerhalb einer Anwendung.
Schichten im Überblick:
Schicht | Aufgabe | Beispiel |
---|---|---|
Präsentation (Frontend) | Darstellung der Daten, Interaktion mit dem Benutzer | HTML, CSS, JavaScript |
Logik (Business Logic) | Verarbeitung der Daten, Geschäftslogik | Java, C#, Node.js |
Datenhaltung (Datenbank) | Verwaltung und Persistierung von Daten | MySQL, PostgreSQL |
Vorteile:
- Bessere Wartbarkeit
- Wiederverwendbarkeit von Komponenten
- Klare Trennung von Verantwortlichkeiten
Data Binding
Data Binding beschreibt die Verbindung zwischen UI-Komponenten und Datenmodellen.
One-Way Data Binding
Daten fließen nur in eine Richtung, z. B. vom Modell zur View.
Vorteil: Klare Kontrolle über Datenfluss
Verwendung: React (Props), klassische MVC-Pattern
// Beispiel: React-Komponente mit One-Way-Binding
function Welcome(props) {
return <h1>Hallo, {props.name}</h1>;
}
Two-Way Data Binding
Daten fließen in beide Richtungen, d. h. Änderungen im UI aktualisieren das Modell und umgekehrt.
Verwendung: Angular, Vue (v-model)
<!-- Beispiel in Vue.js -->
<input v-model="benutzername">
<p>Hallo, {{ benutzername }}</p>
CI / CD (Continuous Integration / Continuous Deployment)
CI/CD bezeichnet automatisierte Prozesse in der modernen Softwareentwicklung, mit dem Ziel, Softwareänderungen schnell, zuverlässig und reproduzierbar bereitzustellen.
Continuous Integration (CI)
- Entwickler integrieren regelmäßig (mehrmals täglich) Code in ein gemeinsames Repository.
- Jede Änderung löst automatisierte Builds und Tests aus.
- Ziel: Frühes Erkennen von Integrationsproblemen und Sicherstellung der Codequalität.
Continuous Deployment (CD)
- Erweiterung von CI: Nach erfolgreich bestandenen Tests wird die Anwendung automatisch in die Produktionsumgebung ausgerollt.
- Ziel: Vollständig automatisierter Release-Prozess ohne manuelle Freigabe.
- Voraussetzung: Hohe Testabdeckung und stabile Infrastruktur
Schritte zur Implementierung von CI/CD:
- Versionskontrollsystem
Verwaltung des Quellcodes, z. B. mit Git. - Automatische Kompilierung
Build-Prozess wird nach jedem Commit gestartet. - Automatisierte Tests
Unit-Tests, Integrationstests und ggf. End-to-End-Tests. - Automatische Bereitstellung
Rollout auf Test-, Staging- oder Produktivsysteme ohne manuelles Eingreifen. - Monitoring & Feedback
Laufende Überwachung und Rückmeldung zu Fehlern oder Performance.
Typische Tools:
- Build & CI: Jenkins, GitLab CI, GitHub Actions, Travis CI
- Deployment: Argo CD, Spinnaker, Octopus Deploy
- Monitoring: Prometheus, Grafana, ELK Stack
Sortieralgorithmen
Diese Seite erklärt die grundlegenden Sortierverfahren Bubble Sort, Selection Sort und Insertion Sort – jeweils mit Pseudocode und Laufzeitanalyse.
REST – Representational State Transfer
Diese Seite erklärt das REST-Architekturprinzip und dessen zentrale Richtlinien zur Gestaltung von Web-APIs.