|
Zur Arbeit von Dr. Sven Apel:
Aspekt- und Feature-orientierte Programmierung sind zwei verwandte Paradigmen, die bestimmte Schwierigkeiten bei der Modularisierung von Softwaresystemen lösen sollen: Schwierigkeiten, die aus sogenannten querschneidenden Belangen entstehen. Das sind gleichartige Programmteile, die in viele Module eingebaut werden müssen, und dadurch über weite Teile der Software verstreut werden. Aspekt-orientierte Programmierung ermöglicht es, solche Programmstücke einmal zu schreiben und an vielen Stellen automatisch zu injizieren. Mit Feature-orientierter Programmierung sollen funktionale Anforderungen zu jeweils einer Einheit zusammen gefasst werden.
Apel verbindet beide Konzepte mit objekt-orientiertem Entwurf, so dass querschneidende Belange mit datenkapselnden Modulen verwoben werden können.
Dafür hat er in seiner Dissertation die Aspekt-basierten Featuremodule entwickelt. Zudem hat er das bekannte Prinzip der Verfeinerung auf Aspekte angewendet und zu der Methode der Aspektverfeinerung konkretisiert.
Weiterhin hat Apel Sprachkonstrukte und Werkzeuge entwickelt und die Anwendbarkeit seiner Konzepte in einer Fallstudie demonstriert.
Die englisch verfasste Arbeit ist gut geschrieben und ansprechend gestaltet.
Zur Arbeit von Christian Kästner:
Kästner untersucht den Nutzen der Aspekt-orientierten Programmiersprache AspectJ für die Entwicklung von Java-Software, und zwar am Beispiel des Datenbanksystems Berkeley DB. Datenbanksysteme vereinen zahlreiche Features (Transaktionen, Caching, Threading, Backup, Logging, Statistiken etc.) – ein wohlverstandenes Gebiet, das sich als Untersuchungs¬gegenstand gut eignet.
Die Arbeit zeigt die Grenzen der Ausdrucksmächtigkeit von AspectJ zur Dekomposition der Berkeley DB Features. Weiterhin benötigt sie nur wenige AspectJ-Sprachkonstrukte für die Feature-Bildung, der große Teil wurde für das Berkeley DB-Refactoring nicht gebraucht.
Kästners Untersuchung ist bemerkenswert und mutig, denn sie liefert eine kritische Bewertung von AspectJ, vor allem was Verständlichkeit und Umfang des Codes angeht.
|