Aspektorientierte Softwareentwicklung hat in den letzten Jahren große öffentliche Beachtung gefunden, da sie verspricht, eine klare modulare Struktur von Software auch dort zu ermöglichen, wo bisherige Techniken, wie z.B. die Objektorientierung, scheitern. Dabei entstanden prototypische Programmiermodelle, die insbesondere das Problem von querschneidenden Anforderungen (engl. Crosscutting Concerns) behandeln. TOPPrax gründet sich auf diese Erfahrungen und auf die Analyse der Schwachpunkte des noch jungen Ansatzes.
• Bisherige Sprachen, die zumeist auf der objektorientierten Sprache Java aufbauen, sind z.T. Ad-Hoc-Lösungen, insofern sie bewährte Prinzipien des Sprachdesigns zugunsten neuer Ausdrucksmächtigkeit vernachlässigen und auf eine bestimmte Klasse von Problemen fixiert sind. Dadurch ist fragwürdig, in wieweit sie als allgemeine Programmiersprachen dienen können.
• Die Werkzeugunterstützung für aspektorientierte Softwareentwicklung beschränkt sich derzeit noch auf das allernötigste - häufig nicht viel mehr als ein Compiler – und noch existiert keine umfassende Methodik der aspektorientierten Softwareentwicklung.
• Bisher untersuchte Anwendungsbeispiele sind zu klein, um Aussagen über die ökonomischen Konsequenzen einer Umstellung auf aspektorientierte Techniken zu treffen.
Lösungsansatz Durch die Auswahl von konsolidierten Programmiermodellen sollen Fehlentscheidungen der frühen Sprachentwürfe korrigiert werden. Ausgewählt für das Projekt wurden die Sprachen ObjectTeams/Java und CaesarJ, da sie die Vorteile etlicher existierender Ansätze vereinen. Beiden Programmiermodellen ist als Verbesserung gegenüber frühen Sprachen gemein, dass es neue Modulkonstrukte mit klassenähnlichen Eigenschaften für Mengen kollaborierender Klassen gibt. Die a-posteriori-Integration dieser Module wird durch Konnektoren realisiert, die dazu dienen, die Funktionalität eines Moduls nicht-invasiv in neue Kontexte einzuflechten.
TOPPrax soll auf drei Ebenen zur Reifung des aspektorientierten Ansatzes beitragen:
• Der Ansatz soll vervollständigt werden, indem auf eine umfassende Werkzeugunterstützung hingearbeitet wird, Zusammenhänge zu anderen Aktivitäten der Softwareentwicklung erarbeitet werden (z.B. bzgl. Refactoring) und durch eine allgemeine
Entwicklungsmethode.
• Im Mittelpunkt des Projektes steht die Anwendung neuer Techniken im Projektgeschäft unter realen Bedingungen. Kurzfristiges Ziel dieser Feldstudien ist das Aufdecken von Lücken in Technik und Methodik. Der Gegenstand der Entwicklung wird aus den Bereichen Logistik/Supply-Chain-Management ausgewählt. Dabei wird der Einsatz von Persistenz- und GUI-Frameworks berücksichtigt. Der Praxiseinsatz dient als Grundlage für die anschließende Bewertung.
• Unter dem Dach einer Analyse des wirtschaftlichen Nutzens sollen beim Praxiseinsatz zum einen Qualitäten aspektorientierter Lösungen wie Verständlichkeit und Erweiterbarkeit bewertet werden, zum anderen der Aufwand für Schulung, Entwicklung und Evolution sowie technische und organisatorische Vorrausetzungen in der Praxis.