Visualisierung von Softwarearchitekturen mit Doxygen
Hallo,
in diesem posting geht es zwar um UML aber ich war erstaunt wie viele Kommentar sich auf Doxgyen als Werkzeug zu Visualisierung von Softwarearchitekturen bezogen.
Ich selbst habe mit Doxygen ebenfalls schon sehr gute Erfahrungen beim Verstehen fremden codes gemacht. Doxygen analysiert den code mit einem Minimum an Konfiguration, geht dabei “best effort” vor und produziert bei entsprechender Konfiguration eine Reihe hilfreicher Artefakte:
- Collaboration graph: zeigt welche Klassen von einer Klasse benutzt werden, z.B. als member
- Inheritance graph: zeigt von welchen Klassen eine gegebene Klasse abgeleitet ist aber auch welche Klassen von der gegebenen Klasse abgeleitet sind
- Static call hierarchy graph: zeigt (rekursiv) an, welche Methoden in einer bestimmten Methode gerufen werden
- References/referenced by: zeigt an welche anderen Methoden eine Methode benutzt und wo eine Methode benutzt wird (cross reference Dokumentation)
- Include graph: illustriert die Schachtelung von include-Anweisungen in C/C++
- Verlinkter source code: Doxygen erzeugt formatierten source code mit syntax highlighting. Methoden und Datentypen sind verlinkt so dass man mit einem Mausklick zu der Methode oder Definition des Datentyps springen kann.
Beim reverse engineering mit einem UML tool wird in der Regel nur das repository selbst erzeugt und ggf. ein großes Diagramm mit allen importierten Elementen, was nicht viel bringt. Graphen wie etwa die statische Aufrufhierchie einer Methode erzeugen diese tools überhaupt nicht.
Hier ist ein Beispiel, entnommen von der Doxygen-Dokumentation des Tahoe-Projektes.
In diesem Artikel ging es primär um die Reengineering-Fähigkeiten von Doxygen, der Fokus dieses tools ist aber eigentlich die Aufbereitung bon inline-Dokumentation die von den Autoren der Software erstellt wurde.
Highly recommended!
Viele Grüsse,
Andreas
Technorati Tags: Doxygen, reverse engineering