Tarkvara

Allikas: Vikipeedia

Tarkvara ehk arvuti tarkvara on masinloetavad juhendid, mis suunavad arvuti protsessorit spetsiifilisi toiminguid sooritama. Tarkvara hõlmab endas kõiki mittefüüsilisi arvuti tööks vajalikke või rakenduslikke komponente, eelkõige arvutiprogramme ning nende andmeid - andmefaile, seadeid, dokumentatsiooni, jne.

Tarkvara mõistet kasutatakse vastandina arvuti riistvara mõistele, need on arvuti füüsilised seadmed ja ühendused (näiteks protsessor), millel on tarkvara talletatud ja mis teostavad antud juhised.[1][2] Arvuti riist- ja tarkvara vajavad üksteist ja kumbagi ei saa reaalselt kasutada ilma teiseta.

Tarkvara on üldine termin. See võib viidata kõikidele arvuti juhistele üldiselt või mistahes konkreetsele juhisele. See hõlmab nii masinjuhiseid (kahendkood, mida protsessor " mõistab") kui ka lähtekoodist (inimesele arusaadavamad juhendid , mis tuleb enne käivitamis tõlkida masinkoodi).

Arvuti tarkvara on komplekt programme, protseduure, funktsioone, seotud andmeid ja nende dokumentatsioone, kui võimalik. Programmi tarkvara täidab rakendatava programmi ülesande, kas andes juhised otse digitaalsele elektroonikale või töötavad sisendina mõne teise tarkvara jaoks.

Kihtstruktuur, mis näitab, kus asub operatsioonisüsteem ja rakendused (rakendusprogrammid).

Erinevalt riistvarast, on käivitatav tarkvara salvestatud andmetena arvuti süsteemis ning seega, ei saa seda füüsiliselt puudutada. Madalaimal tasandil, käivitatav kood koosneb masinkeelsetest juhistest, mis on spetsiifilised ühele individuaalsele protsessorile. Masinkeel koosneb kahendväärtuste rühmadest, mis tähistavad protsessori juhiseid, mis muudavad arvuti olekut.[3] Näiteks võib mõni juhis muuta konkreetsesse kohta salvestatud väärtuse (mida kasutaja silmaga ei näe) või (kaudselt) panna arvuti ekraanile ilmuma mõne objekti (mida näeb kasutaja ka ise). Protsessor täidab juhiseid nende esitatud järjekorras, välja arvatud olukorras, kui tal on kästud "hüpata" mõnele teisele käsule või kui toiming on katkestatud.

Tarkvara on tavaliselt kirjutatud kõrgetasemelises programmeerimiskeeles, mida on inimestel lihtsam ja tõhusam kasutada (sarnaneb rohkem loomulikule keelele) kui masinkeelt. Kõrgetasemelised keeled on koostatud või tõlgitakse masinkeele objektikoodi. Tarkvara võib olla kirjutatud ka assemblerkeeles, sisuliselt meeldejäävam variant masinkeelest, kasutades loomuliku keele tähestikku. Assemblerkeel tuleb koostada objektikoodi koostaja (assembler) abil.

Tarkvara liigid[muuda | redigeeri lähteteksti]

Tarkvara hõlmab suurt hulka tooteid, mis võivad olla toodetud erinevaid tehnikaid nagu tavalisi programmeerimiskeeli, mikrokoodi või FPGA konfiguratsiooni kasutades.

Peaaegu kõikidel arvuti platvormidel saab tarkvara jagada paari suuremasse kategooriasse:

  • Süsteemitarkvara on tarkvara, mis on kavandatud arvuti riistvara juhendamiseks, et tagada põhifunktsioonid ja tagada platvorm jooksvatele rakendustarkvaradele. Süsteemi tarkvara hõlmab endas seadme draivereid, operatsioonisüsteeme, servereid ja utiliite. Süsteemitarkvara alla kuuluvad operatsioonisüsteemid (Mac OS X, Microsoft Windows, Linux jne), seadmete draiverid, serveritarkvara, aknahaldustarkvara jm.
    • Süsteemi tarkvara sisaldab ka alglaadimise püsivara, mis laeb lahti (või mõnel juhul ka moodustab) operatsioonisüsteemi. Püsivara on tarkvara, mis on püsivalt salvestatud riistvarasse (täpsemalt püsimällu). Seega on sellel nii tarkvara kui ka riistvara omadusi, kuid on siiski tarkvara.
  • Rakendustarkvara ja skriptid olid ajalooliselt määratletud kui kogu tarkvara, mis kasutab arvutisüsteemi, et teha kasulikumat tööd (või lahutada meelt), kui arvuti algoperatsioonid või arvuti ise. Praktikas on aga süsteemi- ja rakendustarkvara erinevused sageli ähmased kasulikkude operatsioonisüsteemi rakenduste tõttu. Rakendustarkvara võimaldab kasutajal teatava kindla ülesande täitmist. Rakendustarkvara alla kuuluvad näiteks kontoritarkvara (MS Office, OpenOffice.org), arhiveerimistarkvara, majandustarkvara, andmebaasid, arvutimängud. Rakendustarkvaras on tavaliselt kasutusel graafiline kasutajaliides (GUI).
    • Rakendustarkvara sisaldab töölaua rakendusi nagu brauserid ja Microsoft Office, samuti nutitelefoni ja tableti rakendusi (nn "app").
    • JavaScripti skriptid on tarkvara osad, mis on traditsiooniliselt veebilehtede osad, mis käivitatakse otse brauseri sees, kui veebileht lahti laaditakse, ilma et oleks vaja veebibrauseri pistikprogrammi (inglis. "plug-in"). Tarkvara, mis on kirjutatud teistes programmeerimiskeeltes, saab ka veebibrauseris käivitada, kui tarkvara on, kas tõlgitud JavaScripti või kui brauseri pistikprogramm, mis toetad vastavat keelt, on installeeritud. Kõige levinum näide viimasest on ActionScripti skriptid, mida toetab Adobe Flash pistikprogramm.
    • Veebirakendused töötavad tavaliselt veebiserveris ja väljundavad veebibrauseritele dünaamiliselt genereeritud veebilehti, kasutades tarkvara nagu PHP, Java või ASP.NET, või isegi JavaScripti, mis jookseb serveris.
  • Pistikprogrammid ja laiendid on tarkvara, mis laiendab või muudab mõne teise tarkvara funktsionaalsust, nõudes vastava tarkvara kasutamist, et funktsioneerida.
  • Sisseehitatud tarkvara on arvuti tarkvara, mis on kirjutatud, et juhtida masinaid või seadmeid, millest tavaliselt ei mõelda kui arvutitest. Üldiselt spetsialiseerunud eelkõige riistvarale, mida vastav tarkvara jooksutab ning millel on aja ja mälu piirangud. Seda terminit kasutatakse mõnikord püsivarana, kuigi püsivara saab kasutada ka arvuti püsimälupõhises koodis, millelt operatsioonisüsteem jookseb, samas kui sisseehitatud tarkvara on tavaliselt ainuke tarkvara kõnealusel seadmel.[4]
  • Mikrokood on eriline, suhteliselt segast tüüpi sisseehitatud tarkvara, mis ütleb protsessorile, kuidas täita masinkoodi, nii et tegelikult on see madalam tasand kui masinkood.[5] See on tavaliselt salastatud protsessori tootja poolt ning kõik vajalikud mikrokoodi tarkvara uuendused varustatakse kasutajatele nende poolt (mis on palju odavam kui asendava protsessori riistvara kohaletoimetamine). Seega tavaline programmeerija ei peaks kunagi eeldama, et peab sellega tegelema .

Programmeerimisvahendid[muuda | redigeeri lähteteksti]

Programmeerimisvahendid on tarkvara programmide või rakenduste kujul, mida tarkvara arendajad (tuntud ka kui programmeerijad, koodijad, häkkerid või tarkvara insenerid) kasutavad, et luua, siluda, säilitada (st parandada või täiustada) või muul viisil toetada tarkvara. Tarkvara kirjutatakse ühes või mitmes programmeerimiskeeles; on olemas palju erinevaid programmeerimiskeeli ja igaühel neist on vähemalt üks rakendus, millest igaüks koosneb oma programmeerimisvahendite komplektist. Need vahendid võivad olla suhteliselt iseseisvad programmid nagu koostajad, silujad, tõlgid ja teksti toimetajad, mida saab kasutada koos, et täita teatud ülesanne (täpselt nagu füüsilise objekti parandamisel mitme tööriista kasutamine). Nad võivad olla ka integreeritud arenduskeskkond (IDE), mis ühendab endas mitmeid või kõiki selliseid kompaktsete tööriistade funktsioone. Peaaegu kõik programmeerimiskeele rakendused (erandiks on Smalltalk) annavad võimaluse kasutada konkreetseid vahendeid IDE asemel, sest mõned programmeerijad eelistavad IDE mitte kasutamist erinevatel põhjustel. Lisaks läheb tavaliselt kauem aega, et arendada IDE "vastuvõetavale" tasemele.

Tarkvaralised teemad[muuda | redigeeri lähteteksti]

Arhitektuur[muuda | redigeeri lähteteksti]

Kasutajad näevad asju sageli teistmoodi kui programmeerijad. Inimesed, kes kasutavad kaasaegseid üldotstarbelisi arvuteid (erinevalt manussüsteemidest, analoog arvutitest ja superarvutitest) näevad tavaliselt kolme kihti tarkvara, mis täidavad erinevaid ülesandeid : platvormi, rakenduslik ja kasutaja tarkvara.

  • Tarkvaraplatvorm: sisaldab püsivara, seadme draiverid, operatsioonisüsteemi ja tavaliselt graafilist kasutajaliidest, mis kokkuvõttes võimaldab kasutajal suhelda arvuti ja selle välisseadmetega. Tarkvaraplatvorm on sageli arvutiga komplekteeritud. Eraarvutitel on kasutajal tavaliselt võimalus muuta tarkvaraplatvormi.
  • Rakendustarkvara : rakendustarkvara või rakendused on need, mida enamik inimesi peavad tarkvaraks. Tüüpilised näited on kontoritöö programmid ja videomängud. Rakendustarkvara ostetakse sageli riistvarast eraldi. Mõnikord on rakendused arvutiga kaasas , kuid see ei muuda asjaolu, et nad töötavad iseseisvate rakendustena. Rakendused on tavaliselt sõltumatud programmid operatsioonisüsteemis, kuigi nad on sageli kohandatud teatud platvormidele.
  • Kasutaja kirjutatud tarkvara : Lõppkasutaja arendamine kujundab süsteemide vastavuse kasutajate vajadustele. Kasutaja tarkvara hulka kuuluvad arvutustabeli- ja tekstitöötlus malle. Isegi e-posti filtrid on omamoodi kasutaja tarkvara . Kasutajad loovad selle tarkvara ise ja tihti ei pane isegi tähele, kui oluline see on. Sõltuvalt sellest, kui asjatundlikult kasutaja kirjutatud tarkvara on integreeritud vaikerakendusepakettidesse, ei pruugi paljud kasutajad teha vahet originaalpakendil ning töökaaslaste poolt lisatud tarkvaral.

Teostus[muuda | redigeeri lähteteksti]

Arvuti tarkvara peab laadima arvuti "hoiusesse" (nagu näiteks kõvaketas või mälu). Peale tarkvara laadimist, on arvuti võimeline tarkvara käivitama. See sisaldab rakendustarkvara juhiste läbimist läbi süsteemi tarkvara riistvarale, mis lõpuks saab juhendid kui masinkoodis. Iga juhis põhjustab arvutis teatud operatsiooni teostamise - andmete liigutamine, arvutuse läbiviimine või muuta juhiste kontrollvoolu.

Andmete liigutamine tähendab tavaliselt andmete liigutamist ühest mälu kohast teise. Vahel sisaldab see andmete liigutamist mälu ja registrite vahel, mis võimaldavad protsessoris andmetele kiire juurdepääsu. Andmete liigutamine, eriti suurtes kogustes, võib olla ohtlik . Seega aeg-ajalt välditakse seda, kasutades andmete viitu. Arvutused sisaldavad lihtsaid toiminguid nagu näiteks muutuva andme osale väärtuse juurde lisamine. Keerulisemad arvutused võivad sisaldada nii mitmeid operatsioone, kui ka andmete elemente.

Kvaliteet ja töökindlus[muuda | redigeeri lähteteksti]

Tarkvara kvaliteet on väga oluline, eriti äri- ja süsteemitarkvara kvaliteet nagu näiteks Microsoft Office , Microsoft Windows ja Linux. Kui tarkvara on vigane, siis võib see kustutada isiku töö, arvuti kokku jooksutada ja teha muid ootamatuid asju. Paljud vead avastatakse ja kõrvaldatakse läbi tarkvara testimise. Kuid tarkvara testimine eemaldab harva - kui üldse - kõik vead. Mõned programmeerijad isegi ütlevad, et "igal programm on vähemalt üks viga" (Lubarsky seadus). Kõikidel suurtel tarkvarafirmadel, nagu näiteks Microsoft'il, Novellil ja Sun Microsystemsil, on oma tarkvara testimise osakonnad, mille konkreetne eesmärk ongi vaid tarkvara testime. Tarkvara saab kontrollida ühiktestimise, regressioonitestimise ja muude meetodite rakendamisel, mida tehakse käsitsi. Tavaliselt tehakse seda aga automaatselt, sest tihtipeale on testitava koodi suurus üsna suur. Näiteks NASA-l on äärmiselt ranged tarkvara testimise protseduurid paljude operatsioonisüsteemide ja kommunikatsiooni funktsioonide jaoks. Paljud NASA-l põhinevad operatsioonid suhtlevad ja tuvastavad üksteist läbi käskprogrammide, mida kutsutakse käsktarkvaraks. See võimaldab paljudel NASA-s töötavatel inimestel kontrollida ja hinnata üldiseid funktsionaalseid süsteeme. Programmid sisaldavad käsk tarkvara võimaldab riistvara insenerja süsteemi tegevuse toimida palju lihtsam koos. Programmide abil, mis sisaldavad käsktarkvara, suudavad riistvara ja tarkvara palju sujuvamalt koos töötada.

Litsents[6][muuda | redigeeri lähteteksti]

Tarkvara litsents annab kasutajale õiguse kasutada tarkvara litsentsitud keskkonnas. Mõnel tarkvaral on litsents, kui see ostetakse nii-öelda riiulilt, riistvaraga kaasas aga OEM litsent. Ülejäänud tarkvaraga kaasneb tasuta tarkvara litsents, andes saajale õigused muuta ja levitada antud tarkvara. Tarkvara võib olla ka vabavara või jaosvara kujul.

Patendid[muuda | redigeeri lähteteksti]

Tarkvara saab patenteerida mõningates, kuid mitte kõikides riikides. Tarkvarapatendid võivad tarkvara tööstuses olla vastuolulised - paljudel inimestel on selles osas erinevad vaated. Lahkarvamused tarkvarapatentide kohta on seotud konkreetsete algoritmide ja tehnikate kasutamisega, mida tarkvara sisaldab ning mida ei tohi teised dubleerida. Selle dubleerimist peetakse intellektuaalomandi ja autoriõiguse rikkumiseks, sõltuvalt rikkumise raskusastmest.

Disain ja rakendamine[muuda | redigeeri lähteteksti]

Tarkvara disain ja rakendamine varieerub tarkvara keerukusest sõltuvalt. Näiteks Microsoft Word'i tarkvara disainimine ja loomine võtab palju rohkem aega kui Microsoft Notepad'i arendamine ja disainimine programmide funktsionaalsete erinevuste tõttu.[7]

Tarkvara on tavaliselt disainitud ja loodud (kodeeritud/kirjutatud/programmeeritud) integreeritud arengu keskkondades (IDE) nagu Eclipse, Emacs ja Microsoft Visual Studio, mis suudavad protsessi lihtsustada ja koostada programmi. Nagu erinevates sektsioonides märgitud, loodakse tarkvara tavaliselt olemasoleva tarkvara ning rakenduse programmeerimisliidese (API), mille antud alumine tarkvara annab nagu GTK + , JavaBeans või Swing, peale. Rakenduse programmeerimisliidese raamatukogud on liigitatud erinevatel põhjustel. Näiteks JavaBeans raamatukogu kasutatakse ettevõtete rakenduste disainimiseks, Windows Forms raamatukogu kasutatakse graafilise kasutajaliidese (GUI) rakenduste disainimsel (nagu näiteks Microsoft Word) ning Windows Communication Foundation raamatukogu kasutatakse veebiteenuste disainimsel. Programmeerimise alusmõisted quicksort, paisktabel (inglis. hash table), rida (inglis. array) ja kahendpuu võivad olla tarkvara loomisel kasulikud. Programmi disainimsel, tugineb see rakenduse programmiliidesele.

Viited[muuda | redigeeri lähteteksti]

  1. "Software". computerhope.com Vaadatud 7.12.2013
  2. "Hardware vs Software". diffen.com Vaadatud 7.12.2013
  3. "Machine code (machine language)". Margaret Rouse (September 2005). Vaadatud 7.12.2013
  4. "Embedded Software—Technologies and Trends". Ebert, Cristof (Mai 2009). Vaadatud 7.12.2013
  5. "Microcode". Princeton University. Vaadatud 7.12.2013
  6. "Software". sezindia.org (2006) Vaadatud 7.12.2013
  7. "Design Patterns: Elements of Reusable Object-Oriented Software". Erich Gamma, Ralph Johnson, John Vlissides, Richard Helm. Addison-Wesley Professional 1994

Vaata ka[muuda | redigeeri lähteteksti]

Välislingid[muuda | redigeeri lähteteksti]