Java™ und Objektorientierung | |
Java/OO | Druckversion |
Buch: Freier DownloadKonzepte der Objektorientierung sind in folgendem Buch zu finden: 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. |
Folgende Konzepte zeichnen OO-Sprachen aus:
UML (unified modelling language) ist eine standardisierte "Beschreibungssprache", welche die OO-Konzepte in standardisierte Modelle bringt.
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 bezeichnet eine Technik, die bestehenden Code verbessert (analog zur Renovation im Häuserbau). Die Klasse CS-IL09 hat einige Refactoring-Techniken zusammengetragen: Refactoring
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 ;-)