Ukoliko hardver posmatramo kao telo računara, onda bismo slikovito za softver ( engl. software ) mogli da kažemo da je srce računara.
Prema zvanično prihvaćenoj definiciji softver je računarski program, odnosno skup programa čija uloga je da izdaju naredbe računaru na koji način treba da izvršava određene zadatke. Dakle, softver sadrži sve one programe i podatke koji se nalaze u jednom računaru, a u osnovne komponente softvera uglavnom spada i određeni operativni sistem.
Kao što smo za hardver rekli da ga čine sve one komponente koje su opipljive, tako za softver možemo reći da ga čine sve komponente koje nisu opipljive, ali bez kojih određeni računar, tablet ili mobilni telefon ne može da funkcioniše.
U savremenom svetu kada se pomene termin softver vrlo često se misli na specijalnu vrstu, takozvani aplikacijski softver. Ali, ukoliko pomenete ovaj termin nekome ko se bavi programiranjem, recimo on će gotovo sigurno pomisliti na sve one informacije pomoću kojih određeni računar jedino i može da funkcioniše.
Sistemski softver je samo jedna od vrsta softvera. Sistemski softver su zapravo svi oni programi pomoću kojih određeni računar funkcioniše. Ova vrsta softvera je najbitnija za rad hardvera i čitavog kompjuterskog sistema u okviru određenog uređaja. Sistemski softver u sebi najpre sadrži operativni sistem ( poput recimo Windows operativnog sistema ), različite drajvere odnosno upravljačke programe, GUI ( grafičko korisnički interfejs ), te brojne pomoćne programe. U većini slučajeva uz kupljen računar dobijate već ugrađen sistemski softver. Prema definiciji, sistemski softver služi za direktnu komunikaciju sa hardverom određenog uređaja, kako bi se omogućilo njegovo nesmetano funkcionisanje.
Drugi tip softvera je takozvani aplikacijski softver. Njegova osnovna namena je da omogući izvršenje određenih zadataka, a pomoću različitih programa koji su u njemu sadržani. Pored toga što sadrži različite programe, aplikacijski softver najčešće sadrži i određeni internet pregledač ( engl. web browser ), a može sadržati i : kompjuterske igre, baze podataka, kao i specijalne softvere, poput recimo : matematičkog, komunikacijskog, poslovnog, medicinskog ili nekog drugog softvera koji je usko specijalizovan za određenu oblast. Takođe, aplikacijski softver može sadržati i poseban softver namenjen za obradu dokumenata, ali i video materijala, te fotografija i zvuka.
Programeri mahom koriste takozvane programske softvere i to uglavnom dok stvaraju i menjaju neki drugi program. Programski softveri uglavnom uključuju brojne alatke pomoću kojih programeri stvaraju druge progame.
Još jedna vrste je takozvani serverski softver, u okviru koga se nalaze različite internet aplikacije, brojne ekstenzije, priključci i specijalan mikrokod. Pomoću brojnih internet aplikacija se prenose internet stranice na same pretražicače i to najčešće pomoću programskog jezika Java, a u pojedinim slučajevima i JavaScript. Brojni priključci i ekstenzije koje sadrži serverski softver su tu da se poboljša ili izmeni funkcionalnost određenog dela softvera, dok mikrokod ima funkciju da daje naredbe procesoru na koji način treba da izvrši specijalni mašinski kod. Da bi se mikrokod ovakve vrste softvera ažurirao uglavnom nema potrebe da se menja procesor, jer proizvođači uglavnom daju uputstva za adekvatno ažuriranje.
Uz sve navedene vrste softvera, postoji i specijalan softver koji može biti u obliku aplikacije ili programa, koji je poznat pod nazivom programski alat. Uz pomoć ove, specijalne vrste softvera programeri i koderi, ali i hakeri imaju mogućnost da odstrane sve nepravilnosti i poboljšaju rad određenog softvera. Sasvim je jasno da ukoliko hakeri koriste ovakvu vrstu softvera, oni zapravo unose nepravilnosti u rad određenog softvera. Uzevši u obzir da svaki softver može biti napisan samo jednim, ali i pomoću više programskih jezika, gde svaki od tih jezika zahteva svoje programske alate, umnogome zavisi i paleta alatki u okviru određenog programskog alata. To su najčešće : uređivač teksta ( od engleskih reči text editor, čija je osnovna namena uređivanje običnih tekstualnih fajlova ) , debageri ( engl. debugger, ovaj alat najpre služi za uklanjanje eventualnih grešaka koje su nastale usled rada nekih drugih programa ), linkeri ( alatka pomoću koje se program ili programi koji su nastali pomoću kompajlera sastavljaju u izvršni program poznat kao exe program, a od engleske reči executable ), ali i kompajleri ili kompilatori ( od engleske reči compiler, ukratko rečeno programski prevodilac pomoću koga se određeni računarski program " prevodi " iz jednog u drugi programski jezik ) i interpretatori ( od engleske reči interpreter, a čija je osnovna funkcija da izvršava kod koji je napisan u određenom programskom jeziku ). U zavisnosti od potreba određenog softvera, ovi alati mogu biti i ukombinovani, kada dolazi do stvaranja IDE ( engl. Integrated Development Environment ) , odnosno integrisanog razvojnog okruženja, pomoću koga se mnogo lakše obavljaju određeni zadaci.
Pod pojmom računarski softver se podrazumeva softver koji je smešten najčešće na hard disk, odnosno u memoriju određenog računara. Da bi računar izvršio naredbu koju mu daje računarski softver neophodno je da ih prosledi do aplikacija, a one potom pomoću sistemskog softvera prosleđuju instrukcije do hardvera, kada se dobija instrukcija u formi mašinskog koda. Pomoću računarskog softvera se izvršavaju različite operacije poput recimo izmene kontrolnog toka instrukcija ili prenosa podataka.
Takozvane softverske licence, odnosno dozvole za korišćenje određenog softvera mogu biti besplatne, dok se neke naplaćuju. Vrlo često i kod tih licenci koje se naplaćuju postoji mogućnost besplatnog korišćenja određeni vremenski period i to uglavnom 15 do 30 dana. To su takozvane free trial verzije. Pojedine verzije softvera, takozvani komercijalni softveri su legalni za korišćenje samo uz licencu koja se kupuje.