Frage

Gibt es irgendwelche Werkzeuge zur Verfügung, die Code-Metriken berechnen wird (zum Beispiel Anzahl der Codezeilen, zyklomatische Komplexität, Kopplung, Kohäsion) für Ihr Projekt und im Laufe der Zeit eine Grafik erzeugt die Trends zeigen?

War es hilfreich?

Lösung

Bei meinem letzten Projekt habe ich Source . Es ist ein schönes kostenloses Tool für Code-Metriken Analyse.
Hier ist ein Auszug aus Source offizieller Website:

  
      
  • Sammelt Metriken in einer schnellen, Single   Pass durch Quelldateien.
  •   
  • Maßnahmen Metriken für den Quellcode   geschrieben in C ++, C, C #, VB.NET, Java,   Delphi, Visual Basic (VB6) oder HTML.
  •   
  • Schließt Verfahren und Funktionsebene   Metriken für C ++, C, C #, VB.NET,   Java und Delphi.
  •   
  • Speichert Metriken in Checkpoints für   Vergleich bei der Software   Entwicklungsprojekte.
  •   
  • Displays und Druck Metriken in   Tabellen und Diagramme.
  •   
  • Funktioniert in einem Standard-Windows   GUI oder in Ihren Skripte mit Hilfe von XML   Befehlsdateien.
  •   
  • Die Exporte Metriken in XML oder CSV   (Comma Separated-Wert) Dateien für   Weiterverarbeitung mit anderen Tools.
  •   

Für .NET neben NDepend , die einfach ist das beste Werkzeug, kann ich empfehlen vil .

Nach Werkzeugen können Trendanalyse durchführen:

Andere Tipps

Sonar ist definitiv ein Werkzeug, das Sie berücksichtigen müssen, vor allem für Java-Projekte. Allerdings wird es auch PHP oder C / C ++ behandeln, Flex und Cobol-Code.

Hier ist ein Screenshot, der einige Metriken an einem Projekt zeigen:

alt text http: //sonar.codehaus. org / wp-content / uploads / 2009/05 / Tintenfisch-metrics.png

Beachten Sie, dass Sie das Tool, indem sie ihre Demo-Seite versuchen können unter http://nemo.sonarsource.org

NDepend für .net

Ich war auch auf der Suche nach einem Code-Metriken Tool / Plugin für meine IDE, aber soweit ich weiß, es gibt keine (für Eclipse, das ist), die auch eine grafische Darstellung der Komplexität über einen bestimmten Zeitraum zeigen. Allerdings fand ich die Eclipse Metriken Plugin , damit umgehen kann:

  • McCabe zyklomatische Komplexität
  • Efferente Kupplungen
  • Mangel an Zusammenhalt in Methods
  • Zeilen Code in Methode
  • Anzahl der Felder
  • Anzahl von Ebenen
  • Die Anzahl der Einheimischen in Scope
  • Anzahl der Parameter
  • Anzahl der Anweisungen
  • Weighted Methoden pro Klasse

Und während Sie es, ich ließ es sich nicht graphing Option, die Sie auch suchen.
Ich denke, dass, wenn Sie keine Plugins / Tools, die die grafische Darstellung im Laufe der Zeit verarbeiten können, Sie am Werkzeug aussehen sollen, die Sie am besten geeignet und bieten Ihnen alle Informationen, die Sie benötigen; selbst wenn die gegebenen Informationen nur für den aktuellen Build Ihres Projekts ist.

Als Randbemerkung, die Eclipse Metriken Plugin können Sie die Daten in eine externe Datei exportieren (Link zu einem Beispiel geht), so, wenn Sie ein Quellkontrollwerkzeug verwenden und Sie sollten Sie die Datei an, die Daten für den spezifischen Aufbau und speichern immer exportieren !, kann mit der Quellcode, auf diese Weise Sie immer noch eine (unverwässert) Art und Weise müssen in der Zeit zurück und überprüfen Sie die Unterschiede zu gehen.

im Auge behalten, was Sie messen, was Sie erhalten. loc sagt nichts über die Produktivität oder Effizienz.

einen Programmierer von Codezeilen bewerten und Sie werden .. Zeilen Code bekommen. das gleiche Argument für andere Metriken geht.

OTOH .. http://www.crap4j.org/ ist eine sehr konservative und nützliche Metrik . es setzt die Komplexität im Zusammenhang mit Abdeckung.

NDepend, ich bin mit ihm und seinen besten für diesen Zweck. Überprüfen Sie dies : http://www.codeproject.com/KB/dotnet/NDepend.aspx

das Werkzeug bezüglich NDepend es kommt mit 82 verschiedenen Code-Metrik aus Anzahl der Codezeilen, mit Methode Rank (popularity), zyklomatische Komplexität, Mangel an Kohäsion von Methoden, Prozent Coverage (extrahiert aus NCover oder VSTS), Depth of Inheritance ...

Mit seinem Regelsystem kann NDepend auch Probleme finden und schätzt technische Schulden die ist ein interessanter Code Metrik (Menge an Entwickler-Aufwand vs Probleme zu beheben. Menge dev-Zeit pro Jahr Probleme verdorben nicht fixierten lassen).

Alle diese Metriken sind detaillierte hier .

Wenn Sie in dem .NET-Raum, Developer Express' CodeRush bietet LOC, zyklomatische Komplexität und die (eher ausgezeichnet, IMHO) Wartung Komplexität Analyse von Code in Echtzeit.

. (Sorry über die Wartung Komplexität Link;. Es den Google-Cache geht das Original scheint offline ATM zu sein)

Atlassian FishEye ist ein weiteres hervorragendes Werkzeug für den Job. Die nahtlose Integration mit Ihrem Source-Control-System (unterstützt derzeit CVS, SVN und Perforce) und analysiert alle Ihre Dateien auf diese Weise. Die Analyse ist vielmehr, obwohl einfach, und das Produkt selbst ist kommerziell (aber sehr günstig, IMO).

Sie können auch ein Add-on bekommen es Crucible genannt, die Peer-Code-Reviews erleichtert.

Für Visual Studio .NET (mindestens C # und VB.NET) finde ich die freien Studio äußerst nützlich für die Metriken sein. Es fügt auch eine Reihe von Funktionen in kommerziellen Tool gefunden wie ReSharper .

Code Analyzer ist einfaches Werkzeug, das diese Art von Metriken erzeugt.


(Quelle: teel.ws )

Für Python, Pylint können einige Code-Qualitätsmetriken liefern.

Es gibt auch einen Code-Metriken Plugin Reflektor , Sie im Falle verwenden .NET.

würde ich -Metriken-Viewer exention für Visual Studio empfehlen .

Es ist sehr einfach Lösung auf einmal zu analysieren, auch Vergleich tun, wenn Sie Fortschritte gemacht ;-)

Lesen Sie mehr hier über die kennzeichnet

Auf der PHP-Front, glaube ich, zum Beispiel phpUnderControl enthält Metriken durch PHPUnit (wenn ich mich nicht irre).

Beachten Sie, dass Metriken oft fehlerhaft sind. Zum Beispiel kann ein Codierer, der auf triviale Probleme funktioniert mehr Code produzieren und dort auf Ihre Diagramme besser aussehen, als ein Codierer, der die komplexen Fragen ist zu knacken.

Wenn Sie nach einiger Trendanalyse sind, dann ist es wirklich nichts bedeuten über SLOC zu messen?

Auch wenn Sie nur einen grep für Hinter Semikolons tun und die Anzahl der Zeilen zurück zu zählen, was Sie nach ist die Konsistenz in der SLOC Messtechnik. Auf diese Weise Messung von heute kann im letzten Monat Messung in einer sinnvollen Art und Weise verglichen werden.

Ich kann nicht wirklich sehen, was ein Trend von McCabe zyklometrische Komplexität geben? Ich denke, dass CC sollte mehr für eine Momentaufnahme der Qualität verwendet werden, um Feedback an die Entwickler zur Verfügung zu stellen.

Edit: Ooh. Ich dachte nur an ein paar anderen Messungen, die nützlich sein könnten. Kommentare als Prozentsatz der SLOC und Testabdeckung. Keiner von denen Sie Schlupf lassen. Kommen wir zurück entweder diese nachzurüsten ist sie nie als Gott wie zu tun „in der Hitze des Augenblicks!“

HTH.

prost,

Rob

Scitools' Verstehen hat die Fähigkeit, eine Menge Code-Metriken für Sie zu generieren . Ich habe nicht viel Erfahrung mit den Code-Metriken Funktionen, aber die statischen Analyse-Funktionen im Allgemeinen waren nett und der Preis war sehr vernünftig. Die Unterstützung war ausgezeichnet.

Projektcode Meter eine differentielle Entwicklungsgeschichte Bericht gibt (in Excel-Format), die zeigt, Ihre Codierung Fortschritte Metriken in SLOC , Zeit und Produktivität Prozentsatz (es ist Zeit Schätzung auf zyklomatische Komplexität und anderen Metriken basieren). Dann in Excel können Sie ganz einfach die Grafik erzeugen Sie wollen.

in diesem Artikel, die es Schritt für Schritt beschrieben: http://www.projectcodemeter.com/cost_estimation/help/FN_monsizing.htm

Für Java können Sie unser Tool versuchen, QualityGate , die mehr als 60 Quellcode-Metriken berechnet, Spuren alle Änderungen im Laufe der Zeit und stellt auch eine Gesamtbewertung für die Wartbarkeit des Quellcodes.

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