Programska oprema je del računalniškega sistema, ki je sestavljen iz podatkov kot digitalnih navodil, v nasprotju s fizično opremo, iz katere je sistem zgrajen. V računalništvu in razvoju programske opreme gre za vse informacije, ki jih obdelujejo računalniški sistemi, programi in podatki. Vključuje računalniške programe, knjižnice in s tem povezane neizvršljive podatke, kot so spletna dokumentacija ali digitalni mediji. Tehnike in programska oprema so odvisne druga od druge in jih ne morejo uporabiti same. Po drugi strani se lahko klasifikacija programske opreme izvaja na več različnih podlagah.
Na najnižji ravni je izvršljiva koda sestavljena iz navodil strojnega jezika, ki so specifična za en sam procesor, običajno centralni (CPU). Strojni jezik je sestavljen iz skupin binarnih vrednosti, ki označujejo navodila procesorja, ki spreminjajo stanje računalnika iz prejšnjega stanja. Navodilo lahko na primer spremeni vrednost, ki je na določenem mestu shranjevanja v računalniku. Ta učinek za uporabnika ni neposredno opazen, vendar je zelo pomemben. Navodilo lahko (posredno) povzroči nastanek nečesa na zaslonu računalniškega sistema - sprememba stanja, ki mora biti vidna uporabniku. Procesor izvaja taka navodila v vrstnem redu, v katerem so zagotovljena, razen če se ne zahteva, da preklopijo na drugo navodilo ali prekinejo postopek.
Večina programov je napisana v programski jeziki visoke ravni za programerje lažje in bolj učinkovito. Prevedeni so v strojni jezik s pomočjo prevajalnika ali tolmača ali kombinacije. Programska orodja so torej posebne kode.
Shema (algoritem) prvega dela programske opreme je napisala Ada Lovelace v 19. stoletju za analitični motor. Vendar niti ta razvoj, niti katera koli druga podobna programska oprema v praksi ni nikoli nastala.
Prvo teorijo o programski opremi - pred ustvarjanjem današnjih računalnikov - je predlagal Alan Turing v svojem eseju »izračunljive številke« iz leta 1935. t To je na koncu privedlo do oblikovanja dveh akademskih področij računalništva, ki preučujeta programsko opremo in njeno ustvarjanje. Računalništvo je bolj teoretično, programsko inženirstvo pa se osredotoča na bolj praktične naloge. Do leta 1946 pa še ni bilo sodobne programske opreme.
Na skoraj vseh računalniških platformah je mogoče programsko opremo združiti v več širših kategorij. Na podlagi cilja je mogoče računalniško programsko opremo razdeliti:
1. Aplikacija, ki je programska oprema, ki uporablja sistem za izvajanje posebnih funkcij ali izvajanje zabavnih nalog, ki so zunaj delovanja glavnega računalnika. Številni dogodki sodijo v aplikativno programsko opremo, saj je obseg nalog, ki jih je mogoče izvajati na sodobni napravi, zelo velik.
2. Sistem - neposredno nadzira računalniško strojno opremo, zagotavlja osnovne funkcije, ki jih potrebujejo uporabniki in drugo programsko opremo, ter zagotavlja platformo za zagon aplikacije.
Za sistemske programske opreme vključujejo:
1. Operacijski sistemi so pomembni sklopi programske opreme, ki upravljajo vire in zagotavljajo skupne storitve za drugo programsko opremo, ki se izvaja na vrhu njih. Kontrolni programi, nakladalniki, lupine in okenski sistemi so glavne komponente operacijskih sistemov. V praksi OS prihaja v paketu z dodatno programsko opremo (vključno z aplikacijsko programsko opremo), tako da lahko uporabnik nekaj dela z računalnikom, ki ima samo nameščen operacijski sistem.
2. Gonilniki naprav nadzorujejo določeno vrsto naprave, ki je povezana z računalnikom. Vsaka naprava potrebuje vsaj en ustrezen gonilnik. Ker ima računalnik običajno vsaj enega vhodne naprave in izhod, običajno potrebuje več kot eno vrsto te programske opreme.
3. Pripomočki so računalniški programi za pomoč uporabnikom pri vzdrževanju in oskrbi naprave.
4. Sistemska programska oprema vključuje tudi zlonamerno programsko opremo, ki je zasnovana tako, da škoduje računalnikom. Njen nastanek in razvoj sta tesno povezana z zločinom, povezanim z digitalno tehnologijo, čeprav se nekatere njegove vrste lahko razvijejo kot praktične šale. Pogosto uporabniki ne razumejo vedno, kdaj je taka programska oprema na napravi.
Razvrstitev programske opreme sistemskega tipa se lahko nadaljuje z različnimi visoko specializiranimi razvoji.
Kot smo že omenili, je sistemska programska oprema program, ki je ustvarjen za delovanje računalniškega sistema. Poleg osnovnih sredstev obstajajo tudi njene sorte, ki se uporabljajo samo na določenih področjih. Torej, kaj je klasifikacija računalniške programske opreme?
1. Namizne aplikacije, izdelane za določeno aplikacijo. To je najbolj številna kategorija, kot na primer spletni brskalniki in Microsoft Office, kot tudi različne storitve za pametne telefone in tablične računalnike. Tu je treba omeniti, da v nekaterih delih industrije programske opreme obstaja težnja po združevanju namiznih in mobilnih aplikacij. Zato so strokovnjaki pri razvoju operacijskega sistema Windows 8 in novejših različic UbuntuTouch poskušali dovoliti uporabo istega programskega vmesnika za namizne računalnike, prenosne računalnike in mobilne telefone.
2. JavaScript skripti so posebna programska oprema, ki je tradicionalno vgrajena v spletne strani, ki se izvajajo neposredno v brskalniku, brez uporabe vtičnikov. Programsko opremo, napisano v drugih programskih jezikih, lahko zaženete tudi v spletnem brskalniku, če je prevedena v JavaScript ali pa je nameščena razširitev, ki podpira ta jezik. Najpogostejši primer slednjega je ActionScript, ki ga podpira vtičnik Adobe Flash.
3. Strežniška programska oprema se običajno izvaja na spletnem strežniku in prikazuje brskalnike, ki uporabljajo PHP, Java, ASP.NET ali celo JavaScript.
4. Vtičniki in razširitve so programska oprema, ki povečuje ali spreminja funkcionalnost drugih storitev. V tem primeru se glavni program uporablja neposredno za delo, vgrajeni program pa je vdelana programska oprema, ki je zasnovana za izvajanje enega ali več dodatnih namenov.
Klasifikacija programske opreme vključuje programska orodja. Predstavljene so lahko kot storitve ali aplikacije, ki jih razvijalci (znani tudi kot programerji, kodirniki, hekerji ali inženirji) uporabljajo za ustvarjanje, razhroščevanje, vzdrževanje (tj. Izboljšanje ali popravilo) ali podporo programske opreme.
Kaj je programska oprema za množičnega potrošnika? Uporabniki pogosto vidijo izdelke, ki so ustvarjeni drugače kot programerji. Ljudje, ki uporabljajo sodobne računalnike za splošne namene, običajno uporabljajo tri ravni programske opreme, ki opravljajo številne naloge: platformo, aplikacije in uporabniške storitve.
Platforma vključuje vdelano programsko opremo, gonilnike naprav, operacijski sistem in ponavadi grafični uporabniški vmesnik, ki uporabniku običajno omogoča interakcijo z računalnikom in njegovimi perifernimi napravami (pripadajoča strojna oprema). Programska oprema platforme je pogosto povezana z računalnikom. Večina osebnih računalnikov ima možnost spreminjanja te programske opreme.
Programska oprema - To so najpogostejše in najbolj znane vrste programov. Na primer, programska oprema vključuje pisarniške pakete in video igre. Pogosto se kupi ločeno od računalniške opreme. Včasih pride v paketu z računalnikom, vendar to ne spremeni dejstva, da se izvajajo kot samostojne aplikacije. Ponavadi so neodvisni programi iz operacijskega sistema, čeprav so pogosto prilagojeni za določene platforme. Najpogosteje je to licenčna programska oprema. Prav tako je treba omeniti, da večina uporabnikov obravnava prevajalnike, baze podatkov in druge sistemske programske aplikacije.
To je uporabniško napisana programska oprema. Klasifikacija programske opreme vključuje razvoj naprednih uporabnikov. Sisteme prilagajajo posebnim potrebam. Uporabniška programska oprema vključuje predloge tabel in urejevalniki besedil. Tudi filtri za e-pošto so vrsta programske opreme za uporabnike. Potrošniki sami ustvarjajo to programsko opremo in pogosto pozabljajo, kako pomembno je to.
Računalniško programsko opremo morate naložiti v pomnilnik računalnika (na primer na trdi disk ali pomnilnik). Ko je računalnik naložen, lahko ta ali druga naloga izvede računalnik. To vključuje pošiljanje navodil iz programske opreme preko sistemske strojne opreme, ki na koncu prejme navodilo kot strojno kodo. Vsak ukaz povzroči, da računalnik izvede operacije, ki prenašajo podatke, izvajajo izračune ali spreminjajo pretok krmilnih ukazov. Premikanje podatkov običajno poteka z enega mesta v spominu na drugega. Včasih je to posledica prenosa podatkov med pomnilnikom in registri, ki zagotavljajo hiter dostop do podatkov v CPU.
Prenos podatkov, zlasti velikih količin, je lahko predolg in dolgotrajen. Zaradi tega se pogosto uporabljajo kazalci podatkov. Izračuni vključujejo preproste operacije, kot je povečanje vrednosti spremenljivke podatkovnega elementa. Bolj zapleteni izračuni lahko vključujejo več operacij in elementov hkrati.
Kakovost programske opreme je zelo pomembna, zlasti za komercialne in sistemske vrste programske opreme (Microsoft Office, Microsoft Windows in Linux so primeri klasičnih primerov). Če je napaka (napaka), lahko odstrani uporabnikovo delo, onemogoči računalnik in povzroči druge neprijetne posledice. Napake v programski opremi se imenujejo hrošči in »napake«, ki se pogosto odkrijejo pri alfa in beta testiranju.
Kaj je licenčna programska oprema? Licenca daje uporabniku pravico do neomejene uporabe storitve, v primeru dovoljenja za prost dostop pa tudi druge možnosti (na primer pravico do kopiranja).
Klasifikacijo programske opreme lahko izvedemo tudi na naslednji način:
1. Brezplačno, ki vključuje kategorijo »brezplačna preizkusna različica« ali freemium (v preteklosti se je izraz freeware pogosto uporabljal za brezplačno preizkusno različico). Kot že ime pove, se lahko uporablja brezplačno, čeprav je v primeru brezplačnih vzorcev ali freemium programske opreme to včasih res samo za omejeno časovno obdobje ali z omejeno funkcionalnostjo.
2 Programska oprema, ki je na voljo za plačilo, se pogosto nepravilno imenuje »komercialna«. Pri nakupu licence se lahko uporablja le zakonito.