Qual è il significato di baseline nella gestione della configurazione del software?

In parole povere, per lo sviluppo del software, una baseline è un'istantanea statica (cioè immutabile) dell'albero del codice sorgente in qualsiasi momento. Lo scopo della baseline è di avere un punto di riferimento statico per i cambiamenti che avvengono una volta che la baseline è stata creata.

Nello sviluppo del software, le baseline sono create in vari punti pianificati nel processo di sviluppo del software. Una linea di base è anche utile quando è necessario creare un "ramo" per fornire una correzione di emergenza basata su una linea di base di codice che è stata consegnata ad un cliente. La correzione di emergenza è sviluppata in modo sicuro in un ramo separato lontano dallo sviluppo "principale". Indipendentemente da ciò che faccio nel ramo, la linea di base non sarà mai distrutta (cioè si può sempre tornare ad un punto di partenza noto).

Esempio:

Se lavorassi per Microsoft e fossi nel team di sviluppo del software "Office", potrei essere assegnato al lavoro sul prodotto software "Word". Quando mi viene chiesto di fornire una correzione a Word, la mia prima domanda sarebbe "Quale baseline ('release') di Word dovrei usare?" In altre parole, ho bisogno di impostare il mio ambiente di sviluppo software per iniziare con una particolare release del nostro prodotto che il cliente sta utilizzando (ad esempio Word 2007) e aggiungere la mia correzione in quell'ambiente. Lo facciamo usando lo strumento SCM (ad esempio Git, ClearCase, Plastic SCM, PVCS, ecc.) per creare una gerarchia di codice sorgente usando una "baseline" come punto di riferimento.

Senza baseline, gli sviluppatori di software non avrebbero punti di "riferimento" stabili per basare le loro modifiche e per tenere traccia delle varie pietre miliari della consegna, il che renderebbe difficile sapere quali versioni di codice sorgente dovrebbero essere usate in ogni specifico ambiente di sviluppo.

Il concetto di baseline può essere usato anche in molti altri posti; per esempio, se il team di sviluppo del software è nella fase dei "requisiti"; cioèPer esempio, se il team di sviluppo del software è nella fase dei "requisiti", cioè sta decidendo cosa deve contenere il prodotto software, usiamo il concetto di "baseline dei requisiti" quando ci riferiamo a un'istantanea della nostra documentazione dei requisiti in qualsiasi momento particolare.

La maggior parte degli strumenti SCM può creare un numero illimitato di baseline e rami da qualsiasi baseline; la limitazione è solitamente autoimposta dal processo di sviluppo del software che il team di sviluppo del software sceglie di seguire 🙂

L'argomento è un (po') più complesso di questo, ma spero che questo vi dia l'idea giusta...