Vorlesung (Hauptstudium)
Aspekt-orientierte Software-Entwicklung (AOSD)
Dr. Günter Kniesel Daniel Speicher
Aspekte sind ein neues Modularisierungskonzept. Sie kapseln systemübergreifende Anforderungen (crosscutting concerns), deren Umsetzung sonst, trotz bestmöglicher Anwendung objektorientierter Modellierungsprinzipien, über viele Komponenten eines Programms verstreut wäre. Ihre Umsetzung in einem einzelnen Modul verbessert die Wartbarkeit von Anwendungen nachhaltig, da sie Lokalität von Änderungen ermöglicht.
Die aspektorientierte Programmierung (AOP) geht auf Arbeiten an der Northeastern University Mitte der 90-er Jahre zurück. Der Begriff wurde 1996 bei XEROX PARC geprägt. Anfang 2001 wurde AOP von den Herausgebern des MIT Technology Review bereits als eine der 10 wichtigsten Zukunftstechnologien eingestuft. Heutzutage gibt es zahlreiche AOP-Systeme, wobei die Bezugssprache aber zweifellos immer noch AspectJ ist, die bei XEROX PARC entwickelte aspektorientierte Erweiterung von Java.
Der Einzug der AOP im die Industrie zeigt sich unter anderem daran, dass IBM verschiedene Entwicklungsumgebungen für AOP baut (AJDT, CME), die Hersteller von Applikationsservern AOP-Erweiterungen in Ihre Produkte integrieren (Bea Weblogic und JBoss) und sich in Anwendungsbereichen wie der Entwicklung von Middleware ein starkes Interesse an AOP Technologien zeigt.
Die Vorlesung bietet die Möglichkeit, sich frühzeitig in ein neues Paradigma mit absehbar weitreichenden Auswirkungen auf die Softwaretechnologie der Zukunft einzuarbeiten. In der Vorlesung werden verschiedene AOP-Sprachen und -Middleware-Systeme zusammen mit den dazugehörenden Entwicklungswerkzeugen vorgestellt. Interessante Anwendungen der Konzepte und Systeme werden diskutiert, um die praktischen Auswirkungen der neuen Technologien zu verdeutlichen. Der Schritt von AOP zu AOSD besteht in der Verallgemeinerung der besprochenen Programmierkonzepte auf frühere Phasen des Entwicklungsprozesses (Analyse, Entwurf). Die Integration von Aspekten in die UML ist hier zum Beispiel ein Thema.
Schliesslich werden die Gemeinsamkeiten und Unterschiede der besprochenen Systeme herausgearbeitet. Dazu gehört auch die Betrachtung von noch offenen Problemen, die Gegenstand aktueller Forschungs sind und somit auch mögliche Diplom- / Master-Arbeitsthemen eröffnen.
Die Vorlesung wird an das im ersten Durchang (Wintersemester 2004) von den Teilnehmern mit Begeisterung aufgenommene Konzept anknüpfen, die Vorstellung mancher Konzepte / Systeme von deren Erfindern selbst bestreiten zu lassen. Wir werden auch diesmal unsere Kontakte in der AOSD-Gemeinschaft nutzen, um Ihnen aktuelle Themen "aus erster Hand" präsentieren zu können.
Übung: Die Übungen zur Vorlesung werden den Umgang mit einigen wichtigen aspekt-orientierten Sprachen, Systemen und Werkzeugen vermitteln. Geplant ist unter anderem die Verwendung der zur Zeit meistgenutzten AO-Programmiersprachen (AspectJ), ihrer von uns entwickelten Erweiterung zur Modellirung generischer Aspekte (LogicAJ, s. roots.iai.uni-bonn.de/research/logicaj), aspektorientierter Middleware (zB JBoss/AOP) und von Werkzeugen, die die Migration von herkömmlicher zur aspekt-orientierten Entwicklung sowie das Refactoring von Aspekten unterstützen.
| Zeit, Ort | Mo 15-17, HS A207 |
| Semesterwochenstunden | 2V + 2Ü |
| Beginn | 16.10.2006 (24.10.2006) |
| Übungen | Di 13-15, HS A207 (Dr. Günter Kniesel, Daniel Speicher) |
| Voraussetzungen | OOP-Erfahrung (vorzugsweise in Java), Vorlesung Softwaretechnologie | | Nachfolgeveranstaltungen | Diplomarbeiten |
| Bereich (alte DPO) | C |
| Bereich (neue DPO) | B |
| Prüfungsmöglichkeiten | Neue DPO: Modulprüfung (4 LP im Bereich B3)
Alte DPO: C-Prüfung durch Prof. Cremers oder anderem habilitierten Prüfer). Themenkombination mit passenden Spezialvorlesungen in Absprache mit dem Prüfer. |
| Email-Kontakt | gk at iai.uni-bonn.de dsp at iai.uni-bonn.de |
| Literatur | Siehe Vorlesungs-Website. |
| Informationen im WWW | http://roots.iai.uni-bonn.de/teaching/vorlesungen/2006aosd |
|