Domanda

Sono disponibili strumenti in grado di calcolare le metriche del codice (ad esempio numero di righe di codice, complessità ciclomatica, accoppiamento, coesione) per il tuo progetto e nel tempo produrre un grafico che mostra le tendenze?

È stato utile?

Soluzione

Nel mio ultimo progetto ho usato SourceMonitor.È un simpatico strumento gratuito per l'analisi delle metriche del codice.
Ecco un estratto dal sito ufficiale di SourceMonitor:

  • Raccogli le metriche in un passaggio singolo veloce e singolo.
  • Misura le metriche per il codice sorgente scritto in C ++, C, C#, VB.NET, Java, Delphi, Visual Basic (VB6) o HTML.
  • Include metriche a livello di metodo e funzione per C ++, C, C#, VB.NET, Java e Delphi.
  • Risparmia le metriche nei checkpoint per il confronto durante i progetti di sviluppo del software.
  • Visualizza e stampa le metriche in tabelle e grafici.
  • Funziona all'interno di una GUI di Windows standard o all'interno degli script utilizzando i file di comando XML.
  • Le metriche di esportazione in XML o CSV (valore separato da virgole) per ulteriori elaborazioni con altri strumenti.

Per .NET accanto NDipende che è semplicemente lo strumento migliore che posso consigliare vil.

I seguenti strumenti possono eseguire l'analisi delle tendenze:

Altri suggerimenti

Sonar è sicuramente uno strumento da tenere in considerazione, soprattutto per i progetti Java.Tuttavia gestirà anche il codice PHP o C/C++, Flex e Cobol.

Ecco uno screenshot che mostra alcune metriche su un progetto:

testo alternativo http://sonar.codehaus.org/wp-content/uploads/2009/05/squid-metrics.png

Tieni presente che puoi provare lo strumento utilizzando il loro sito demo all'indirizzo http://nemo.sonarsource.org

NDipende per .net

Stavo anche cercando uno strumento/plug-in per la misurazione del codice per il mio IDE ma, per quanto ne so, non ce n'è nessuno (per Eclipse) che mostri anche un grafico della complessità in un periodo di tempo specificato.Tuttavia, ho trovato il plug-in per le metriche di eclissi, può gestire:

  • Complessità ciclomatica di McCabe
  • Accoppiamenti efferenti
  • Mancanza di coesione nei metodi
  • Righe di codice nel metodo
  • Numero di campi
  • Numero di livelli
  • Numero di locali nell'ambito
  • Numero di parametri
  • Numero di dichiarazioni
  • Metodi ponderati per classe

E durante l'utilizzo, non mi è mancata anche l'opzione grafica che stai cercando.
Penso che, se non trovi plugin/strumenti in grado di gestire la grafica nel tempo, dovresti cercare lo strumento più adatto a te e che ti offre tutte le informazioni di cui hai bisogno;anche se le informazioni fornite riguardano solo la build corrente del tuo progetto.

Come nota a margine, il plug-in per le metriche di eclissi ti permette di esportare i dati in un file esterno (il collegamento va a un esempio), quindi se usi uno strumento di controllo del codice sorgente, e dovresti!, puoi sempre esportare i dati per la build specifica e archiviare il file insieme al codice sorgente, in questo modo hai ancora un (base ) modo per tornare indietro nel tempo e verificare le differenze.

tieni presente che ciò che misuri è ciò che ottieni.loc non dice nulla sulla produttività o sull'efficienza.

valuta un programmatore per righe di codice e otterrai...righe di codice.lo stesso discorso vale per altri parametri.

oh oh.. http://www.crap4j.org/ è una metrica molto conservativa e utile.stabilisce la complessità in relazione alla copertura.

N Dipende, lo sto usando ed è meglio per questo scopo.Controllare questo :http://www.codeproject.com/KB/dotnet/NDepend.aspx

Per quanto riguarda lo strumento NDipende viene fornito con 82 diverse metriche di codice, dal numero di righe di codice, al rango del metodo (popolarità), complessità ciclomatica, mancanza di coesione dei metodi, copertura percentuale (estratta da NCover o VSTS), profondità di ereditarietà...

Con il suo sistema di regole, NDepend può anche trovare problemi e preventivi debito tecnico che è una metrica del codice interessante (quantità di sforzo di sviluppo per risolvere i problemi contro quantità di tempo di sviluppo sprecata ogni anno per lasciare che i problemi non vengano risolti).

Tutte queste metriche sono dettagliate Qui.

Se ti trovi nello spazio .NET, Developer Express' CodeRush fornisce LOC, complessità ciclomatica e (piuttosto eccellente, IMHO) Complessità di manutenzione analisi del codice in tempo reale.

(Mi scuso per il collegamento sulla complessità della manutenzione;andrà nella cache di Google.L'originale sembra essere offline ATM).

Atlassian FishEye è un altro strumento eccellente per questo lavoro.Si integra con il tuo sistema di controllo del codice sorgente (attualmente supporta CVS, SVN e Perforce) e analizza tutti i tuoi file in questo modo.L'analisi è però piuttosto elementare e il prodotto in sé è commerciale (ma a un prezzo molto ragionevole, secondo me).

Puoi anche ottenere un componente aggiuntivo chiamato Crucible che facilita le revisioni del codice tra pari.

Per Visual Studio .NET (almeno C# e VB.NET) trovo free StudioTools essere estremamente utile per le metriche.Aggiunge inoltre una serie di funzionalità presenti in strumenti commerciali come ReSharper.

Analizzatore di codici è uno strumento semplice che genera questo tipo di metriche.

alt text
(fonte: teel.ws)

Per Pitone, pilinto può fornire alcune metriche sulla qualità del codice.

C'è anche un plugin per le metriche del codice per riflettore, nel caso in cui utilizzi .NET.

io raccomanderei Estensione del visualizzatore Code Metrics per studio visivo.

È molto semplice analizzare la soluzione in una sola volta, fai anche un confronto se hai fatto progressi ;-)

Per saperne di più Qui riguardo a caratteristiche

Sul fronte PHP, credo ad esempio phpUnderControl include le metriche attraverso phpUnit (se non mi sbaglio).

Tieni presente che le metriche sono spesso imperfette.Ad esempio, un programmatore che lavora su problemi banali produrrà più codice e avrà un aspetto migliore sui tuoi grafici, rispetto a un programmatore che sta risolvendo problemi complessi.

Se stai cercando un'analisi delle tendenze, significa davvero qualcosa misurare oltre lo SLOC?

Anche se stai semplicemente eseguendo un grep per i punti e virgola finali e contando il numero di righe restituite, ciò che cerchi è la coerenza nella tecnica di misurazione SLOC.In questo modo la misurazione odierna può essere confrontata in modo significativo con quella del mese scorso.

Non riesco davvero a vedere cosa darebbe una tendenza della complessità ciclometrica di McCabe?Penso che CC dovrebbe essere utilizzato maggiormente per un'istantanea di qualità per fornire feedback agli sviluppatori.

Modificare:Ooh.Ho solo pensato ad un paio di altre misurazioni che potrebbero essere utili.Commenti come percentuale di SLOC e copertura del test.Nessuno dei quali vuoi lasciarti sfuggire.Tornare per riadattare uno di questi non è mai così divino come farlo "nella foga del momento!"

HTH.

saluti,

rapinare

La comprensione di Scitools ha la capacità di generare molte metriche di codice per te.Non ho molta esperienza con le funzionalità di metrica del codice, ma le funzionalità di analisi statica in generale erano interessanti e il prezzo era molto ragionevole.Il supporto è stato eccellente.

Misuratore del codice del progetto fornisce un rapporto sulla cronologia dello sviluppo differenziale (in formato Excel) che mostra le metriche di avanzamento della codifica in SLOC, tempo e percentuale di produttività (la stima del tempo si basa sulla complessità ciclomatica e su altre metriche).Quindi in Excel puoi facilmente produrre il grafico che desideri.

vedi questo articolo che lo descrive passo passo:http://www.projectcodemeter.com/cost_estimation/help/FN_monsizing.htm

Per Java puoi provare il nostro strumento, QualityGate che calcola più di 60 parametri del codice sorgente, tiene traccia di tutte le modifiche nel tempo e fornisce anche una valutazione complessiva per la manutenibilità del codice sorgente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top