16.08.2013 Aufrufe

Objektorientierte Daten- und Zeitmodelle für die Echtzeit ...

Objektorientierte Daten- und Zeitmodelle für die Echtzeit ...

Objektorientierte Daten- und Zeitmodelle für die Echtzeit ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

164 KAPITEL 7. OBJEKTORIENTIERTE MODELLE<br />

das System anhand vorgegebener Kriterien überwachen. Ihre Aufgabe ist es, <strong>die</strong> Arbeitszyklen<br />

eines aus Funktoren <strong>und</strong> Sequenzen bestehenden Moduls anzusteuern <strong>und</strong> zu kontrollieren,<br />

wo<strong>für</strong> sie regelmäßig neue Werte von den Ausgabesequenzen des Moduls anfordern sowie<br />

ausgewählte Funktoren aufrufen.<br />

Wichtige Gr<strong>und</strong>konzepte der objektorientierten Programmierung wie Klassen, Instanzen,<br />

Vererbung, Polymorphie, Komposition, Aggregation <strong>und</strong> Assoziation werden hier als bekannt<br />

vorausgesetzt. Die graphische Darstellung von Objekt- <strong>und</strong> Klassenbeziehungen erfolgt mit<br />

den Ausdrucksmitteln der UML (Unified Modelling Language), da <strong>die</strong>se sich als ein De-facto-<br />

Standard etabliert hat. Die folgenden Klassenentwürfe orientieren sich in erster Linie an der<br />

konzeptionellen bzw. Spezifikationssicht auf <strong>die</strong> Klassenbeschreibungen <strong>und</strong> Funktionalitäten.<br />

Auf Implementierungsdetails, <strong>die</strong> sich z.B. aus den Besonderheiten der verwendeten Programmiersprache<br />

C++ ergeben, soll an <strong>die</strong>ser Stelle weitestgehend verzichtet werden.<br />

Für Objekte, <strong>die</strong> in <strong>die</strong>sem Kapitel vorgestellt werden, gelten <strong>die</strong> folgenden Konventionen<br />

bei der Angabe von Attributen <strong>und</strong> Methoden.<br />

¯ Auf Attribute <strong>und</strong> assoziierte Objekte der vorgestellten Klassen kann mit Hilfe von standardisierten<br />

Methoden zugegriffen werden, <strong>die</strong> nicht gesondert angegeben werden. Die<br />

Namen <strong>die</strong>ser Methoden werden nach einem regelmäßigen Schema gebildet, <strong>für</strong> eine Instanzvariable<br />

mit dem Namen <strong>und</strong> Typ ÚÖÒÑ ÎÖÌÝÔ bzw. <strong>für</strong> eine Liste ÚÖÒÑÄ×Ø<br />

ÎÖÌÝÔ℄ergeben sich <strong>die</strong> folgenden Methodennamen:<br />

ØÎÖÒÑ ÎÖÌÝÔ Auslesen eines Attributwertes bzw. einer Objektreferenz;<br />

×ØÎÖÒÑ ÎÖÌÝÔ Setzen eines Attributwertes bzw. einer Objektreferenz;<br />

×ÎÖÒÑ ÓÓÐ Abfrage des Wahrheitswertes von boolschen Attributen;<br />

ÎÖÒÑ ÎÖÌÝÔ Wert oder Objektreferenz in eine Liste eintragen;<br />

ÖÑÎÖÒÑ ÎÖÌÝÔ Wert oder Objektreferenz aus einer Liste entfernen.<br />

¯ Konvertierungen von Objekten in einen anderen Typ Ê×ÙÐØÌÝÔ erfolgen mit Hilfe von<br />

Methoden der Form ×Ê×ÙÐØÌÝÔ <strong>und</strong> sind i.d.R. explizit anzugeben.<br />

¯ Basistypen wie ×ØÖÒ, ÒØÖ, ÓÓÐ,...werdendurch<strong>die</strong>zugr<strong>und</strong>eliegende Programmierumgebung<br />

bereitgestellt.<br />

¯ Für alle Objektklassen werden Konstruktor- <strong>und</strong> Destruktormethoden definiert.<br />

¯ Alle hier entwickelten Objektklassen sind von einer gemeinsamen Basisklasse ÊÓÓØÇ Ø<br />

abgeleitet, <strong>die</strong> einige wenige gr<strong>und</strong>legende Methoden, insbesondere <strong>für</strong> <strong>die</strong> Objektidentifikation<br />

sowie <strong>für</strong> Kommunikation <strong>und</strong> externe Repräsentation, jedoch keine Attribute<br />

definiert. Eine Auswahl der wichtigsten Methoden wird in Tabelle 7.1 angegeben.<br />

¯ Im Rahmen <strong>die</strong>ses Systems werden zahlreiche weitere Klassen <strong>und</strong> <strong>Daten</strong>typen verwendet,<br />

z.B. Klassen <strong>für</strong> den <strong>Daten</strong>austausch über Netzverbindungen <strong>und</strong> mit dem Filesystem:<br />

ËØÖÑ, <strong>und</strong> davon abgeleitet ÐËØÖÑ <strong>und</strong> ÆØËØÖÑ. Das Einlesen von Videobildfolgen<br />

erfolgt über eine Framegrabber-Einbindung ÖÑÖÖ, Kameraparameter<br />

können mit Hilfe der ÑÖ-Klasse repräsentiert werden.<br />

Die vorgestellten Klassen wurden prototypisch in C++ implementiert <strong>und</strong> sind <strong>für</strong> <strong>die</strong> Sensordatenauswertung<br />

im Agilo-RoboCuppers-Team der TU München in einer Roboterfußball-<br />

Umgebung mit Erfolg eingesetzt worden.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!