Institute of Computer Languages
Compilers and Languages Group
über
Datum: | Freitag, 5. Juni 2009 |
---|---|
Zeit: | 14:00 (c.t.) |
Ort: | TU Wien, Elektrotechnik, EI 4 Reithoffer-Hörsaal, Gußhaußstraße 25-29 (Altbau), 2. Stock |
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 Komponentenprotokoll 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.)
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.
(http://users.informatik.uni-halle.de/~zimmer/)
Sie möchten auf diesen Vortrag durch Aushang hinweisen? Eine druckfertige Einladung im pdf-Format dafür finden Sie hier.