====== LU16a - Software-Entwicklungs-Zyklus ======
Der **Software Development Life Cycle (SDLC)** beschreibt die typischen Phasen, die ein Software-Projekt von der ersten Idee bis zur fertigen Anwendung durchläuft. Testing und Deploy sind zwei dieser Phasen – und genau darum geht es in dieser Lerneinheit.
===== Der vollständige SDLC =====
{{:de:modul:m291:learningunits:lu16:theorie:software-development-life-cycle-phase-08.png?direct&800| Software Development Life Cycle – Kreislauf}}\\
//Grafik des SDLC-Kreislaufs mit 6 Phasen//
Ein typisches Software-Projekt durchläuft sechs Phasen:
- **Analyse** – Anforderungen verstehen: Was soll die Anwendung können?
- **UI/UX Design** – Benutzeroberfläche entwerfen: Wie soll sie aussehen?
- **Implementation** – Code schreiben: Die eigentliche Entwicklungsarbeit.
- **Testing** – Fehler finden und beheben, bevor die App live geht.
- **Deployment** – Die App für Nutzerinnen und Nutzer bereitstellen.
- **Maintenance** – Laufende Pflege: Bugfixes, Updates, neue Features.
**Kein linearer Prozess:** In der Praxis wiederholen sich Phasen ständig. Besonders Testing und Implementation bilden einen engen Kreislauf: Code schreiben → testen → Fehler beheben → erneut testen.
===== Der Web-Entwicklungs-Kreislauf =====
Wenn wir Software entwickeln, konzentrieren wir uns auf vier konkrete Schritte:
{{:de:modul:m291:learningunits:lu16:theorie:test-deploy-live-cycle.png?direct&900 | Web-Entwicklungs-Pipeline: Local → Shared Codebase → Staging → Production }}\\
//Pipeline-Diagramm mit 4 Schritten//
^ Schritt ^ Was passiert hier? ^ Unser Werkzeug ^
| **① Local Development** | Code schreiben, lokal ausprobieren. Die App läuft nur auf Ihrem Computer. | ''npm run dev'' → ''localhost:5173'' |
| **② Shared Codebase** | Code wird mit dem Team geteilt – normalerweise via Git. | (In LU16 überspringen wir diesen Schritt) |
| **③ Staging (Preview)** | Die App wird auf einem Test-Server deployed. Hier kann getestet werden, bevor sie live geht. | Netlify / Vercel / Render (alle benötigen Git) |
| **④ Production (Live)** | Die fertige, getestete App ist öffentlich zugänglich. | surge.sh (ohne Git) / Netlify / Vercel |
==== Was passiert bei Bugs? ====
Wenn beim Testing Fehler gefunden werden, kehrt das Projekt zurück in die Entwicklungsphase. Dieser Feedback-Loop ist kein Zeichen von schlechter Arbeit – er ist der Sinn des Testings.
===== Testing im Kreislauf: Wann was? =====
^ Testing-Zeitpunkt ^ Was wird getestet? ^ Wer testet? ^
| Während der Entwicklung | Einzelne Funktionen (Unit Tests) | Entwicklerin / Entwickler |
| Nach dem Zusammenführen | Zusammenspiel mehrerer Module (Integration Tests) | Automatisiert / Entwickler |
| Auf Staging | Komplette Benutzerflüsse (E2E Tests, Manuell) | Tester, Entwickler, Kunde |
| Vor Production | Abnahme-Test | Auftraggeber |