software
s. inglese (propr., elementi molli) usato in italiano come sm. Insieme dei programmi che possono funzionare su un elaboratore; termine intraducibile coniato negli Stati Uniti in contrapposizione al termine hardware. Il software viene generalmente classificato in software applicativo e in software di sistema o di base. Il software applicativo è costituito dai programmi per la risoluzione dei singoli problemi applicativi di tipo gestionale o scientifico; è ormai diffuso non solo sugli elaboratori per uso aziendale o personale, ma anche in numerosi apparati elettronici dei sistemi di governo. Il software di sistema comprende l'insieme dei programmi predisposti per favorire un facile ed efficiente impiego degli elaboratori e include compilatori e assemblatori; esso include il sistema operativo, a cui è affidata la gestione dell'elaboratore. La creazione del software pone non pochi problemi, anche perché, mentre i tecnici dell'hardware progettano e realizzano macchine sempre più veloci, più piccole e meno costose, i programmatori si trovano in difficoltà a gestirne efficacemente le risorse e a configurare dinamicamente le caratteristiche di uno stesso software alle sue diverse condizioni di utilizzo. La produzione di software si è incrementata su scala industriale, sia per l'aumento della domanda, sia per le dimensioni sempre crescenti dei programmi da realizzare, in seguito alla necessità di gestire diversi protocolli e interfacce. La produzione è quindi diventata un'attività complessa per la quale si sono sviluppate numerose metodologie che mirano a facilitarne la gestione durante tutte le fasi della sua progettazione, produzione, test e manutenzione (vedi ingegneria del software). Le grandi società nordamericane ed europee produttrici di software si sono trovate ad affrontare la concorrenza di società asiatiche (particolarmente attivi sono gli Indiani), che hanno potuto contare su programmatori di alto livello e a basso costo. La tendenza del mercato del software degli ultimi anni è che ingegneri occidentali si dedichino soprattutto a progettare i sistemi, lasciando ai programmatori orientali il compito della scrittura dei programmi relativi. In realtà, la crescita culturale e tecnologica delle competenze informatiche, unita a una forte tradizione nelle discipline matematiche e del pensiero astratto, sta portando a forme di concorrenza con questi paesi anche a livello progettistico. Un'alternativa a tale problema è rappresentata dal fenomeno dell'open source, con la realizzazione del sistema applicativo Linux, in cui migliaia di programmatori, connessi tramite il web, possono partecipare allo sviluppo, alla prova e alla correzione di software di qualsiasi livello di complessità. In questo caso, nessuno è proprietario del software finale, che è sempre in evoluzione e aperto a nuovi apporti, previo un rigoroso processo di verifica. Questa modalità di sviluppo collettivo del software permette in genere una rapida identificazione ed eliminazione degli errori e dei difetti, in particolare di quelli dannosi per la sicurezza del sistema.