Classificare i software in tre categorie (di sistema, applicativi e di sviluppo) resta la suddivisione più diffusa. Ma il confine tra queste famiglie è meno netto di quanto lasci intendere uno schema scolastico: uno stesso prodotto può cambiare categoria a seconda del criterio di analisi adottato, che sia la funzione, la modalità di distribuzione o la licenza. Capire cosa gestisce concretamente ciascuna categoria e dove i rispettivi ambiti si sovrappongono permette di fare scelte software più consapevoli.
Tabella comparativa delle tre categorie di software
| Criterio | Software di sistema | Software applicativo | Software di sviluppo |
|---|---|---|---|
| Ruolo principale | Gestire l’hardware e fornire un livello di astrazione agli altri programmi | Rispondere a un’esigenza specifica dell’utente (scrittura, contabilità, navigazione web) | Creare, testare e mantenere altri software |
| Interazione con l’utente | Indiretta (l’utente non gestisce manualmente i driver) | Diretta (interfaccia grafica o riga di comando orientata alle attività) | Diretta, ma riservata ai profili tecnici |
| Esempi comuni | Windows, macOS, distribuzioni Linux, driver hardware, BIOS/UEFI | LibreOffice, browser web, ERP, software di montaggio video | Visual Studio Code, Git, compilatori GCC, debugger |
| Dipendenza | Nessun altro software può funzionare senza di esso | Dipende dal sistema operativo | Dipende dal sistema operativo e, talvolta, da un’applicazione di destinazione |
| Ciclo di aggiornamento | Legato all’hardware e alla sicurezza del kernel | Legato alle funzionalità e alle correzioni dei bug | Legato all’evoluzione dei linguaggi e dei framework |
Questa tabella mette in evidenza un aspetto spesso sottovalutato: il software di sistema condiziona il funzionamento di tutti gli altri livelli. Un driver grafico obsoleto può rendere inutilizzabile un software di montaggio video aggiornato.
Per approfondire le tipologie di software informatici e le relative sottofamiglie, la distinzione per funzione resta il punto di partenza più pratico.

Software di sistema e software applicativi: dov’è il confine
La distinzione sembra ovvia: il sistema operativo gestisce l’hardware, l’applicazione è al servizio dell’utente. In pratica, alcuni componenti rendono meno netta questa separazione.
Il caso delle utility integrate
Un file manager (Esplora file di Windows, Finder su macOS) viene fornito con il sistema operativo. Svolge una funzione applicativa (navigare tra i propri documenti), ma è inscindibile dal sistema operativo che lo ospita. Lo stesso vale per i firewall nativi e gli strumenti di backup integrati.
Il criterio più affidabile per decidere: se il software può essere sostituito da un equivalente di terze parti senza intervenire sul kernel, rientra tra le applicazioni. Se la sua rimozione compromette l’avvio o la stabilità della macchina, appartiene al livello di sistema.
Driver e firmware: il livello invisibile
I driver traducono le istruzioni del sistema operativo in comandi comprensibili per l’hardware. Senza un driver di rete, un computer con Linux o Windows non può accedere a Internet, indipendentemente dal browser installato. Un driver difettoso è la causa più comune dei problemi hardware su una workstation.
Il firmware (BIOS, UEFI) opera a un livello ancora più basso: inizializza l’hardware prima ancora del caricamento del sistema operativo. Viene aggiornato di rado, ma quando succede è spesso per correggere una vulnerabilità critica.
Software di sviluppo: strumenti tecnici e problemi di dipendenza
Questa terza categoria è la meno visibile al grande pubblico, ma è quella che produce le altre due. Un compilatore trasforma il codice sorgente in un programma eseguibile. Un ambiente di sviluppo integrato (IDE) come Visual Studio Code riunisce in un’unica interfaccia un editor di testo, un debugger e un terminale.
Componenti tipici di un ambiente di sviluppo
- Un editor di codice sorgente con evidenziazione della sintassi e completamento automatico, che velocizza la scrittura e riduce gli errori di battitura nel codice
- Un sistema di controllo delle versioni (Git è lo standard di fatto) che registra ogni modifica e permette di ripristinare uno stato precedente del progetto
- Un compilatore o un interprete, a seconda del linguaggio di destinazione, responsabile della trasformazione del codice in istruzioni eseguibili dalla macchina
- Strumenti di test automatizzati che verificano il comportamento del software prima della messa in produzione
Nei progetti software emerge spesso un aspetto ricorrente: la catena di strumenti di sviluppo crea a sua volta delle dipendenze. Un progetto basato su un framework specifico diventa difficile da mantenere se il framework non viene più aggiornato. Questo rischio di dipendenza tecnica si collega anche alle recenti preoccupazioni normative.

Normativa europea e ciclo di vita dei software
La classificazione funzionale dei software non basta più per valutarne l’idoneità in un contesto professionale. Due recenti normative europee aggiungono una dimensione regolamentare alla gestione dei software.
Il regolamento DORA, applicabile dal 17 gennaio 2025, impone alle entità finanziarie dell’UE un quadro rigoroso in materia di resilienza digitale. Riguarda in particolare i rischi legati ai fornitori di servizi informatici, i test di resilienza e le clausole contrattuali dei servizi TIC. Un software applicativo ospitato in SaaS presso un fornitore terzo rientra direttamente in questo ambito.
Il Cyber Resilience Act (regolamento UE 2024/2847), entrato in vigore nel dicembre 2024, riguarda invece i prodotti digitali in senso ampio. I suoi principali obblighi si applicheranno a partire dall’11 dicembre 2027. I produttori di software dovranno garantire la gestione delle vulnerabilità durante l’intero ciclo di vita del prodotto.
Queste due normative cambiano i criteri di valutazione. Un software di sistema, applicativo o di sviluppo non viene più valutato soltanto in base alla sua funzione o al prezzo. La possibilità di sostituirlo e il livello di dipendenza che genera diventano criteri di scelta, soprattutto quando un unico fornitore concentra diversi componenti software di un’organizzazione.
La distinzione tra software di sistema, applicativi e di sviluppo resta alla base di ogni cultura informatica. Aiuta a comprendere il ruolo di ciascun livello. Gli obblighi normativi europei aggiungono un criterio che i responsabili tecnici non possono più ignorare: oltre a chiedersi cosa fa un software, oggi bisogna valutare quanto costerebbe sostituirlo.



