Kapitel 8: Zustände

Aus ComeniusWiki
Version vom 6. März 2014, 12:52 Uhr von B.Schiller (Diskussion | Beiträge)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Durch die Veränderung des Wertes eines Attributes wird der Zustand eines Objektes verändert. Diese Zustandsänderung kannn durch unmittelbare Zuweisung eines neuen Wertes an das Attribut oder durch indirekte Wertzuweisung durch eine andere Methode ausgelöst werden. Der Zustand eines Objektes wird durch die Gesamtheit der Werte aller seiner Attribute definiert. Ein Objekt ändert seinen Zustand, wenn sich der Wert mindestens eines seiner Attribute ändert (Zustandsübergang). Zwei Objekte der gleichen Klasse sind im gleichen Zustand, wenn sie in den Werten aller ihrer Attribute übereinstimmen. Um Abläufe aus der realen Welt zu simulieren, ist es notwendig, dass man sich im Vorfeld darüber klar wird, welche verschiedenen Zustände die beteiligten Objekte einnehmen können und wie diese Zustände gegebenenfalls voneinander abhängen.

Zustaende.JPG

Aufgaben 8.1.


Zustandsdiagramme

Mithilfe von Zustandsdiagrammen lässt sich das Verhalten von Objekten beschreiben. (Solche Objekte bezeichnet man auch als Zustandsautomaten.) Ein Zustandsübergangsdiagramm oder kurz Zustandsdiagramm besteht aus Zuständen und deren Übergängen. Es zeigt alle Abläufe, die für ein System möglich sind. Ein Zustandsübergang verbindet zwei Zustände. Der Übergang wird durch einen Pfeil dargestellt und wird stets durch ein Ereignis ausgelöst. Dieses Ereignis notiert man direkt am zugehörigen Pfeil. In einem Zustandsdiagramm gibt es genau einen Anfangszustand, der in einem Diagramm durch einen Pfeil mit rundem, ausgefülltem Pfeilfuß gekennzeichnet wird. Es sind kein, ein oder mehrere Endzustände möglich. Ein Endzustand wird durch einen kleinen ausgefüllten Kreis mit einem umschließenden Ring gekennzeichnet.


Beispiel:

Datei:Xxzz.JPG


Hinweise:

  • Ein Übergang kann nicht unterbrochen werden. Einmal ausgelöst wird die Aktion durchgeführt.
  • Ein Zustandsübergang muss den Zustand des Systems nicht unbedingt ändern.
  • Ein Ereignis löst einen (oder keinen) Übergang aus, aber niemals mehrere. Man spricht in diesem Zusammenhang auch von einem deterministischen Zustandsdiagramm.
  • Zustandsnamen sind frei wählbar, sollten aber selbsterklärend sein. Es ist üblich, bei der Bezeichnung von Zuständen Substantive, Partizipien oder Adjektive zu verwenden.
  • Ereignisnamen enthalten hingegen immer Verben. Verben weisen darauf hin, dass ein Ereignis häufig eine Veränderung auslöst.


Folgende Fragen sind beim Entwurf eines Zustandsmodells für einen Problembereich zu klären:

  • Welche Zustände sind relevant?
  • Welcher Zustand ist ein Anfangszustand?
  • Welche Ereignisse sind relevant?
  • Welche Zustandsübergänge können ausgelöst werden?
  • Gibt es Endzustände?


Beispiel für die Erstellung eines Zustandsdiagramms:

Gegeben sei ein einfacher CD-Player. Nach dem Einschalten ist das CD-Fach geschlossen. Nach dem Öffnen kann eine CD eingelegt werden und der CD-Player ist bereit zum Abspielen der CD. Mit PLAY wird die CD abgespielt, mit STOP wird die Wiedergabe abgebrochen. Der CD-Player kann entweder mit eingelegter CD oder ohne CD im Fach wieder ausgeschaltet werden.

Vorgehensweise bei der Erstellung des Zustandsdiagramms:


Aufgaben 8.2.

Zustandsübergänge mit Bedingung

Häufig ist ein Zustandsübergang mit einer Bedingung verbunden, d.h. die auslösende Aktion wird nur dann durchgeführt, wenn die Bedingung erfüllt ist.

Beispiel 1

Ampeln an Durchgangsstraßen zeigen oft durchgehend grün. Erst wenn ein Fußgänger einen Ampelknopf betätigt wird der normale Ampelzyklus ausgelöst. (Im Diagramm ist nur die Autofahrerampel berücksichtigt.)


Fussgaengerampel.JPG


Allgemeine Darstellung eines Zustandsübergangs mit Bedingung:


UebergangMitBedingung.JPG


Beispiel 2

Bei einem Getränkeautomaten kann ein Getränk erst geordert werden, wenn genug Geld eingeworfen worden ist.


Getraenkeautomat.JPG


Aufgaben 8.3.