J.H. Fröhlich, Analyse objektorientierter Programme - Stand der Technik, Technical Report, CD-Laboratory for Software Engineering, Johannes Kepler University of Linz


Die objektorientierte Programmierung hat zweifelsohne das Potential, die Softwarequalität zu steigern und die Produktivität bei der Softwareentwicklung zu erhöhen. Die objektorientierte Programmierung kann zu flexiblen und offenen Programmstrukturen führen, die an spezielle Anforderungen besser anpaßbar sind als jene nicht-objektorientierter, imperativer Programme. Insbesondere unterstützen objektorientierte Programme die Wiederverwendung von Halbfabrikaten. Die Eigenschaften objektorientierter Programme können jedoch auch zu einer Reihe von Problemen führen, mit denen man sich auseinandersetzen muß. Das Titelbild Kubische Raumorganisation von Reutersvärd (um 1934) veranschaulicht eines dieser Probleme: Die Eigenschaften einzelner Würfel (Objekte) sind klar definiert; Kombinationen von Würfeln (Objekten) besitzen jedoch mitunter überraschende Eigenschaften.

Beim Lesen des Berichts kann der Eindruck entstehen, daß die objektorientierte Programmierung mehr Probleme bereitet, als sie Vorteile bringt. Einige der im vorliegenden Bericht angesprochenen Probleme können während der Programmkonstruktion durch präventive Maßnahmen vermieden werden. Andere Probleme (und Eigenschaften) sind der objektorientierten Programmierung wesenseigen; Programmanalysen können sie lediglich sichtbar machen. Ein wichtiges Ziel des Berichts ist es, ein Problembewußtsein zu schaffen. Dieses Bewußtsein soll nicht nur helfen, Schwierigkeiten zu vermeiden; es soll helfen, das Potential der objektorientierten Programmierung besser auszunutzen.
Der Bericht verfolgt folgende Globalziele:

Der Bereich der Analyse objektorientierter Programme soll näher untersucht und im Zuge dieser Untersuchung sollen unbefriedigend gelöste Probleme aufgezeigt werden.
Der Bericht soll informieren, welche Lösungsansätze zu einzelnen Problemen existieren.
Der Bericht soll eine Basis für die Beseitigung noch unbefriedigend gelöster Probleme erarbeiten.
Der Bericht verfolgt folgende fachliche Ziele:
Es soll ein überblick gegeben werden über statische und dynamische Eigenschaften von objektorientierten Programmen im allgemeinen und von Framework Applikationen im speziellen.
Es soll der Einfluß dieser Eigenschaften auf die Verständlichkeit und somit auf die Erweiterbarkeit und änderbarkeit objektorientierter Programme erläutert werden.
Es sollen ausgewählte Arbeiten und Produkte diskutiert werden, die die Statik und insbesondere die Dynamik objektorientierter Programme analysieren.

Die Diskussion der Eigenschaften von Objektkombinationen zieht sich wie ein roter Faden durch den Bericht. Im Bereich der Malerei hat sich Escher, ebenso wie Reutersvärd, bewußt mit der Darstellung irregulärer Komponentenkombinationen auseinandergesetzt. Jeder Abschnitt des Berichts beginnt mit einer Variation der Lithographie Oben und Unten von Escher (1947).
Keywords: software engineering, object-oriented programming, program analysis