Frage

Welche statischen Analysetools für Java hat am einfachsten Erweiterungsmechanismus. Ich habe PMD Aber der Prozess benutzerdefinierte Regeln des Schreibens scheint sehr engagiert zu sein. Insbesondere möchte ich wissen, ob es irgendwelche Werkzeuge ist, dass Angebote AspectJ wie Syntax für interessante Bereiche des Codes herauszupicken? Ich bin mir bewusst, AspectJ declare warning aber es scheint in zu beschränken, was es tun kann.

Ich habe eine ähnliche Frage gefunden:

Static Analysis Tool Empfehlung für Java? Static Analysis Tool Empfehlung für Java?

Die Antworten Listen viele Werkzeuge. Aber ich möchte finden, die man am einfachsten Option bietet für benutzerdefinierte Regeln zu schreiben.

Edit: Bisher PMD der XPath-Ausdrücke von Guillaume vorgeschlagen scheint am nächsten zu sein, was ich suche. Ich werde es in Kürze zu entdecken.

War es hilfreich?

Lösung

Das eigentliche Problem mit einem statischen Analyse-Tool ist „statische Analyse“ „extending“ ist so ein breites Thema, dass Sie viele Maschinen brauchen, es zu tun im Allgemeinen: Parsing, Baumhaus, Kontrollflussgraphen Extraktion, Datenfluss-Extraktion , Punkte-Analyse, interprozedurales Analyse, Sortimentsanalyse, die Liste geht weiter und weiter, auf die Analyse-Programme, die Tonnen Compiler Literatur sehen.

Sie können Pattern-Matching von Oberflächen Syntax des Werkzeugs Aufmerksamkeit auf einige Programmcode zu konzentrieren, aber Sie werden immer noch zu erklären, was mit dem Werkzeug wollen, dass es an diesem Punkt „statisch analysieren“ zu (Und einige Analysen [wie Punkte-to] benötigen Sie die Analyse überall tun zuerst, und dann wählen Sie einfach den gewünschten Teil).

Moral : nicht erwarten, dass ein Werkzeug erstreckt beliebige Analyse zu tun einfach zu sein. Sie sollten grundsätzlich entscheiden, welche Art von Analyse Sie im Voraus Pflege (Verdorbene Eingänge? Index Bereich überprüft? API Missbrauch?) Und ein Werkzeug finden, dass bereits unterstützt diese Art der Sache. Zumindest dann Ihre „Erweiterungen“ haben eine Chance von zu ähnlich sind durch einfach zu sein, was das Werkzeug bereits der Fall ist.

Unser DMS Software Reengineering Toolkit ist ein Versuch, die Kosten für den Bau aller Arten von Analysen Maschinen für viele Anwendungen und langauges amortisieren. Es bietet die Analyse, Steuerung / Datenflußanalyse und Punkte-Analyse in Grad für C, C ++, Java und COBOL variiert. Und es hat oberflächen Syntax Pattern-Matching Sie „Punkt“ zu helfen. Siehe http://www.semanticdesigns.com/Products/DMS/DMSToolkit.html

Andere Tipps

Es ist eigentlich ziemlich einfach benutzerdefinierte Regeln für PMD zu schreiben. PMD bietet eine xPath-ähnliche Syntax interessanten Bereich des Codes zu finden, wenn Sie also eine minimale Erfahrung mit XML haben, können Sie in kürzester Zeit zu beginnen. Ich schlage vor, Sie 1-2 Stunden investieren in entweder PMD oder Findbugs und kommen wieder hier, wenn Sie spezielle Fragen haben.

Wir könnten in der Lage sein, Ihnen eine bessere Antwort zu geben, wenn Sie uns genau sagen, welche Art von Regeln, die Sie zu schreiben versuchen ...

Das Schreiben eines Findbugs individueller Detektor ist ganz einfach .

Sie fallen einfach in das Plugin-Verzeichnis Ihrer FindBugs Installation wie bei <= a href erklären "http://dschneller.blogspot.com/2008/04/localegetdefault-findbugs-detector.html" rel = "nofollow noreferrer „> hier .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top