I software possono essere classificati in base a diverse loro caratteristiche:

- modalità di esecuzione, batch quando i lavori sono impostati in modo che possano essere eseguiti fino al completamento senza l'intervento umano, online (o programmi interattivi) che invece richiedono l'intervento umano per l'immissione dati ed il controllo del lavoro;
- funzione (videoscrittura, foglio elettronico, database management system, grafica, sistema operativo, browser, lettore multimediale, posta elettronica e altre migliaia-considerando la variabilità in termini di versioni applicative);
- campo di applicazione: utilizzo casalingo (home) o professionale (business). In alcuni casi un prodotto vale per ambo le categorie in molte altre un prodotto ha versioni specifiche (esempio un sistema operativo o una suite di produttività), in tantissime esiste solo per una delle due, spesso quella aziendale (ad esempio un sistema ERP);
- grado di apertura della licenza (software libero o software proprietario);
- sistema operativo su cui possono essere utilizzati (Windows, Mac OS, Android, Linux, Unix, DOS, ecc.);
- da installare o portabile;
- tipo di interfaccia utente visiva (testuale o grafica, modalità touchscreen);
- stand alone (ovvero che possono girare completamente autonomi su sistemi isolati) oppure network (ovvero che funzionano in un ambito di rete). Il secondo caso può essere a sua volta diviso in software in versione client-server (sul client può essere installato magari solo un agent oppure l'intero software che però si appoggia ad un database installato su di un server), oppure in modalità terminal-server oppure cloud (applicazioni web). Esempi classici di programma di rete, in ambito aziendale, è il sistema gestionale, la posta elettronica centralizzata (spesso associata ai moduli di pianificazione attività e risorse), il firewall della LAN.

Dal punto di vista gerarchico i software possono essere divisi in quattro categorie principali:

- firmware;
- software di base (che a sua volta si divide in sistemi operativi, compilatori e interpreti, librerie);
- driver;
- programmi applicativi cioè tutti quei software che vengono utilizzati nel quotidiano (home), dai programmi per l'ufficio, ai videogiochi, ai browser per navigare in internet, ai client di posta, ai player audio-video, alle applicazioni chat nonché i numerosissimi prodotti specifici in ambito professionale/industriale (business) per le più disparate esigenze/attività. Anche un sistema anti malware è un'applicazione, così come un software di diagnostica (hardware o software), oppure uno strumento per gestire gli aggiornamenti. In ambiti professionali, il programma utente per gestire una macchina o un impianto è anch'esso un software così come, in applicazioni industriali (o, banalmente, nel quadro comandi di un comune ascensore), un PLC.

Con il termine suite si designa un software strutturato in diversi programmi/moduli, solitamente configurabili (nel senso di installabili, attivabili) separatamente ma facenti parte di un'unica soluzione. Microsoft Office o AVG AntiVirus o SAP ERP sono esempi di suite software.