Modulbeschreibung

Software Engineering Fundamentals

ECTS-Credits:
3
Lernziele:
  • verstehen grundlegende Konzepte, Prozesse und Werkzeuge der Softwareentwicklung
  • können Softwareprojekte systematisch planen, leiten, umsetzen und testen
  • wenden moderne Entwicklungswerkzeuge (z. B. Git, CMake, GoogleTest, Doxygen) sicher an
  • entwickeln Teamarbeits- und Kommunikationskompetenz
  • reflektieren Codequalität und dokumentieren Software verständlich
  • können einen professionellen Test Harness einsetzen (u.a. Mocks, Stubs)
  • nutzen Test Coverage (Line, Branch) als Feedback zu den definierten Testfällen
  • programmieren eigenständig in allen Phasen des Projekts (individuelle Programmiernachweise)
  • nutzen LLM-basierte Werkzeuge (z. B. Code-Assistenten) im Kontext von Software Engineering sinnvoll und verantwortungsvoll – etwa zur Ideenfindung, für Code-Verbesserungen, Testvorschläge oder Dokumentation, ohne eigenes Verständnis und eigene Prüfungen zu ersetzen
  • setzen statische Codeanalyse ein, z.B. Lint
  • kennen die test-driven development Philosophie vs. code first
  • kennen den Nutzen von Coding Guidelines
  • lernen, wie man sich in einer grösseren/komplexeren bereits bestehenden Code Base zurechtfindet

Kurse in diesem Modul

Software Engineering Fundamentals:
  • Einführung in den Softwareentwicklungsprozess (V-Modell, iteratives Vorgehen, Konfigurationsmanagement, Pull-Request Workflow)
  • Projektplanung und Projektmanagement
  • Code-Organisation, Modularisierung, Wiederverwendbarkeit, Refactoring
  • Konfigurationsmanagement (Git), Buildsysteme (CMake), Dokumentation (Doxygen)
  • Entwicklungsumgebung: Dev-Container (Build, Tests, Doku/Tools)
  • Unit Testing (GoogleTest), Testkonzepte und Fehlerbehebung
  • Test Doubles (Fake/Stub/Spy), Mocking und einfache Schnittstellen für Testbarkeit
  • Vibe Coding
  • Codequalität, Coding Guidelines, Reviews
  • Mini-Projekt (Teamarbeit mit individuellem Codeanteil aller Teammitglieder)

(Änderungen vorbehalten)

Vorlesung mit 1 Lektionen pro Woche
Praktikum mit 2 Lektionen pro Woche
Disclaimer

Diese Beschreibung ist rechtlich nicht verbindlich! Weitere Informationen finden Sie in der detaillierten Modulbeschreibung.