Non puoi semplicemente guardare LOC / SLOC da solo come stai provando. L'unico modo per utilizzare le LOC con un certo grado di successo (e come linea guida, non come una regola infallibile) dai progetti precedenti per stimare le dimensioni future del progetto è di avere un numero decente di progetti con il loro SLOC, numero di risorse (sviluppatori) e tempo di completamento contabilizzati. Quindi puoi usarlo per estrapolare.
Ma per portare un solo progetto, un singolo progetto, specialmente uno non così grande (1K è piuttosto piccolo), sono solo troppi pochi dati per utilizzare le metriche LOC in qualsiasi modo significativo.
Se questo è un compito a casa, il tuo professore è un idiota senza tracce.
Tuttavia, se questo è reale, e se sei davvero premuto, puoi utilizzare le seguenti linee guida:
EXPECTED_COMPLETION_TIME =
( PREVIOUS_COMPLETION_TIME / PREVIOUS_KLOC ) * EXPECTED_KLOC * SPILLOFF
Con SPILLOFF = 1 che ti dà una probabilità del 30% di successo (una probabilità del 70% di fallimento), SPILLOFF = 1.5 ti dà una probabilità del 60% di successo (una probabilità del 40% di fallimento) e SPILLOFF = 2 dandoti un 90% di possibilità di successo (una probabilità di fallimento di $ 10). Il motivo dell'utilizzo di tali stime è che i fallimenti nel completamento dei progetti software tendono ad esibire una distribuzione esponenziale rispetto al tempo assegnato per allocazione temporale (o qualunque altra risorsa tu scelga di utilizzare.)
Quando hai un lavoro coerente all'interno di un'organizzazione o quando lavori in ambienti simili, e la tecnologia (non solo il linguaggio, ma la tecnologia) e i processi sono uniformi, allora puoi fare delle stime con alcuni margini di errore basati su progetti precedenti. In questi casi, vuoi dare più peso ai progetti più recenti.
Dì, per gli ultimi n + 1 progetti (diciamo n + 1 = 5 o 10 ... avviso, è n + 1, non n), potresti fare quanto segue ma solo se mantieni attentamente il numero di persone coinvolte in un progetto, numero effettivo di LOC, tempo di completamento effettivo e tempo stimato di completamento stimato prima dell'inizio del progetto.
SUM = 0
FOR i = 1 to n
KLOC_PER_HEAD(i) = KLOC(i) / TEAM_SIZE(i)
ACTUAL_COST(i) = ACTUAL_COMPLETION_TIME(i) / KLOC_PER_HEAD(i)
RUNOFF(i) = ACTUAL_COMPLETION_TIME(i) / ORIGINALLY_ESTIMATED_TIME(i)
SUM = ( ACTUAL_COST(i) * RUNNOF(i) ) + SUM
END
LAST_COST = ACTUAL_COST(n+1) = ACTUAL_COMPLETION_TIME(n+1) / KLOC_PER_HEAD(n+1)
LAST_RUNNOF = ACTUAL_COMPLETION_TIME(n+1) / ORIGINALLY_ESTIMATED_TIME(n+1)
LAST = LAST_COST * LAST_RUNNOF
ESTIMATE = ( ( (SUM / (n + 1) ) + LAST ) / 2 ) * SPILLOFF
Con SPILLOF come definito in precedenza.