Che cos'è l'evoluzione del software?

L'evoluzione del software è un processo in base al quale un programma per computer commerciale richiede un aggiornamento, una manutenzione e un miglioramento continui nel tempo affinché rimanga un prodotto praticabile. A questo proposito, l'evoluzione del software è guidata da esigenze esterne di business e dei consumatori che cambiano man mano che altri software e tecnologie avanzano attorno ad esso. Il fattore trainante dell'evoluzione del software, tuttavia, è spesso quello interno focalizzato sul team di ingegneri che ha prodotto il prodotto e sull'azienda che dipende dal suo successo in termini di redditività. L'Imperial College di Londra, in Inghilterra, ha promulgato per la prima volta tre leggi fondamentali sull'evoluzione del software nei primi anni '70, che da allora sono state estese a un totale di otto leggi a partire dal 2011. Altri tentativi sono stati fatti anche per quantificare il processo utilizzando modelli come il modello sequenziale lineare e il modello prototipo, ma il paradigma che sembra adattarsi meglio ai cicli di vita dell'entropia del software è quello di uno che assomiglia all'evoluzione darwiniana per gli esseri viventi.

I principali fattori alla base dei cambiamenti nell'architettura del software assomigliano alle stesse forze che motivano le aziende ad aggiornare macchinari industriali o procedure operative standard quando cambiano le esigenze della società. Man mano che il software viene sempre più utilizzato, diventano evidenti nuove esigenze o funzioni che devono essere elaborate nelle versioni successive del prodotto. Tutto il software viene inoltre rilasciato con errori precedentemente sconosciuti, pertanto è necessario eseguire periodicamente patch e procedure di manutenzione per correggere situazioni come falle di sicurezza che potrebbero rendere un'azienda vulnerabile agli attacchi attraverso il software stesso. Una chiave per l'evoluzione del software è anche il fatto che tali programmi devono essere sempre più adattati per funzionare su diversi tipi di apparecchiature informatiche emergenti e all'interno di varie architetture del sistema operativo in modo che il programma abbia un fascino più ampio.

Soddisfare tutte queste esigenze è fondamentale per determinare se un programma software rimane praticabile e, dal momento che le risorse software sono un aspetto cruciale dell'economia dell'informazione dal 2011, l'evoluzione del software è diventata un aspetto fondamentale dell'adattamento e della crescita del business. A Meir Lehman, uno scienziato informatico presso l'Imperial College di Londra, è stato attribuito il merito di aver creato Lehman's Laws, che ha sinteticamente definito il processo di evoluzione del software e guidato gli sviluppatori nel pensiero futuro della visualizzazione del software. Le leggi di Lehman si basano sul presupposto che il software si evolve con l'aumentare del feedback sulle sue prestazioni e che la sua inevitabile tendenza sia quella di diventare sempre più complessa.

Lehman ha affermato che la natura dell'evoluzione del software rispecchia i cambiamenti naturali come la mutazione delle mosche della frutta, il modo in cui le città si espandono nel tempo e il modo in cui le strutture militari migliorano progressivamente i sistemi di armamenti. Le prime tre leggi del processo emulano queste tendenze nei dettagli del cambiamento continuo, della complessità crescente e di ciò che è noto come evoluzione del programma di grandi dimensioni. Il cambiamento continuo si riferisce al fatto che il programma deve essere adattato per soddisfare le attuali condizioni commerciali del mondo reale, e ciò riflette una crescente complessità in quanto il programma deve soddisfare una sempre crescente diversità di esigenze impreviste. L'evoluzione del programma di grandi dimensioni si riferisce alla necessità di correggere gli errori e alle nuove versioni del programma che sono legate inesorabilmente alle esigenze del mercato.

Delle cinque leggi rimanenti nell'evoluzione del software, il numero quattro è la stabilità organizzativa e si riferisce al fatto che la crescita di un programma assume una vita propria indipendentemente dal livello di risorse intenzionalmente dedicate ad esso, e il numero cinque è Conservation of Familiarity ciò afferma che la crescita incrementale del programma è inevitabile. Il numero sei delle otto leggi Lehman è la crescita continua, che è necessario per soddisfare la domanda dei consumatori, e il numero sette è la qualità in declino, il che sottolinea il fatto che tutti i software alla fine devono affrontare limiti di funzionalità che non possono soddisfare. L'ultima legge di Lehman per l'evoluzione del software è il sistema di feedback stesso, che lega tutte le forze che incidono sulla vitalità di un programma software per guidarlo rapidamente verso un maggiore successo o inevitabile obsolescenza e morte.

ALTRE LINGUE

Questo articolo è stato utile? Grazie per il feedback Grazie per il feedback

Come possiamo aiutare? Come possiamo aiutare?