page 1  (8 pages)
2to next section

Inferenzbasierte Werkzeuge in NORA

Gregor Snelting, Andreas Zeller

Arbeitsgruppe Softwaretechnologie

Technische Universit?at Braunschweig

Gaussstrasse 17, D-38106 Braunschweig

Zusammenfassung

Die experimentelle Softwareentwicklungsumgebung NORA strebt die Nutzbarmachung neuer Ergebnisse im Bereich Unifikationstheorie und Deduktionsverfahren f?ur Softwarewerkzeuge an. Gruppiert um eine Bibliothek wiederverwendbarer Softwarekomponenten bietet NORA interaktive Werkzeuge zum Komponentenretrieval mit Spezifikationen und Verwendungsmustern, zum unifikationsbasierten Konfigurationsmanagement sowie zur Inferenz von Varianten- und Konfigurationsstrukturen aus existierenden Quelltexten. NORA ist mit sprachspezifischem Wissen parametrisiert und kann unvollst?andige oder inkonsistente Information handhaben. Der Aufsatz gibt eine ?Ubersicht ?uber die Werkzeuge und die verwendeten Inferenzverfahren; abschliessend wird die Systemarchitektur und die Kommunikation zwischen den Werkzeugen skizziert.

Stichworte: Inferenzverfahren, Wiederverwendung, Konfigurationsmanagement, Reverse Engineering

1 Einleitung

Im Bereich der Softwarewerkzeuge gibt es ein noch unausgesch?opftes Potential, n?amlich die Verwendung von Inferenzverfahren. Es gibt eine F?ulle neuerer Ergebnisse im Bereich Deduktionssysteme und Unifikationstheorie, deren Anwendbarkeit f?ur das Software Engineering jedoch noch keineswegs ausgesch?opft ist ? im Gegenteil, Softwareingenieure und Inferenzforscher pflegen sich meistenteils mit Missvergn?ugen zu betrachten.

Um diese L?ucke zu schliessen, entwickeln wir die experimentelle Softwareentwicklungsumgebung NORA. NORA zielt auf die Nutzbarmachung von Inferenzverfahren f?ur Softwarewerkzeuge und behandelt die folgenden Aspekte der Softwareentwicklung:

? Schnittstelleninferenz in einer Bibliothek wiederverwendbarer Softwarekomponenten

? Komponentenretrieval, das Spezifikationen und Verwendungsmuster als Suchschl?ussel erlaubt

? Interaktives Konfigurationsmanagement, basierend auf einer Inferenzmaschine f?ur Feature-Logik

? Unterst?utzung f?ur das Reverse Engineering durch Inferenz von Varianten- und Konfigurationsstrukturen aus existierender Software.

Im Gegensatz zu existierenden Ans?atzen sollen interaktive Werkzeuge entwickelt werden, die unvollst?andige Information handhaben k?onnen (Ambiguit?atstoleranz), inkonsistente Information tolerieren (Fehlertoleranz), schnelle und bequeme Interaktion erm?oglichen (Inkrementalit?at), und mit sprachspezifischem Wissen parametrisiert sind (Generierbarkeit). Diese Eigenschaften erm?oglichen fr?uhere Fehlererkennung und unterst?utzen evolution?are Systementwicklung.

NORA ist ein junges Projekt, das bei weitem noch nicht abgeschlossen ist. Dementsprechend hat dieser Artikel ?Ubersichtscharakter und soll in erster Linie die grundlegenden Ideen vermitteln; die theoretischen Grundlagen und weitere Details werden wir an anderer Stelle beschreiben.

2 Softwarekomponenten in NORA

NORAs Werkzeuge gruppieren sich um eine Bibliothek wiederverwendbarer Softwarekomponenten. NORA ist sprachunabh?angig intendiert, d.h. alles, was eventuell an sprachspezifischer Information ben?otigt wird, wird als Parameter in die einzelnen Werkzeuge gesteckt. Unser Ziel ist es, Softwareentwicklung sowohl mit klassischprozeduralen als auch mit objektorientierten und funktionalen Sprachen zu unterst?utzen; im Moment beschr?anken wir uns allerdings auf Modula-2 als Studienobjekt.

In NORA k?onnen nicht nur Module, sondern auch andere syntaktische Einheiten wie Prozeduren oder Anweisungen eine eigenst?andige Komponente bilden, die von anderen Komponenten verwendet werden kann. Der Genotyp einer Softwarekomponente ist dabei stets ihr Quelltext, der als gew?ohnliche UNIX-Datei vorliegt. ?Ph?anotypen? wie abstrakter Syntaxbaum, inferierte Information wie Signaturschema (s.u.) oder zus?atzliche Spezifikationen etwa in Form von Vor-/Nachbedingungen werden separat gespeichert. Die Verwendung einfacher Dateien erlaubt einfache Integration in die bestehende UNIX- Landschaft; weitergehende Ans?atze wie Datenbanken f?ur Softwarewerkzeuge usw. sind nicht unser Thema.

Abbildung 1 zeigt ein Beispiel einer Bibliothek wiederverwendbarer Softwarekomponenten, wie sie von NORAs Systemeditor dargestellt wird. Softwarekomponenten werden als K?astchen dargestellt; Abh?angigkeiten zwischen ihnen werden durch Linien dargestellt. Der Abh?angigkeitsgraph wird mit Hilfe sprachspezifischer Regeln errechnet, so dass keine Spezifikation notwendig ist. Durch