Modulinformationssystem Informatik

 

Generative Programmierung URL PDF XML

Modulcode: WInf-GenProg8
Englische Bezeichnung: Generative Programming
Modulverantwortliche(r): Prof. Dr. Andreas Speck
Turnus: unregelmäßig
Präsenzzeiten: 4V 2Ü
ECTS: 8
Workload: 60 Std. Vorlesung, 30 Std. Präsenzübungen, 150 Std. Selbststudium
Dauer: ein Semester
Modulkategorien: WO_approval (Sonstige)
Lehrsprache: Deutsch
Voraussetzungen: Info

Kurzfassung:

Im Modul werden nach einer kurzen Betrachtung der Grundlagen der Software-Entwicklung Ansätze zur Automatisierung der Software-Entwicklung betrachtet. Ein derartiges Vorgehen wird heute sehr häufig bei kommerziellen Systemen (wie eCommerce oder ERP Systemen) angewendet, da eine händische Programmierung zu aufwändig ist. Beispiele für derartige Systeme finden sich u.a. auch in der regionalen Industrie, wie bei der Entwicklung von Bank- und Versicherungssystemen, (Hochschul-)Verwaltungssystemen, Steuerungen in der Fertigungstechnik oder eCommerce Systemen. Es werden erste Konzepte zur manuellen Wiederverwendung wie Frameworks und dann schrittweise Konzepte mit höherem Automatisierungsgrad (Produktlinien, generatives Programmieren) betrachtet. Abschließend wird noch die Qualitätssicherung und Validierung der automatisch erzeugten Software thematisiert. Zusätzlich werden Beispiele für den Einsatz generativer Techniken in der industriellen Praxis vorgestellt.

Lernziele:

Die Studierenden haben einen Überblick über die bisherigen Entwicklungen im Bereich der generativen Software Entwicklung und besitzen ein Verständnis für die Einsetzbarkeit der verschiedenen Konzepte. Die Studierenden können nach der Veranstaltung die Techniken der generativen Software Entwicklung im industriellen und wissenschaftlichen Umfeld bewerten und einsetzen. Es werden konkrete Beispiele aus der regionalen Industrie betrachtet.

Lehrinhalte:

Es werden zunächst etablierte Vorgehen wie Muster und Frameworks betrachtet und deren Potential bewertetet. Ein Aspekt ist hier auch die Einsetzbarkeit zur optimierten Organisation der Softwareentwicklung. Dann werden Konzepte mit höherem Automatisierungsgrad vorgestellt. Dieses sind Produktlinien, generatives Programmieren und aspektorientierte Programmierung. Es folgen die Konzepte und Vorgehensweisen von Generatoren in generativen Systemen. Es erfolgt ein Vergleich der verschiedenen wissenschaftlichen Ansätze wobei insbesondere die Austauschbarkeit der Ansätze, bzw. die Ähnlichkeit der Ergebnisse Ansätze und die Kombinierbarkeit der Ansätze betrachtet werden. Zusätzlich wird der reale Einsatz dieser Konzepte im industriellen Umfeld betrachtet.

Abschließend werden mögliche, typische Fehler und Probleme betrachtet sowie die Ansätze zum automatisierten Finden dieser Fehlerfälle. Dabei werden die möglichen Probleme auf verschiedenen Ebenen betrachtet (z.B. statische Abhängigkeiten, Abhängigkeiten zur Generierung / Instanziierung und Fehler im Prozessablauf).

Weitere Voraussetzungen:

Prüfungsleistung:

Es erfolgt eine Prüfung am Ende der Vorlesung als mündliche Prüfung.

Voraussetzung zur Teilnahme an der Prüfung ist die Erbringung von Leistungen im Rahmen der Übungsveranstaltung sein. Die erforderlichen Vorleistungen werden zu Beginn der Lehrveranstaltung / Übungsveranstaltung bekannt gegeben.

Lehr- und Lernmethoden:

Neben der Vorlesung werden zunächst in den Präsenzübungen die zu bearbeitenden Aufgaben besprochen. Im weiteren Verlauf der Veranstaltungen kommen noch systemunterstützte Übungen mit den entsprechenden generativen Systemen hinzu.

Verwendbarkeit:

Literatur:

  • Generative Programming, www.generative-programming.org
  • Czarnecki, Krzysztof, Ulrich W. Eisenecker: Generative Programming: Methods, Tools, and Applications. Addison Wesley, 2000.
  • Kuttruff, Volker: Realisierung von Softwareproduktlinien durch Komposition von Belangimplementierungen, 2010
  • AspectJ Website, http://eclipse.org/aspectj

Verweise:

Kommentar: