Technische Universität München Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung Wintersemester 2009/10 Prof. Dr. Dr. h.c. Manfred Broy Unter Mitarbeit von Dr. K. Spies, Dr. M. Spichkova, L. Heinemann, P. Neubeck Lehrstuhl Software & Systems Engineering Broy WS 09/10: Modellierung verteilter Systeme Technische Universität München Sichtenintegration Broy WS 09/10: Modellierung verteilter Systeme Technische Universität München Zustand und Ablauf Wir können einen Zusammenhang zwischen einem Zustandsmodell und einem Ablaufmodell für ein System herstellen, indem wir Jedem Zustand σ eine Menge von Abläufen abl(σ) zuordnen Jedem endlichen Ablauf q, für den ein Ablauf p ∈ abl(σ) existiert, eine Menge von Zustandsübergängen zuordnen der folgenden Form q " ##$ "% Wir sagen dann: Zustandsbegriff eines Systems ist adäquat, wenn aus jedem Zustand die Menge der möglichen Abläufe ableitbar ist (d.h. abl(σ) ist wohldefiniert) Zustandsmenge heißt voll abstrakt, wenn je zwei verschiedene Zustände auch unterschiedliche Mengen von Abläufen beschreiben voll abstrakt = redundanzfrei (ähnlich zu minimalen Automaten in formalen Sprachen) ! Broy WS 09/10: Modellierung verteilter Systeme Technische Universität München Lineare Temporale Logik Zustandsmaschinen mit markierten Übergängen besitzen sequentielle Abläufe Ablauf endet, wenn keine Übergänge mehr möglich sind; wir erhalten eine endliche Berechnung Oft gilt die Annahme, dass die Übergangsrelation nicht partiell ist (Menge der Aktionen, die in einem Zustand möglich sind ist nie leer) und daher alle Abläufe unendlich sind Wir erhalten dann für jeden Zustand eine Menge von unendlichen Strömen von Zuständen und eine Menge von unendlichen Strömen von Aktionen Ablauf auch als Strom von Paaren (σi, ai+1) beschreibbar Broy WS 09/10: Modellierung verteilter Systeme Technische Universität München Abläufe von Zustandsmaschinen Gegeben eine Zustandsmaschine mit markierten Übergängen – Wir können jedem Zustand einfach eine Menge von sequentiellen Abläufen zuordnen – Um nichtsequentielle Abläufe behandeln zu können, brauchen wir eine Darstellung von Parallelität auf der Ebene der Zustandsmaschinen, etwa die Erweiterung der Übergänge mit einzelnen Aktionen auf Übergänge mit Mengen von Aktionen Technische Universität München Lineare Temporale Logik: Fairness Für ein Paar (σ, b) definieren wir die Prädikate exec(a) falls a = b enabled(a) falls $! ' : ! a " "# !' Ablauf s heißt stark fair, falls für alle Aktionen a gilt: s heißt schwach fair, falls für alle Aktionen a gilt: Broy WS 09/10: Modellierung verteilter Systeme Technische Universität München Äquivalenz von Zustandsmaschinen Verschiedene Systeme können in gewisser Weise gleiches Verhalten realisieren Es gibt verschiedene Definitionen für die Äquivalenz zweier Systeme Ein guter Äquivalenzbegriff erlaubt es, in einer Komposition ein Teilsystem gegen ein äquivalentes auszutauschen Kongruenz Wir betrachten im Folgenden folgende Äquivalenzbegriffe für Zustände (erweiterbar auf Mengen von Zuständen und Zustandsmaschinen) Spuräquivalenz Verweigerungs- bzw. Bereitschaftsäquivalenz Bisimulationsäquivalenz Broy WS 09/10: Modellierung verteilter Systeme Technische Universität München Definition: Spuräquivalenz Zwei Zustandsmaschinen M1 und M2 mit Startzuständen σ0 und σ’0 heißen (aktions-) spuräquivalent, wenn ihre Mengen von Aktionsspuren übereinstimmen. Spuräquivalenz ist formal definiert durch: M 1 ~ Spur M 2 " spuren(! 0 ) = spuren(! '0 ) wobei { a } i+1 spuren(" 0 ) = a # $% : &" # '% : (i ) 0 : " i * * * + " i+1 ! Broy WS 09/10: Modellierung verteilter Systeme Technische Universität München Definition: Simulation Eine Präordnung ≤ über der Menge der Zustände heißt Simulation, wenn für alle Zustände σ, σ’, die Aussage σ ≤ σ’ genau dann gilt, wenn: a ∈ A, ” ∈ : a ⎯⎯→ € ”⇒ a ”’ ∈ : ’ ⎯⎯ → € ”’ ∧ ”≤ ”’ Für Zustandsmaschinen M1 und M2 mit Startzustände σ0 und σ’0 definieren wir: M2 simuliert M1 , geschrieben M1 ≤ M2 wenn eine Simulation ≤ mit σ0 ≤ σ’0 existiert. Broy WS 09/10: Modellierung verteilter Systeme Technische Universität München Definition: Bisimulation Eine Äquivalenzrelation ∼ über Zuständen heißt Bisimulation, wenn für alle Zustände σ, ϕ, die Aussage σ ∼ ϕ genau dann gilt, wenn: a a +a ' *, " '' & : (" # #$ " ' ) (! '' & : " ' ~ ! '%! # #$ !') a a und +a ' *, " '' & : (" # #$ " ' ) (! '' & : ! ' ~ " '%! # #$ ! ') Zwei Zustandsmaschinen M1 und M2 mit Startzuständen σ0 und σ’0 heißen bisimulationsäquivalent, geschrieben M1 ∼bi M2, wenn eine Bisimulation ∼ mit σ0 ∼ σ’0 existiert. Es gilt nicht (siehe Beispiel, nächste Seite): M1 ∼bi M2 ⇔ M1 ≤ M2 ∧ M2 ≤ M1 Broy WS 09/10: Modellierung verteilter Systeme Technische Universität München Beispiel: Vergleich Spur- und Bisimulationsäquivalenz Die Zustandsmaschinen M1 und M2 sind spuräquivalent, aber sind nicht bisimulationsäquivalent. Broy WS 09/10: Modellierung verteilter Systeme Technische Universität München Vergleich Spur- und Bisimulationsäquivalenz Bisimulationsäquivalenz impliziert Spuräquivalenz Je nach gewähltem Kompositionoperator ist eine andere Äquivalenz geeignet Bei asynchroner Kommunikation Spuräquivalenz Bei synchroner Kommunikation Bisimulationsäquivalenz z.B. gilt die Kongruenz Broy WS 09/10: Modellierung verteilter Systeme Technische Universität München Definition: Bereitschaftsäquivalenz Zwei Zustände σ0 und σ1 heißen bereitschaftsäquivalent, wenn Die Relation Weiterhin sei definiert: ist dabei definiert durch: Broy WS 09/10: Modellierung verteilter Systeme Technische Universität München Beispiel: Vergl. Bereitschafts- und Bisimulationsäqu. Die Zustände σ1 und σ2 sind spur- und bereitschaftsäquivalent, aber nicht bisimulationsäquivalent Broy WS 09/10: Modellierung verteilter Systeme Technische Universität München Vergleich der Äquivalenzen Bisimulationsäquivalenz impliziert Bereitschaftsäquivalenz Bereitschaftsäquivalenz impliziert Spuräquivalenz Broy WS 09/10: Modellierung verteilter Systeme