Vor einiger Zeit habe ich versucht mit einem anderen Werkzeug mal den eigenen Code zu analysieren.
Ich habe CppDepend entdeckt. http://www.cppdepend.com/
Gerade bei großen Projekten kann man schnell den Überblick verlieren und es ist schwierig die abhängigen Klassen und Objekte in Ihren Verbindungen zu sehen oder mögliche Designprobleme nachträglich festzustellen. Oder den richtigen Ansatzpunkt für Reviews zu finden. Man hat manchmal das Gefühl, dass etwas nicht stimmt, aber man weiß oft nicht genau was.
CppDepend kann helfen schlecht konstruierte Klassen zu finden, Fehler in den Namenskonfentionen oder der Dokumentation und gezielter auf notwendige Reviews hinzuweisen.
Durch eine eigene Abfragesprache ist es extrem einfach große unübersichtliche Funktionen zu finden. Klassen mit zyklischen Abhängigkeiten und extreme Vererbungstiefen aufzuspüren. Besonders einfach wird es zum Beispiel auch Namenskonventionen zu überprüfen. Die eigene Codebase wird durch die Abfragesprache analysierbar.
Ich empfand die graphischen Darstellungen der eigenen Codebasis und die Ergebnisse der Abfragen in diesen Grafiken als extrem anschaulich und nützlich. Weitaus mehr als manche tabellarische Analyse meines Codes.
Einen guten Einblick was hier möglich ist liefern die Case-Studies. Wie zum Beispiel die Analyse der MFC 8.0 (VC-2005) http://www.cppdepend.com/MFC.aspx. Man kann die MFC sicherlich nicht als Glanzstück des OOP bezeichnen, umso mehr ist es mal interessant mit diesem Tool einen Blick auf die MFC zu werfen. Wem das nicht anschaulich genug ist kann sollte sich auch die anderen Case-Studies mal ansehen. Oder noch besser die Software 2 Wochen testen.
Ein gutes Tool, aber leider nicht ganz billig, aber in jedem Fall mal einen Blick wert.
Das werde ich mir auf jeden Fall auch einmal anschauen. Danke für den Tipp!
Hallo und schön mal wieder etwas von dir zu Lesen. Habe auch gleich mal ein paar Anmerkungen zu diesem Teil hier.
Wollte es natürlich gleich mal ausprobieren, installiert aber leider nur nen Absturz zu sehen bekommen. Hält sich meine Begeisterung natürlich schon arg in Grenzen. Dann wollte ich mir das Teil doch mal etwas genauer anschauen und sehe eine cppparser.exe im Pfad. Einfach mal gestartet und was sehe ich. Dahinter verbirgt sich „nur“ ein schnödes Doxygen.
Ich möchte jetzt definitiv nichts gegen Doxygen sagen, denn ich benutze es ja auch um für mich selber eine Dokumentation zu erzeugen, aber es spricht auch nichts mehr für Cppdepend. Doxygen läuft unter der GPL. Kann man denn das dann einfach umbenennen und mit verkaufen? Dazu kommt das auch auf der Webseite nirgends Doxygen mit erwähnt wird. Das finde ich dann schon ein wenig peinlich.
Um einfach mal ins Blaue zu Raten. CppDepend wird wohl Doxygen dazu benutzen um sich die XML-Daten aus dem Code zu erzeugen, und diese in einer Datenbank speichern und für die Graphen aufbereiten. Kann schon sehr nett sein. (Wenn es denn ginge, was es bei leider nicht tut) 😉
Hmmm. Bei mir ging das auf Anhieb und ich hatte – wie gesagt – einen guten Eindruck.
Allerdings habe ich mir die Arbeitsweise nicht angesehen, ich würde Dich bitten mal eine Email an Lahlali Issam issamvb (a.t.) gmail (dot) com zu senden. Er ist ganz gierig auf Feedback! 😉
Er arbeitet an einer 2.0 Version die direkt in das VS integriert läuft.
Ok, erledigt…
Bilder schauen ja auch ganz gut aus.
Will meine 2 Mille Zeilen ja auch mal durchjagen 😉 Vielleicht sieht man ja noch was, was man bisher übersehen hat. 🙂
Einen Absturz im cppparser64.exe hatte ich auch. Leider kann man mit der Testversion nur maximal drei Projekte in einem Arbeitsbereich scannen.
Das ärgert mich jetzt etwas, dass ich was empfehle und das bei Euch nicht rund läuft. Ichhabe die 1.21 getestet und aktuell noch installiert. Die 1.22 hatte ich bisher noch nicht installiert…
Nach mehreren Mails mit Issam, läuft es nun auch unter Windows 7, egal ob x86 oder x64. Das Problem liegt bei Win7 und mittlerweile auch bei Vista eher daran das sich das .NET Framework 3.5 vor die 2.0 schiebt.
Er hat es nun auch für 3.5 deployt. Ich durfte auch die Pro Version testen. Macht einen sehr guten Eindruck. Nun muss man allerdings auch noch raffen was man da alles sieht und vor allem auch Begreifen wo man ansetzen kann um etwas zu Verbessern.
Vor allem wenn man sehr viel scannen läßt, nimmt der Wust an Informationen dem entsprechend zu.
Vielleicht sollte man die Trail noch einmal neu herrunterladen. Ich glaube er hatte nicht die Versionsnummer hochgesetzt sondern einfach bloß den Installer neu eingestellt.