A számítógép működéséhez az számítógépalkatrészeken kívül (harware) szükség van programokra (software) melyek irányítani fogják az alkatrészek működését. A program utasítások sorozata melyekkel a számítógépnek közölve van mit, hogyan és mikor kell megtenni hogy az adott feladatot el tudja végezni. A programot programnyelven írják.
Amikor a program megjelenik a piacon, szükséges hogy minnél nagyobb számú számítógépes konfiguráción lehesen használni ami a átvihetőség tulajdonságot képviseli. Minnél jobb a program átvihetősége, annál nagyobb a lehetősége hogy a program el legyen adva. Mivel a program úgy van előrelátva hogy különböző konfigurációkon dolgozzon, szükséges a program telepítését az adott konfiguráción elvégezni. A telepítés ideje alatt a program megkapja az adatokat a számítógép alkatrészeiről (kártyák, CPU, memória, ...) és elvégzi az illeszkedéseket hogy az adott konfiguráción működni tudjon.
Az operációs rendszer (Operation System - OS) programok és adatok halmaza mely irányítja a számítógép rendszert. A számítógép rendszer a számítógép alkatrészei és a berendezések melyek a számítógépre vannak csatlakoztatva.
Az operációs rendszer egységesíti a számítógép alkatrészeit és a felhasználótól elrejti az alkatrészek működését. Az operációs rendszer a felhasználó számára olyan munkafelületet biztosít mely segítségével a felhasználó adatokkal és folyamatokkal foglalkozik, nem bitekkel, bájtokkal és blokokkal.
Az operációs rendszerek olyan programokat tartalmaznak melyek biztosítják az operációs rendszer irányítását, mint parancssor környezet és grafikai felhasználói felület (interface). Az operációs rendszer biztosítja a programok - aplikációk indítását (szövegszerkesztők, fordítók, internet böngészők, ...).
Rendszerszoftver a gép és perifériái kommunikációját lebonyolító programok, beleértve a felhasználó oly mértékű kiszolgálását, amely lehetővé teszi a számára más szoftverek elkészítését és üzembe helyezését is.
A rendszerszoftver tartalmaz:
Operációsrendszerek programhalmaz mely a számítógép erőforrásainak az irányítására lett kifejlesztve és a többi programnak biztosít közös szolálatokat. Felügyelő programok, operációsrendszer indítója és a héj - shell az operációsrendszer legfontosabb részei. Gyakorlatban az operációs rendszer mellett különböző programokat is szoktak mellékelni.
Meghajtóprogramok lehetővé teszik a működését a számítógépre csatlakoztatott berendezésnek. Minden berendezésnek legalább egy meghatóprogramja van.
Segédprogramok a számítógép karbantartás céljából lettek kifejlesztve.
Alkalmazói szoftver vagy alkalmazások a felhasználót a számítógép használatán túl mutató céljainak elérésében támogató specifikus programok.
Irodai programok:
Üzleti alkalmazások:
Tervezőrendszerek:
Grafikai szoftverek
Média szoftverek
Kommunikációs szoftverek
Hálózati alkalmazások
Rosszindulatú alkalmazások
Biztonsági programok
Játékszoftverek
Minden programot két paraméter határoz meg: változat és módosítás.
A program a fejlesztés ideje alatt a 0.0 változatot viseli. A megjelenésével a piacon az 1.0 változatot kapja meg. A ponttól balra a számot a program változatszámának nevezik a ponttól jobbra a szám a módosításszámnak nevezik. A módosításszám változása apróbb változásokat jelöl, amíg a változatszám jelentőseb változásokat jelöl.
A program javított változatai kiadása a program megbízhatóságát növelik. A program megbízhatósága nincs kihatásal a funkcionalitásra. A programfejlesztőnek a lehetséges felhasználó igényeit és követelményeit szemelőtt kell tartani.