Mittwoch, 26. September 2012

NDepend - DAS Statische Analyse-Tool für C#/.NET


Im Rahmen meiner Bachelorthesis an der Hochschule Bremen im Studiengang "Dualer Studiengang Informatik" bin ich auf die Suche nach einem Tool gegangen, welches mir von einem existierenden Quellcode diverse Metriken berechnen kann. Was macht man also? Man geht auf Google und gibt dort in die Suchzeile "Statische Analyse Tool C#" ein. Nun erhält man nach dieser Suche auch diverse Treffer. Wikipedia bietet sogar eine ganze Liste solcher Tools an, darunter FxCop, ReSharper, CodeRush, JustCode und NDepend. Alle diese Tools wurden (sofern kostenfrei verfügbar) heruntergeladen und ausprobiert.
Fazit: Nur ein einziges bot Metrikermittlung so wie ich es mir vorstellte. NDepend! Der Rest waren nette Tools und VisualStudio Plugins zur verbesserten Refakturierung.

Für meine Bachelorthesis stützte ich mich also hauptsächlich auf die Analysen von NDepend. Hier möchte ich kurz meine Arbeit mit NDepend beschreiben und berichten, was mir an diesem Tool so gut gefällt.

NDepend bietet eine ziemlich beachtliche Auswahl an Metriken von Hause aus an (http://www.ndepend.com/Metrics.aspx). Von Größen- über Komplexitäts- bis hin zu Strukturmetriken ist hier alles möglich.

(Große Version)
Als zusätzliche Option - sollten die Standardmetriken nicht ausreichen - können mit Hilfe von Querys eigene Regeln definiert und ermittelt werden. Die Regeln der Standardmetriken sind zudem mitgeliefert und können nach Bedarf angepasst werden (beispielsweise können die Grenzen verändert werden). Dies bietet schier unendliche Möglichkeiten relevante Informationen über den Quelltext zu ermitteln.

Neben der Metrikermittlung bietet NDepend zudem die Möglichkeit Abhängigkeitsgraphen und -matritzen anzeigen zu lassen. Zu diesem Thema kann ich leider jedoch nichts sagen, da ich dieses Feature nicht verwendet habe. Ein grober Überblick zeigte mir jedoch, dass hier sowohl die Beziehungen zwischen Assemblies, wie auch Klassen und Methoden visualisiert werden können.

(Große Version)
NDepend ist ein sehr umfangreiches Tool und ist der richtige Umgang mit diesem einmal erlernt, so bietet es zahlreiche Möglichkeiten bei der Entwicklung von großen Softwareprojekten hilfreich eingesetzt zu werden. Die gesetzten Designziele können gerade in größeren Entwicklergruppen leicht verfolgt werden und nötige Korrekturmaßnahmen so schnell eingeleitet werden. Auch lassen sich Regeln zu Entwicklungsrichtlinien hinterlegen. Hier bieten sich aber die bereits oben erwähnten Tools wie CodeRush und ReSharper besser an. Diese zeigen direkt beim Entwickeln Verstöße der Richtlinien an, wohingegen NDepend diese erst bei der Analyse des Projektes bemängelt. Nichts desto trotz kann ich NDepend als professionelles Entwicklungswerkzeug für jede Projektgröße empfehlen.

Keine Kommentare:

Kommentar veröffentlichen