• Keine Ergebnisse gefunden

Strukturierung der Ereignisse bzgl. ihrer Nutzung

4.5 Objektorientierte Realisierung

4.5.4 Strukturierung der Ereignisse bzgl. ihrer Nutzung

In diesem Abschnitt geht es um die Ereignis-Objekte im Kontext ihrer Benut-zung in den Verhaltens-Objekten. Es werden die Gemeinsamkeiten und Un-terschiede der Ereignis-Objekte eines beliebigen Verhaltens-Musters untersucht und die Ereignis-Objekte in Kategorien gruppiert.

4.5 Objektorientierte Realisierung 91

Die Ereignis-Muster werden in Hinsicht ihrer unterschiedlichen Nutzung im Verhaltens-Muster klassifiziert. Ein Ereignis-Muster spezifiziert dabei eine kon-krete Art von Bedingung. Es werden die folgenden Bedingungen unterschieden:

1. Zeitliche Bedingungen

Mit den zeitlichen Bedingungen (follow (tj, tk)) wird eine l¨uckenlose Abfol-ge einiAbfol-ger anderer Ereignis-Muster definiert. Die AbfolAbfol-ge dieser anderen Ereignis-Muster wird durch eine Ordnung innerhalb der Kategorie der Sequenz-Bedingungen beschrieben, so daß die Ereignis-Muster, die zeit-liche Bedingungen ausdr¨ucken, nicht als Ereignis-Objekte implementiert werden m¨ussen.

2. Sequenz-Bedingungen

Die Ereignis-Objekte dieser Kategorie definieren eine Ereignis-Abfolge vom Start bis zum Ende des Verhaltens und sind total geordnet, d.h. je-des außer das letzte Ereignis-Objekt dieser Kategorie wird durch ein an-deres Ereignis-Objekt dieser Kategorie abgel¨ost. Die Ordnung ist da-bei durch die zeitlichen Bedingungen und durch gemeinsame Zeitpunkt-Variablen definiert. Wenn das aktuell untersuchte Ereignis-Objekt dieser Kategorie den Zustand finished erreicht hat, wird das darauf folgende Ereignis-Objekt mit der aktuellen Beobachtung untersucht. Die geordne-ten Ereignis-Objekte dieser Kategorie werden in einer Liste (Dageordne-tenstruk- (Datenstruk-tur) mit dem NamensequenceEvents zusammengefasst.

F¨ur das Paß-Verhalten besteht diese Ereignis-Abfolge aus den Bedingun-gen 1. XBallControl2, 2. ballFastDeparting, 3. teammateInKickRegion, 4. ballFree und 5. XBallControl1.

Die Sequenz-Bedingungen k¨onnen weiter unterteilt werden und zwar in Zeitpunkt-Bedingungen, Intervall-Bedingungen und Vorbedingungen.

(a) Zeitpunkt-Bedingungen

gelten entweder in einem Zeitpunkt oder nicht, d.h. der Zustand einer Zeitpunkt-Bedingung ist immer mit genau einer Beobachtung feststellbar. Die m¨oglichen Zust¨ande f¨ur solche Ereignis-Objekte sind not happening und finished. Alle anderen Zust¨ande sind nur f¨ur Zeitintervalle relevant.

Ein Beispiel f¨ur eine solche Bedingung ist ballFastDeparting.

(b) Intervall-Bedingungen

weisen einen Start- und einen Endzeitpunkt auf, wobei die beiden Zeitpunkte auch ¨ubereinstimmen k¨onnen. Bei Intervall-Bedingung wird der l¨angstm¨ogliche Zeitraum bestimmt, f¨ur den die Bedingung gilt. Daf¨ur m¨ussen solange Beobachtungen untersucht werden, bis die Bedingung nicht mehr gilt. Die m¨oglichen Zust¨ande f¨ur Ereignis-Objekte dieser Kategorie sind not happening, in progress, end pos-sible und finished. Die anderen beiden Zust¨ande pending und can-celed werden infolge der ¨Ahnlichkeit zu den Zust¨anden in progress bzw.not happening nicht ben¨otigt. Die Bedeutungsverschiedenheit dieser Zust¨ande (vgl. Abschnitt 4.5.3.2 auf Seite 88) wird bei den

92 Die Verhaltens-Bestimmung

Intervall-Bedingungen mit Hilfe von sogenannten Vorbedingungen realisiert.

Wenn ein Ereignis-Objekt dieser Kategorie im Zustand in progress oderend possibleist, wird es solange mit neuen Beobachtungen ¨ uber-pr¨uft, bis es nicht weiter fortgesetzt werden kann (ausgedr¨uckt durch die Zust¨andenot happening bzw. finished).

Die Bedingung XBallControl2 stellt ein Beispiel f¨ur eine Intervall-Bedingungen dar.

(c) Vorbedingungen22

sind die Bedingungen, die erf¨ullt sein m¨ussen, damit im eigentlichen Sinne vom Start des Verhaltens gesprochen werden kann. Durch die Ordnung der Sequenz-Bedingungen sind alle Ereignis-Objekte der Sequenz-Bedingungen bis zu einem bestimmten Ereignis-Objekt Vorbedingungen. Die folgenden Ereignis-Objekte sind dann keine Vorbedingungen mehr. Sobald also die erste Nicht-Vorbedingung untersucht wird, gilt das Verhalten als im eigentlichen Sinne gest-artet. Demnach reicht es aus, wenn die Nummer der ersten Nicht-Vorbedingung f¨ur jedes Verhalten angeben wird. Diese Nummer wird mitinProgressEventNum bezeichnet.

Die erste Nicht-Vorbedingung des Paß-Verhaltens ist die Bedingung ballFree (4. Sequenz-Bedingung), so daß das Attribut inProgress-EventNum des Verhaltens-Objektes Paß den Wert 4 hat.

3. Immer-Bedingungen

Die Immer-Bedingungen stellen die Ereignis-Muster eines Verhaltens-Mu-sters dar, die vom Startzeitpunkt (t0) bis zum Endzeitpunkt (tn) des Ver-haltens gelten m¨ussen. Die Ereignis-Objekte dieser Kategorie werden un-abh¨angig voneinander ausgewertet und k¨onnen in allen sechs Zust¨anden vorkommen. Wenn eines dieser Ereignis-Objekte einen der Zust¨ande not happening,finished oder canceled annimmt, bedeutet dies, daß auch das Verhalten nicht fortgesetzt werden kann. Alle Ereignis-Objekte dieser Kategorie sind in einer Menge mit dem NamenalwaysEvents zusammen-gefasst.

Die Immer-Bedingungen des Verhaltens-Muster Paß sind die Bedingungen sameTeam, notSame und virtuallyPlayOn.

Auch diese Kategorie l¨aßt sich weiter untergliedern und zwar in festste-hende und ver¨anderbare Immer-Bedingungen.

(a) Feststehende Immer-Bedingungen

¨andern ihre Auspr¨agung ¨uber den ganzen Zeitraum des Verhaltens nicht, d.h. wenn erst einmal bestimmt wurde, ob die Bedingung gilt oder nicht, dann ¨andert sich der Zustand von feststehenden Immer-Bedingungen nicht mehr. Solange die G¨ultigkeit der Bedingung nicht feststellbar ist, hat sie den Zustandin progress. Wenn die G¨ultigkeit

22Die Vorbedingungen eines Verhaltens werden ebenso wie das Verhaltens-Muster selbst durch einen Designer bestimmt.

4.5 Objektorientierte Realisierung 93

ermittelbar ist, findet ein Wechsel in einen der Zust¨andeend possible, not happening odercanceled statt, der sich dann nicht mehr ¨andert.

Ein Wechsel in den Zustandfinished ist nicht m¨oglich, da die Bedin-gungen dieser Kategorie ja immer gelten und demnach nicht beendet sein k¨onnen.

Die Bedingung sameTeam ist ein Beispiel-Ereignis dieser Kategorie.

Sobald beide Spieler feststehen, kann die G¨ultigkeit bestimmt wer-den.

(b) Ver¨anderbare Immer-Bedingungen

sind nicht auf eine Auspr¨agung f¨ur den ganzen Zeitraum des Ver-haltens festgelegt. Sie k¨onnen prinzipiell in allen sechs Zust¨anden auftreten und mehrmals ihren Zustand wechseln. Bisher wurden nur die vier Zust¨andenot happening,pending,end possible und finished f¨ur ver¨anderbare Immer-Bedingungen ben¨otigt.

Ein Beispiel f¨ur eine solche Bedingung ist virtuallyPlayOn.

4. Parallel-Bedingungen

Mit den Ereignis-Objekten dieser Kategorie k¨onnen weitere Bedingungen an die Sequenz-Bedingungen gekoppelt werden. Der Start- und Endzeit-punkt einer Parallel-Bedingung kann dabei nur an die verschiedenen Start-und Endzeitpunkte der Sequenz-Bedingungen angekn¨upft werden. Bei gew¨unschten ¨Uberlappungen mit einzelnen Sequenz-Bedingungen muß die entsprechende Sequenz-Bedingung vorher entsprechend zerlegt werden.

Damit stellen die Immer-Bedingungen einen Spezialfall von Parallel-Be-dingungen dar, wobei der Startzeitpunkt jeder Immer-Bedingung an den Startzeitpunkt der ersten Sequenz-Bedingung und der Endzeitpunkt jeder Immer-Bedingung an den Endzeitpunkt der letzten Sequenz-Bedingung gekn¨upft ist. Die Ereignis-Objekte dieser Kategorie werden in einer Men-ge mit dem NamenparallelEvents zusammengefasst.

Das Verhaltens-Muster Paß hat mit der Bedingung movement genau eine Parallel-Bedingung.

5. Abbruch-Bedingungen

Wenn das Verhaltens-Objekt im Zustandcanceledist (es also nicht erfolg-reich beendet wurde), werden mit den Abbruch-Bedingungen die Fehler-Auspr¨agungen des Verhaltens bestimmt. Eine Abbruch-Bedingung gilt entweder zu einem Zeitpunkt oder nicht. Die m¨oglichen Zust¨ande f¨ur Ereignis-Objekte dieser Kategorie sind demnachnot happening (Abbruch-Bedingung gilt nicht) undfinished (Abbruch-Bedingung gilt). Die Ereig-nis-Objekte dieser Kategorie werden durch eine Menge mit dem Namen cancelEvents repr¨asentiert.

Eine Beispiel-Bedingung dieser Kategorie ist offside.

Diese Gruppierung wurde auf Basis der in dieser Arbeit vorgestellten Verhal-tens-Muster vorgenommen. Die Ereignisse der betrachteten Verhalten k¨onnen vollst¨andig auf die obigen Gruppen verteilt werden.

In Abbildung 4.15 auf der n¨achsten Seite sind die Sequenz-Bedingungen, die Immer-Bedingungen und die Parallel-Bedingungen des Verhaltens-Muster

94 Die Verhaltens-Bestimmung

Abbildung 4.15: Graphische Darstellung des Verhaltensmuster Paß Paß dargestellt. Im oberen Teil sind die Sequenz-Bedingungen zu sehen, die Intervall-Bedingungen sind dabei durch `a und die Zeitpunkt-Bedingungen durch ×dargestellt. Im mittleren Teil werden die Immer-Bedingungen gezeigt, ver¨anderbare Immer-Bedingungen sind durch `a dargestellt und feststehende Immer-Bedingungen sind nicht weiter gekennzeichnet. Im unteren Teil ist die Parallel-Bedingung des Verhaltens-Muster Paß zu sehen. Mitt0, t1, t2, t3 undtn sind die aus der Definition des Verhaltens-Muster Paß verwendeten Zeitpunkte dargestellt. Die zeitliche Dauer zwischen diesen Zeitpunkten ist ¨uber den Pfeilen gekennzeichnet (z.B.t2+k=t3).