Il software rappresenta la componente logica e immateriale di un sistema informatico, contrapponendosi all’hardware (la componente fisica). È costituito da sequenze di istruzioni codificate in linguaggi di programmazione che vengono interpretate ed eseguite dall’unità centrale di elaborazione (CPU).
In ingegneria informatica, il software si classifica tipicamente in:
- Software di Sistema: programmi che gestiscono le risorse hardware e forniscono servizi di base ad altri programmi (es. Kernel, Sistemi Operativi come Linux o Windows, Driver).
- Software Applicativo: programmi progettati per permettere all’utente finale di svolgere compiti specifici (es. browser web, suite office, software CAD).
- Firmware: software di basso livello integrato permanentemente in un hardware (es. BIOS, controllo di una lavatrice).
L’Ingegneria del Software è la disciplina che applica approcci sistematici, disciplinati e quantificabili allo sviluppo, al funzionamento e alla manutenzione del software, garantendone l’affidabilità, la sicurezza e la scalabilità. A differenza della produzione di oggetti fisici, il software non “si consuma” ma può diventare obsoleto o presentare difetti logici chiamati bug.