• pDepend – Eine kurze Einführung

    von am 25. Januar 2010
    Dieser Artikel wurde auf Wunsch der phphatesme Leser verfasst und wurde über die Ideenschmiede eingereicht. Falls du auch eine Idee für einen Artikel hast, dann füge sie doch einfach hinzu.

    Ob es jetzt phpDepend heißt oder pDepend weiß ich eigentlich gar nicht (und ich glaube der Autor ist sich da auch nicht immer so sicher). Auf jeden Fall geht es heute um eine kleine Einführung in das Tools von Manuel Pichler zur statischen Code-Analyse. Ich hatte ja in früheren Artikeln schon mal über Metriken geredet und auch die McCabe Metrik etwas detaillierter beschrieben.

    Metriken sind meistens mathematische Funktionen, die ihr auf euren Source Code anwendet und am Ende einen Wert rausbekommt, der etwas über die Qualität eures Quellcodes aussagen soll. So viel zur Theorie. Funktionen zu berechnen macht aber keinen Spaß, mir zumindest nicht. Bin ja kein Taschenrechner. Aber wenn ich eine wäre, dann dieser hier. Wir brauchen also jemanden, der uns die tausenden Codezeilen analysiert und die Zahlen dann später ausgibt. Interpretieren machen wir dann lieber selbst.

    phpDepend ist genau so ein Tool. Die Standardmetriken, die immer mal wieder an einem vorbeiziehen, wenn man sich ein wenig mit dem Thema beschäftigt, sind alle bereits implementiert. Sowas wie lines of code, cyclomatic complexity oder n-path complexity meine ich damit, aber auch andere wie Code Rank sind integriert. Es ist also auf jeden Fall ausreichend um eine grundlegende Analyse zu starten.

    Alles was ihr tun müsst, um das Programm zu installieren, ist mal wieder die magschen PEAR Installer Worte zu sprechen:

    pear channel-discover pear.pdepend.org
    pear install pdepend/PHP_Depend-beta

    Schon ist alles installiert. Jetzt könnt ihr ein wenig mit pdepend rumspielen. Wenn ihr pdepend im vollen Umfang über euer Projekt laufen lasst, dann werdet ihr zum Schluss drei Arten von Report generiert bekommen.

    pdepend --summary-xml=/tmp/summary.xml --jdepend-chart=/tmp/jdepend.svg --overview-pyramid=/tmp/pyramid.svg /pfad/zu/meinen/sourcen/

    Das summary.xml File ist wohl das am einfachsten zu lesende. Dort sind alle Metriken als Zahl angegeben. Sortiert nach Package, Klasse und Methode. Wenn ihr also die Qualität einer ganz bestimmten Methode erfahren wollt, dann sollte dies eure erste Anlaufstelle sein. Die zwei anderen Reports sind Grafiken. Um diese zu interpretieren gehört ein wenig Wissen, das ihr vielleicht noch nicht habt. Ok, so schwer ist es nicht, aber ich würde es mir gerne für einen weiteren Artikel aufheben. Soll ja nicht sein ganzes Schrot auf einmal verschießen.

    Auf jeden Fall lohnt es sich mal die McCabe (Cyclomatic Complexity) Metrik in seinem Projekt anzuschauen, denn diese hatten wir ja schon besprochen.pdepend-pyramidpdepend-jdepend

    Nils Langner

    Auch wenn Ihr es mir nicht glauben werdet, aber ich habe nichts gegen PHP. Ich rege mich einfach nur gerne auf. Ok so schlimm ist es auch nicht. Eigentlich wollte ich schon immer einen Blog haben und da ...

    Zum Profil von Nils Langner

    4 Kommentare »

    RSS Feed für Kommentare zu diesem Artikel. TrackBack URL

    Hinterlasse einen Kommentar

    Werbung
    PHP Magazin
    Ausgabe 02/2010

    Dieses Mal mit Artikeln zu den Themen OpenSocial und Apache Shindig, Graphentheorie, Smarty3

    t3n
    Ausgabe 19

    Social Media (R)evolution. Weitere Themen sind noSQL, Crowdsourcing ...

    PHP Journal
    Ausgabe 2/2010

    PHP & Windows optimal nutzen, die besten PHP-CMS im Überblick, Google-API mit Zend Framework nutzen.

    Wir wurden schon öfters gefragt, ob man uns nicht irgendwie unterstützen kann. Die Antwort war immer einfach: Klar! Am einfachsten ist es eure nächsten Einkäufe bei Amazon über unsere Link abzuwickeln. Damit würdet ihr uns schon sehr helfen. Über Co-Autoren freuen wir uns aber noch mehr.