Software Engineering

About this course

Software Engineering (im deutschsprachigen Raum auch Softwaretechnik) zielt auf die ingenieurmäßige Entwicklung, Wartung, Anpassung und Weiterentwicklung großer Softwaresysteme unter Verwendung bewährter systematischer Vorgehensweisen, Prinzipien, Methoden und Werkzeuge. Die Diversifikation der unterschiedlichen Softwaresysteme und Anwendungsbereiche erfordert ein Portfolio anzuwendender Techniken, vergleichbar mit einem Werkzeugkasten. Ziel der Lehrveranstaltung ist es, diesen Werkzeugkasten mit den wichtigsten Techniken zu bestücken.

Organisation

Prerequisites

Empfohlen wird der erfolgreiche Abschluss der Module Programmieren 1 und Programmieren 2 oder vergleichbare Kenntnisse.

Learning outcomes

Die Studierenden erlangen die Fähigkeit, große Softwaresysteme zu entwerfen und systematisch korrekt zu realisieren.

Wie entwickle ich Software unter wirtschaftlichen Aspekten für realistische Projektgrößen?

Wie entwickle ich qualitativ hochwertige Software?

Schedule (Fall Semester 2024)

DateTopic
18-09Einführung
25-09Vorgehensmodelle
02-10Anforderungsanalyse
09-10Systemmodellierung
16-10Systementwurf
23-10Software-Prüfung
30-10Konfigurationsmanagement
06-11Search-based Software Testing
13-11Automated Debugging
20-11Automated Repair
27-11Gastvorlesung (Michael Ahrens & Daniel Roth, VZ VermögensZentrum AG)
04-12Formale Verifikation / Model Checking
11-12Gastvorlesung (Ramon Lopez Narvaez, AWS)
18-12Q&A

Exam

Repetition exam