Bei der (objektorientierten) Softwareentwicklung gibt es eine große Anzahl häufig wiederkehrender Probleme, die von der jeweils eingesetzten Programmiersprache und anderen konkreten technologischen Aspekten weitgehend unabhängig sind. Ein Ansatz moderner Softwareentwicklung besteht darin, diese Probleme zu katalogisieren und ihre Lösungen so zu beschreiben, dass man zu einem späteren Zeitpunkt erneut auf diese Konzepte zurückgreifen kann. Die Beschreibung entsprechender Problem-Lösungs-Paare erfolgt dabei häufig in Form sogenannter Design Patterns (Entwurfsmuster). Die Kenntnis der Design-Pattern-Methodik wie auch konkreter Entwurfsmuster ist für die Qualitätssicherung in der Softwareentwicklung und für die Kommunikation von Lösungskonzepten zwischen Entwicklern von großem Wert.
Das Seminar richtet sich an Studierende im Grund- und Hauptstudium der naturwissenschaftlichen Informatik oder mit Nebenfach Informatik, die Interesse an professioneller Softwareentwicklung haben. Nach einer kurzen Einführung in die Methodik von Design Patterns und einem Exkurs in die Grundlagen von UML sollen konkrete Patterns aus einem vorgegebenen Fundus von den SeminarteilnehmerInnen vorgestellt und in der Gruppe diskutiert werden. Gedacht ist dabei sowohl an Implementierungspatterns wie Observer, Factory und Model-View-Controller als auch an Architekturpatterns, die die Strukturierung von Softwaresystemen als Ganzes beschreiben. Praktisches Ziel des Seminars ist es, den TeilnehmerInnen eine Toolbox von Lösungsschemata zu vermitteln, auf die sie bei zukünftigen Softwareprojekten zurückgreifen können. Konzeptueller Kern des Seminars ist die Thematisierung von Stärken und Schwächen der Design-Pattern-Methodik.
Die SeminarteilnehmerInnen sollten ein oder mehrere inhaltlich verwandte Patterns im Rahmen eines Vortrags präsentieren, an den sich eine Diskussion anschließt.
Die vorherige Teilnahme an den Vorlesungen "Programmierpraktische Einführung", "Algorithmen und Datenstrukturen I und II" ist unverzichtbar. Grundlagen der Objektorientierung werden als bekannt vorausgesetzt. Wünschenswert sind praktische Erfahrungen mit einer objektorientierten Programmiersprache wie Java, Smalltalk oder C++.
| Rhythmus | Tag | Uhrzeit | Format / Ort | Zeitraum |
|---|
| Studiengang/-angebot | Gültigkeit | Variante | Untergliederung | Status | Sem. | LP | |
|---|---|---|---|---|---|---|---|
| Mediengestaltung / Bachelor | (Einschreibung bis SoSe 2004) | TB5 | Wahlpflicht | 5. | 3 | scheinfähig Teilnahme in Absprache mit den Dozenten | |
| Naturwissenschaftliche Informatik / Diplom | (Einschreibung bis SoSe 2004) | SE | Wahlpflicht | GS und HS |