Git, Tests, Architektur, Code-Qualität. Wie Software in der Realität gebaut wird.
Vorgehensmodelle der Software-Entwicklung: Wasserfall (sequenziell), V-Modell (mit Test-Spiegel), Inkrementell (Teilversionen), Spiral (Risiko-Management), Agile. 6 Standard-Phasen, Vor-/Nachteile pro Modell, typische Einsatzbereiche. Mit interaktivem Modell-Vergleich.
Scrum als wichtigstes agiles Framework: 3 Rollen (Product Owner, Scrum Master, Dev Team), 5 Events (Sprint Planning, Daily Standup, Review, Retrospektive, Refinement), 3 Artefakte (Product Backlog, Sprint Backlog, Inkrement). Agiles Manifest, Story Points, Velocity, Definition of Done. Mit interaktiver Sprint-Timeline.
Systematisches Erheben/Dokumentieren/Validieren von Anforderungen. Funktionale (WAS tut das System) vs. nicht-funktionale Anforderungen (WIE GUT) nach ISO 25010 (Performance/Reliability/Security/Usability/etc.). Lastenheft vs. Pflichtenheft, SMART-Anforderungen, MoSCoW-Priorisierung. Mit interaktivem Klassifikations-Tool.
Funktionale Anforderungen aus Nutzer-Perspektive beschreiben. User Stories (Scrum-kurz: 'Als X möchte ich Y, damit Z') + Akzeptanzkriterien in Gherkin (Given/When/Then). Use Cases (UML-detailliert: Vorbedingungen/Hauptszenario/Alternativen). INVEST-Kriterien, include/extend-Beziehungen, Personas. Mit interaktivem Use-Case-Diagramm.
GoF-Entwurfsmuster (1994): bewährte Lösungen für wiederkehrende OOP-Probleme. 3 Kategorien: Creational (Singleton/Factory/Builder), Structural (Adapter/Decorator/Facade), Behavioral (Observer/Strategy/Command). Mit Code-Beispielen (Java), UML-Skizzen, Pros/Cons. SOLID-Prinzipien als Begleiter. Mit interaktivem Pattern-Explorer für die 4 wichtigsten Patterns.
Architektur-Stile mit Trade-offs: Schichten-Architektur (UI→Business→Persistenz, klar strukturiert), MVC (Model/View/Controller für UI), Microservices (kleine eigenständige Services mit eigener DB), Hexagonal (Ports & Adapters). Plus Event-Driven, Serverless. CAP-Theorem, Monolith-vs-Microservices-Vergleich, wann was wählen.
Statische Sicht auf OOP-Systeme: Klasse als Rechteck mit 3 Abschnitten (Name/Attribute/Methoden), Sichtbarkeit (+ public / − private / # protected / ~ package), 6 Beziehungs-Typen (Assoziation, Aggregation ◇, Komposition ◆, Vererbung △, Realisierung gestrichelt △, Abhängigkeit gestrichelter Pfeil), Multiplizitäten (1, 0..1, *, 1..*). Mit interaktivem Beziehungs-Visualizer.
Test-Strategie nach Mike Cohn: Pyramide mit Unit (Basis, ~70-80%), Integration (Mitte), E2E (Spitze). AAA-Pattern (Arrange/Act/Assert), FIRST-Prinzipien, Test Doubles (Dummy/Stub/Mock/Spy/Fake), Coverage-Diskussion. Mit interaktivem Pyramide-Lab zum Experimentieren.
TDD nach Kent Beck (1999): Tests ZUERST schreiben, dann Code. Red-Green-Refactor-Zyklus, die 3 Gesetze von TDD (Robert C. Martin), Vor-/Nachteile, wann (un-)geeignet. TDD vs. BDD vs. ATDD. Mit interaktivem Schritt-für-Schritt-Beispiel.
Git als verteiltes Versionskontroll-System: 3 Bereiche (Working Directory, Staging Area, Repository), Commits, Branches, Merge vs. Rebase, .gitignore, Konflikt-Lösung. Branching-Strategien (Git Flow, GitHub Flow, Trunk-Based). Mit interaktivem Workflow-Stepper.
Code-Reviews als zentrales QS-Werkzeug: finden 60-90 % der Bugs vor Production. Pull-Request-Workflow, Review-Schwerpunkte (Funktionalität/Lesbarkeit/Architektur/Tests/Security/Performance), Best-Practices für Reviewer + Author, Kommentar-Severity (Blocker/Suggestion/Nit/Question), Anti-Patterns (Rubber-Stamping/Bikeshedding). Plus QS-Tools (Linting, Static Analysis). Mit Klassifikations-Übung.
Continuous Integration + Continuous Delivery/Deployment: automatisierte Pipeline von Code-Push bis Production. 8 typische Stages (Lint/Unit/Integration/Build/Staging-Deploy/E2E/Production/Smoke), CI/CD-Tools (GitHub Actions, GitLab CI, Jenkins), Blue-Green vs. Canary-Deployment, Anti-Patterns. Mit interaktivem Pipeline-Stepper.