Informatik, TU Wien

Robuste Komponentensysteme durch Protokollprüfung

Ein robustes und wiederverwendbares Softwaresystem sollte eine komponentenbasierte oder serviceorientierte Softwarearchitektur haben, da idealerweise durch einfaches Austauschen oder Ergänzen von Black-Box Komponenten (insbesondere auch Web-Services) ein Softwaresystem weiterentwickelt werden kann.

Der Arbeitsbereich für Programmiersprachen und Übersetzer am Institut für Computersprachen lädt ein.

Abstrakt

Ein robustes und wiederverwendbares Softwaresystem sollte eine komponentenbasierte oder serviceorientierte Softwarearchitektur haben, da idealerweise durch einfaches Austauschen oder Ergänzen von Black-Box Komponenten (insbesondere auch Web-Services) ein Softwaresystem weiterentwickelt werden kann. Dieser Idealzustand ist derzeit nicht erreicht, denn das Zusammensetzen oder Verändern von Komponenten führt häufig zu unerwarteten Effekten. So verhalten sich Komponenten anders als erwartet, wenn sie in einem anderen als dem erwarteten Kontext eingesetzt werden. Es entstehen auf Grund der in vielen Komponententechnologien vorhandenen Nebenläufigkeit Verklemmungen auf Grund der Komponentenkomposition und Komponenten stürzen bei ihrer Ausführung ab, weil sie nicht vorhersehbar genutzt werden. Ursachen sind u.A., dass die Komposition rein syntaktisch an Hand von Schnittstellen erfolgt und dass Komponenten zustandsbehaftet sind. Letzteres bedingt, dass eine unerwartete Aufrufreihenfolge der Dienste einer Komponente fehlerhaftes Verhalten verursachen kann.

Wir schlagen - wie eine Reihe anderer Arbeiten - vor, dass zusätzlich zu den Schnittstellen Komponenten um Protokolle erweitert werden, die die Menge der zulässigen Aufrufreihenfolgen spezifiziert. Die Benutzung einer Komponente C in einem Komponentensystem ist die Menge tatsächlicher Aufrufreihenfolgen. Eine Komponentenprotokollprüfung für Komponente C prüft konservativ, ob deren Benutzung Teilmenge des Protokolls ist. Konservative Prüfung bedeutet, dass zwar Fehlalarme möglich sind, aber Positivmeldungen auf jeden Fall korrekt sind. Die meisten Arbeiten spezifizieren sowohl die Protokolle als auch die Benutzung von Komponenten durch reguläre Ausdrücke und reduzieren daher das Problem der Protokollprüfung auf die Teilmengenbeziehung zweier regulärer Sprachen. Diese Vorgehensweise stößt jedoch an ihre Grenzen, wenn rekursive Prozeduraufrufe ohne Beschränkung der Rekursionstiefe erlaubt sind und führt zu falschen Positivaussagen. Unser Ansatz verallgemeinert die bisherigen Protokollprüfungsmethoden auf eine unbeschränkte Nebenläufigkeit und unbeschränkte Rekursionstiefe. Der Vortrag diskutiert die Grenzen bestehender Ansätze und die Verallgemeinerung auf unbeschränkte Rekursionstiefe.

(Gemeinsame Arbeit mit Andreas Both.)

Biography

Wolf Zimmermann graduated (1987) and obtained a PhD in Computer Science (1990) from the University of Karlsruhe (D). Then he was Research Fellow at the International Computer Science Institute in Berkeley. After returning to Karlsruhe (1991) he became 1992 lecturer at the University of Karlsruhe where he habilitated 1998. He became 1998 visiting professor at the Martin-Luther University Halle-Wittenberg (D) and 1999 at the Institute National Polytechnique Grenoble (F). In 2000 he became professor at the Martin-Luther University Halle-Wittenberg (D) where he holds the chair of Software-Engineering and Programming Languages. Wolf Zimmermann is member of the editorial board of the Journal of Universal Computer Science. He was co-chair on several conferences and workshops and founded together with Jens Knoop the Workshop series on Compiler Optimization meets Compiler Verification. Wolf Zimmermann is currently a visiting professor at TU Vienna, where he delivers a lecture course on "Verifikation von Übersetzern" as part of an ERASMUS/SOCRATES Exchange Agreement between TU Vienna and The Martin-Luther University Halle-Wittenberg.

Hinweis

Tee ab 13:30 Uhr in der Bibliothek E185.1, Argentinierstr. 8, 4. Stock (Mitte).