Melden Sie sich hier an, um auf Kommentare und die Whitepaper-Datenbank zugreifen zu können.

Kein Log-In? Dann jetzt kostenlos registrieren.

Falls Sie Ihr Passwort vergessen haben, können Sie es hier per E-Mail anfordern.

Der Zugang zur Reseller Only!-Community ist registrierten Fachhändlern, Systemhäusern und Dienstleistern vorbehalten.

Registrieren Sie sich hier, um Zugang zu diesem Bereich zu beantragen. Die Freigabe Ihres Zugangs erfolgt nach Prüfung Ihrer Anmeldung durch die Redaktion.

14.05.1993 - 

Briefe

Technik des doppelten Bodens

Im Beitrag von Hanns-Martin Meyer finden sich Hinweise dafuer, dass die objektorientierte Systementwicklung nicht mit objektorientierter Programmierung gleichzusetzen ist. Eine zum Beispiel in C++ entwickelte Software muss keineswegs eine objektorientierte Architektur haben. Das ist auch aus meiner Sicht richtig. Einige Aussagen widersprechen jedoch unseren Erfahrungen aus der Beratung, Betreuung von Projekten und Training im Bereich der objektorientierten Systementwicklung. Sie koennten Missverstaendnisse bei den Lesern hervorrufen. Vor allem muss ich eines der wesentlichen Prinzipien der objektorientierten Systementwicklung - die Vererbung - heftig verteidigen. Die Vererbung ist nicht die Verfuehrung zur Entwicklung "grausam verwobener Programme", sondern traegt eine der wesentlichen Prinzipien der objektorientierten Systementwicklung - die Abstraktion. Sie ist der Schluessel zur Erhoehung der Produktivitaet. Dies gilt auch fuer das Beispiel des Walkmans.

Ein Walkman ist ein gutes Objekt mit einer einfachen Schnittstelle und einem komplizierten Inneren. Aus der objektorientierten Sicht ist jedoch von zentraler Bedeutung, dass man einen Walkman als speziellen Kassettenrekorder, diesen wiederum als ein Tonbandgeraet, und so weiter, beschreiben kann. In dieser Klassenhierarchie werden mehrmals benoetigte Eigenschaften (Tonwiedergabe) nur einmal implementiert (Tonbandgeraet) und vererben sich von der Wurzel (abstrakt) zu den Zweigen (spezialisiert).

Diese Sichtweise ermoeglicht, Klassen nicht als leere Huellen der Objekte zu sehen, sondern als Fabriken, in welchen die Objekte zur gewuenschten Zeit in der gewuenschten Form herausgestanzt werden, sofort Aktionen ausfuehren und andere Objekte zu Aktionen veranlassen koennen. Die Entwicklung weitgehend voneinander unabhaengiger Bausteine mit einfachen Schnittstellen und einem mehr oder weniger komplizierten Inneren war schon die Grundidee der modulorientierten Programmierung (etwa mit Modula-2 oder Ada). Die mit dem Ziel der Wiederverwendung entwickelten Bausteine passen meist sehr gut, jedoch nicht ganz. Braucht man die individuelle Funktion, dann muss man in das Innere des Bausteins eindringen. In der objektorientierten Systementwicklung hingegen wird die Technik des doppelten Bodens ausgenuetzt. Wenn die gewuenschte Funktion noch mehr leisten soll als die bereits vorhandene, kann manchmal eine einfache Funktion implementiert werden, welche die urspruengliche benutzt und die Zusatzaufgabe erfuellt. Dazu braucht man Vererbung.

Im Verein mit Datenabstraktion, Polymorphismus und dynamischer Bindung ist die Vererbung der Grundpfeiler der objektorientierten Systementwicklung. In diesem Massstab ist Objektorientierung nicht "ausschliesslich eine Designaufgabe". Das Denkprinzip der objektorientierten Systementwicklung erzwingt haeufig, bestimmte Ideen fruehzeitig auszuprobieren. In kurzen Re- Design-Zyklen gewinnt man Erkenntnisse und Erfahrungen fuer die Abstraktion.

Besonders bei der Entwicklung wiederverwendbarer Softwarebausteine (Halbfabrikate) spielt die Generalisierung eine zentrale Rolle. Generalisierung stellt hohe Anforderungen an die intellektuelle Leistungskraft und benoetigt Erfahrung. Deshalb ist es richtig, dass das Erlernen von C++ allenfalls ein Schritt auf dem Weg in den Himmel der objektorientierten Systementwicklung ist.

Ein chinesisches Sprichwort sagt: Auch auf einer langen Reise ist der erste Schritt der wichtigste. Deshalb sollten wir ihn tun.

Als Reisefuehrer empfehle ich das Buch: "Software Engineering, Prototyping und objektorientierte Software-Entwicklung" von G. Pomberger/G. Blaschek, Hanser Verlag 1993 (ISBN 3-446-16262-3).

Herbert Exner,

Geschaeftsfuehrer, Uni Software Plus GmbH, Hagenberg/Oesterreich