Programmatūra

Programmatūra ir datoru programmas, procedūras un ar tām saistītā dokumentācija un dati, kas nepieciešami datoru sistēmas darbībai un tiek glabāti datora datu nesējā noteiktam mērķim.

Veidi

Pēc mērķa
Programmas parasti tiek iedalītas:
 Lietojumprogrammatūra jeb lietotne ir programmatūra, kas paredzēta kādu konkrētu datu apstrādes sistēmas lietotājam nepieciešamu specifisku uzdevumu risināšanai un kas satur attiecīgās lietojumprogrammas un lietojumpakotnes. Tipiskas lietojumprogrammas ir biroja lietujumprogrammu paketes, biznesa programmatūra, izglītojošā programmatūra, datu bāzes un datorspēles. Lielākā daļa lietojumprogrammatūras ir ar grafisko lietotāja saskarni.
 Sistēmprogrammatūra ir lietojumneatkarīga programmatūra, kas atbalsta lietojumprogrammatūras darbināšanu. 
 Operētājsistēma ir programmatūra, kuras galvenie uzdevumi ir nodrošināt lietotājam iespējas vadīt datora darbu, piemēram, atvērt vajadzīgo lietojumprogrammu, kā arī nodrošināt programmatūras un aparatūras kopdarbību, piemēram, vajadzīgās informācijas saglabāšanai atmiņas ierīcē.
 Dzinis jeb draiveris ir programma kas vada dažādu procesu norisi vai ierīču darbību, lai saskaņotu šo procesu izpildi vai ierīču sadarbību ar datoru. Ierīču draiverus lieto, lai katrai programmai, kas grib lietot kāda veida ierīci, nebūtu jāiekļauj visu attiecīgā veida ierīču vadības kodu. Draiveri nodrošina standartizētu kāda veida ierīču piekļuves interfeisu.
 Utilītprogramma ir programmu kopa, kas nodrošina papildpakalpojumus lietotājiem uzturēt un kopt datorus, ko nesniedz operētājsistēma.
 Ļaunprogrammatūra ir programma, kas patvaļīgi pievienojas datnēm un to darba laikā veic daţādas nevēlamas darbības: bojā datnes, mapes un aprēķinu rezultātus, dzēš vai piesārņo atmiņu, kā arī citādi traucē datora darbību.

Pēc izpildes veida
 Servera programmatūra, tostarp Tīmekļa lietojumprogrammas, kas parasti darbojas tīmekļa serverī un tīmekļa pārlūkprogrammās izvada dinamiski ģenerētas tīmekļa lapas, kas darbojas serverī.
 Spraudnis un paplašinājumi ir programmatūra, kas paplašina vai pārveido citas programmatūras funkcionalitāti, un, lai tā darbotos, ir jāizmanto šī programmatūra.
 Iegultā programmatūra ir iegultā datora programmatūra, ko izmanto sistēmā, kurā šis dators ir integrēts, specializētu aprēķinu veikšanai.

Programmatūras rīks
Programmatūras rīks jeb programmrīki () ir arī programmas, ko izmanto citu programmu izstrādāšanai. Tās var būt teksta redaktors, kompilators, ielādes, atkļūdošanas un citas programmas, ko izmanto visā programmatūras izstrādes procesā, ieskaitot izstrādāšanas vadību un kvalitātes nodrošināšanu.

Tēmas

Arhitektūra
 Platformprogrammatūra: Ietver BIOS, ierīču draiverus, operacionālās sistēmas un parasti arī grafisko lietotāja saskarni, kas, visi kopā, nodrošina lietotājam iespēju mijiedarboties ar datoru un tā perifērijas iekārtām. Platformas programmatūra bieži vien nāk komplektā ar datoru un lietotājs var nemaz nenojaust par tās eksistenci.
 Lietojumprogrammatūra: Lietojumprogrammas ir tas, ko vairums lietotāju saprot ar vārdu programmatūra. Tipiski piemēri ir biroja lietojumprogrammu paketes un videospēles. Lietojumprogrammatūra bieži vien tiek iegādāta atsevišķi no datora. Dažreiz lietojumprogrammas tiek iekļautas datora komplektācijā, taču tas nemaina to, ka tās darbojas neatkarīgi. Lietojumprogrammas gandrīz vienmēr ir neatkarīgas no operacionālās sistēmas, lai gan visbiežāk darbojas tikai noteiktās platformās.
 Lietotāja rakstīta programmatūra (): Lietotāja programmatūra tiek veidota, lai pielāgotos konkrēta lietotāja vēlmēm. Tā ietver izklājlapu šablonus, tekstprocesoru makrodefinīcijas, zinātniskās simulācijas, grafikas un animācijas skriptus. Pat e-pasta filtri ir sava veida programmatūra.

Kvalitāte un uzticamība

Kvalitāte ir produkta vai servisa īpašību kopums, kas liecina par produkta spēju nodrošināt pieprasītās un ietvertās vajadzības. Kvalitāti var iespaidot vairāki faktori, piemēram, drošība, efektivitāte, saprotamība, uzturamība, stabilitāte, atkalizmantojamība, utt. Katrai sistēmai kāds no faktoriem ir nozīmīgāks un kritiskās, bet cits ir mazāk būtisks. Kvalitātes faktors ir svarīgs gan pasūtītājam, gan izstrādātājam. Kvalitātes sistēmai būtu jānodrošina, lai kvalitātes faktori, par kuriem pasūtītājs un izstrādātājs ir vienojušies sistēmas izstrādes sākumā, būtu realizēti izveidotajā sistēmā.

Standarts ir projekta dokumenta apraksts, kas norāda tā struktūru un pielietojamību. Prasību specifikācijas standarts uzskaita visas dokumenta daļas, sniedz informāciju par to, kādai informācijai jābūt katrā no tām un uzskaita turpmākos dokumenta lietotājus un lietošanas mērķus.

Procedūra ietver norādījumus par to, kā izpildīt konkrētus uzdevumus projekta gaitā. Piemēram, programmēšanas procedūra norāda izmantojamos standartus, pielietojamo testu kategorijas, aizpildāmos dokumentus u.c.
Kvalitātes sistēma ietver standartus, procedūras un norādes arī testēšanai. Tās nodrošina, ka programmatūra tiek izstrādāta un pārbaudīta atbilstoši noteiktiem kvalitātes kritērijiem.
Programmatūras kvalitātes nodrošināšana sastāv no trim daļām:
 preventīvās darbības - novērst kvalitātes trūkumu programmatūrā (procedūras un standarti);
 detektīvās darbības - atklāt kvalitātes trūkumus programmatūrā (testēšana);
 korektīvās darbības - novērst atklātās problēmas programmatūrā un mazināt problēmas atkārtošanās iespēju, uzlabojot procedūras un standartus.

Autortiesības

Latvijā darbojas Autortiesību likums un Vispasaules intelektuālā īpašuma organizācijas (WIPO) līgums par autortiesībām. Datoru lietotājiem jāievēro Autortiesību likuma normas, kas attiecas uz grāmatām, video un mūzikas diskiem un kasetēm, kā arī programmatūru. Datorprogrammu kopēšanu, izplatīšanu vai izmantošanu bez autortiesību īpašnieka atļaujas sauc par datorprogrammu pirātismu. Nelegālā datorprogrammu izmantošana, piemēram, ir:
 viena legāli iegādāta programmatūras kompaktdiska instalēšana uz vairākiem datoriem, ja licencē vai līgumā ir norādīts, ka to atļauts instalēt tikai uz viena datora;
 programmas kopēšana instalēšanai un izplatīšanai bez autora atļaujas;
 programmatūras instalēšana no nelegāli iegādāta diska;
 nelegālas datorprogrammu kopijas lejupielāde no interneta.

Internetā lejupielādei bez maksas tiek piedāvāta gan programmatūra, gan cita veida datnes (teksti, attēli u. c.). Ne vienmēr to publicētājiem ir tiesības tos izplatīt lietošanai citiem. Tāpēc pirms lejupielādes nepieciešams pārliecināties, vai to kopēšana ir legāla.

Licence

Programmatūras licence ir lietotāja un programmatūras izstrādātāja juridiska vienošanās, kas nosaka programmatūras lietotāja tiesības un pienākumus, kā arī programmatūras izplatītāja atbildību. Par pamatu programmas licencei tās izstrādātājs (ražotājs) var ņemt jau gatavus paraugus vai sastādīt to pats, tāpēc licences saturs un garums var būt ļoti atšķirīgs. Parasti licencē tiek iekļauta šāda informācija:
 programmas licences tips
 lietotāja programmas izmantošanas ierobežojumi un izplatīšanas tiesības
 izstrādātāja autortiesības un garantijas

Tipi

Atkarībā no to izmantošanas noteikumiem, izšķir vairākus programmatūras tipus:
 Komercprogrammatūra ir programmatūra, kas jāiegādājas par maksu. Vienai un tai pašai programmatūrai var būt vairākas atšķirīgas cenas atkarībā no tās izmantošanas mērķa, piemēram, mazāka cena izglītības iestādēm vai to iegādājoties kopā ar jaunu datortehniku.
 Izplatāmprogrammatūra () ir programmatūra, kuru, lai pārbaudītu tās lietojamību, izplata bez maksas.
 Bezmaksas programmatūra jeb brīvprogrammatūra () ir datorprogramma, ko lietotājs var izmantot bez maksas.
 Atklātā programmatūra jeb atvērtā pirmkoda programmatūra () ir programmatūra, kuras pirmkods (programmas teksts) ir atklāti pieejams ne tikai tās veidotājiem, bet arī lietotājiem.

Patents
Patents ir ekskluzīvas monopoltiesības, kas valsts garantētas uz izgudrojumu noteiktā laika periodā. Patenta īpašnieks var aizliegt citiem lietot izgudrojumu, ko patents aizsargā, pārdot patentu vai piešķirt licences, t.i., izmantošanas atļaujas, kā arī brīvi vienoties par cenu jebkurai no šīm rīcībām. Patenta aizsardzība veicina izgudrojumu publiskošanu un padara to pieejamu citiem, vienlaikus nodrošinot atpelnīt izgudrojuma izstrādes ieguldītos līdzekļus. Taču ir svarīgi atzīmēt, ka šāda aizsardzība var būt trūkumi, piemēram, to var pārkāpt, nemaz nezinot, ka šāds patents eksistē.
Dažās valstīs, tostarp Savienotajās Valstīs, patents tiek izsniegts arī programmatūrai, kas dod tās izstrādātājiem iespēju aizsargāt savus jaunos un inovatīvos IT risinājumus.

Lietotāja saskarne

Lietotāja saskarne jeb interfeiss ir veids, kādā lietotājs var mijiedarboties ar datoru. Izšķir divu veidu lietotāja saskarnes - rakstzīmju un grafiskā:

Rakstzīmju lietotāja saskarne
Pirmajos IBM PC lietoja disku operētājsistēmu – DOS, kas izmantoja rakstzīmju orientētu lietotāja saskarni (). Tajā lietotājs instrukcijas ievadīja teksta veidā, izmantojot tastatūru. Šī saskarne nav lietotājdraudzīga, jo lielāko daļu operāciju lietotājam vajag veikt pašam, iedziļinoties datņu izveidošanas, izvietošanas un dzēšanas fiziskajās operācijās, kā arī iegaumējot programmatūras darbināšanas komandas.

Grafiskā lietotāja saskarne
Grafiskā lietotāja saskarne () ir operētājsistēmas papildu daļa, kas satur izvēlnes, programmu logus, ikonas un citus grafiskus elementus. Tie ļauj lietotājam izvēlēties komandas, darbināt programmas, kā arī strādāt ar datnēm vai citiem objektiem, norādot to attēlus (ikonas). Izvēli var izdarīt, izmantojot tastatūru vai peli. GUI veicina efektīvāku datora lietošanu un atvieglo lietotāja mijiedarbība ar datoru.

Izstrāde

Izstrādes procesā ir svarīgi izprast, kā izveidot datorizētas sistēmas. Programmatūras izstrāde parasti sastāv no vairākiem posmiem:
 Analīze. Pirms sistēmas izstrādnes ir nepieciešams definēt tai veicamos uzdevumus. Šajā posmā analizē esošo sistēmu darbību, ja tādas ir, aptaujājot lietotājus par pastāvošajām problēmām un noskaidrojot, kādai vajadzētu būt jaunajai sistēmai.
 Projektēšana. Visas prasības jaunajai sistēmai tiek sadalītas visu prasību grupas, kas attiecas uz aparatūru un programmatūru. Veido detalizētus uzdevumus un aprēķina nepieciešamo cilvēkstundu skaitu un izmaksas, kas nepieciešamas projekta veikšanai.
 Programmēšana. Šajā posmā tiek detalizēti risināti problēmas algoritmi un tie tiek pierakstīti atbilstošajā programmēšanas valodā. Veic datu struktūru izvēli un kodēšanu. Programmēšanas laikā tiek pārbaudīts, vai programma atbilst uzdevuma prasībām, un veic atkļūdošanu.
 Testēšana. Šajā  posmā tiek veikta sistēmas testēšana, lai pārliecinātos, ka tā darbojas pareizi un visas nepieciešamās programmatūras vajadzības ir realizētas. Izstrādes laikā var rasties problēmas un alternatīvi risinājumi, kas var prasīt pārskatīt iepriekšējos posmus.

Atjaunināšana
Programmatūras ražotāji regulāri izdod jaunas programmatūras versijas, un šīm jaunajām versijām ir vairāki iemesli:
 Kļūdu novēršana no iepriekšējām versijām - jaunās versijas paredzētas labot problēmas un trūkumus, kas tika konstatēti iepriekšējās versijās, uzlabojot programmas stabilitāti un drošību.
 Jaunu papildu iespēju piedāvāšana - jaunās versijas var ieviest jaunas funkcijas, uzlabot esošās vai piedāvāt jaunus risinājumus, kas paplašina programmas iespējas un funkcionalitāti.
 Lietotājam draudzīgākas saskarnes izveide - jaunās versijas var iekļaut lietotājam draudzīgāku un intuitīvāku lietošanas saskarni, kas palīdz lietotājiem vieglāk izprast programmas darbību un funkcijas.

Izmantojot jaunākas programmatūras versijas, nereti ir nepieciešams arī dators ar jaunāku operētājsistēmas versiju un lielāku veiktspēju. Ja kāds fails ir sagatavots viena un tā paša nosaukuma lietotnes vienā versijā, tad var rasties problēmas to atvērt citā versijā, piemēram, datne var neatvērties vispār vai atvērties ar izmaiņām noformējumā u.tml. Lai novērstu šādas problēmas, lietotnēs bieži ir iespēja saglabāt datnes vecākās versijās vai citā formātā. Tas palīdz saglabāt datnes lietojamību un atvēršanas iespējas dažādās programmatūras versijās.

Atsauces