Left Up Right Philosophische Grundlagen der objektorientierten Programmierung

Abstraktion

(lat abstractio, von abstrahere: abziehen,wegnehmen, Griech:aphairsis) Ein Gegenstand (im allgemeinen Sinne) hat verschiedene Gesichtspunkte/Aspekte. Abstraktion heißt das Weglassen von unrelevanten Aspekten.

Beispiel Zahlen:

 III + IV = VII
 III  IIII IIIIIII
  3  +  4 = 7
Obwohl nun verschiedene Notationen verwendet wurden, ist der arithmetische Zusammenhang immer der selbe.

Formal:

Abstraktion ist die Rede bezüglich einer Äquivalenzrelation

Sei A eine Aussage, ˜ eine Aquivalenzrelation

∀ x,y gilt: x~y → (A(X)↔A(Y))

α x = α y ⇔ ∀ Aussagen A gilt A(y)↔ A(x)

(vgl [Lorenzen86] S163ff) Beispiel für Abstraktionen:
Zahl
Arithmetik
Mengen
gleiche Ausprägung

Wichtige Abstraktionsmechanismen in der Informatik

Funktionale Abstraktion
hier wird ein Teilalgorithmus mit einem Namen bezeichnet. Es kommt darauf an, was berechnet wird, und nicht wie es berechnet wird.
Beispiel: sortiere(Folge);
Datenabstraktion
Eine Datenstruktur wird mit Operationen versehen. Es interessiert nur das Verhalten: Z.B. Stack s.top(s.pop(s.push(x,s.push(y))))=y es interessiert nun nicht, oder der Stack als verkette Liste oder als Feld oder .. implementiert worden ist. (Heute sagen wir statt "Datenstruktur" Objekt) Spezialfall: Interatorabstraktion: Aus einem Containerobjekt kann man mit Hilfe eines Iterators alle Elemente aufsuchen. Der Iterator kümmert sich mit Hilfe der Klasse um die Abarbeitung, die interne Struktur bleibt verborgen.
Template-Abstraktion
auch generische Datentypen genannt (C++: Templates) verschiedene Containerklassen sind füe alle bestandteile gleich:
Beispiel:
     template <class T> class Feld<T>
     {
       T& operator[](int i);
     } 
     
Rahmenwerkabstraktion/Frameworkabstraktion
Hier ist der Aufbau bzw. Ablauf der gleiche. Dabei werden abstrakte Klassen aufgerufen, die zur Laufzeit durch konkrete ersetzt werden. (Diese wird unabhängig mit der Wortstrukturabstraktionsmethode begründet.)
Koordinationsabstraktion
Das Objekt stellt die Koordinationsmechanismen für den parallelen Zugrif zur Verfügung, ohne daß sich die Aufrufer um Details kümmern müssen (wichtig in Betriebssystemen, beisp: Einreihung in Warteschlangen
Prozeßabstraktion
Der Aufrufer merkt nichts davon, daß in einem Objekt Aktivitäten laufen beispielsweise Drucken mit Druckspoolern
Wortstrukturabstraktion
Mit Hilfe des Grammatikkonzepts kann man konkrete Artifakte wie mathematische Formeln oder Programmtexte abstrahieren.
....

Informatik- und Netzwerkverein Ravensburg e.V Rudolf Weber