Im Modul Softwareentwicklung 2 (SE2) erläutern wir fortgeschrittene Methoden und Konzepte der Softwareentwicklung. Dieses Modul baut systematisch auf den Inhalten von SE1 auf und findet regelmäßig im Sommersemester statt. Es ist eine Pflichtveranstaltung aller beteiligten Studiengänge.
Wir vertiefen die objektorientierte Softwareentwicklung auf Entwurfs- und Konstruktionsebene. Wir diskutieren ausführlich Vererbungskonzepte und -mechanismen, die systematische Fehlerbehandlung mit Exceptions sowie das Vertragsmodell. Wir vermitteln die Konstruktionsprinzipien von grafischen Benutzungsoberflächen. In der zweiten Semesterhälfte sprechen wir insbesondere Aspekte der objektorientierten Modellierung an.
Die Studierenden sollen die Grundlagen zur Entwicklung kleiner, gebrauchstauglicher Anwendungen mit Hilfe objektorientierter Konzepte beherrschen und zentrale Konzepte zur Abstraktion und Modularisierung kennen. Weiterhin sollen sie fortgeschrittene Programmiersprachkonzepte sowie die Konzepte von Entwurfsmustern und Refactorings kennen und mit integrierten Entwicklungsumgebungen umgehen können.
Um die Praxis der Softwareentwicklung erfahrbar zu machen, sind die Übungen teilweise projektartig gestaltet. Die Studierenden arbeiten in der zweiten Hälfte des Semesters in Kleingruppen von vier Personen kontinuierlich an etwas größeren Aufgaben (14-tägige Übungen statt wöchentliche) zusammen. So werden zum einen die in der Vorlesung behandelten Konzepte der Modellierung und Programmierung vertieft und praktisch umgesetzt. Zum anderen üben die Studierenden softwarebezogene Kommunikation und Teamarbeit ein. Sie lernen, in der Gruppe eine allmählich reifende Lösungsidee zu entwickeln, zu bewerten und zu revidieren, eigene und fremde Softwareentwürfe zu präsentieren, entstehende Softwarelösungen zu beschreiben und einer Qualitätssicherung zu unterziehen sowie sich in der Gruppenarbeit zu koordinieren.