Homepage der FernUniversität in Hagen
Objektorientiertes Programmieren
Lehrgebiet Datenverarbeitunghstechnik
Startseite

2.3 Interaktive Programme

2.3

Interaktive Programme

Die Auffassung einer schrittweisen Abarbeitung von Anweisungen ist nicht falsch, liefert uns aber keinen brauchbaren Ansatz, um die Verhaltensweise vieler interaktiver Anwendungen wie Platzreservierungssysteme, Videospiele, Tabellenkalkulatoren, Webserver, die Airbag-Steuerung in Pkws oder automatische Bankschalter zu erklären.

Interaktive Programme Interaktive Anwendungsprogramme, denen wir heute vielfach begegnen, verhalten sich vielmehr wie eigenständige Agenten, die kontinuierlich auf Anforderungen oder Ereignisse in der Umgebung reagieren. Diese Anwendungen sind in ihre Umgebung eingebettet und interagieren mit dieser Umgebung, also mit Benutzerin, technischen Geräten wie Sensoren und Aktoren, Kommunikationseinrichtungen oder anderen Programmen.

Will man solche Anwendungen programmieren, genügt es nicht, sich zu fragen:

Welcher Schritt ist als Nächstes tun?

Die Aufgabe besteht eher darin, eine gedachte Welt miteinander kooperierender Agenten oder Einheiten zu entwerfen; sich also fragen:

  • Welche Einheiten werden gebraucht?

  • Welche Rolle spielen sie im Verbund mit anderen?

  • Welchen Dienst bieten sie an, und welche Dienstleistung benötigen sie zur Erfüllung ihrer Aufgabe?

  • Wie muss ihre innere Arbeitsweise gestaltet werden?

  • Wie arbeiten sie zusammen?

Diese Denkweise wird von objektorientierten Programmiersprachen - so auch von Java - unterstützt.

Seit ihrer Veröffentlichung im Jahre 1995 erlebte die Programmiersprache Java einen unvergleichlichen Siegeszug - zunächst als noch Internetsprache. Java-Applets boten eine neue Möglichkeit, aktive Webseiten zu gestalten. Inzwischen verdrängt Java aber selbst angestammte objektorientierte Sprachen wie C++, Smalltalk oder Eiffel in der allgemeinen Anwendungsprogrammierung. Obwohl ähnlich zu C++ im Sprachaufbau, ist Java einfacher in seinen Sprachkonstrukten, und es vermeidet viele tückische Fehlerquellen von C++. Im Gegensatz zu Smalltalk weist Java ein strenges Typkonzept auf, und das Laufzeitsystem umfasst, anders als bei C++, eine automatische Speicherbereinigung.

Selbsttestaufgabe 2.3-1:

Was ist die Grundidee, die hinter dem objektorientierten Entwurf steht?

Selbsttestaufgabe 2.3-2:

Warum ist das Geheimnissprinzip so wichtig für das Programmieren-im-Großen?

Selbsttestaufgabe 2.3-3:

Was bedeutet das Geheimnissprinzip?