MENÜ MENÜ  

Parametrisierte Verträge zur Protokolladaption bei Software-Komponenten

Ralf Reussner

ISBN 978-3-89722-783-5
236 pages, year of publication: 2001
price: 40.50 €
Das Buch stellt das Konzept der parametrisierten Verträge und ihre Anwendung zur Protokolladaption bei Softwarekomponenten vor. Parametrisierte Verträge behandeln eine für die Praxis wichtige Klasse von Adaptionen von Software-Komponenten. Eine der wichtigsten Fragen beim Entwurf von Software-Komponenten ist die nach dem Funktionsumfang der Komponente. Eine umfangreiche Funktionalität lässt viele Kunden ihre spezifischen Funktionsanforderungen als eine Teilmenge der Komponentenfunktionalit;ät wiederfinden. Allerdings erhäht eine hohe Funktionalität der Komponente in der Regel auch ihren Bedarf an externen Ressourcen und verringert so die Wiederverwendbarkeit.

Die Hinzunahme von Funktionalität führt also zu einem Dilemma bezüglich der Wiederverwendbarkeit. Analog tritt bei der Verwendung der Komponente in der Praxis das Problem auf, dass nur eine Teilmenge der Funktionalität tatsächlich benötigt wird; dennoch aber alle benötigten Ressourcen der Komponente vorhanden sein müssen, auch wenn sie eigentlich nicht zur Erfüllung der benötigten Funktionalität beitragen. Hier lautet die Frage: Wie kann in Abhängigkeit von der benötigten Funktionalität die tatsächlich benötigte Funktionalität ermittelt werden? Umgekehrt gibt es bei der Eingliederung einer neuen Komponente in ein bestehendes System die Frage, welche Funktionalität diese Komponente in dem bestehenden Kontext erbringen kann. Dieselbe Frage stellt sich bei fehlertoleranten Systemen nach dem Ausfall einiger -aber nicht aller- Ressourcen.

Parametrisierte Verträge verwenden zur Beantwortung dieser Fragen den Zusammenhang zwischen Angebots- und Bedarfsschnittstelle einer Software-Komponente. Hierbei nutzt man den in der Praxis relevanten Fall, dass eine Komponente oft noch eine Teilfunktionalität erbringen kann, auch wenn nicht alle Ressourcen zur Verfügung stehen. Umgekehrt werden nicht alle Ressourcen benötigt, wenn nicht die Gesamtfunktionalität erbracht werden muss. Parametrisierte Verträge stellen eine Verallgemeinerung "klassischer" Verträge dar. Die Nachbedingung (Angebotsschnittstelle) geht als Parameter in die Berechnung der Vorbedingung (Bedarfsschnittstelle) ein und umgekehrt.

Parametrisierte Verträge sind ein abstraktes Konzept mit Freiheitsgraden bei ihrer Realisierung. Bei Software-Komponenten fordern parametrisierte Verträge vom Schnittstellenmodell lediglich die explizite Modellierung der Angebots- und der Bedarfsschnittstelle, sind aber ansonsten unabhängig von der Information, die in diesen Schnittstellen modelliert wird. Weiterhin ist bei parametrisierten Verträgen der Zeitpunkt ihrer Anwendung variabel. So können parametrisierte Verträge beim Entwurf, zur übersetzungs- oder Kompositionszeit eines Softwaresystems eingesetzt werden. Während der Übersetzung können parametrisierte Verträge zur Codegenerierung oder Codeauswahl benutzt werden. Beim Einsatz während des Entwurfs oder der Kompositionszeit, wenn also der Code nicht vorhanden ist bzw. nicht mehr verändert werden soll, reicht es aus, durch parametrisierte Verträge die Schnittstellen zu manipulieren. Die Anwendung parametrisierter Verträge beschränkt sich -ebensowenig wie die Anwendung "klassischer" Verträge- nicht nur auf Softwarekomponenten. Wendet man parametrisierte Verträge auf Methoden an, so kann der Vertrag den Typ der Methode berechnen. Insofern sind hier parametrisierte Verträge ein Spezialfall parametrischer Polymorphie.

Protokollbehaftete Schnittstellen von Software-Komponenten beschreiben im Vergleich zu herkömmlichen Schnittstellen (Signaturlisten) zusätzlich eine relevante Klasse von Zusammenhängen zwischen Methoden. In der Praxis sind bei der überwiegenden Zahl von Komponenten nicht alle Dienste in jedem Zustand verfügbar. Dies führt zu illegalen Aufrufreihenfolgen von Diensten, die durch die Kompatibilitätsprüfung herkömmlicher Schnittstellen nicht erkannt werden können. Die legalen Aufrufreihenfolgen bilden das Protokoll einer Komponente. Allein Dokumentation von Protokollen in der Schnittstelle ist nicht ausreichend; erwünscht ist eine automatische Überprüfung der Protokollkompatibilität zweier kooperierender Komponenten. Dazu muss neben der Angebotsschnittstelle auch die Bedarfsschnittstelle mit Protokollinformation ausgestattet sein. Die Modellierung dieser Schnittstelleninformation erfordert in der Praxis ein Modell, bei dem Inklusion und äquivalenz effizient statisch entscheidbar sind. Dies wird von bestehenden Ansätzen wie Prozessalgebren oder Petri-Netzen nur unzureichend unterstützt. Weiterhin muss das Modell auch auf die in der Praxis wichtigen Abstrakten Datentypen wie Kellerspeicher anwendbar sein. Allgemein betrifft dies alle Komponenten, die Ressourcen vor Benutzung stückweise allozieren müssen und wieder freigeben müssen. Die Zusammenh&aumkl;nge zwischen Methoden, die Allozieren, Benutzen oder Freigeben, sind durch endliche Automaten in der Regel nicht beschreibbar. In der Arbeit wird ein Schnittstellenmodell vorgestellt, welches Komponentenprotokolle durch eine Erweiterung endlicher Automaten mit Zählern spezifiziert. Die für die Praxis wichtige Frage, ob Äquivalenz und Inklusion für diese Erweiterung endlicher Automaten mit Zählern effizient entscheidbar sind, wird in der Arbeit positiv beantwortet.

In dem Buch wird gezeigt, wie man parametrisierte Verträge auf dieses Schnittstellenmodell angewendet. Konkret werden also Algorithmen angegeben, die zur Kompositionszeit aus dem Protokoll der Angebotsschnittstelle das Protokoll der Bedarfsschnittstelle berechnen und umgekehrt.

Keywords:
  • Software-Komponenten
  • Parametrisierte Verträge
  • Automatenmodell
  • Protokollspezifikation und -analyse
  • Wiederverwendbarkeit

Buying Options

40.50 €