View
105
Download
1
Category
Preview:
Citation preview
Modellierung
Verteilte Anwendungen
Wintersemester 06/07
© Wolfgang Schönfeld
Entwickler, Benutzer (Anwender) und weitere Beteiligte sollten bei der Entwicklung möglichst lange kooperieren.
Da sie unterschiedliche Aufgaben erfüllen, bleibt es nicht aus, dass sie unterschiedliche Sichten auf das zu Entwickelnde haben.
Die Sichten müssen aber eindeutig ineinander überführbar sein (Bauplan → Haus).
Sichten auf verteilte Systeme
(eigene Zeichnung ca. 2005)
Als Modell bezeichnet man sowohl ein Vorbild, das der Nachahmung dient, als auch die – meist verkleinerte – Nachahmung eines Objektes.
Ein Modell kann sowohl ein physisches Objekt sein als auch eine abstrakte Vorstellung oder Theorie. Praktisch wird mindestens seit der Antike in abstrakten „Modellen“ gedacht, auch wenn der Begriff nicht explizit verwendet wurde.
(aus Wikipedia)
Mit Modellen kann man "herumspielen",
auch "auf dem Papier
und neuerdings mit dem Rechner.
Modelle
speziell mengentheoretische Modelleunter Abstraktion von Formen
in der Vergangenheit rein gedanklich, auf dem Papier
jetzt auch mit dem Rechner
zur Rolle der Mengenlehre vgl. "Why sets?" :
mathematische Modelle
Endliche Automaten
Petri-Netze
in endliche Automaten zerlegbare Petri-Netze(http://portal.acm.org/citation.cfm?coll=GUIDE&dl=GUIDE&id=889750)
Zelluläre Netze
abstrakte Zustandsmaschinen
Kalküle
Werkzeuge für Modellierung wurden in eigenem Kapitel behandelt.
spezielle mathematische Modelle
alternierende Turingmaschinen?
endlicher Automat (EA)(engl. finite state machine) ist ein Modell des Verhaltens, bestehend aus
Zuständen, Zustandsübergängen und Aktionen.
endlicher Automat (EA)Varianten sind:• erkennender Automat (Akzeptor)
Aktionen sind die Eingaben von Informationen.• erzeugender Automat
Aktionen sind die Ausgaben von Informationen.• Transduktor
Ein- und Ausgabe
Endliche Automaten spielen eine wichtige Rolle bei der Untersuchung von formalen Sprachen.
ZeitBeispiel: Bahnübergang
Zug
geschlossen
Schranke
offen offen
nein neinja
Die zwei Komponenten Zug und Schranke ändern ihren Zustand durch
• Zug: Ankunft/Abfahrt
• Schranke: Öffnen/Schließen
nein
Bahnübergang betrachten als:
zwei endliche Automaten, für jede Komponente einen.
Zug Schranke
offen
ja zu
keine Lösung!
nein
Zug
Schranke
keine Lösung!
ja
zu
ja
nein
zu
offen
offen
ein Automat, dessen zwei Koponenten voneinander unabhängig agieren(mathematisch: direktes Produkt)
auch keine Lösung (Schranke darf auch schließen, wenn kein Zu kommt.)
nein
ja
zu
ja
nein
zu
offen
offen
ein Automat mit zwei Komponenten, deren Aktionen vollständig gekoppelt sind
(mathematisch: isomorph einem Automaten mit zwei Zuständen)
nein
Zug
Schranke
Lösung! Aber nicht leicht zu verstehen.
ja
zu
ja
nein
zu
offen
offen
Meist sind mehr Zustände möglich als erwünscht.
ein Automat mit zwei Komponenten, deren Aktionen teilweise gekoppelt sind
(mathematisch: sub-direktes Produkt)
Ist eine Lösung leichter zu verstehen,
wenn man Aktionen ausschließt?
Ein Petrinetz ist ein bipartiter Graph von Aktionen ("Transitionen") und Zuständen ("Stellen"). Eine Transition ist mit einer Stelle durch eine gerichtete Kante verbunden, wenn die Aktion in diesem Zustand möglich ist. Dass eine Aktion einen Zustand bewirkt, ist ebenfalls durch eine Kante angedeutet.
Der Zustand eines verteilten Systems wird durch Marken (Token) auf den entsprechenden Stellen gekennzeichnet. Aktionen des Systems werden durch Verschieben der Marken dargestellt. (Es können auch Marken entstehen oder verschwinden.)
Petrinetz
Petrinetze können manchmal einfache Systeme besser veranschaulichen (wie man es für grafische Darstellungen erwartet).
Werden sie komplexer, so lässt sich eine übersichltiche Darstellung meist schon deswegen nicht erreichen, weil die Grafik prinzipiell nicht in die Ebene einbettbar ist (nicht planar).
Petrinetze sind für die Ausbildung, aber weniger für den Entwurf gedacht.
Sie sind außerdem als deutsche Entwicklung im amerkikanischen Umfeld nicht sehr bekannt.
Ihre wesentliche Beschränkung teilen sie mit den endlichen Automaten: Zustände sind nur durch Namen benannt und nicht im Detail beschrieben.
Das gilt auch für zelluläre Automaten:
Ein zellulärer Automat ist ein System von endlichen, im mehr-dimensionalen Raum angeordneten Automaten. Sie agieren gleichzeitig, wobei die jeweiligen Folgezustände von den augenblicklichen Zuständen der Nachbarn abhängen.
abstrakte Zustandsmaschinen: sequenziell
Abstract State Machines (ASM), formerly known as Evolving Algebras, are a formal method for specification and verification. The approach was originally developed by Yuri Gurevich, based around the concept of an abstract state machine, and is also espoused by Egon Börger. ASM theory is the basis for Abstract State Machine Language by Microsoft and XASM (Anlauff's eXtensible ASMs), an open source implementation. A number of support tools are available.
aus Wikipedia
GI-Jahrestagung/ASM-Workshop Magdeburg 1997
?
Kalkül
ist eine Menge von "formalen" Regeln
mathematische Kalküle: Arithmetik Differenzial- und Integralrechnung
logische Kalküle: Aussagenkalkül Relationenkalkül Situationskalkül
Sind Kalküle relevant für verteilte Anwendungen?
Vollständigkeit: gilt? ist erforderlich?
Kalkül != mathematische Modellierung (Schachspiel)
Modallogik
Prädikatenlogik + zusätzliche Operatoren • möglich• notwendig • immer (in der Zukunft) • manchmal/irgendwann (in der Zukunft) Ausdrucksmöglichkeiten • morgen wird es regnen • möglicherweise wird es morgen regnen, möglicherweise auch nicht in der Vorlesung nicht betrachtet, da in verteilten Anwendungen vor
allem nur "Faktenwissen"
Dialog
als Element der natürlichen Sprache
vergleichsweise wenige Modellierungsansätze (?)
funktionale Sprachen liefern eigentlich einen Hinweis
spielen aber keine Rolle bei verteilten Systemen
(s. Wikipedia)
Es gibt jedoch eine Dialoglogik in der Philosophie …
Recommended