Rapporto punto funzione / kloc come metrica software & # 8230; il & # 8220; Name That Tune & # 8221; metrica?

StackOverflow https://stackoverflow.com/questions/243971

  •  04-07-2019
  •  | 
  •  

Domanda

Cosa pensi dell'utilizzo di una metrica del punto funzione per le righe di codice come metrica?

Mi viene in mente il vecchio show di giochi "Name That Tune". " Posso nominare quella melodia in tre note! " Posso scrivere quella funzionalità in 0.1 klocs! È utile?

Sembrerebbe sicuramente promuovere l'utilizzo della biblioteca, ma è quello che vuoi?

È stato utile?

Soluzione

Penso che sia un'idea terribile. Pessimo quanto pagare i programmatori con le righe di codice che scrivono.

In generale, preferisco il codice conciso al codice dettagliato, ma solo finché esprime chiaramente l'intenzione dei programmatori. L'ottimizzazione dei punti funzione per kloc incoraggerà tutti a scrivere il loro codice il più brevemente possibile, il che va oltre la concisione e il criptico. Incoraggerà anche le persone a unire le righe di codice adiacenti in una riga, anche se detto unione non sarebbe altrimenti desiderabile, solo per ridurre il numero di righe di codice. Anche la lunghezza massima consentita della linea diventerebbe un problema.

Altri suggerimenti

KLOC è tollerabile se si applicano rigorosamente gli standard di codice, un po 'come usare i requisiti di pagina per un report: non inserire cinque istruzioni su una sola riga o rimuovere la maggior parte degli spazi bianchi dal proprio codice.

Suppongo che un modo in cui potresti decidere quanto sia efficace per il tuo ambiente è guardare diverse applicazioni e moduli diversi, ottenere una stima approssimativa della qualità del codice e confrontarla con la dimensione del codice. Se riesci a dimostrare che la qualità del codice è coerente all'interno della tua organizzazione, KLOC non è una cattiva metrica.

In un certo senso, dovrai affrontare la stessa battaglia con qualsiasi metrica simile. Se conti punti di funzione o funzione, o semplicemente caratteristiche o moduli, vorrai comunque ponderarli in qualche modo. Alla fine, avrai bisogno di una sorta di supplemento soggettivo ai dati oggettivi che raccoglierai.

" Cosa pensi dell'utilizzo di una metrica del punto di funzione per le righe di codice come metrica? "

Non capisco la domanda. Il rapporto sopra è - per una determinata lingua e squadra - un semplice fatto statistico. E tende verso un valore medio con una piccola deviazione standard.

Esistono molti gradi di libertà: il modo in cui conti i punti funzione, quale lingua stai usando, quanto (collettivamente) intelligente è la squadra. Se non cambi queste cose, il valore rimane costante.

Dopo alcuni progetti insieme, ci si aspetta che 1200 punti funzione siano 12.000 righe di codice nella lingua / struttura / organizzazione del team preferite.

KSloc / FP è una nuda osservazione statistica. Chiaramente, c'è qualcos'altro in questo che ti dà fastidio. Potresti essere più specifico nella tua domanda?

La metrica di Punti funzione a righe di codice viene effettivamente utilizzata per generare i grafici a livello di linguaggio (in realtà, sono punti funzione a dichiarazioni) per dare un'idea approssimativa della potenza di un linguaggio di programmazione. Ecco un esempio: http://web.cecs.pdx.edu/ ~ Timm / dm / functionpoints.html

Non consiglierei di usare quel rapporto per nient'altro, tranne approssimazioni di alto livello come il grafico del livello linguistico.

Promuovere l'utilizzo delle biblioteche è una buona cosa, ma l'altra cosa da tenere a mente è che si perderà il rapporto quando si costruiscono le biblioteche e si pagherà con dividendi di risparmi nel tempo. I contatori di fagioli non lo capiranno.

Personalmente mi piacerebbe vedere un punto Funzione rispetto al rapporto metrico ABC - poiché sono curioso di sapere come si collegherebbe la metrica ABC (che indica la dimensione e include la complessità come parte delle informazioni) - forse lineare, forse esponenziale, ecc. ... www.softwarerenovation.com/ABCMetric.pdf

Tutte le metriche fanno schifo. La mia teoria è sempre stata che se hai averli, allora usa la cosa più semplice che puoi per raccoglierli e farli con esso e su cose importanti.

Ciò significa generalmente qualcosa sulla falsariga di

grep -c ";" *.h *.cpp | awk -F: '/:/ {x += $2} END {print x}'

Se stai cercando una "metrica" per monitorare l'efficacia del codice, no. Se insisti, prova ancora qualcosa di stupido ma facile come la dimensione del file sorgente (vedi il comando grep sopra, senza la pipe awk) o McCabe (con un programma contatore).

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