Definizione: distribuzione del software
Definizione: distribuzione corretta
La distribuzione di un software si dice corretta quando, a paritΓ di input, il software si comporta allo stesso modo su ogni computer su cui Γ¨ stato distribuito.
Molto semplicemente, se creo un software su un mio computer, durante la fase di distribuzione devo assicurarmi che, una volta che lo trasferisco su un altro computer, si comporti allo stesso modo.
Esempio di distribuzione corretta
Io creo un programma che somma due numeri: lo eseguo sul mio computer e, dandogli in input e , mi restituisce .
Allo stesso modo, se la distribuzione Γ¨ stata corretta, se questo stesso programma lo trasferisco sul tuo computer, dandogli in input e dovrΓ sempre restituire .
La distribuzione corretta dovrebbe essere una cosa molto semplice: per esempio, se ho un software composto da un insieme di file, allora la distribuzione consiste semplicemente nel copiare quei file nei computer degli utenti finali. In pratica, questo processo è molto più complicato di così, infatti possono sorgere diversi problemi.
Uno di questi puΓ² essere la mancanza di dipendenze.
Osservazione: problema della mancanza di dipendenze
Facciamo finta che uno sviluppatore abbia scritto un software e lβabbia testato su diversi casi dβuso per assicurarsi che il software funzioni correttamente: puΓ² capitare che il sistema operativo del computer dellβutente finale non sia esattamente uguale a quello dello sviluppatore. Spesso i software hanno delle dipendenze su cui si appoggiano e se queste dipendenze non sono presenti nel computer dellβutente finale, allora il software non funzionerΓ correttamente.
In altre parole: avere lo stesso software con gli stessi dati in input non assicura che il risultato sia lo stesso su ogni computer.
Un altro problema possibile Γ¨ lβinterferenza tra dipendenze.
Osservazione: problema dell'interferenza tra dipendenze
Lβaggiornamento di un software puΓ² necessitare anche dellβaggiornamento delle dipendenze su cui poggia: tuttavia, ci puΓ² essere un terzo software che dipende da e che potrebbe risultare incompatibile dallβaggiornamento di questβultimo.
graph TD X ---> Y Z ---> Y