Quali sono i modi migliori per misurare le dimensioni del progetto? Come faccio a confrontare la dimensione del mio progetto con altri progetti? [chiuso]

0

Sfondo

Attualmente sto lavorando per un progetto di hobby abbastanza ampio (rispetto a quello che ho fatto prima). Vorrei confrontare la dimensione di questo progetto con altri progetti open source ma non riesco a capire come dovrei farlo in un modo buono e significativo.

Problemi nell'utilizzo del conteggio delle righe

Di solito vedo le dimensioni del progetto misurate sulla riga di codice.

Non ritengo che sia un buon modo per misurare la dimensione del codice perché quindi i progetti che hanno un codice con uno stile simile a questo:

int function(int argument_one, int argument_two) {
    int var1, var2, var3;
    code;
    code;
    if (test(var2, var3))
        code;
    else
        code;
    return var1;
}

apparirà circa il 40% più piccolo dei progetti con codice che ha uno stile come questo:

int function(int argument_one, int argument_two)
{
    int var1;
    int var2;
    int var3;

    code;
    code;

    if (test(var2, var3))
    {
        code;
    }
    else
    {
        code;
    }

    return var1;
}

Altri modi

Alcuni altri modi di cui ho sentito parlare sono:

  • Numero di caratteri

  • Conteggio commenti

  • Conteggio parole

  • Tempo di compilazione

Ma tutti questi hanno degli svantaggi. Il conteggio dei commenti renderebbe più lungo il codice disordinato con molti commenti. Il tempo di compilazione dipende dalla velocità del computer e dalla modalità di compilazione del codice. Anche il conteggio di parole e caratteri dipende in larga misura da come viene disegnato il codice.

Domanda

Mi chiedo se esistono metodi più affidabili per misurare le dimensioni del progetto rispetto a quelli elencati qui.

Quali sono i modi più affidabili per misurare la dimensione del codice? Ci sono stati tentativi di trovare un modo universale per misurare la dimensione del codice? Esistono strumenti che misurano le dimensioni del codice in un modo più significativo del semplice conteggio di linee / parole / caratteri?

    
posta wefwefa3 23.11.2015 - 11:33
fonte

2 risposte

2

Gli algoritmi Cyclomatic complex sono ciò che vuoi esaminare.

Esistono pochi strumenti che calcolano queste informazioni.

    
risposta data 23.11.2015 - 11:42
fonte
0

Usa LoC.

Escludi righe e commenti vuoti. Se sei preoccupato delle differenze nello stile di codifica, puoi utilizzare uno strumento come formato clang per provare a standardizza lo stile di codifica.

Sì, LoC ha tutti i tipi di limiti come misura delle dimensioni o della complessità del progetto - ma lo stesso vale per qualsiasi altra cosa tu possa inventare, e LoC ha il vantaggio di essere facile da implementare e facile da comprendere. E, per tutti i suoi limiti, può almeno fornire un confronto approssimativo tra diversi progetti. Citando Wikipedia :

Many useful comparisons involve only the order of magnitude of lines of code in a project. Using lines of code to compare a 10,000 line project to a 100,000 line project is far more useful than when comparing a 20,000 line project with a 21,000 line project. While it is debatable exactly how to measure lines of code, discrepancies of an order of magnitude can be clear indicators of software complexity or man hours.

    
risposta data 23.11.2015 - 16:41
fonte