Računarski softver ili softver (en. software) je u biti računarski program napisan tako da je njegov sadržaj lagano promjeniti (moguće i pomoću nekog programa). Softverov glavni zadatak je da upravlja hardverom, izvršava izračunavanja, te da obezbijedi komunikaciju sa ostalim, isto tako, softverom, tačnije rečeno - programom.
Termin "software" prvi put koristi John W. Tukey 1957. godine. U računarstvu računarski softver su sve informacije koje se obrađuju preko računara ili programa. Alan Turing je bio prvi koji je propisao koncept softvera u svom naučnom radu
Veza sa Hardverom
Softver ne može raditi bez hardvera, kao što hardver ne može raditi bez softvera. Na hardveru (kao što je hard disk) se nalazi softver (kao što je operativni sistem), softver upravlja hardverom. Obično, softver sa hard diska se učitava na RAM memoriju odakle se prosljeđuje procesoru koji izvšrava naredbe koje sadrži neki program (softver). Najniži nivo softvera je mašinski kod (binarni kod), najjednostavniji oblik programa koji je obično teško promjeniti. Softver se zato češće piše u programskim jezicima višeg nivoa koje ljudi mnogo bolje razumiju nego li nule i jedinice. Za prevođenje programskih naredbi se koristi kompajler koji ponovo prevodi taj kod u, najniži, mašinski kod koji računar razumije (nule i jedinice).
Podjela Softvera
Računarski softver se dijeli na tri glavne grane: sistemski softver, izvršni softver, programski softver.
Sistemski softver pokreće računar. To može biti operativni sistem, drajver, server, razni alati i ostalo. Operativni sistem dobija pravo da upravlja cjelokupnim računarom, podacima, procesima itd. Najpoznatiji operativni sistemi su Microsoft Windows, Linux i Mac OS X.
Izvršni softver (aplikativni, namjenski softver) omogućava korisniku da izvršava određene zadatke. To može biti poslovni softver, edukacijski softver, baza podataka, office paketi i ostalo.
Programski softver je obično alat koji pomaže nekom programeru da izvrši neki zadatak koristeći neki programski jezik. To može biti uređivač teksta, kompajler, interpreter, linker, debugger i tako dalje. U računarskoj grafici se koristi termin grafički softver, koji je specijaliziran za rad sa grafikom.