Mit welchen statischen Analysatoren können Sie Java-Code ausführen und warum?

8

Ich habe mit verschiedenen statischen Analysatoren für Java experimentiert, insbesondere mit Findbugs und PMD.

Ich suche nach Beispielen für andere statische Analysatoren, die es wert sind, mit Java-Code ausgeführt zu werden.

    
Finbarr 13.05.2010, 14:51
quelle

5 Antworten

12

Neben FindBugs und PMD gibt es auch Bandera , ESC / Java und JLint . Einen Vergleich dazu finden Sie hier (PDF) . Hier ist ein Auszug von Relevanz:

%Vor%

Hinweis: Der Artikel stammt aus 2004. Die Tools wurden möglicherweise in der Zwischenzeit verbessert.

Wie Sie sehen, finden FindBugs und PMD ziemlich viele und sind auch die beliebtesten statischen Analyse-Tools. Einige Punkte werden heutzutage jedoch auch von einer intelligenten IDE abgedeckt, wie zum Beispiel Null-Dereferenzierung, ungenutzte Ortsnamen und unerreichbarer Code. Eclipse zum Beispiel kann auf sie warnen.

    
BalusC 13.05.2010, 15:06
quelle
2

Findbugs ist so ziemlich der Standard, da es sehr robust ist (für ein Tool, das aus der Forschung heraus gestartet wurde), regelmäßig gepflegt wird und mit den neuesten Versionen wirklich die meisten Grundlagen abdeckt. Es bietet außerdem eine hervorragende Eclipse-Integration und eine Vielzahl von Filter- und Sortieroptionen, mit denen Sie Ihr bevorzugtes Signal-Rausch-Verhältnis erreichen können.

Mein einziger Wunsch ist, dass es einen Workflow für Empfehlungen bieten könnte, sodass ich bestimmte Instanzen ignorieren kann (z. B. für Code, auf den ich keine Kontrolle habe) und nur Änderungen sehe. Kontinuierliche Analyse wäre auch schön, wenn ich Ersatzkerne habe.

Ich bin mit einigen sehr vielversprechenden Research-Tools vertraut, die statische Analysen für Dinge wie die Überprüfung der API-Konformität oder Threading-Analyse verwenden. Leider ist keine von ihnen wirklich Produktionsqualität und sie verlangen etwas Investition seitens des Entwicklers.

    
Uri 13.05.2010 14:58
quelle
1

Es gibt eine Liste der statischen Analysewerkzeuge für Java hier: Ссылка

Findbugs ist mein persönlicher Favorit wegen seiner einfach zu bedienenden Oberfläche und umfassenden Analyse, plus Plugins für Eclipse und Idee.

    
Dimitar 13.05.2010 14:54
quelle
1

Ich würde vorschlagen, dass Sie den Code-Analysator in IntelliJ verwenden. Es hat über 600 Checks, die einfach ein- und ausgeschaltet werden können. Der Hauptgrund ist jedoch, dass viele Checks schnell behoben werden.

Wenn Sie nur einen Bericht ausführen, finden Sie möglicherweise 1000 oder 10.000 von markierten Problemen. Dies kann mühsam sein, wenn jedes Problem sehr wenig Wert hat, aber das Risiko besteht, dass Sie einen Fehler einführen. Mit IntelliJ können Sie jedoch innerhalb weniger Minuten Tausende von Problemen auswählen und beheben, wobei das viel geringere Risiko für die Einführung eines Fehlers besteht.

Das IntelliJ CE ist Open Source und kostenlos und verfügt über diese Funktion.

    
Peter Lawrey 17.07.2010 08:04
quelle
0

Diese Seite enthält eine Liste (mit kleinen Beschreibungen) einiger Open-Source-Code-Analysatoren.

    
Sardathrion 16.07.2010 15:18
quelle

Tags und Links