next up previous contents index
Nächste Seite: Eigenschaften objektorientierter Programmiersprachen Aufwärts: Allgemeines Vorherige Seite: Allgemeines   Inhalt   Index

Gründe für objektorientierte Programmierung

Die objektorientierte Programmierung entstand im wesentlichen aus den Erfahrungen, die man mit herkömmlicher Programmierung gesammelt hatte. Eins dieser Probleme sieht man in den Abbildungen 1.1 und 1.2. Die einzelnen Unterprogramme sind zwar gut gekapselt und damit in überschaubare Programmteile zerlegt, auf die Daten hat aber jeder unbeschränkten Zugriff. Durch die Einführung von Modulen wird das Problem zwar gemindert, ist aber immer noch vorhanden. Außerdem tendieren die Module dazu, mit der Zeit immer größer zu werden. Das Aufteilen eines Moduls in kleinere ist mit großen Aufwand verbunden. Insgesamt führt die Struktur eines klassischen Programms dazu, daß eine Änderung der Datenstruktur sehr aufwendig ist. Einer der Gründe dafür ist, daß die Pfeile, die in den Grafiken den Datenzugriff repräsentieren, nicht leicht rückverfolgbar sind. Eine Umorganisation der Datenrepräsentation erfordert daher im Extremfall eine Inspektion des gesamten Programmcodes.

In der objektorientierten Programmierung hat man daher versucht, die Daten und den Programmcode enger zu verbinden. Beide werden in sogenannten Klassen vereint. Die resultierende Programmtopologie sieht man in Abbildung 1.3. Im Idealfall erfolgt der Zugriff auf die Daten nur über spezifizierte Schnittstellen. Eine Änderung hat damit nur lokale Auswirkungen, die leicht aufzufinden sind. Um diese Kapselung zu ermöglichen bzw. zu erzwingen, besitzt z.B. C++ Sprachelemente, die den Zugriff auf interne Daten regeln und auf Wunsch des Programmierers verhindern.

Abbildung 1.1: Topologie einer klassischen Programmiersprache der ersten Generation. Alle Unterprogramme haben Zugriff auf die globalen Daten.
\begin{figure}\centerline{\epsfig{file=general-topo1,width=0.9\textwidth}} \end{figure}

Abbildung 1.2: Topologie einer klassischen Programmiersprache mit Modulen. Das Problem des globalen Zugriffs auf die Daten ist zwar gemindert, aber noch immer vorhanden.
\begin{figure}\centerline{\epsfig{file=general-topo2,width=0.9\textwidth}} \end{figure}

Abbildung: Topologie einer objektorientierten Programmiersprache. Die Daten sind mit den Programmcode vereint. Der Zugriff erfolgt im Idealfall nur über festgelegte Schnittstellen.
\begin{figure}\centerline{\epsfig{file=general-topoOO,width=0.9\textwidth}} \end{figure}


next up previous contents index
Nächste Seite: Eigenschaften objektorientierter Programmiersprachen Aufwärts: Allgemeines Vorherige Seite: Allgemeines   Inhalt   Index
Stefan Schwarzer 2000-11-02