|
|
|
|
Beschreibung |
|
KursbeschreibungTrotz eines zunehmenden Bewusstseins für die Notwendigkeit von vorbereitenden Tätigkeiten ist die Programmierung immer noch die Kernaktivität der Softwareentwicklung. Zwar hat die Einführung moderner Programmiersprachen wie Java oder C# durchaus Produktivitätssteigerungen bewirkt, jedoch ist die Fortentwicklung dieser Sprachen viel zu schwerfällig, um mit den ständig wachsenden Ansprüchen an Funktionalität und Umfang schritthalten zu können. Stattdessen haben sich im Kontext der objektorientierten Programmierung eine ganze Reihe von Techniken und Methoden entwickelt, mit deren Hilfe sich - auf der Basis existierender Programmiersprachen - die Softwareentwicklung effizienter gestalten lässt. In dieser Vorlesung konzentrieren wir uns einerseits auf Methoden, die dazu dienen, die Korrektheit von Software zu definieren und formal nachzuweisen, andererseits lernen wir die Spieleengine Unity kennen, als Beispiel einer integrierten Entwicklungsumgebung für einen speziellen Anwendungsbereich. Refactoring und Metaprogrammierung sind schließlich Techniken, die die Wartbarkeit und Weiterentwicklung von Code erleichtern.
Bitte beachten Sie: die ersten drei Lektionen, die sich um die Spezifikation und die Verifikation der Korrektheit von Software drehen, erfordern eine formal-analytische Betrachtungsweise von Software und basieren auf Techniken der Theoretischen Informatik.
Die Themen der Lehrveranstaltung sind:
- Design by contract
- Modellierung zustandsbasierter Systeme
- Verifikation via CTL Model Checking
- Videospielentwicklung mit einer Spieleengine (Unity)
- Refactoring
- Metaprogrammierung |
|
|