Left Up Right Philosophische Grundlagen der objektorientierten Programmierung

Das Schichtenmodell

Aufbau von komplexen Systemen

Komplexe Systeme bestehen (wie z.B. in [Booch91] beschreiben) aus einer Hierarchie von Subsystemen, die Abstraktionsebenen bilden.

[Stroustrup98] erklärt das an einem alltäglichen Beispiel, einem Haus. Ein solches besteht aus

  1. Atomen
  2. Molekülen
  3. Stein und Mörtel
  4. Fußböden, Wänden und Decken
  5. Zimmern
Eine Aussage wie "Mein Haus enthält etliche tausend Kilo Kohlenstoff, einige komplexe Polymere, etwa 5000 Steine, zwei Badezimmer und 13 Decken" ist unsinnig, da hier offensichtlich Abstraktionsebenen (Schichten) gemischt werden.

Philosophen streiten darüber, ob nun den Abstraktionsebenen Seinscharakter (Gibt es sie wirklich ?) zukommt oder nicht. Unsere Lebenswelt, ich meine die Objekte des Alltagslebens mit denen alle ganz naiv umgehen, ist zumindest eine Abstraktionsebene. Ein Fußballspiel auf Atomarer Ebene zu betrachten ist irgendwie Unsinnig.

Schichtenmodell in der Informatik nach Habermann

[Habermann76] hat vorgeschlagen, (Betriebs-) Systeme aus einer funktionellen Hierarchie von Schichten aufzubauen:


Bild / UML-Paket-Diagramm

Jede Schicht besteht aus Objekten (1976 aus Prozeduren/Funktionen, weil man noch nicht die Objektorientierung entdeckt hatte).

Eine Schicht bildet eine virtuelle Maschine und stellt so eine Abstraktionsebene her. Diese kann so spezifiziert werden, daß der Anwender sich nicht um die Details kümmern muß. Abstrakt heißt her also, daß verschiedene Implementierungen möglich sind, die die gleiche (Äquivalenzrelation !) Wirkungen, eben die spezifizierten, haben.

Eine Schicht wird mit den Funktionen/Objekten der darunterliegenden Schichten implementiert.

Das Vorbild ist die Hardware/Software-Schnittstelle:

Eine Schicht kann folgende Modifikationen zu unteren Schichten vornehmen:

Beispiele

gibt es sehr viele, da jedes vernünftige System so aufgebaut ist
ISO-OSI-Schichtenmodell
ist das prominenteste Beispiel.
KDE/X/GNU/Linux/PC
Multi-Tier-Systeme

Informatik- und Netzwerkverein Ravensburg e.V Rudolf Weber