Programmatūras kvalitāte

Programmatūras izstrādes jomā biežāk sastopamie virzieni, kuros tiek aplūkota **programmatūras kvalitāte**, ir:
* atbilstība iepriekš izvirzītajām prasībām (Crosby, 1979);
* piemērotība lietošanai (Juran, 1988);
* pakāpe, līdz kurai tiek apmierinātas lietotāja vajadzības vai cerības (Deming, 1988; Ishikawa, 1985).

Kopumā **programmatūras kvalitāte** ir stāvoklis, kad komponente, sistēma vai process atbilst prasībām un/vai lietotāja/klienta vajadzībām un vēlmēm, kā arī produkta vai servisa īpašību kopums, kas liecina par produkta spēju nodrošināt pieprasītās un ietvertās vajadzības. Šis stāvoklis un īpašību kopums nodrošina uzticību un apmierinātību lietotājiem un klientiem, kas ir svarīgs faktors, lai panāktu sekmīgu un veiksmīgu produktu vai pakalpojumu izstrādi un piegādi tirgū. Programmatūras kvalitāte ir būtiska daļa no programmatūras testēšanas, kas nodrošina, ka izstrādātā programma vai sistēma atbilst noteiktām prasībām un izpilda tās funkcijas.

Kvalitātes rokasgrāmata ir dokuments, kas satur standartus, procedūras un direktīvas, kas var tikt adoptētas konkrētam programmatūras projektam. Jebkurš kompānijas darbinieks ir atbildīgs par kvalitātes nodrošināšanu. Visas izmantotās procedūras un standarti ir atkarīgi no konkrētajā projektā atkarīgajiem kvalitātes faktoriem.

Kvalitātes faktors ir programmatūras produkta aspekts, kurš ir svarīgs gan klientam, gan izstrādātājam. Šāda kvalitāte ir svarīga, lai nodrošinātu lietotāju apmierinātību un uzticēšanos programmai. Tāja ir dažādi faktori, kas ietver drošību, efektivitāti, saprotamību, uzturamību, stabilitāti, atkārtojamību un citus aspektus.

## Definīcijas
Kvalitītes raksturīga pazīme ir tā, ka kvalitāte nav viennozīmīgs jēdziens. Ir sastopamas daudzas un dažādas kvalitātes
definācijas, dažādi tās izpratnes un novērtēšanas veidi.

Crosbijs atzīmē, ja kvalitāte ir iepriekš nav izvirzītas prasības, tad gatavo produktu ir grūti novertēt. Līdz ar to jēdzieni "laba kvalitāte", "slikta kvalitāte" paliek tikai jēdzienu līmenī, jo katram cilvēkam attiecibā uz tiem ir sava izpratne un prasības. Kvalitātes prasībām ir jābūt definētām tā, lai tās var izmērīt un novērtēt.

Balstoties uz Demingu, kvalitāte ir jādefinē kā klienta apmierinātības jēdziens un nevis kā atbilstība izvirzātajām prasībām. Demings uzskata, ka, definējot kvalitāti, ir grūti klienta nākotnes vēlmes saistīt ar nomērāmām produkta raksturpazēmēm. Līdz ar to, lai produktu varētu izstrādāt, lietotājam ir jābūt apmierinātam ar cenu, kas viņam būs jāmaksā. Tas nav viegli, jo līdzko ir sasniegta klienta apmierinātība, tā vēlmes attiecībā uz produktu var mainiīies, un līdz ar to mainās ari klienta apmierinātāba. Produktam izvirzīto prasību sasniegšana ir neatņemams izstrādes uzņēmuma pienākums. Katram uzņemuma darbiniekam ir jābēt atbildīgam par sava darba kvalitāti.

Juran viedoklis attiecibā uz kvalitāti ir tāds, ka vārdu "kvalitāte" nevar lietot attiecibā uz lietotāju vajadzību un cerību apmierinātību, jo to ir ļoti grūti sasniegt. Tā vietā viņš piedāvā kvalitāti definet kā "gatavs lietošanai", kas norāda saistību ar izvirzītajām prasibām un produkta raksturpazēmēm. Juran piedāvāto definīciju principā var interpretēt tāpat kā Crosbija piedāvāto — atbilstiba iepriekš izvirzītajām prasibām.

Kopumā visi darbā aplūkotie skatījumi uz kvalitātes jēdzienu programminženierijas jomā atspoguļo četrus galvenos principus, kas ir saistīti ar kvalitāti:
* nepieciešamība nodrošināt kvalitatīvus izstrādes procesus;
* nepieciešamība definēt kvalitātes jēdzienu katrā konkretā gadijumā;
* nepieciešamība visiem dalībniekiem ievērot vienotu skatupunktu uz kvalitāti katrā konkrētā gadījumā;
* nepieciešamība ievērot kvalitātes raksturpazīmju savstarpējo saistēbu un nepretrunīgumu.

Vēl joprojām pasaulē turpinās diskusija par kvalitātes jēdzienu, tā piepildījumu un realizācijas iespējām organizācijās. Latvijā kvalitātes jēdziens un izpratne vadības līmenī ir neskaidra un neviennozīmīgi vērtēta.

## Kvalitātes sistēma
Kvalitātes sistēma ir domāta, lai identificētu nepieciešamos kvalitātes faktorus projekta sākumstadijā un piepildītu tos izstrādātajā sistēmā. Kvalitātes sistēma sastāv no trīs elementiem:
* **Standarts** ir projekta dokumenta apraksts, kas norāda dokumenta struktūru un pielietojamību, un prasību specifikācijas standarts uzskaita visas dokumenta daļas, sniedz informāciju par informācijas saturu un norāda uz dokumenta lietotājiem un mērķiem.
* **Procedūra** satur norādījumus kā tiek izpildīts konkrēts uzdevums projekta gaitā. Programmēšanas procedūra norāda izmantojamos standartus, pielietojamo testu kategorijas, aizpildāmos dokumentus, utt.
* **Direktīva** - instrukciju sērija kādu programmatūras izstrādes uzdevumu paveikšanai.

## Kvalitātes modeļi
thumb|400px|Paplašinātais kvalitātes dzīves cikls
Kvalitātes modelis ir noteiktas raksturpazīmes un to savstarpējā saistība, kuras veido bāzi, lai specificētu kvalitātes prasības un novērtētu kvalitāti. Vesturiski ir veidojušies un cits citu papildinājuši daudzi programmatūras kvalitātes modeli, ar kuru palidzību ir iespejams noteikt un novērtēt produkta kvalitāti.

Kvalitātes vadības modeļus var nosacīti iedalīt šādās grupās:
* Starptautiski atzīti modeļi, kuri tiek pielietoti biznesa, valsts pārvaldes un nevalstiskajā sektorā, piemēram, ISO 9001:2000, EFQM (no  — "Eiropas Kvalitātes vadības fonda izcilības modelis").
* Starptautiski atzīti modeļi, kuri tiek pielietoti valsts pārvaldē, piemēram, CAF ()
* Atsevišķu valstu izstrādāti un aprobēti modeļi, piemēram, KVIK (no  — "kvalitāte sinstruments inovāciju un kompetences attīstībai"), klientu hartas (Nīderlande)
* Atsevišķām jomām izstrādāti modeļi, piemēram, LVS EN ISO/IEC 17025

### Vienotais kvalitātes modelis
Vienotā kvalitātes modeļa (VKM) pamatā ir ņemts programmatūras kvalitātes modelis ISO 9126 un papildināts ar jaunām kvalitātes apakšpazīmēm. Modelim ir dīvu limeņu hierarhiska struktūra:
# limenis — kvalitātes pamata raksturpazīmes;
# limenis — kvalitātes raksturpazīmju apakšpazīmes, kuras savukārt tiek iedalītas:
#* pamata apakšpazīmes
#* papildu apakšpazīmes
#* neobligātās apakšpazīmes

Vienotais kvalitātes modelis ir veidots ar domu, ka to var izmantot visā programmatāras produkta kvalitātes dzīves ciklā.

[thumb|400px|[Latvijas Lauksaimniecības universitāte|Latvijas Lauksaimniecibas universitāte tiek piedāvāts studiju programmas kvalitātes modelis, kurš ir iegūts no vienotā kvalitātes modeļa, veicot tā pielāgošanu atbilstoši modeļa lietošanas procedūrai. Par pamata raksturpazimem ir izveletas: funkcionalitāte, lietojamība, efektivitāte, uzturamāba un pārnesamība.]]
VKM raksturpazīmju un apakšpazīmju skaidrojums attiecibā uz LLU programmu:
* **Funkcionalitāte** (*vai programmā ir ietveras visas nepieciešamās zināšanas un prasmes*):
** *derīgums* — ir aktuāla, atbilst virziena mērķiem un darba tirgus prasibām
** *pareizība* — ietvertās zināšanas un prasmes ir apgūstamas un atbilst piešķiramās kvalifikācijas/grāda prasibām
** *sadarbspēja* — programmā sasniedzamie rezultāti atbalsta piedalīšanos apmaiņas un nodrošina nepieciesamās zināšanas tālākām studijām
** *funkcionālā atbilstība* - programma sagatavota atbilstoši normatīvajiem dokumentiem, ir akreditēta
* **Lietojamība** (*vai ir viegli mācit un mācities*):
** *saprotamāba* — programmas plāns ir sabalansēts un loģiski strukturēts, izklāstījuma stils atbilst priekšzināšanu līmenim
** *apmäcämiba* — programmas teoretisko un praktisko zināšanu apguve ir lidzsvarota, mācibu materiāli ir definēti un pieejami
** *prezentējamāba* — mācābspēku oratoru prasmes ir pietiekamas
** *lasāmība* — programmas aprakstošie dokumenti ir sagatavoti labā lasāmā valodā, atbilstoši normatīvajiem dokumentiem
** *cilvēciskais faktors* — pakāpe, līdz kurai programmas realizāciju var iespaidot konkrēts mācībspēks
* **Efektivitāte** (*vai programma ir efektīva*):
** *laikietilpība* — programmas apjoma atbilstība apgūšanai atvēlētajam laikam
** *resursu izmantošana* — programmas realizācijai ir nepieciešamie resursi
* **Uzturamiba** (*vai studiju programmu ir viegli uzturet*):
** *analizējamība* — programmas plāns, un tā saturs ir analizējams
** *mainämrba* — programmu ir iespejams modificēt, nepasliktinot tās apmācāmību
** *stabilitāte* — programmas saturu nav nepieciešams atjaunināt/modificēt studiju gada laikā
** *pārbaudāmība* — studiju programmas mērķa sasniegšana ir pārbaudāma
** *uzturamības atbilstība* — programmai ir izstrādāti nepieciešamie normatīvie dokumenti, programmas kvalitātes novērtējums ir pieejams
* **Pārnesamiba** (*vai programmu ir viegli pielāgot citai auditorijai*):
** *līdzāspastāvēšana* — programma neprasa specifiskas priekšzināšanas
** *adaptējamība* — programmas pielāgošana citai valodai vai citai kultūras telpai neprasa izstrādāt to pilnīgi no jauna
** *aizvietojamība* — pakāpe, līdz kādai programmas rezultātus var iegūt citā programmā
** *pārnesamības atbilstība* — atbilstība normatīviem dokumentiem, kas regulē studentu apmaiņas programmas

## Kvalitātes nodrošināšana un kvalitātes kontrole

Programmatūras kvalitātes kontrole dažreiz tiek lietota apmaiņā ar programmatūras kvalitātes nodrošināšanu. Bet tiem ir atšķirīgas definīcijas. Programmatūras kvalitātes kontrole koncentrējas uz kļūdu atklāšanu faktiskajā programmatūras produktā. Tomēr programmatūras kvalitātes nodrošināšana attiecas uz dažādu darbību virkni. Tās ir procesi vai soļi, kuri tiek veikti, lai pārbaudītu programmatūras produkta kvalitāti. Tā novērš atkārtojumus izstrādātājiem. Kvalitātes nodrošināšana optimizē programmatūras izstrādes procesu.

Citiem vārdiem sakot, programmatūras kvalitātes kontrole ir produktam orientēta, bet kvalitātes nodrošināšana pēta visu izstrādes procesu. Kvalitātes nodrošināšana ir veltīta solījumu pārbaudei programmatūras izstrādes ciklā. Kvalitātes nodrošināšana definē standartus un metodes, kas izmantotas izstrādē. Kvalitātes kontrole pārbauda un apstiprina, ka ievēroti labākie darba veidi.

## Atsauces