Nach der Veranstaltung sollen die Teilnehmer die wichtigsten Aufgaben bei Analyse, Entwurf, Implementierung, Test und Betrieb von Software in unterschiedlichen Projektumfeldern qualifiziert bearbeiten können. Sie beherrschen die wesentlichen systematischen Vorgehensweisen und Methoden des Software Engineering und erlernen die Möglichkeiten der Werkzeugunterstützung bei der Softwareentwicklung. Im Einzelnen sollen die folgenden Kompetenzen vermittelt werden:
o Probleme und Herausforderungen der Softwareentwicklung im Großen verstehen sowie Definition und Inhalte des Software Engineering wiedergeben können. Aspekte der Nachhaltigkeit, Ethik und Diversität kennen.
o Grundlegende Kenntnisse zu Softwareprojekten und Projektmanagement erwerben. Ein Projekt mit Hilfe von Netzplantechnik und Gantt-Diagrammen planen.
o Verschiedene Vorgehensmodelle bei der Softwareentwicklung beschreiben und unterscheiden. Ein Entwicklungsprojekt mit geeigneter Werkzeugunterstützung entsprechend des "Scrum"-Rahmenwerks organisieren.
o Notwendigkeit und Aufgaben des Konfigurationsmanagement verstehen. Werzeuggestütztes Versionsmanagement, Änderungsmanagement und Buildmanagement in einem Softwareprojekt einsetzen.
o Verschiedene Sichten auf ein Softwaresysteme mit den Modellen der Unified Modeling Language bildhaft beschreiben.
o Vorgehen und Techniken der Anforderungsanalyse anwenden können.
o Vorgehen und Prinzipien beim Entwurf von Softwaresystemen beherrschen. Architekturmuster und Entwurfsmuster zur Strukturierung von Software einsetzen.
o Ausgewählte fortgeschrittene Programmiertechniken erklären können.
o Grundlagen des Softwaretests verstehen. Unterschiedliche Verfahren zum Testfallentwurf einsetzen. Werkzeuge für Testmanagement und Testautomatisierung nutzen.
o Aufgaben des Softwarebetriebs wiedergeben können.

1 Einführung
2 Projektmanagement
3 Vorgehensmodelle
4 Konfigurationsmanagement
5 Unified Modeling Language (UML)
6 Anforderungsanalyse
7 Entwurf und Softwarearchitektur
8 Implementierung
9 Test
10 Betrieb