Il software può essere definito come tutti quei concetti, attività e procedure che risultano nella generazione di programmi per un sistema informatico. In altre parole, sono le istruzioni che sono state predefinite da un programmatore per eseguire le attività indicate.
Il software è un insieme di numeri binari (bit), che ha un senso per il computer, ed è memorizzato su un supporto fisico (hardware), da cui il processore può accedere, per eseguirlo o visualizzarlo. Mentre l'hardware è un sistema informatico visibile, tangibile e facilmente applicabile, il software è un'entità puramente concettuale: un prodotto intellettuale, ciò significa che l' hardware è la parte fisica e il software è la parte logica del computer.
L'obiettivo di un "buon software" è aumentare le possibilità che venga sviluppato in tempo e che sia più conveniente grazie a un uso più efficiente del personale e delle risorse.
Il software può essere suddiviso in diverse modalità in base al tipo di lavoro svolto. Il software di sistema, dove una delle sue parti importanti è il sistema operativo, è la parte che consente all'hardware di funzionare, controlla i lavori, elabora compiti così essenziali, anche se spesso invisibili, come la manutenzione dei file su disco e l'amministrazione dallo schermo.
Il software applicativo consente agli utenti di svolgere uno o più compiti specifici, in qualsiasi campo di attività che può essere automatizzato o assistito, svolge attività di elaborazione testi, gestione di database e simili. Ad esempio, crea un indice ordinato per autore o recupera informazioni da un database, ecc.
Infine, c'è il software di programmazione, che fornisce strumenti per aiutare il programmatore a scrivere programmi per computer e ad utilizzare in modo pratico diversi linguaggi di programmazione.