Beschreibung | Technologien | Partner | Dokumente | Interner Bereich | Impressum

Projektbeschreibung TOPPrax

Inhalt

1 Zielsetzung


Das Projekt TOPPrax soll neueste Techniken der aspektorientierten Softwareentwicklung in die Praxis betrieblicher Softwareentwicklung einführen und ihr Einsatzpotenzial bewerten.

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 scheitern. Erste prototypische Sprachen wie AspectJ und Hyper/J zeigen neuartige Lösungsansätze und haben in der jüngsten Vergangenheit als Basis gedient, erste partielle Erfahrungen in diesem Bereich zu sammeln.

1.1 Aspektorientierung

Unter dem Begriff "Aspektorientierte Programmierung" (AOP) wurde 1997 von Kizcales et al. ein neues programmiersprachliche Konzept eingeführt, durch das die Probleme sogenannter crosscutting concerns gelöst werden sollen.
Zwei Aspekte (Anforderungen, Entwurfsentscheidungen oder dergl.) werden dann als crosscutting bezeichnet, wenn es mit herkömmlichen Mitteln nicht gelingt, beide Aspekte gleichermaßen bei der Strukturierung zu berücksichtigen. Das häufigst genannte Beispiel sind die Aspekte "Funktionalität des Systems" und die zusätzliche Anforderung bestimmte Ereignisse in einer Datei zu protokollieren ("logging"). Aus der Verknüpfung beider Aspekte ergibt sich, daß logging nicht als eigenständiges Modul implementiert werden kann, sondern über das ganze System verstreut wird (scattering). Andersherum betrachtet werden viele Routinen des Systems eine Mischung aus Anwendungslogik und logging enthalten (tangling).

Durch scattering und tangling wird die Modulstruktur eines Systems aufgeweicht mit verheerenden Folgen für den Entwicklungsprozeß und für die Softwarequalität.
Wartung und Weiterentwicklung von Systemen setzen eine klare Modulstruktur voraus, weil sonst jede Änderung potentiell das gesamte System betrifft und dadurch Änderungen nicht unabhängig voneinander durchgeführt oder auch zurückgenommen werden können. Unterschiedliche Varianten für verschiedene Kunden sind nicht beherrschbar, wenn sich die Unterschiede über zu große Teile des Quelltextes verteilen.
Die Softwarequalität setzt eine klare Verständlichkeit und eine unmittelbare Nachvollziehbarkeit vorraus. Nur wenn Aspekte auch im Quelltext noch eindeutig lokalisiert werden können, ist nachvollziehbar, welche Programmteile welche Anforderungen umsetzen, was als Voraussetzung für verschiedene Maßnahmen der Qualitätssicherung dient.

1.2 Schwachpunkte existierender Ansätze

Das Projekt TOPPrax gründet sich auf diese Erfahrungen und auf die Analyse der folgenden Schwachpunkte des noch jungen Ansatzes:

  • Bisherige Sprachen sind z.T. Ad-Hoc-Lösungen, insofern sie bewährte Prinzipien des Sprachdesigns zugunsten neuer Ausdrucksmächtigkeit vernachlässigen.
  • Bisherige Sprachen sind z.T. fixiert auf eine bestimmte Klasse von Problemen. Dadurch ist fragwürdig, in wieweit sie als allgemeine Programmiersprachen dienen können.
  • Werkzeugunterstützung für aspektorientierte Softwareentwicklung beschränkt sich derzeit noch auf das aller nötigste - häufig nicht viel mehr als ein Compiler.
  • Es ist noch unklar, wie ein Softwareentwurf unter Berücksichtigung aspektorientierter Techniken aussehen soll. Gleiches gilt für die Dokumentation von aspektorientierten Programmen.
  • Metriken für die Feststellung (bestimmter Aspekte) von Softwarequalität sind noch nicht auf die neuen Techniken angepaßt.
  • Aspektorientierung konkurriert mit der Technik des Refactoring, insofern, als beide Ansätze versprechen, die Evolution von Software zu begünstigen. Auch wenn beide Ansätze sich konzeptionell sehr gut ergänzen können, ist noch sehr unklar, wie sie zusammen eingesetzt werden können.
  • Es existiert noch keine umfassende Methodik der aspektorientierten Softwareentwicklung. Bislang dominiert die technikorientierte Sicht, die überwiegend verschiedene Lösungen diskutiert, ohne Hilfestellung zu geben, mit welcher Vorgehensweise eine gute Lösung systematisch entwickelt werden kann.
  • Es fehlt noch an Belegen, daß der neue Ansatz ökonomisch vorteilhaft ist. Zum Einen sind fast alle bekannten Beispiele für den Einsatz aspektorientierter Techniken zu klein, um aussagekräftige Beurteilungen zuzulassen, zum Anderen sind die Auswertungen unzureichend und erlauben keine Aussagen über die ökonomischen Konsequenzen einer Umstellung auf aspektorientierte Techniken.

1.3 Beiträge des Projektes

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 und Caesar. Gleichzeitig vereinen die gewählten Programmmiermodelle die Vorteile etlicher existierender Ansätze.

In dieser Ausgangssituation soll TOPPrax auf drei Ebenen zur Reifung des aspektorientierten Ansatzes beitragen:

  • Der Ansatz soll vervollständigt werden und zwar 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.
  • Der Ansatz soll in realen Fallbeispielen eingesetzt werden. Kurzfristiges Ziel dieser Feldstudien ist das Aufdecken von Lücken in Technik und Methodik. Weiterhin dient der Praxiseinsatz als Grundlage für die anschließende Bewertung (s. nächster Punkt).
  • Der Praxiseinsatz soll nach unterschiedlichen Kriterien analysiert und bewertet werden. Unter dem Dach einer Analyse des wirtschaftlichen Nutzens sollen Fragen beantwortet werden wie:
    • Unter welchen Vorraussetzungen sind die neuen Techniken einsetzbar?
    • Haben die aspektorientierten Lösungen eine höhere Qualität als herkömmliche?
    • Sind aspektorientierte Programme besser verständlich als herkömmliche?
    • Bietet die Aspektorientierung einen Vorteil für die Weiterentwicklung von Systemen?
    • Wie hoch liegen die Aufwände für Schulung, Entwicklung und Evolution?

Um den Praxiseinsatz bei den beteiligten Firmen vorzubereiten, werden umfangreiche Schulungsunterlagen erstellt, die universell einsetzbar sind:

  • Grundlagenschulung zur Vermittlung der Sprachkonzepte und des Umgangs mit dem Compiler und dem Laufzeitsystem anhand einfacher Beispiele.
  • Vertiefungsschulung zur Vermittlung von methodischen Konzepten und des Umgangs mit der integrierten Entwicklungsumgebung anhand komplexerer Beispiele.
     weiter: 2 Grundlagen und Vorarbeiten
© 2004 TOPPrax - Mail an den Webmaster