Show TOC Anfang des Inhaltsbereichs

Was ist Objektorientierung?  Dokument im Navigationsbaum lokalisieren

Informationssysteme wurden früher vorwiegend über ihre Funktionalität definiert: Daten und Funktionen wurden getrennt voneinander gehalten und durch Input-Output-Beziehungen miteinander verknüpft.

Im Zentrum objektorientierten Denkens stehen dagegen Objekte, die abstrakte oder konkrete Dinge der realen Welt repräsentieren. Sie werden zunächst in ihrem Wesen und ihren Eigenschaften begriffen, die durch ihre innere Struktur und ihre Attribute (Daten) abgebildet werden. Das Verhalten der Objekte wird durch Methoden (Funktionalität) beschrieben.

Diese Grafik wird im zugehörigen Text erklärt

Objekte bilden eine Kapsel, die Wesen und zugehöriges Verhalten verbindet. Objekte sollen es erlauben, die Modelle eines Problembereichs und eines zugehörigen Lösungsentwurfs möglichst eins zu eins widerzuspiegeln.

Typische Objekte in einer Business-Umgebung sind z.B. 'Kunde', 'Auftrag', 'Rechnung'. Beispiele für solche Objekte finden sich seit Release 3.1 im BOR (Business Object Repository) des SAP Web Application Servers ABAP. Das Objektmodell des BOR wird zum nächsten Release in ABAP Objects integriert indem die Objekttypen des BOR in die ABAP Klassenbibliothek migriert werden.

Eine vollständige Einführung in die Objektorientierung geht weit über diese Einführung in ABAP Objects hinaus. Im Folgenden werden daher nur einige Begriffe definiert, die in der Objektorientierung allgemeine Gültigkeit haben und dementsprechend auch in ABAP Objects Verwendung finden. In den weiteren Abschnitten wird näher auf die Verwendung dieser Begriffe in ABAP Objects eingegangen. Am Ende des Abschnitts finden Sie Literaturhinweise mit einer Auswahl von Büchern zur Objektorientierung.

Objekte

Objekte sind Instanzen von Klassen und besitzen Daten namens Attribute besitzt und Dienste in Form von Methoden (auch Operationen oder Funktionen genannt) anbietet. Typischerweise operieren die Methoden auf privaten Daten (Attribute oder auch Objektzustand genannt), die nur für die Methoden des Objekts sichtbar sind. Die Attribute eines Objektes werden somit nicht vom Verwender direkt, sondern nur von den Methoden des Objektes verändert. Dies garantiert die innere Konsistenz des Objekts.

Klassen

Klassen beschreiben Objekte. Technisch gesehen bilden Objekte Instanzen einer Klasse. Auf der Grundlage einer Klasse können theoretisch unbegrenzte Mengen gleichartiger Objekte erstellt werden. Jede Instanz einer Klasse (Objekt) besitzt eigene Werte für alle ihre Attribute und eine eindeutige Identität.

Objektreferenzen

In Programmen werden Objekte über eindeutige Objektreferenzen adressiert und identifiziert. Objektreferenzen dienen dem Zugriff auf die Attribute und Methoden eines Objekts.

In der objektorientierten Programmierung bieten Objekte normalerweise die folgenden Eigenschaften:

Kapselung

Ein Objekt beschränkt die Sichtbarkeit seiner Ressourcen (Attribute und Methoden) für andere. Jedes Objekt hat eine Schnittstelle, die festlegt, wie andere Objekte oder Anwendungen mit ihm umgehen können. Die Implementierung des Objekts ist dagegen gekapselt, d.h. für die Außenwelt nicht sichtbar.

Vererbung

Eine Klasse kann aus einer anderen Klasse abgeleitet werden. Abgeleitete Klassen erben die Daten und Methoden der übergeordneten Klasse, können aber neue Methoden hinzufügen oder bestehende Methoden überschreiben.

Polymorphie

Gleiche (gleichnamige) Methoden verhalten sich unterschiedlich in unterschiedlichen Klassen. In ABAP Objects wird Polymorphie durch die Redefinition von Methoden bei der Vererbung und durch Konstrukte namens Interface verwirklicht.

Nutzen der Objektorientierung

Der Nutzen der objektorientierten Programmierung liegt unter anderem in der Erreichung folgender Ziele:

      Komplexe Software-Systeme sollen leichter verständlich werden, da ein objektorientierter Aufbau eher die Realität abbildet als andere Programmiertechniken.

      Wenn Änderungen notwendig werden, sollten sie in objektorientierten Systemen lokal (auf Klassenebene) durchführbar sein, ohne Änderungen in anderen Teilen des Systems nach sich zu ziehen. Damit verringert sich der gesamte Änderungsaufwand.

      Die objektorientierte Programmierung unterstützt durch Polymorphismus und Vererbung die Wiederverwendbarkeit einzelner Komponenten.

      Bei objektorientierten Systemen wird weniger Überarbeitungs- und Wartungsaufwand erwartet, da viele Probleme schon beim Design erkannt und korrigiert werden. 

Um diese Ziele zu erreichen, bedarf es:

      Objektorientierter Programmiersprachen.

Objektorientierte Programmiertechniken sind zwar nicht unbedingt von objektorientierten Programmiersprachen abhängig, ihre Effizienz hängt aber unmittelbar von der systemnahen Implementierung objektorientierter Sprachmittel ab.

      Objektorientierter Werkzeuge.

Objektorientierte Werkzeuge unterstützen die Erstellung objektorientierter Programme mit objektorientierten Programmiersprachen. Sie dienen der Ablage und Visualisierung der Entwicklungsobjekte und deren Beziehungen zueinander.

      Objektorientierter Modellierung.

Die objektorientierte Modellierung des Software-Systems ist die wichtigste und zugleich auch zeitaufwendigste und schwierigste Voraussetzung für das Erreichen obiger Ziele. Das objektorientierte Design umfaßt mehr als nur die objektorientierte Programmierung und bietet logische Vorteile, die von der eigentlichen Implementierung unabhängig sind.

 

Ende des Inhaltsbereichs