2009-11-21 5 views
9

Ich interessiere mich für Code-Statistik-Tools. Insbesondere muss ich Statistiken über Java EE-Code erhalten, aber jeder Code-Analyzer würde tun. Soll ich ein eigenes erstellen oder gibt es ein Projekt, das du benutzt hast?Code-Statistiken von großen Projekten erhalten

ex. LOC, Anzahl der Klassen, Bibliotheken ...

Was ist Ihre Erfahrung?

Antwort

12

Wie durch Jitter erklärt, Sonar ist definitiv das Werkzeug, das Sie suchen. Beachten Sie, dass dieses Tool JavaNCSS verwendet, aber seit der Version 1.9 haben sie ihr eigenes internes Tool (SonarSquid genannt), das wirklich vollständig mit Java 1.5 oder 1.6 Projekten kompatibel ist.

alt text http://sonar.codehaus.org/wp-content/uploads/2009/05/sonar-squid.jpg

Darüber hinaus können Sie eine komplette Reihe von Projekten überwachen.

Sie können auf die Nemo demo instance zugreifen, um einen vollständigen Überblick über das Tool zu haben!

+1

Dieses Tool ist Overkill, um das Problem von OP zu lösen. Wenn Sie eine 3-Tier-Webanwendung auf Ihrem Dev-Computer installieren möchten, die auf ein zweites Tool angewiesen ist, um die eigentliche Analyse durchzuführen, und mit mindestens zwei Konfigurationsdateien experimentieren - dann machen Sie weiter. Wenn Sie einfach ein Tool wünschen, das Ihnen die drei Kriterien, die in 60 Sekunden aufgeführt sind (und mehr!), Gibt, sehen Sie sich die Antwort von Marcelo an. – Nilzor

+0

@Nilzor stimme ich nicht zu. Sonar ist wirklich einfach zu bedienen. Laden Sie einfach die Zip-Datei herunter, starten Sie sie und führen Sie eine Analyse durch. Natürlich bietet es eine Menge Informationen, viel mehr als die, die OP gefragt hat. In Bezug auf die von Marcelo vorgeschlagenen Tools befürchte ich, dass sie zu alt sind und möglicherweise nicht in der Lage sind, Java 1.5+ Code korrekt zu analysieren (das passiert mit dem JavaNCSS Tool, das lange Zeit nicht mit Java 1.5 kompatibel war) – romaintaz

5

Ich habe bereits Metrics Eclipse Plugin verwendet. Es ist heutzutage veraltet, hat aber eine Reihe von interessanten Metriken.

Es gibt StateOfFlow auch. Es unterstützt weniger Metriken, aber es scheint nicht so veraltet zu sein.

+0

StateOfFlow stürzt ab, wenn ich mein Projekt zu einem Metriken Bericht exportieren. "Kein typeinfo verfügbares Paket = (mein Paket)". Probleme, die gemeldet wurden, werden ignoriert. Das Projekt ist tot. –

4

Sie können JavaNCSS - A Source Measurement Suite for Java verwenden, die einige grundlegende Metriken (NCSS, # Klassen/Packages/Funktionen, CCN) unterstützt.

Dann gibt es Sonar die einige 20+ Code-Metriken und Clover unterstützt (wo Sie auch Ihre eigene Metriken mit in einer speziellen Sprache definieren können)

Wenn das nicht genug ist für Sie „java“ google kann und "metrics"

+0

+1 für Sonar. Beachten Sie, dass JavaNCSS einige Probleme mit Java 1.5 + -Projekten hat und deshalb hat das Sonar-Team ein eigenes Tool als Ersatz für JavaNCSS entwickelt (dieses Tool heißt SonarSquid und ist seit der Version 1.9 in Sonar eingebettet, wenn ich Recht habe). – romaintaz

3

Ein Werkzeug, das ziemlich Nische Statistiken sammelt, ist Testability Explorer. Es arbeitet mit Java-Byte-Code und liefert Statistiken für zyklomatische Komplexität, veränderbaren globalen Zustand und einige andere Dinge. Es ist kostenlos und Open-Source unter der Apache 2.0-Lizenz.

Wie ich schon sagte, es ist sehr Nische, und wird wahrscheinlich keine Metriken geben, die so leicht zu beziehen sind wie LOC. Interessant ist jedoch, dass Sie die Projekte, in denen Sie sie ausführen, mit several well known open-source projects vergleichen können. Dies würde vielleicht die Ergebnisse nützlicher machen.


Ein anderes Werkzeug, das ich kürzlich verwendete, ist SLOCCount. Es ist ein Befehlszeilentool, das entwickelt wurde, um Statistiken für viele verschiedene Sprachen, einschließlich Java, zu liefern. Nachdem JavaNCSS auf einer großen Codebasis nicht ausgeführt wurde (es klagte über zu viele Dateien), lief dieses Tool für eine sehr große Codebasis (IntelliJ IDEA) problemlos. Ein nettes Feature ist, dass es sehr wenig Konfigurierbarkeit braucht, ich musste es nicht einmal nach *.java Dateien suchen, es erkannte automatisch verschiedene Sprachen und berichtete über sie.

Der Nachteil von SLOCCount ist, wenn Sie Windows verwenden - Sie müssen Cygwin verwenden, um es auszuführen.

2

für Eclipse Sie Emma (Code Coverage) versuchen könnte und JDepend (Design Qualitätsmetriken)

3

Die SD Java Metrics Tool bietet SLOC, Kommentar Zahl, Halstead und Zyklomatische Zahlen Komplexität, bis auf die Methode Ebene und für alle Rollups größer als die (Methode, Klasse, Datei, Verzeichnis, ...)

Die SD Java Clone Doctor Analysen Software-Systeme für die Code-Duplizierung und bietet eine vollständige Liste der erkannten Klone, in der Regel 10-20% in großen Softwaresystemen. Sie können einen Klon-Erkennungsbericht über den Link anzeigen.

Die SD Source Code Search Engine indiziert Ihre Quellcode-Basis, um eine blitzschnelle Suche über Millionen von Codezeilen hinweg zu ermöglichen. Als Nebenprodukt der Indexierung der Quelldatenbank erzeugt es Statistiken auf Dateiebene für SLOC, Kommentaranzahl, Halstead und Cyclomatic-Zahlen. Es funktioniert auf Java, C# und vielen anderen Sprachen.

2

Sie können auch versuchen, JavaDepend, bietet es mehr als 82 Metriken und CQL (SQL-like) zu Abfrage Code-Basis machen es flexibel.

Und die Metrikansicht gibt Ihnen visuell eine gute Vorstellung von SLOC, Komplexität und anderen interessanten Metriken.

Metric View

Verwandte Themen