Samstag, 30 August 2008

Automatisches und kostentransparentes Refactoring komplexer und monolithischer Systeme

Die Komplexität einer Software steigt durch neue Anforderungen und durch fehlende Refactoringschritte. Meistens ist diese Entwicklung durch einen stark getriebene marketinggetrieben Prozess bedingt.

Die Resultat stellt meistens eine monolithische und nicht mehr wartbare sowie erweiterbare Softwarearchitektur und Businesslogik dar.

Die Lösung für neue Projekte besteht heutzutage meistens in einem Refaktorisierungprozess,  welcher in relativ kurzen Intervallen dem Softwaresystem zu mehr Transparenz und damit einer, den neuen Anforderungen angepassten Architektur, verhilft.

 

 

 

Wie steht es aber mit bestehenden Softwaresystemen, bei denen eine regelmäßige Refaktorisierung versäumt
worden ist.

Ein möglicher Ansatz wäre der Einsatz von granularen und speziell definierten Rekaktorisierungsregeln mit Hilfe von API's, welche nicht nur einfache Refaktorisierungsarbeiten durchführen (wie z.B. die Umbennenung eines Package-Namens) sondern Architektur- und Logikmuster erkennen und diese in eine gewünschte Form bringen. Basierend auf diesen Vorgaben kann komplexe Logik thematisch getrennt und damit einfacher modularisiert werden kann. Vor allem entsteht so die Möglichkeit automatisiert komplexe Logik zu erkennen und zu transformieren.

Die Refaktorisierung sollte sich dabei nicht nur auf den Sourcecode beschränken sondern gleichzeitig auch alle anderen Softwarekonstrukte (wie z.B. XML-basierte Konfigurationsdateien usw. ) mit einbeziehen.

 

 

Die Transformationsregeln können beispielsweise durch folgenden Prozess erzielt werden:

 

 

 

Die Jackpot API stellt eine Refatoringlösungen dar mit derer Hilfe man genau solche Refactoringlösungen automatisiert durchführen kann. Ich werde demnächst die Jackpot API mit Hilfe von Beispielen vorstellen.

Mit freundlichen Grüßen
Rafael Sobek

Technorati Tags:

Posted by rafael.sobek at 10:31 PM in Refactoring

Dienstag, 12 August 2008

Reengineering Modul Jackpot

Jackpot stellt ein selbstständiges Netbeans Unterprojekt dar, welches dem automatisierten Refactoring von Java Source Code dienen soll. Über Refaktorisierungregeln in Form einer deklarativen Sprache und in Java programmieren Refaktorisierungskomponenten.

 

Schwerpunkt stellt die "sichere" Refaktorierung komplexer Logik darstellen. Mit "sicher" ist gemeint, dass zuerst Regeln definiert werden, Jackpot danach ein granulare Änderungsvorschau dem Entwickler zeigt, welche er selber nochmal detaillierter

Posted by rafael.sobek at 11:07 PM in Uncategorized
« August »
MoDiMiDoFrSaSo
    123
45678910
11121314151617
18192021222324
25262728293031