Left Up Right Philosophische Grundlagen der objektorientierten Programmierung

Objektschablonen/Klassen

Klasse (von lat. classis "Abteilung"): Gruppe von Dingen mit gemeinsamen Eigenschaften

Antike Denker

Der griechische Philosoph Plato (427-347 v.Chr) unterscheidet in seiner Ideenlehre Form und Stoff: [Gaarder93] S 103
Form , Schema, Klasse
ist zeitlos und unvergänglich
Stoff, Ausprägung
ist das konkrete Objekt

Klassisches Beispiel: Ein Pferd Liese wird geboren, wird alt und stirbt, die Form "Pferd" bleibt aber ewig.

Plantons Ideenlehre: Ideen sind die Welt hinter der Sinnenwelt. (Höhlengleichnis)
bei Platon kommt erst die Idee, dann die Ausprägung.

In der Informatik wird auch erst das Schema festgelegt/Klasse definiert. Die Objekte entstehen dann zur Laufzeit des Programms.

Aristoteles (384-322 v. Chr.) ist der bekannteste Schüler von Platon. Er ist der erste Wissenschaftler und Systemantiker und Logiker. In der Scholastik im Mittelalter war er der große Lehrmeister.
Bei Aristoteles wird die Idee aus den Sinneseindrücken abstrahiert.

Die Form eines Gegenstandes sagt etwas über die Möglichkeiten und Begrenzungen eines Objektes aus: beispielsweise kann aus einem Hühnerei ein Huhn werden, man kann es frühstücken, aber es kann niemals eine Ente werden. [Gaarder93] S 128

Wissenschaftstheorie

Diese Formen werden mit Prädikatoren (lat. praedicare-aussagen,anklagen, griech. Katheorie, "Begriffswörtern" belegt.)

Elementarsätze wie "Liese ist ein Pferd"

UML

im Klassendiagramm
"Liese ist ein Pferd" im Objektdiagramm:

(Meistens redet man beim Softwareentwurf über alle möglichen Instanzen einer Klasse, so dass das Objektdiagramm nicht nötig ist.)

Objektorientierte Programmierung

class Pferd
{
  const char *iname;
public:
  Pferd(const char *rufname) { iname=rufname; }
 //...
};

Pferd *liese= new Pferd("Liese");

Hilfsmittel bei der Analyse

CRC Class-Responsibility-Collaboration-Karten

Auf einer Karte schreibt man:

siehe auch CRC carbs bei ExtremeProgramming.orgund Class Responsibility Collaborator (CRC) Models: An Agile Introduction


Informatik- und Netzwerkverein Ravensburg e.V Rudolf Weber