Architektur

Architektur

Diese Kategorie vermittelt prüfungsrelevantes Wissen zu typischen Architekturkonzepten in der Softwareentwicklung.

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:

SchichtAufgabeBeispiel
Präsentation (Frontend)Darstellung der Daten, Interaktion mit dem BenutzerHTML, CSS, JavaScript
Logik (Business Logic)Verarbeitung der Daten, GeschäftslogikJava, C#, Node.js
Datenhaltung (Datenbank)Verwaltung und Persistierung von DatenMySQL, 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:

  1. Versionskontrollsystem
    Verwaltung des Quellcodes, z. B. mit Git.
  2. Automatische Kompilierung
    Build-Prozess wird nach jedem Commit gestartet.
  3. Automatisierte Tests
    Unit-Tests, Integrationstests und ggf. End-to-End-Tests.
  4. Automatische Bereitstellung
    Rollout auf Test-, Staging- oder Produktivsysteme ohne manuelles Eingreifen.
  5. 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