Reclipse - Reverse Engineering for Eclipse

Die Mehrheit der Softwareentwickler ist heute nicht mehr mit der Produktion neuer, sondern mit der Wartung vorhandener Software beschäftigt. Wartung umfaßt dabei alle Änderungsaktivitäten, d.h. sowohl Fehlerkorrekturen als auch die Umsetzung neuer Anforderungen. Verschiedene Studien belegen, dass in heutigen industriellen Softwareprojekten schätzungsweise 70% bis 90% der Kosten für Softwarewartung ausgegeben werden. Zu den teuersten Aktivitäten zählt unter anderem das Verstehen von oftmals unzureichend dokumentierter Software anhand des Quellcodes. Für die Wartung und Wiederverwendung von Software ist also ein Werkzeug sinnvoll, das den Prozess des Verstehens unterstützt.

Eine gemeinsame Basis zum Verstehen von Software bilden Entwurfsmuster (engl. Design Patterns). Entwurfsmuster sind in der Softwareentwicklung bewährte Lösungen für wiederkehrende Probleme. Durch das Identifizieren von im Quellcode verwendeteten Entwurfsmustern kann eine abstraktere Sicht auf die Software geschaffen werden.

In der Arbeitsgruppe Softwaretechnik der Universität Paderborn wurde ein semiautomatisches Verfahren zur Erkennung von Entwurfsmustern im Quellcode entwickelt, das sowohl das Verstehen von Software unterstützt. Dieses Verfahren wurde in die an der gleichen Arbeitsgruppe seit 1997 entwickelte Entwicklungsumgebung Fujaba integriert. Mit Hilfe eines von der IBM Corporation verliehenen Eclipse Innovation Awards wurde die Kernfunktionalität von Fujaba in die weit verbreitete Entwicklungsumgebung Eclipse integriert.

Auf dieser Basis enstand schließlich im Rahmen meiner Promotion Reclipse. Reclipse ist ein Reverse Engineering Werkzeug für die Entwicklungsumgebung Eclipse, das den Prozess des Verstehens einer Software auf Basis ihrer Quelltexte und ihres ausführbaren Programmcodes unterstützt. Reclipse umfasst zum einen eine strukturbasierte Entwurfsmustererkennung auf Basis des Quelltextes. Zum anderen enthält es eine verhaltensbasierte Entwurfsmustererkennung auf Basis von Laufzeitinformationen des augeführten Programms, die die Erkennungssicherheit von Entwurfsmustern erhöht.

Reclipse wird unter der GNU Lesser General Public Licence (LGPL) zur Verfügung gestellt.