Protokolle und UML
-
Hallo,
wie stellt man einen Protokollverlauf (z. B. FTP, HTTP, eigene, ...) in UML dar?
Also in welcher Reihenfolge Anfragen geschickt werden und wie die Antwort darauf lautet.
Gibt's da überhaupt was?
-
In UML 2.0 gibt es spezielle Diagrammtypen dafür, wie z.B. Kommunikationsdiagramme und Timingdiagramme, die man u.a. für diese Modellierung einsetzen kann.
Am sinnvollsten erscheint mir aber die Modellierung in Form eines Zustandsdiagramms zu sein, da bei einem Protokoll sowohl Sender als auch Empfänger nach jeder Botschaft in einen anderen Zustand übergehen.
-
ok,
danke.Einem Zustandsautomaten hab ich auch schon "ins Auge" gefasst,
allerdings bin ich mir noch ned ganz sicher, wie das dann dargestellt
wird.Hier am Beispiel eines Servers
Z1: Warte auf HELLO
Z2: HELLO wurde empfangen
Z3: WELCOME wurde geantwortet, warte auf Anweisung HAUMICHBLAU|--| |--| |--| | | -- receive HELLO --> | | | | |Z1| |Z2| -- send WELCOME --> |Z3| | | <-- send WELCOME -- | | | | |--| |--| |--|
In welchen Zustand soll jetzt übergegangen werden?
Für den Client, der schon HELLO gesendet hat, kommt Z1 nicht mehr in Frage,
also Z3.
Trotzdem soll sich aber ein neuer Client anmelden können, und hierfür muss sich
der Server in Zustand Z1 befinden.Weiteres Problem:
Wie werden Bedingungen dargestellt?Beispiel:
Jeder vorhandene Client sendet irgendwann "READY", geantwortet soll aber erst dann werden, wenn der letzte Client "READY" gesendet hat.thx
Martin
-
Server und Client haben doch jeweils einen eigenen Zustandsautomaten. Der Client wäre also in "nach Hello empfangen", aber der Server kann wieder in Z1 sein.
Eine Bedingung kennzeichnet normalerweise einen Übergang eines Zustands in den nächsten, d.h. der Automat wäre in "warte auf alle Clients", und die Übergangsbedingung in den nächsten Zustand wäre "Client-Meldungen == Client-Anzahl" (oder sowas in der Art), und sobald diese Bedingung erfüllt ist fällt er aus dem Zustand in den nächsten.