• Keine Ergebnisse gefunden

Modellierung verteilter Systeme

N/A
N/A
Protected

Academic year: 2021

Aktie "Modellierung verteilter Systeme"

Copied!
26
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Modellierung verteilter Systeme

Grundlagen der Programm und Systementwicklung

Sommersemester 2012

Prof. Dr. Dr. h.c. Manfred Broy

Unter Mitarbeit von Dr. M. Spichkova, J. Mund, P. Neubeck

Lehrstuhl Software & Systems Engineering

(2)

Verfeinerung von Systemen

(3)

Schrittweise Verfeinerung

Verfeinerung (engl. Refinement) adressiert die Beziehung zwischen Systemmodellen, wie sie im Verlauf einer Entwicklung mit immer mehr Details entstehen

Formal ist Verfeinerung eine Relation zwischen Systemen (genauer zwischen dem Systemverhalten)

System(spezifikation) B ist Verfeinerung von System(spezifikation) A, wenn B alle geforderten Eigenschaften von A erfüllt

(gegebenenfalls aber noch weitere aufweist):

B impliziert alle Eigenschaften von A

A kann durch B ersetzt werden

Es besteht eine enger Bezug zum Begriff Kompatibilität

(4)

Arten der Verfeinerung

Eigenschaftsverfeinerung: Verfeinerung der Anforderungen

Hinzufügen weiterer Eigenschaften

Einbettung in umfangreichere syntaktische Schnittstelle

Repräsentationsverfeinerung:

Verfeinerung der Interaktionsgranularität

Änderung der Darstellung von Nachrichten

Ersetzen einer Nachricht durch mehrere Nachrichten

Änderung vom Kanalnamen

Ersetzung eines Kanals durch mehrere Kanäle

(5)

Beispiel: Verfeinerung der Spezifikation eines Systems

TMC a ~ b

a:T b:T

(6)

Beispiel: Verfeinerung der Spezifikation eines Systems

TMC ’ a >>

d

b

a:T b:T

TMC‘ verfeinert TMC TMC

(7)

Eigenschaftsverfeinerung

Eine Komponente mit dem Verhalten

wird durch eine Komponente mit dem Verhalten

verfeinert, falls für alle Eingaben

folgende Beziehung gilt:

F(x)  F(x)

Wir schreiben dann

F > F

F : I ®Ã (O)

¢

F : I ®Ã (O)

x Î I

(8)

Beispiel der Eigenschaftsverfeinerung: Datenspeicher

Eingabekanal x der Sorte Data  {req}

Ausgabekanal y der Sorte Data

 Forderung für die Speicherfunktion f (für alle d  Data) y = f(x)  d  y  d  x

 Filterfunktion 

#y = min(# {req}  x, # Data  x)

 Für jedes Datenelement sollen höchstens so viele Kopien

ausgegeben werden, wie eingegeben und angefordert werden:

# {d}  y  # {d}  x

(9)

Verfeinerung von Schnittstellenzusicherungen

Eine Spezifikation mit Schnittstellenzusicherung A‘ verfeinert eine Spezifikation mit Schnittstellenzusicherung A, falls

A‘  A

Achtung:

Die Schnittstellenzusicherung false verfeinert damit jede andere Schnittstellenzusicherung

Eine Spezifikation mit Schnittstellenzusicherung false ist eine

widersprüchliche Spezifikation, die nicht implementiert werden kann

(10)

Teilfunktionalität

Eingabekanäle

I, I

Ausgabekanäle

O, O

I  I  O  O

Verhalten:

f ist eine Teilfunktion von f, falls für alle gilt:

O I

f ¢ : ¢ ® ¢

O I

f : ®

(11)

Interaktionsverfeinerung

Interaktionsverfeinerung: ein Paar von Abbildungen

für die gilt:

wobei

Repräsentationsfunktion Abstraktionsfunktion

(12)

Interaktionsverfeinerung (2)

Änderungen durch Interaktionsverfeinerungen bei einer Komponente:

Sorte, Zahl und Namen ihrer Eingabe- und Ausgabekanäle,

Granularität der auf den Kanälen übermittelten Nachrichten Beschreibung einer Interaktionsverfeinerung:

(13)

Interaktionsverfeinerung (U

-1

-Simulation)

Verfeinerungspaare:

ist eine Interaktionsverfeinerung des Verhaltens

falls der folgende Satz (U-1-Simulation) gilt:

(14)

Schnittstellenverfeinerung: Interaktionsverfeinerung

Wir brauchen zwei Interaktionsverfeinerungen

so dass gilt (U-Simulation)

(15)

Interaktionsverfeinerung: 4 Formen

U

-1

-Simulation (restriktivster, “stärkster” Begriff)

Abwärtssimulation

Aufwärtssimulation

U-Simulation

(16)

Beispiel: Parallele und Serielle Subtraktion

Übersetzung:

ein Paar von Zahlenströmen in einem Bitstrom mit Trennzeichen  rep(n & a, m & b) = bitseq(n) ^    ^ bitseq(m) ^    ^ rep(a, b) rep(, b) = rep(a, ) = 

(17)

Allgemeines zu Verfeinerungen

Das Konzept der Verfeinerung gibt es in einer Reihe von Ausprägungen

Verfeinerung von Datenstrukturen

Verfeinerung von Programmen

Verfeinerung von Systemen

Schnittstellen

Architekturen

Zustandsmaschinen

(18)

Kompatibilität

Grundidee Kompatibilität

Ein Teilsystem (Komponente) B heißt (ersetzungs-)kompatibel zu einer Komponente A,

wenn in beliebigen Systemen S, die A enthalten, folgendes gilt:

wenn A in S durch B ersetzt wird, entsteht ein System S‘ das das gleiche (Schnittstellen-)Verhalten wie S zeigt

Formalisiert

Eine Schnittstellenspezifikation B ist (ersetzungs-)kompatibel zu einer Komponente A, falls B Verfeinerung von A ist

es gilt:

S = C  A  S‘ = C  B  A = B  S = S‘

und

S = C  A  S‘ = C  B  A > B  S > S‘

(19)

Modularität der Verfeinerung

Grundidee Modularität

Eine Verfeinerung heißt modular,

wenn für jede Komponente A mit Verfeinerung durch eine (Komponente) B gilt:

in beliebigen Systemen S, die A enthalten, gilt:

wenn A in S durch B ersetzt wird, entsteht ein System S‘ das eine Verfeinerung von S ist

Formalisiert

Eine Verfeinerungsrelation > heißt modular, wenn für alle Systeme S, A, B, C gilt:

S = C  A  S‘ = C  B  A > B  S > S‘

(20)

Repräsentationsverfeinerung: Zustandssysteme

Zustandsübergangssysteme:

Unmarkiert

Nichtdeterministisch

Sicherheitseigenschaften: Systeminvarianten

Analyse der Sicherheitseigenschaften von Systemen:

Invarianten beweisen (Verifikation)

Gegenbeispiele für Invarianten finden (Testen)

(21)

Repräsentationsverfeinerung: Zustandssysteme (2)

Abstrakter Zustandsraum , konkreter Zustandsraum 

0

 , 

0

 

Zustandsübergangsfunktionen

System (, 

0

) - Abstraktion des Systems (, 

0

)

Abstraktionsfunktion

(22)

Repräsentationsverfeinerung: Zustandssysteme (3)

Sei I   eine Zustandszusicherung auf dem

Zustandsraum  und I   eine Zustandszusicherung auf dem Zustandsraum 

Koppelrelation:

(23)

Beispiel: Abstraktion eines Automaten

Kstate = AutoAmpel  FußgängerAmpel

AutoAmpel = { grün, gelb, rot, gelbgrün } FußgängerAmpel = { grün, rot }

Übergangsdiagramm K

Abstrakter Automat: AState = A  F

(24)

Beispiel: Abstraktion eines Automaten (2)

Übergangsdiagramm A

Wir erhalten:

und die gekoppelten Invarianten

(25)

Konstruktion abstrakter Zustandsmaschinen

(26)

Abschließende Bemerkungen

Das Konzept der Verfeinerung bildet die Grundlage

für die Beziehung zwischen Systemmodellen in Entwicklungsschritten

für Kompatibilität

für Entwicklung nach „Divide and Conquer“ soweit Verfeinerung modular ist

Referenzen

ÄHNLICHE DOKUMENTE

 Kennzeichnung der einzelnen Instanzen der gleichen Aktion innerhalb eines Ablaufs durch Menge von Ereignissen: Event.  Wiederum in axiomatischen Spezifikationen beschreibbar

 asynchron: Nachricht wird gesendet (unabhängig von der Bereitschaft des Empfängers zum Empfangs): Senden und Empfangen sind.. eigenständige Aktionen; Senden ist unabhängig

 Äquivalenzbegriffe für Zustände (erweiterbar auf Mengen von Zuständen und Zustandsmaschinen) von Maschinen mit markierten Übergängen:.

 In einem Zeitintervall können beliebig viele Nachrichten auf einem Kanal ausgetauscht werden.  Perfekte Synchronie (engl.

Jeder Kundenfunktion werden die logischen Komponenten zugeordnet, die an der. Erbringung der Kundenfunktion

(3) Wenn ein stabiles Pr¨ adikat in allen Startzust¨ anden gilt, gilt es auch f¨ ur alle erreichbaren Zust¨

► Eine Unterklasse U heisst extravagant (eingeschränkt) zu einer Oberklasse O, wenn nicht alle Objekte aus U alle Objekte aus O ersetzen können, ohne dass in einer Anwendung, die

► Der Architekturstil Geschichtete Lebenszyklen (geschichtete Steuerungsmaschinen, abstrakte Maschinen, Layered Abstract Machines) benutzt punktweise Verfeinerung, um höher liegende