Software Engineering: Weshalb Objektorientierte Programmierung?

Aus Wikibooks

< Softwaretechnik Weil objektorientierte Programmierung ein relativ natürlicher Ansatz ist, Ausschnitte aus der Realität in Computersystemen abzubilden. Wir verstehen komplexe Systeme nicht ganzheitlich, sondern können jeweils nur eine begrenzte Anzahl von Teilaspekten solcher Systeme erfassen und mit anderen Aspekten in Beziehung setzen. Das Ziel, komplexe Systeme in einfachere Teile zu zerlegen, kann nun auf unterschiedliche Art und Weise erreicht werden. Man könnte aktionsorientiert vorgehen und sich fragen, welche Handlungen die an einem System beteiligten Akteure ausführen müssen und dies zur Grundlage der Programmierung eines Computersystems machen. Eine andere Möglichkeit wäre sich zu fragen, welche Daten in einem System existieren, welche Eigenschaften die Daten haben, in welchen Verhältnissen sie zueinander stehen und wie diese Daten gespeichert werden.

Beide Sichtweisen sind sehr hilfreich, um komplexe Probleme in überschaubare Teile zu zerlegen und zu strukturieren, um sie dann letztlich in Computersystemen abzubilden. Es hat sich jedoch gezeigt, dass beide Ansätze für sich gesehen nicht ausreichend waren, um die Probleme der Softwareentwicklung befriedigend in den Griff zu bekommen.

Ein wichtiger Erfolg objektorientierter Systeme war die Zusammenführung beider Methoden. Objektorientierte Methodologie erlaubt es, Objekte in Systemen zu identifizieren, also zu benennen und sowohl aktive Elemente (Handlungen oder Aktionen) als auch Eigenschaften zu beschreiben.

Ein weiterer elementarer Bestandteil objektorientierter Methodologie und Programmierung ist die Möglichkeit, Beziehungen zwischen Objekten (oder Klassen von Objekten) zu beschreiben. So ist es beispielsweise möglich auszudrücken, dass ein Vogel ein Tier ist und ein Huhn ein Vogel. Programmtechnisch kann ein Vogel wie ein Tier behandelt werden oder auch wie ein Vogel, nicht jedoch als Pflanze. Dieser Typ von "ist ein"-Beziehung und die Möglichkeit, die Beziehung im Rechner darzustellen, wird Vererbung genannt. Ein weiterer populärer Beziehungstyp ist die "Aggregation", die "hat"- oder "besteht aus"-Beziehungen definiert. Solche Beziehungen können mit objektorientierter Methodologie methodisch analysiert und beschrieben werden. Objektorientierte Programmiersprachen erlauben es dann, die gewonnene Struktur direkt in Programmcode zu übersetzen.