[AG Zimmermann]

PROTAGOnIST

Werkzeuge für 
die automatisierte Softwareentwicklung 

Andreas Metzger
Marc Krämer, Thomas Kuhn, Christian Webel
Wolfgang Hanke, Dominik Rehm

English


Übersicht:

Im Rahmen des Teilprojekts D1 des SFB 501 entsteht die Werkzeugumgebung PROTAGOnIST (Productmodel- and Generator-based Iterative Software Development Tools). Neben der frühzeitigen Generierung von Prototypen zur Validierung und Verifikation von reaktiven Systemen erlauben die PROTAGOnIST-Werkzeuge aufwändige Schritte in der Systementwicklung zu automatisieren. 

Dabei wird bei der Entwicklung der PROTAGOnIST-Werkzeuge systematisch und effizient vorgegangen (siehe Referenz) und ein Modell aller Entwicklungsartefakte und deren Relationen (sog. Produktmodell) zur Anwendung gebracht. Als Entwicklungsartefakte verstehen wir neben Dokumenten auch fein-granularere oder abstraktere Einheiten, z.B. bestehen Dokumente in unserem Produktmodell aus atomaren Artefakten, sogenannten FeatureViews, deren abstrakte Darstellung wir Features nennen.

[Abbildung 1]

Abbildung 1: Aktivitäten und Artefakte von PROTAGOnIST

Abbildung 1 zeigt die prinzipielle Aufteilung von Aktivitäten und Artefakten.  Die Werkzeuge Document Parser, Document Generator, Verifier und Analyzer werden im Rahmen dieses Forschungsprojekts in der Programmiersprache Java implementiert (siehe Dokumentation weiter unten). Der Austausch von Features und Configurations zwischen den Werkzeugen erfolgt über sog. SLANG-Files, welche die Daten der Java-Instanzen ähnlich wie in XML-Dateien speichern.

Als C-Code Generator kommt das kommerzielle Werkzeug Telelogic Tau SDL Suite zum Einsatz.

Werkzeuge:
 
Document
Parse
r
(Javadoc)
Die Document Parser erzeugen aus HTML-, bzw. SDL-Dokumenten einen Satz von Features und Configurations. A. Metzger (HTML),
T. Kuhn (SDL)
Document
Generator

(Javadoc)
Die Document Generatoren erzeugen einen Satz von HTML- oder SDL-Dokumenten aus einer gegebenen Menge von Features und Configurations. M. Krämer
Verifier
(Javadoc)
Dient zur Verifikation der Entwicklungsprodukte, indem die Features und Configurations auf Konsistenz und Vollständigkeit geprüft und bei Fehlern die Korrektheit zum Teil automatisch wiederhergestellt wird. W. Hanke,
A. Metzger
Analyzer
(Javadoc)
Analysiert die Features und Configurations und liefert dadurch Statistiken (z.B. Anzahl Objekttypen) und Messergebnisse (z.B. Komplexität der Artefakte) bzgl. der Entwicklungsdokumente. C. Webel
Browser
(Javadoc)
Werkzeug um quasi 'Datenbankanfragen' an das Produktmodell zu stellen, z.B. "liefere alle Verwendungen eines bestimmten Signaltyps".
M. Krämer,
A. Metzger
Clipper
(Javadoc)
Ermöglicht die Erstellung von Teilbäumen durch Generierung von Stubs und Treibern und erlaubt dadurch partielles Prototyping.
A. Metzger

Bibliotheken:
 
ProductModel
(UML,
Javadoc)
Diese Bibliothek beinhaltet alle Klassen des Produktmodells. Mit werkzeugspezifischen Erweiterungen finden diese Klassen Anwendung in den oben beschriebenen Werkzeugen. Erzeugt werden diese Klassen aus UML-Modellen mit Hilfe des Werkzeugs Rhapsody. A. Metzger
Slang
(Javadoc)
Zum Austausch von Instanzeninformation zwischen Werkzeugen, die auf dem ProductModel aufsetzen, dienen sog. SLANG-Files. Die generischen Klassen zum Erzeugen dieser Files aus einer Instanziierung (Marshalling), bzw. das Erzeugen und Verbinden von Instanzen aus einer solchen Datei (Unmarshalling) finden sich in dieser Bibliothek. A. Metzger
QuiotixParser
(Javadoc,
Source)
Zum Parsen der HTML-Dokumente verwenden wir einen modifizierten (GPL-lizenzierten) Parser der Firma Quiotix.
A. Metzger
ANTLR
Zum Parsen der SDL-Dokumente (SDL-PR) verwenden wir einen Parser, der mit dem Parser-Generator ANTLR generiert wird.
T. Kuhn
HttpInterface
(Javadoc)
Interface zum Versionkontrollsystem der PROBAnD-Methode.
A. Metzger

Lokale Informationen:

© 2003, Andreas Metzger