Java™ und Objektorientierung
Java/OO kleiner Drucker Druckversion

Objekt orientierte Softwareentwicklung

Buch: Freier Download

Konzepte der Objektorientierung sind in folgendem Buch zu finden:

Buchdeckel: Objektorientierung
(pdf; 3.6MByte)

Dieses Buch ergänzt Programmieren Lernen um Objekt orientierte Konzepte.

Objekt orientierte (OO) - im Gegensatz zur prozeduralen - Softwareentwicklung erwartet eine neue Sicht auf die Abstraktion der zu lösenden Probleme. Die OO-Idee orientiert sich stark an menschlicher Denkweise (vgl. Erkenntnistheorie der alten Griechen). Die Objekte sollen so modelliert werden können, wie wir sie aus unserer Anschauung kennen.

Obschon auch in OO-Sprachen die meisten Konzepte der strukturierten Programmierung eingegangen sind, ist der Wechsel von einer prozeduralen, ablauf- oder listenorientierten Sprache in die OO-Welt oft schwieriger als für Programmierneulinge. Es ist, als müssten wir die gewohnte Softwarewelt von einem neuen Standpunkt aus betrachten.

Die Welt von aussen betrachten


OO : Prinzip - Modell - Vorgehen - Tools

OO (Prinzip)

Folgende Konzepte zeichnen OO-Sprachen aus:

UML (Modelle)

UML (unified modelling language) ist eine standardisierte "Beschreibungssprache", welche die OO-Konzepte in standardisierte Modelle bringt.

Vorgehen (iterativ, agil, Prototyp orientiert)

Weder UML noch JAVA sagen uns, wie wir ein Projekt durchzuführen haben. Dafür hat jede Firma ihre eigenen Prozesse. Wenn aber eine Firma oder ein Team das Glück hat, auf "der grünen Wiese" zu beginnen und sowohl die Tools als auch die Prozesse selber zu bestimmen, so lohnt sich bei Objekt orientierten Projekten sicher auch ein Objekt orientierter Prozess. Diese Prozesse sind meist besser parallelisierbar als herkömmliche, wasserfallähnliche Vorgehensweisen. Als Beispiele bieten sich Sprialmodelle, Prototypen-Modelle agile Prozesse, eXtreme Programming, MDA oder "Rationals Unified Process" an. Auch Bernd Östereich gibt in seinem Buch Objekt orientierte Softwareentwicklung mit der UML einen Prozess an. Die Prozesse können aber selten 1:1 übernommen werden, da jede Projektart andere Schwerpunkte setzt.
Als Vergleich ein Beispiel aus der Architektur: eine Kathedrale wird anders gebaut als ein Schwimmbad, obschon dieselben Modelle, wie z. B. Grundrisspläne verwendet werden.

Refactoring

Refactoring bezeichnet eine Technik, die bestehenden Code verbessert (analog zur Renovation im Häuserbau). Die Klasse CS-IL09 hat einige Refactoring-Techniken zusammengetragen: Refactoring

Tools (Java, Eclipse, JUnit)

JAVA ist ein Beispiel einer Objekt orientierten Sprache, welche obige Konzepte zur Verfügung stellt. Daneben gibt es weitere wie Python, PHP, Smalltalk, C++, uvm. Eclipse als integrierte Entwicklungsumgebung hilft, rasche Ergebnisse zu erreichen. Mit JUnit steht ein Tool zur Verfügung, das Testen zum Vergnügen wird ;-)


© (2006-2017) Philipp Gressly Freimann