Linee di codice: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Migliorato la pagina
 
(27 versioni intermedie di 18 utenti non mostrate)
Riga 1:
{{F|ingegneria del software|arg2=metrologia|febbraio 2013}}
'''Source lines of code''' ('''SLOC''', dall'[[lingua inglese|inglese]] ''Linee di codice sorgente'') è una [[metriche software|metrica software]] che misura le dimensioni di un [[software]] basandosi sul numero di linee di [[codice sorgente]].
{{C|perché non '''righe''' di codice?|informatica|novembre 2022}}
Il numero di '''Sourcelinee linesdi of codecodice''' ({{Inglese|source lines of code}}, '''SLOC''', dall'[[linguao inglese|inglese]]più brevemente ''Linee di codice sorgente'LOC''') è una [[metriche software|metrica software]] che misura le dimensioni di un [[software]] basandosi sul numero di linee di [[codice sorgente]].
Questo metodo di misura viene utilizzato per stabilire la complessità di un software e per stimare le risorse necessarie per la produzione e il mantenimento del software.
 
Se il software è di grandi dimensioni, possono essere utilizzate anche le unità di misura KLOC ({{formatnum:1000}} LOC) e MLOC ({{formatnum:1000000}} LOC).
==Misura delle SLOC==
Va detto che la misura delle SLOC è utile per definire un ordine di grandezza del codice ma non per fornire una misura esatta di un progetto software. A tal riguardo ha senso usare le linee di codice per confrontare un progetto di 10.000 linee con uno da 100.000, mentre ne ha poco paragonarne uno da 20.000 con uno da 21.000.
 
==Storia==
Ci sono due tipi di misure di SLOC:
LeIl conteggio delle SLOC come metrica e'è natanato con i tradizionali linguaggi tradizionali ''line-oriented('' ([[FORTRAN]], [[linguaggio assembly|assembler]], [[C (linguaggio) | C]]). In questi casi la misura delle linee di codice dava effettviamenteeffettivamente una fotografia veritiera delle complessita'complessità del software. Oggi con ila paradigmi[[programmazione adorientata agli oggetti]] non e'è piu'più cosi'così vero. E'È chiaro pero'però che la SLOC risultarisultano la metrica di complessita'complessità del codice piu'più facile da misurare e da implementareautomaticamente. Queste caratteristiche fanno si che sia ancora molto usata.
 
==Metodi di misurazione==
* '''Physical SLOC''': si contano tutte le righe di testo del codice sorgente includendo anche i commenti e le linee bianche se la loro percentuale non supera il 25% delle linee.
Va detto che la misura delle SLOC è utile per definire un ordine di grandezza del codice ma non per fornire una misura esatta di un progetto software. A tal riguardo ha senso usare le linee di codice per confrontare un progetto di 10.000{{Formatnum:10000}} linee con uno da 100.000{{Formatnum:100000}}, mentre ne ha poco paragonarne uno da 20.000{{Formatnum:20000}} con uno da 21.000{{Formatnum:21000}}.
 
Ci sono due tipi di misure di SLOC:
* '''Logical SLOC''': si contano gli "statements", ovvero le effettive istruzioni (per esempio in C si considera SLOC ogni istruzione terminante con ;)
 
* ''Physical''Physical SLOC''': si contano tutte le righe di testo del codice sorgente includendo anche i commenti e le linee bianche se la loro percentuale non supera il {{M|25|ul=%}} delle linee.
Consideriamo per esempio questo frammento di [[C (linguaggio) | codice C]]:
* '''Logical SLOC''' SLOC: si contano gli "''statements"'', ovvero le effettive istruzioni (per esempio in [[C (linguaggio di programmazione)|C]] si considera SLOC ogni istruzione terminante con <code>;</code>)
 
Consideriamo per esempio questo frammento di [[C (linguaggio) | codice C]]:
<source lang="c">
 
for (i=0; i<100; ++i) printf("hello"); /* How many lines of code is this? */
<syntaxhighlight lang="c" line="1">
</source>
for (i=0; i<100; ++i)
printf("hello");
</syntaxhighlight>
 
In questo esempio abbiamo:
* una ''physical line of code''
* 1 Physical Lines of Code
* due 2''logical Logical Linesline of Code code'' (un ''<code>for''</code> e una ''<code>printf''</code>)
 
 
In questo esempio invece lo stesso codice è scritto con uno stile diverso:
<syntaxhighlight lang="c" line="1">
 
<source lang="c">
for (i=0; i<100; ++i)
{
printf("hello");
}
} /* Now how many lines of code is this? */
</syntaxhighlight>
</source>
 
Le SLOC saranno:
* quattro ''physical line of code''
* 4 Physical Lines of Code
* due 2''logical Logical Linesline of Codecode''
 
==Origine delle SLOC==
 
Le SLOC come metrica e' nata con i tradizionali linguaggi tradizionali line-oriented( [[FORTRAN]], [[assembly|assembler]], [[C (linguaggio) | C]]). In questi casi la misura delle linee di codice dava effettviamente una fotografia veritiera delle complessita' del software. Oggi con i paradigmi ad oggetti non e' piu' cosi' vero. E' chiaro pero' che la SLOC risulta la metrica di complessita' del codice piu' facile da misurare e da implementare. Queste caratteristiche fanno si che sia ancora molto usata.
 
 
 
 
 
== Voci correlate ==
* [[Metriche software]]
* [[Codice sorgente]]
* [[Programmazione (informatica)]]
* [[Qualità del software]]
 
== Collegamenti esterni ==
* {{FOLDOC|lines of code|lines of code}}
 
{{portale|informatica|ingegneria|metrologia}}
[[Categoria:Metodologie di sviluppo]]
[[Categoria:Misure nell'informatica]]
 
[[Categoria:MetodologieMetodi di sviluppo software]]
[[bg:LOC]]
[[Categoria:Misure nell'informatica]]
[[de:Lines of Code]]
[[en:Source lines of code]]
[[es:Líneas de código fuente]]
[[ja:LOC]]
[[no:SLOC]]
[[pl:KLOC]]
[[pt:Kloc]]