Ich hab mir den Diagramm-Editor, der nebenbei auch UML beherrscht, mal bei Lichte betrachtet. Es läuft derzeit stabil und zickt bei ßnderungen nicht so rum wie Umbrello, MagicDraw oder gar “AggroUML”. Die Aufmachung wirkt zwar billig, aber wenn das Resultat stimmt, ist’s mir egal.
Die Perl-Deparse-Funktion mit autodia.pl ist zwar auch nicht serienreif, aber ein Anfang. Bei einem größeren Projekt, das ich Testweise ausgelesen habe, gab es einen “Division by zero”-Fehler. In Zeile 1250 in der Datei “/usr/share/perl5/Autodia/Diagram.pm” muss die Zeile auf folgendes geändert werden:
my $child_increment = (ref $self->{_dia_rows}[$depth + 1] && scalar @{$self->{_dia_rows}[$depth + 1]}) ? $self->{_dia_widest_row} / (scalar @{$self->{_dia_rows}[$depth + 1]}): 0 ;
Die Formatierung der Klassen ist auch nicht erste Sahne, aber brauchbar. Alle Methoden werden ausgelesen und im Konstruktor zugewiesene Objekt-Attribute ebenfalls. Die Verbindungspfeile zwischen den Einzelnen Klassen sind aber komischerweise erst nach einem neusortieren der Klassen im Diagramm korrekt sichtbar.
Da der Deparser komplett in Perl geschrieben ist, kann man den auch leicht selber an die eigenen Zwecke anpassen und ggf. optimieren.
Fazit: mal was anderes, wo sich näheres Hinschauen lohnt. Der Deparser beherrscht im übrigen auch andere Sprachen (Java z.B.). Man könnte also z.B. auch Datenbankstrukturen auslesen lassen.