Arvutitarkvara ehk lihtsalt tarkvara on juhiste ja dokumentatsiooni kogum, mis määrab, mida arvuti teeb ja kuidas ta täidab erinevaid ülesandeid. Tarkvara hõlmab nii rakendusi kui ka operatsioonisüsteemi. Rakendused on programmid, mis on loodud konkreetsete toimingute jaoks — näiteks mängud või tekstitöötlusprogrammid. Operatsioonisüsteem (nt Mac OS, Microsoft Windows, Android ja erinevad Linuxi distributsioonid) on tarkvarakiht, mis pakub rakendustele platvormi käivitamiseks ning haldab riistvara ja kasutajaliidese vahendeid, nagu ekraan, klaviatuur ja mäluhaldus.

Mida tarkvara sisaldab ja miks see on oluline

Tarkvara ei ole ainult programmid — see hõlmab ka kasutusjuhendeid, konfiguratsioone ja dokumentatsiooni. Ilma tarkvarata ei toimiks paljud tänapäeva seadmed ega teenused: meie telefonid, arvutid, võrgud, tööstusseadmed ja paljud kodumasinad sõltuvad tarkvarast. Tarkvara võimaldab automatiseerida ülesandeid, töödelda andmeid, luua sisu ja ühendada inimesi ja süsteeme üle maailma.

Tarkvara põhiliigid

  • Süsteemitarkvara: sisaldab operatsioonisüsteeme, seadme draivereid ja tööriistu, mis võimaldavad riistvara ja rakenduste koostööd.
  • Rakendustarkvara: lõppkasutaja programmid (nt kontoritarkvara, meediumipleierid, mängud, ärirakendused).
  • Vahendustarkvara (middleware): tarkvarakiht, mis ühendab erinevaid rakendusi või teenuseid (näiteks andmebaasiserverid, sõnumivahetussüsteemid).
  • Sisseehitatud (embedded) tarkvara: seadmetesse integreeritud tarkvara, mis juhib elektroonikat (näiteks kodumasinate juhtimine, meditsiiniseadmed).
  • Reaalaegne tarkvara: süsteemid, millel on rangelt etteantud aegahelad ja reageerimisnõuded (nt lennujuhtimine, tööstusautomaatika).

Püsivara (firmware)

Mõnikord kasutatakse sõna firmware, et kirjeldada tarkvara, mis on loodud konkreetse seadme või riistvara juhtimiseks ning mis on tavaliselt salvestatud seadme välkmälu või ROM-kiibile. Püsivara kontrollib sageli otseselt riistvara ja on mõeldud madala taseme juhtimiseks. Näited on CD-ajami püsivara või modemi püsivara. Tänapäeval on püsivara sageli uuendatav (firmware updates), et parandada vigu või lisada funktsioone.

Tarkvara ajalugu ja levik

Sõna "tarkvara" hakati laialdasemalt kasutama 1960. aastate lõpus, et eristada seda füüsilisest arvuti riistvarast, mida kasutaja näeb ja puudutab. Enne CD-de ja Interneti laialdast levikut salvestati tarkvara erinevatele andmekandjatele — paberist augukaardid, magnetkettad ja magnetlindid olid levinud. Aja jooksul on tarkvara ja selle levituskanalid muutunud: tänapäeval levitatakse tarkvara kassettidelt ja ketastelt eelkõige interneti kaudu, samuti pilveteenustena (Software as a Service, SaaS).

Tarkvaraarendus ja elutsükkel

Tarkvaraarenduse eesmärk on luua usaldusväärset, hooldatavat ja turvalist tarkvara. Selleks kasutatakse erinevaid arendusmudeleid ja -meetodeid:

  • Build and Fix: lihtne iteratiivne lähenemine, kus koodi ehitatakse ja parandatakse jooksvalt; sobib väiksemate projektide jaoks.
  • Waterfall (vesiputouke): lineaarne etappide jada — nõuete analüüs, disain, implementatsioon, testimine, paigaldus ja hooldus.
  • Agile: iteratiivne ja spetsiifiliselt koostööd rõhutav lähenemine (Scrum, Kanban jt), mis võimaldab kiireid muudatusi ja sagedast tarnet.

Tavaliselt hõlmab tarkvaraarendus järgmisi samme: nõuete kogumine, süsteemi ja tarkvara arhitektuuri planeerimine, programmeerimine, testimine (üksustest integratsioonini), juurutamine ning hooldus ja uuendused. Testimine ja kvaliteedikontroll on olulised, et tagada veavaba ja turvaline tarkvara.

Litsentsid ja levitamine

Tarkvara võib olla erinevate litsentsidega:

  • Avatud lähtekoodiga tarkvara (open source): lähtekood on avalik, kasutajal on vabadus seda vaadata, muuta ja levitada vastavalt litsentsi tingimustele (nt GPL, MIT).
  • Suletud lähtekoodiga (proprietaarne): lähtekood on autoril lähedane; kasutusõigus on tavaliselt piiratud litsentsilepinguga.

Levitamisel kasutatakse erinevaid viise: allalaadimine veebist, pakettide haldurid (nt Linuxi distributsioonide puhul), pilveteenused ja poed (nt mobiilirakenduste puhul). Tarkvarauuendused tagavad turvaparandused ja uued funktsioonid; paljud süsteemid toetavad automaatseid uuendusi.

Tarkvara turvalisus ja hooldus

Tarkvara turvalisus hõlmab disaini, arenduse ja kasutamise kõikidest aspektidest: andmete krüptimine, juurdepääsukontroll, turvatestid ja haavatavuste haldus. Hooldusfaas ehk tarkvara eluea jooksul tehtav tugi on oluline, sest siiani teadaolevad vead tuleks parandada ja tarkvara tuleb ajakohastada vastavalt platvormi või riistvara muutustele.

Kokkuvõte

Tarkvara on tänapäeva digitaalse maailma keskne komponent: see juhib riistvara, loob teenuseid ja võimaldab inimeste ning masinate koostööd. Tarkvara liigid on mitmekesised — süsteemi-, rakenduse-, püsivara- ja sisseehitatud tarkvara — ning arendamiseks kasutatakse erinevaid mudeleid (vesiputouke, Agile jmt). Püsivara on eriline tarkvaraliik, mis töötab lähemalt riistvaraga ja on sageli salvestatud välkmälus. Tarkvara litsentsimine, turvalisus ja hooldus on olulised, et tagada usaldusväärne ja jätkusuutlik toimimine.