1.1. Konspekts Īss pÄrskats par kursu Izmantoti materiÄli no ... - Fizmati
1.1. Konspekts Īss pÄrskats par kursu Izmantoti materiÄli no ... - Fizmati
1.1. Konspekts Īss pÄrskats par kursu Izmantoti materiÄli no ... - Fizmati
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>1.1.</strong> <strong>Konspekts</strong><br />
Īss pārskats <strong>par</strong> <strong>kursu</strong><br />
<strong>Izmantoti</strong> materiāli <strong>no</strong> Project Management For Informatio Systems, James Cadle &<br />
Donald Yeates, 3rd edition, 2001<br />
Sistēma ir jāmaina ik pa 5 gadiem. Nāk jauna tehnika, programmēšanas valodas un<br />
iespējas.<br />
Programmatūras izstrādes metodoloģijas<br />
Ūdenskrituma modelis<br />
Ūdenskrituma modeļa vēsture aizsākas agrajos 70s gados. Šī modeļa pirmā<br />
<strong>par</strong>ādīšanas ir 1970 W Royce publikācija, kurā tika <strong>par</strong>ādīta iespēja formalizēt<br />
izstrādes procesus. Ūdenskrituma modelī sistēmas izstrāde ir sadalīta vairākās secīgās<br />
aktivitātēs vai fāzēs, kuras katras aktivitātes rezultāts tiek izmantots <strong>par</strong> ieejas<br />
informāciju nākamajai aktivitātei. Mūsdienās <strong>par</strong> ūdenskrituma modeli sauc jebkuru<br />
izstrādes metodoloģiju ar secīgām aktivitātēm neatkarībā <strong>no</strong> fāžu skaita un specifikas.<br />
Šim modelim ir virkne pozitīvu īpašību. Katras aktivitātes beigās tiek pielietota<br />
saražoto produktu verifikācija un validācija, kas palīdz sasniegt zināmu kvalitāti.<br />
Gadījumos, kad pasūtītāja prasības ir labi zināmas un saprotamas, ūdenskrituma<br />
modelis ir īstajā vietā.<br />
‘b’ modelis<br />
Viens <strong>no</strong> ūdenskrituma modeļa trūkumiem ir uzturēšanas fāzes neadekvāta<br />
pielietošana. Tā tiek uztverta kā atsevišķa fāze, it kā tai būtu atsevišķa ieejas un izejas<br />
informācija. Ūdenskrituma modelī netiek aprakstīta būtiskas uzturēšanas fāzes<br />
atšķirības <strong>no</strong> pārējām aktivitātēm. Jāpatur prātā, ka lielākā daļa darbietilpības, kura<br />
tiek patērēta programmatūras produkta dzīves cikla laikā, tiek patērēta uz uzturēšanas<br />
aktivitātēm.
‘b’ modeli izstrādāja N. Birrell un M. Ould, adresējot šo ūdenskrituma modeļa vāju<br />
vietu. Modelis ieguvis šādu <strong>no</strong>saukumu tāpēc, ka tā diagramma ir līdzīga ‘b’ burtam.<br />
Modelis būtībā ierosina katru izmaiņu uzturēšanas procesā uzskatīt <strong>par</strong> atsevišķo<br />
izstrādi, kurai ari ir jāiet cauri <strong>no</strong>teiktām fāzēm un aktivitātēm.<br />
‘V’ modelis<br />
Šajā modelī, kurš ir tikai vēl viena variācija <strong>par</strong> ūdenskrituma modeļa tēmu, veiksmes<br />
fāzes ir attēlotas burta ‘V’ veidā. V-veida modeļa piemērs ir attēlots zīmējumā zemāk.
Šajā diagrammā kreisais V zars <strong>par</strong>āda progresu sākot ar analīzi un projektēšanu līdz<br />
kodēšanai un pieaugošam sistēmas sadalījumam komponentēs. Labais V zars attēlo<br />
progresējošu sastāvdaļu salikšanu un testēšanu, beidzoties ar programmatūras<br />
produkta piegādi.<br />
Šī modeļa svarīgā īpašība ir dažādu fāžu savastarpējas atbilstības <strong>par</strong>ādīšana.<br />
Piemēram, patstāvīgas programmas vai moduļi tiek testēti pret patstāvīgo moduļu<br />
projektējumiem, integrētā sistēmai tiek veikta sistēm-testēšana pret sistēmasp<br />
projektējumu un visbeidzot gala sistēmai gala lietotāji veic akcepttestēšanu pret<br />
sākotnējām prasībām, <strong>no</strong>formētām prasību specifikācijā. Šajā modelī ar šīs atbilstības<br />
palīdzību, <strong>par</strong>ādās arī kvalitātes <strong>no</strong>droši<strong>no</strong>šie elementi.<br />
‘V’ modelis ir interesants projekta pārvaldniekam arī cita iemesla dēļ. Gadījumos, kad<br />
projektā tiek pieaicināti ārējie apakškontraktori, šis modelis <strong>no</strong>drošina skaidru<br />
izstrādes darba uzdevumu definēšanu un <strong>no</strong>devum pārbaudi.<br />
Pasoļu izstrādes modelis<br />
Arī pasoļu izstrādes modelis ir tikai kārtējais ūdenskrituma modeļa variants. Šo<br />
modeli pielieto gadījumos, kad projekta rezultāti tiek piegādāti pakāpeniski, katras<br />
fāzes beigās. Šis modelis padara testēšanas un piegādes procesus caurskatāmākus un<br />
vieglāk pārvaldāmu, jo gala lietotājs tiek iepazīstināts ar sistēmu jau projekta laikā.<br />
Dažreiz var šķist sarežģīti sadalīt sistēmu sastāvdaļās, kuru izstrāde un piegāde var<br />
būt neatkarīga. Parasti pēdējā piegāde satur visu iepriekš piegādāto sastāvdaļu<br />
integrāciju vie<strong>no</strong>tā produktā, kuru nepieciešams pārtestēt <strong>no</strong> sākuma līdz galam.<br />
Pasoļu piegāde ir saistīta ar ieviešanas procesu, tāpēc jau pirms soļu definēšanas, ir<br />
jābūt <strong>no</strong>skaidrotām visām prasībām. Pasoļu izstrādes modelis nav ieteicams projektos,<br />
kuros prasības nav skaidri definētas vai zināmas.<br />
Spirāles modelis<br />
Spirāles modelis atšķirās <strong>no</strong> ūdenskrituma modeļa, piedāvājot evolūcijas vai iteratīvu<br />
pieeju sistēmas izstrādei. Ūdenskrituma modelis fokusējas uz fāze-pēc-fāzes procesu
ar gala produktu <strong>no</strong> iepriekšējās fāzes, <strong>no</strong>nākot nākamajā. Šis piegājiens strādā labi<br />
gadījumos, kad prasības ir labi saprotamas un definētas, kā arī izstrādes vide ir<br />
pietiekami stabila. Ļoti bieži gadās situācijas, kad prasības nav zināmas gala<br />
lietotājiem, nav skaidri definējamas vai nav skaidrības <strong>par</strong> sistēmas pielietojumu<br />
praksē. Šajās situācijās var pielietot evolūcijas pieeju. Evolūcijas modelis <strong>par</strong>edz<br />
vairāku soļu ciklisku atkārtošanu, sniedzot arvien detalizētākas un skaidrākas<br />
prasības, kā arī atkārtojot dzīves ciklu vairākas reizes.<br />
Sākotnējā spirāles modeļa autors ir Barry Boehm. Tas ir attēlots zīmējumā zemāk.<br />
Projekts sākas ar spirāles centru un attīstās uz ārpusi. Atrodoties centrā, prasības ir<br />
grūti saprotams, bet tiek arvien vairāk papildinātas, virzoties uz priekšu pa spirāli.<br />
Kopējās projekta izmaksas pieaug ar katru nākamo soli pa spirāli. Modelis ir sadalīts<br />
četros kvadrātos. Kreisajā augšējā kvadrātā tiek <strong>no</strong>teikti mērķi un identificētas<br />
alternatīvas un ierobežojumi. Augšējā labajā kvadrātā alternatības ir <strong>no</strong>vērtētas un<br />
riski identificēti un izskatīti. Apakšējā labajā kvadrātā <strong>no</strong>tiek izstrādes uzdevumu<br />
risināšana. Apakšējā kreisejā kvadrātā tiek plā<strong>no</strong>ta nākamā fāze vai iterācija.<br />
Bohema spirāles modelis piedāvā svarīgu koncepciju, kurā mērķu <strong>no</strong>teikšana, risku<br />
pārvaldība un plā<strong>no</strong>šana ir ieļauti vispārējā ciklā.<br />
Programmatūras izstrādes projektos lietotie standarti<br />
Programmatūras izstrādes projektos tiek lietoti dažādi profesionālie standarti,<br />
piemēram,<br />
Sistēmas darbības koncepcija LVS 75:1996<br />
PPS – programmatūras prasību specifikācija LVS 70():1996<br />
Programmatūras projektējuma apraksts LVS 72:1996<br />
Lietotāja ceļvedis LVS 66:1992
Ir vairākas metodes, kā <strong>no</strong>fiksēt pasūtītāja vajadzības:<br />
Sistēmas darbības koncepcija<br />
Programmatūras prasību specifikācija (funkcionālās un nefunkcionālās prasības)<br />
Projektētājs izvēlas realizācijas vidi un līdzekļus. Nereti projektētāja lomu uzņemas<br />
programmētājs.<br />
Programmatūras ieviešanas process ir ļoti sarežģīts – tas ir saistīts ar sistēmas<br />
iedzīvināšanu pasūtītāja organizācijā, personāla apmācību.<br />
Uzturēšanā <strong>no</strong>tiek sistēmas kļūdu labošana un pasūtītāja atbalsts. Šajā posmā ir<br />
jācīnās ar izmaiņām. Vidēji sistēmas uzturēšana ilgst gadus, pēc kuriem sistēma<br />
<strong>par</strong>asti ir jāpārtaisa.<br />
1.2. Standarbu ievērošana IT projektu pārvaldībā<br />
Kas ir daudzinātais IEEE/EIA J-STD-016<br />
jeb kādus standartus lietot informācijas sistēmu izstrādē<br />
Likumi un standarti: obligātība un brīvprātība<br />
Neviens citas valsts likums vai kādas citas virsnacionālas institūcijas direktīva Latvijā<br />
nevar būt spēkā, kamēr to nav apstiprinājusi Saeima. Savukārt, ikvienai personai<br />
jāievēro tās valsts likumi, kurā tā atrodas. Te valda obligātība.<br />
Citādi ir ar standartiem. Pretēji tam, kā bija PSRS, standarti paši <strong>par</strong> sevi ir tikai<br />
ieteikumi, kuru ievērošana vai neievērošana, arī Latvijā, ir brīvprātīga. Nevienam<br />
standartam nav likuma spēka. Standarta ievērošanu padarīt obligātu var vai nu<br />
<strong>par</strong>edzot šādu prasību līgumā, vai arī kādā <strong>no</strong>rmatīvā aktā, piemēram, likumā,<br />
Ministru Kabineta <strong>no</strong>teikumos, firmas prezidenta rīkojumā u.tml. Taču standartu<br />
neobligātā daba nebūt ne<strong>no</strong>zīmē, ka tie būtu bez apdoma jāig<strong>no</strong>rē. Parasti standartos<br />
akumulēta plaša pieredze un tie balansē starp to, ko gribas, un to, ko praktiski var<br />
sasniegt. Šādas pieredzes ig<strong>no</strong>rēšana reti kad ved pie laba.<br />
Standarti kā kompromiss<br />
Kam vajadzīgi standarti, ja to ievērošana nav obligāta Informācijas teh<strong>no</strong>loģija un, it<br />
īpaši, programmēšana ir ļoti pateicīgs piemērs atbildei uz jautājumu.<br />
Akadēmiski izglītotiem datorprogrammu izstrādātājiem labi zināms (ir teorēmas,<br />
kurās tas pierādīts), ka nav nekādas iespējas <strong>no</strong>skaidrot, vai datorprogramma dara to,<br />
kas <strong>par</strong>edzēts, un nedara neko tādu, kas nav <strong>par</strong>edzēts. Mēs varam padarbināt<br />
programmu vienreiz ar vieniem datiem, otrreiz - ar citiem, trešoreiz utt., un katru reizi<br />
redzēt, ka <strong>no</strong>tiek tiešām tas, ko mēs gribējām sagaidīt. Taču vēl ir tūkstošā, miljonā un<br />
vēl arī citas reizes, kad būs citi dati. Kas būs tad, uzzināsim tikai tad, kad šī reize būs<br />
pienākusi. Tā mēs varam testēt programmu līdz pasaules galam, bet kādreiz taču tā arī<br />
"jālaiž darbā". Tātad datorprogrammas pasūtītājs un lietotājs vienmēr varēs gribēt un<br />
prasīt, lai programma būtu labāk uztaisīta un vairāk pārbaudīta un atkļūdota. Bet vai<br />
viņi var arī gaidīt "pasaules galu" un apmaksāt šo teorētiski nebeidzamo darbu No<br />
juridiskā viedokļa programmētājam ir faktiski neiespējami pārmest kļūdas programmā<br />
jau minēto apsvērumu dēļ. Tomēr gluži bezatbildīgu programmētāja rīcību arī
nedrīkst pieļaut, jo zaudējumi programmas ne<strong>par</strong>eizas darbības rezultātā dažkārt var<br />
būt katastrofāli. Ko darīt<br />
Ja nu lietotājs, cietis zaudējumus, iesūdzēs programmētāju tiesā, ko darīt tiesnesim<br />
(kurš vairumā gadījumu nav programmēšanas speciālists un viņam tādam arī nav<br />
jābūt) Viņš jautās ekspertiem, vai programmētājs varēja garantēti nepieļaut kļūdu un<br />
zaudējuma raša<strong>no</strong>s. Eksperti godprātīgi atbildēs, ka tas ir teorētiski neiespējami. Tad<br />
tiesnesis jautās, vai programmētājs ir darījis visu saprātīgi nepieciešamo, lai<br />
nepieļautu zaudējumus. Kas ir saprātīgi nepieciešamais Tas ir Standarts! Standarts(-<br />
i) ir pašreizējā teh<strong>no</strong>loģijas attīstības līmenī nepieciešamais, kompromiss starp gribēto<br />
un praktiski iespējamo, vie<strong>no</strong>šanās starp pasūtītāju un izpildītāju, balstoties uz pasaulē<br />
uzkrāto pieredzi. Ja programmētājs būs disciplinēti izpildījis visas <strong>no</strong>runāto standartu<br />
prasības, tiesnesis būs spiests viņu attais<strong>no</strong>t un zaudējumus atzīt <strong>par</strong> stihisku nelaimi.<br />
Toties līgumā <strong>no</strong>runāto standartu neievērošanas gadījumā pilnīgi pamatoti tiktu<br />
<strong>no</strong>tiesāts izstrādātājs.<br />
Starp citu, arī ierēdnis, kas būs pasūtījis programmas pie sava "čoma", ne<strong>no</strong>slēdzot<br />
detalizētu līgumu <strong>par</strong> disciplinētu standartu ievērošanu, var smagi un pelnīti ciest <strong>no</strong><br />
sava priekšnieka.<br />
Informācijas teh<strong>no</strong>loģijas valsts standartu sistēma<br />
Vai Latvijai nepieciešami pašai savi informācijas teh<strong>no</strong>loģijas standarti Pareizāk<br />
laikam būtu vaicāt, vai Latvijai vispār pietiktu resursu liela daudzuma standartu<br />
izstrādei. Arī mūsu virzība uz integrāciju Eiropā prasa harmonizāciju ar<br />
starptautiskiem standartiem.<br />
Tāpēc izstrādājami tikai tādi standarti, kas nepieciešami Latvijas kā latviešu valsts<br />
eksistencei. Skaidrs, ka tie gandrīz vienīgi skars latviešu valodas lietošanas iespēju<br />
<strong>no</strong>drošināšanu un unifikāciju. Pārējie standarti būs vai nu ISO un Eiropas Savienības<br />
standartu tulkojumi, vai arī, ja tie izrādītos retāk vai šaurāk lietojami, tiks iecelti valsts<br />
standarta rangā pat bez tulkošanas.<br />
Ir vērts piezīmēt, ka ikvienas valsts teritorijā starptautiskiem standartiem ir tikai<br />
ieteikumu raksturs, bet spēkā ir tikai tie, kas iecelti valsts standarta rangā. Tomēr, kā<br />
jau minējām, pat pēdējiem nav likuma spēka.<br />
Standartizācijas procesu Latvijā administrē Eko<strong>no</strong>mikas ministrijas pārraudzībā esošā<br />
SIA "Latvijas Standarts". Šī institūcija pārstāv Latvijas Republiku starptautiskajās<br />
standartizācijas organizācijās ISO (Starptautiskā Standartizācijas organizācija) un<br />
CEN (Eiropas Standartizācijas organizācija), glabā un izplata standartu tekstus, kā arī<br />
organizē valsts standartu izstrādi vai starptautisko standartu adaptāciju. Katrā<br />
tautsaimniecības <strong>no</strong>zarē, kurā <strong>no</strong>tiek kādas standartizācijas darbības, <strong>par</strong>asti <strong>no</strong>dibina<br />
vienu standartizācijas tehnisko komiteju. Informācijas teh<strong>no</strong>loģijas <strong>no</strong>zarē tāda ir<br />
1995.gada maijā dibinātā Informācijas teh<strong>no</strong>loģijas Standartizācijas tehniskā komiteja<br />
(ITSTK). Šī komiteja skaidrības labad savā <strong>no</strong>likumā ierakstījusi, ka tās darbība<br />
aptver precīzi tos pašus jautājumus, kas ir ISO/IEC Pirmās apvie<strong>no</strong>tās tehniskās<br />
komitejas (ISO/IEC Joint Technical Committee One) kompetencē. Kā zināms, šīs<br />
komitejas aptvertā <strong>no</strong>zare saucas "information tech<strong>no</strong>logy".<br />
Tomēr vēlreiz jāpasvītro, ka visas minētās un neminētās standartizācijas un<br />
termi<strong>no</strong>loģiskās aktivitātes nerada visiem obligātus likumus. Tikai valsts var <strong>no</strong>teikt,<br />
kuri standarti ievērojami obligāti, kā tā to ir darījusi, izdodot pazīstamos Ministru<br />
Kabineta Noteikumus [1].<br />
Pašreizējais stāvoklis<br />
Iespējamas Latvijas IT standartu izstrādes stratēģijas ir jau pasniegtas un aprakstītas<br />
vairākkārt [2-5]. Smaga resursu trūkuma apstākļos Latvija nekad nespēs adaptēt lielu
skaitu apjomīgo standartu, tulkojot tos latviski. Tas nemaz arī nebūtu lietderīgi, jo<br />
vairums standartu plaši lietoti netiek. Daudzos gadījumos būs jāapmierinās ar t.s.<br />
pirmās lappuses (cover page) metodi, kad standarta pirmā lappuse satur a<strong>no</strong>tāciju<br />
latviski, bet viss pārējais teksts ir atstāts kādā <strong>no</strong> Eiropas standartizācijas organizāciju<br />
darba valodām - angļu, franču vai vācu, <strong>par</strong>asti - angļu. Vairums standartu būtu<br />
jāadaptē vispār bez jebkādas tulkošanas, kad Informācijas teh<strong>no</strong>loģijas<br />
standartizācijas tehniskā komiteja (ITSTK) iesaka apstiprināt un nacionālā<br />
standartizācijas institūcija SIA "Latvijas Standarts" izziņo, ka tādi un tādi Eiropas<br />
standarti ir apstiprināti <strong>par</strong> valsts standartiem. Tomēr ITSTK ir stingri <strong>no</strong>teikusi, ka<br />
standarta adaptēšanas obligāts priekš<strong>no</strong>sacījums, neatkarīgi <strong>no</strong> metodes izvēles, ir<br />
standarta oriģinālā teksta brīva (ne obligāti bezmaksas) pieejamība Latvijā, bet<br />
termi<strong>no</strong>loģijas standarti gan ir jātulko visi.<br />
Programminženierijas standarti<br />
Katrai <strong>no</strong>zarei ilgstoši pastāvot, neizbēgami rodas šīs <strong>no</strong>zares pieredze un prakse.<br />
Standartos tiek apkopota attiecīgās <strong>no</strong>zares labākā prakse. Šos standartus izstrādā<br />
(<strong>par</strong>asti) starptautiskas organizācijas, kurās piedalās izcilākie attiecīgās <strong>no</strong>zares<br />
speciālisti. Standartu lietošana ir izplatīts paņēmiens kā panākt stabilitāti izstrādājamā<br />
produkta kvalitātē, tādējādi standartu ievērošanai jākļūst <strong>par</strong> neatņemamu prasību<br />
ikreiz, kad tiek slēgti piegādātāja - pasūtītāja līgumi <strong>par</strong> produkta piegādi.<br />
Viss nupat pieminētais pilnā mērā attiecas arī uz programminženierijas <strong>no</strong>zari.<br />
Jāpiebilst, ka standartu esamība neatrisina programminženierijas kvalitātes un<br />
produktivitātes problēmas. Standartu veiksmīga pielietošana iespējama tikai<br />
organizācijā, kurā ir atbilstoši apmācīts personāls un uzkrāta pieredze. Personāla ziņā<br />
ir prast pielietot atbilstoši situācijai tos ieteikumus, kurus standarti satur.<br />
Ieteikumi programmatūras dokumentācijas komplektam<br />
Turpmāk dota informācija <strong>par</strong> materiāliem (Latvijas valsts un starptautiskiem<br />
standartiem), kuri reglamentē programmatūras produktu izstrādes procesu un apraksta<br />
dokumentu veidu un dokumentos ietveramo informāciju, kura ir jāsagatavo<br />
programmatūras produktu izstrādes, uzturēšanas un darbināšanas (ekspluatēšanas)<br />
vajadzībām. Īpaši svarīgi šos <strong>no</strong>teikumus ievērot ir tādu <strong>no</strong>zīmīgu programmatūru<br />
izstrādē kā valsts <strong>no</strong>zīmes informācijas sistēmas. Izstrādāti priekšlikumi t.s. minimālā,<br />
ieteicamā un pilnā dokumentu komplekta sastāvam, kā arī raksturota minēto<br />
dokumentu <strong>no</strong>zīme. Visi ieteikumi ir veidoti, izmantojot starptautiskos, Latvijas valsts<br />
un citos standartos doto informāciju. Balstoties uz programmatūras projektu izstrādes<br />
laikā <strong>no</strong>vērotās pieredzes, minēti apsvērumi, kā konkrētā projektā izvēlēties<br />
izstrādājamo dokumentu komplektu.<br />
Pēc šīs informācijas vēlams vadīties arī zemākas <strong>no</strong>zīmes programmatūru gadījumā,<br />
ja to pasūta valsts vai pašvaldību institūcijas.<br />
Ieteikumi domāti programmatūras produkta lietotājorganizācijas vai<br />
pasūtītājorganizācijas visu līmeņu vadītājiem un darbiniekiem, lai <strong>no</strong>drošinātu<br />
standartiem atbilstošu informāciju <strong>par</strong> nepieciešamo programmatūras produkta<br />
dokumentāciju un tās saturu. Šeit apkopota īsa informācija <strong>par</strong> tiem dokumentu<br />
veidiem, kuri var tikt sagatavoti programmatūras izstrādes gaitā. Ņemot vērā šo<br />
dokumentu lomu programmatūras izstrādē un lietošanā, kā arī standartos apkopotos<br />
programmēšanas prakses ieteikumus, šie dokumenti ir sagrupēti trīs grupās -<br />
minimālais, ieteicamais un pilnais dokumentu komplekts. Šie dokumentu saraksti var<br />
tikt izmantoti, pasūtītājam un izpildītājam vie<strong>no</strong>joties <strong>par</strong> konkrētai programmatūrai<br />
sagatavojamiem dokumentiem. Papildus informācija, kas nepieciešama, lai izvēlētos<br />
sagatavojamos dokumentus, ir izstrādājamās programmatūras galvenās raksturiezīmes
un līgums starp pasūtītāju un izpildītāju, kurā ir <strong>no</strong>teikti darba apjomi, termiņi,<br />
savstarpējais darbu sadalījums, kā arī citi izstrādei būtiski momenti. Informācija<br />
izmantojama, lai <strong>no</strong>teiktu prasības izstrādātāja piegādātai dokumentācijai, kā arī lai<br />
pārbaudītu šīs dokumentācijas atbilstību prasībām.<br />
Definīcijas<br />
Izmantotas definīcijas un pamatjēdzieni (ISO 12119 un EIA/IEEE J-STD-016):<br />
Apskate (review) - programmatūras elementa(-u) vai projekta stāvokļa <strong>no</strong>vērtēšana,<br />
lai <strong>no</strong>skaidrotu pretrunas ar plā<strong>no</strong>tajiem rezultātiem un ieteiktu uzlabojumus. Šī<br />
<strong>no</strong>vērtēšana ir formalizēts process piemēram, pārvaldības apskates process, tehniskās<br />
apskates process, programmatūras inspekcijas process vai caurskates (walkthrough)<br />
process.<br />
Auditēšana (audit) - neatkarīga programmatūras produkta vai procesa <strong>no</strong>vērtēšana, lai<br />
<strong>no</strong>skaidrotu atbilstību standartiem, vadlīnijām (guidelines), specifikācijām un<br />
procedūrām.<br />
Datu bāze - savstarpēji saistītu datu kopums, kas datorā tiek uzglabāts kopā vienā vai<br />
vairākās datnēs.<br />
Ievaddati (input data) - dati, ko programmatūra saņem <strong>no</strong> ārēja avota.<br />
Izvaddati (output data) - dati, ko programmatūra <strong>no</strong>dod ārējam saņēmējam (mērķim).<br />
Kritiska programmatūra (critical software) - programmatūra, kuras kļūme dotu<br />
triecienu drošībai vai varētu būt cēlonis lieliem finansiāliem vai sociāliem<br />
zaudējumiem.<br />
Lietotāja dokumentācija - pilns dokumentācija komplekts drukātā vai elektroniskā<br />
formā, kas <strong>no</strong>drošina programmatūras lietošanu un vienlaikus ir programmatūras<br />
produkta sastāvdaļa.<br />
Nododamais dokuments jeb <strong>no</strong>devums (deliverable) - ikviens dokuments, ko sagatavo<br />
projekta izstrādāšanas laikā projekta vajadzībām, un <strong>no</strong>dod pasūtītājam kārtējā darba<br />
etapa vai visa projekta <strong>no</strong>slēgumā.<br />
Pieļaujamā vērtība - vērtība, kādu var pieņemt ievaddati, sistēmas iekšējie dati vai<br />
izvaddati programmatūras <strong>no</strong>rmāla darba režīma laikā.<br />
Prasību dokumentācija (arī prasību specifikācija) - dokuments, kas satur jebkādu<br />
rekomendāciju, prasību vai priekšrakstu kopumu, kurš programmatūrai ir jāapmierina.<br />
Produkta apraksts - dokuments, kurā aprakstītas programmatūras īpašības ar <strong>no</strong>lūku<br />
palīdzēt potenciāliem lietotājiem <strong>no</strong>vērtēt produkta atbilstību savām prasībām.<br />
Produkta atbalsts (product support) - <strong>no</strong>drošināšana ar informāciju, palīdzību vai<br />
apmācīšanu, lai instalētu programmatūru un sagatavotu to darbināšanai tai <strong>par</strong>edzētajā<br />
apkārtnē un lai padarītu pieejamas lietotājam <strong>par</strong>edzētās iespējas.<br />
Programmatūras dzīves cikls - ietver visu posmu, sākot <strong>no</strong> tā, ka ir radusies ideja kādu<br />
programmatūru izstrādāt, un beidzot ar brīdi, kad tiek izbeigta šīs programmatūras<br />
lietošana.<br />
Programmatūras pakotne (produkts) (software package) - pabeigts un dokumentēts<br />
programmu kopums, ko piegādā lietotājam <strong>no</strong>teiktu funkciju izpildīšanai.<br />
Programmatūras projektējuma apraksts (Software Design Description) -<br />
programmatūras sistēmas dokumentēts attēlojums, kas tiek radīts, lai atvieglotu<br />
izstrādājamās programmatūras analīzi, plā<strong>no</strong>šanu, īste<strong>no</strong>šanu un lēmumu pieņemšanu.<br />
Tas ir programmatūras sistēmas uzmetums vai modelis, kuru izmanto turpmākā<br />
izstrādes gaitā.<br />
Programmatūras uzturēšana (software maintenance) - programmatūras ekspluatācijas<br />
laikā veicamā modificēšana, kas nepieciešama, lai izlabotu kļūdas, uzlabotu
programmatūras darbību vai adaptētu sistēmu darbības vides vai prasību maiņas<br />
gadījumā.<br />
Programmatūras uzturēšanas rokasgrāmata - dokuments, kurš <strong>no</strong>drošina visu<br />
informāciju, kas nepieciešama programmatūras uzturēšanai.<br />
Programmatūras vienums (software item) - pirmkods, objektkods, vadības dati vai šo<br />
vienumu kopums.<br />
Projekta iekšējais dokuments - dokuments, ko sagatavo projekta izstrādāšanas laikā<br />
projekta vajadzībām, bet ne<strong>no</strong>dod pasūtītājam.<br />
Saskarne (interface) - a<strong>par</strong>atūras vai programmatūras komponenti, kas sasaista divus<br />
vai vairākus citus komponentus, vai arī lietotāju un programmatūru, lai <strong>no</strong>dotu<br />
informāciju <strong>no</strong> viena komponenta otram, vai arī <strong>no</strong> lietotāja programmatūrai un<br />
otrādi.<br />
Validācija (validation) - programmatūras <strong>no</strong>vērtēšana programmatūras izstrādāšanas<br />
procesa beigās, lai pārliecinātos <strong>par</strong> atbilstību programmatūras prasībām.<br />
Verifikācija (verification) - process, kurā <strong>no</strong>saka, vai produkts dotajā programmatūras<br />
izstrādes fāzē izpilda vai neizpilda iepriekšējo fāzu izvirzītās prasības.<br />
Programmatūras izstrādi reglamentējošie standarti un <strong>no</strong>teikumi<br />
Izstrādājot valsts institūciju rīcībā esošas sistēmas, kas <strong>par</strong>edzētas likumos un<br />
Ministru kabineta <strong>no</strong>teikumos minētas informācijas apstrādei un glabāšanai, kā,<br />
piemēram, Nodokļu maksātāju reģistrācijas un <strong>no</strong>dokļu uzskaites sistēma, jebkurā<br />
izstrādes vai uzturēšanas stadijā jāievēro atbilstība prasībām, kuras ir <strong>no</strong>teiktas valsts<br />
<strong>no</strong>zīmes datorizētām informācijas sistēmām [1]. Īpaši svarīgi ir ievērot punktu 13.10.,<br />
kas skan šādi: "sistēmu veidojot, jā<strong>no</strong>drošina tās uzturēšana un pēctecība, kā arī<br />
dokumentācijas atbilstība valsts standartiem, ērta lasāmība un pieejamība".<br />
Izstrādājot vai pasūtot programmatūru, ieteicams vadīties pēc šādiem Latvijas Valsts<br />
un starptautiskajiem standartiem:<br />
1. Valsts standarti, kas <strong>no</strong>saka latviešu valodas lietošanu un kultūras īpatnības:<br />
2. Informācijas teh<strong>no</strong>loģija, kodētas simbolu kopas. 8 bitu kodēto grafisko simbolu<br />
kopa Baltijas jūras reģiona valstīm (LVS 8-92)<br />
3. Informācijas teh<strong>no</strong>loģija, datoru tastatūras. Latviešu tastatūra datoriem (LVS 23-<br />
93)<br />
4. Informācijas teh<strong>no</strong>loģija, valodas lietošana datoros. Latviešu valoda datoriem (LVS<br />
24-93)<br />
2. Valsts standarti, kas <strong>no</strong>saka programmatūras dokumentēšanu dažādās tās attīstības<br />
stadijās:<br />
1. Informācijas teh<strong>no</strong>loģija. Programmatūras lietotāja dokumentācija (LVS 66:1996)<br />
2. Informācijas teh<strong>no</strong>loģija. Programmatūras prasību specifikācijas (PPS) ceļvedis<br />
(LVS 68:1996)<br />
3. Informācijas teh<strong>no</strong>loģija. Programmatūras testēšanas dokumentācija (LVS<br />
70:1996)<br />
4. Informācijas teh<strong>no</strong>loģija. Ieteicamā prakse programmatūras projektējuma<br />
aprakstīšanai (LVS 72:1996)<br />
5. Informācijas teh<strong>no</strong>loģija. Sistēmas darbības koncepcijas apraksts (LVS 75:1996)<br />
3. Valsts standarti, kas <strong>no</strong>saka programmatūras izstrādes procesa dokumentēšanu<br />
dažādās tās attīstības stadijās:<br />
1. Informācijas teh<strong>no</strong>loģija. Programmatūras projekta pārvaldības plāns (LVS<br />
67:1996)<br />
2. Informācijas teh<strong>no</strong>loģija. Programmatūras konfigurācijas pārvaldības plāns (LVS<br />
69:1996)<br />
3. Informācijas teh<strong>no</strong>loģija. Programmatūras verifikācijas un validācijas plāns (LVS
71:1996)<br />
4. Valsts standarti, kas <strong>no</strong>saka programmatūras kvalitātes <strong>no</strong>drošināšanas pasākumu<br />
veikšanu:<br />
1. Informācijas teh<strong>no</strong>loģija. Programmatūras kvalitātes <strong>no</strong>drošināšanas plāns (LVS<br />
65:1996)<br />
2. Informācijas teh<strong>no</strong>loģija. Programmatūras vienībtestēšana (LVS 73:1996)<br />
3. Informācijas teh<strong>no</strong>loģija. Programmatūras apskates un auditēšanas (LVS 74:1996)<br />
5. Starptautiskais standarts, kas <strong>no</strong>saka visa programmatūras dzīves cikla procesus,<br />
nepieciešamo dokumentāciju un tās saturu:<br />
1. Standard for Information Tech<strong>no</strong>logy. Software Life Cycle Processes. Software<br />
Development. Acquirer-Supplier Agreement (EIA/IEEE J-STD-016)<br />
6. Starptautiskais standarts, kas <strong>no</strong>saka programmatūras dzīves cikla procesus:<br />
1. Information tech<strong>no</strong>logy - Software life cycle processes (ISO/IEC 12207)<br />
7. Starptautiskais standarts, kas <strong>no</strong>saka prasības programmatūras produktam, kā arī to,<br />
kā veikt produkta testēšanu atbilstoši šīm prasībām:<br />
1. Information tech<strong>no</strong>logy. Software packages. Quality requirements and testing.<br />
(ISO/IEC 12119)<br />
1. PIEZĪME. Jāņem vērā, ka IEEE standartu kopa (std.610.12-1990 - std. 1219-1992)<br />
un Latvijas valsts standarti (LVS 65:1996- LVS 74:1996) atspoguļo vienu vie<strong>no</strong>tu<br />
pieeju programmatūras izstrādes un dokumentēšanas procesam, bet standarti<br />
EIA/IEEE J-STD-016 un LVS 75:1996 otru, nedaudz atšķirīgu. Tādēļ<br />
programmatūras izstrādes procesa sākumā nepieciešams vie<strong>no</strong>ties, kura <strong>no</strong> šīm<br />
koncepcijām tiks ņemta <strong>par</strong> pamatu. Šādā gadījumā otras grupas standartus var<br />
izmantot atsevišķu jautājumu vai dokumentu detalizēšanai. Ieteicams lietot EIA/IEEE<br />
J-STD-016, jo tas ir jaunāks, kaut gan nav tulkots latviski.<br />
Standartu pieejamība<br />
Latvijas nacionālos jeb valsts standartus saskaņā ar <strong>no</strong>likumu drīkst izplatīt tikai SIA<br />
"Latvijas Standarts", kura adrese ir šāda:<br />
Kr.Valdemāra ielā 157, LV-1013, Rīgā, tel. 7 362 250 (standartu bibliotēka).<br />
Bibliotēkā atrodami ISO/IEC un CEN standartu teksti, kas apstiprināti aptuveni pēc<br />
1995. gada, kad Latvija iestājās minētajās organizācijās. Tur atrodami arī daudzi, bet<br />
ne visi agrāk apstiprinātie ISO/IEC standarti.<br />
Agrāku gadu ISO/IEC u.c. standarti atrodami arī Latvijas Patentu Tehniskajā<br />
bibliotēkā (Šķūņu ielā 17; LV-1050, Rīgā, fakss 7 210 767, tel. 7 227 310).<br />
IEEE standartus var pasūtīt, piemēram, pa faksu<br />
1.908.981.9667<br />
Tiešsaistes (on-line) informācija <strong>par</strong> IEEE standartiem iegūstama globālā tīmeklī:<br />
http://stdsbbs.ieee.org/<br />
Pasta adrese:<br />
IEEE Customer Service<br />
The Institute of Electrical and Electronics Engineers, Inc.<br />
445 Hoes Lane, P.O. Box 1331, Piscataway,<br />
NJ 08855-1331, U.S.A.<br />
Ar visiem minētiem tekstiem var iepazīties (bet ne kopēt, jo to nepieļauj autortiesību<br />
ierobežojumi) arī Rīgas Informācijas teh<strong>no</strong>loģijas institūtā.<br />
Programmatūras lietošanai un uzturēšanai nepieciešamā dokumentācija<br />
Standarti un metodiskie materiāli, kas regulē jebkuras programmatūras izstrādi, operē<br />
ar tādu jēdzienu kā programmatūras dzīves cikls, kas ietver visu posmu sākot <strong>no</strong> tā, ka<br />
ir radusies ideja kādu programmatūru izstrādāt, un beidzot ar brīdi, kad tiek izbeigta
šīs programmatūras lietošana. Neatkarīgi <strong>no</strong> tā, vai šo dzīves ciklu uzskata kā<br />
sastāvošu <strong>no</strong> dažādiem etapiem vai dažādiem procesiem, tā neatņemamas, visciešāk ar<br />
lietotāju saistītās sastāvdaļas ir programmatūras darbināšana jeb ekspluatācija<br />
(operation) un uzturēšana (maintenance). Reāli programmatūras darbināšana sākas ar<br />
brīdi, kad tā tiek oficiāli <strong>no</strong>dota pasūtītājam.<br />
Iespējamie dokumentācijas komplekti<br />
Standarts ISO/IEC 12119 <strong>no</strong>saka, ka programmatūras produktam, kurš tiek izplatīts<br />
vai <strong>no</strong>dots pasūtītājam, ir jāsatur programma (un dati, ja tādi nepieciešami), kā arī<br />
jābūt apgādātam ar dokumentāciju, kura ietver produkta aprakstu un lietotāja<br />
dokumentāciju. Tas var būt pietiekami gadījumos, kad lietotājs programmatūras<br />
produktu tikai izmanto, bet neveic nekādu tā labošanu, modificēšanu u. tml. Šādā<br />
gadījumā lietotāja rīcība ierobežojas tikai ar programmatūras darbināšanu, kā arī tās<br />
gaitā atklāto kļūdu un neatbilstību fiksēšanu. To <strong>no</strong>vēršanas kārtība ir atkarīga <strong>no</strong><br />
programmatūras pasūtītāja un piegādātāja (izstrādātāja vai pārdevēja) savstarpējām<br />
attiecībām, kuras iepriekš <strong>no</strong>runātas un dokumentētas atbilstošā veidā (ar līgumu,<br />
līguma pielikumu u.tml.).<br />
Pieredze rāda, ka programmatūras ilgstošas lietošanas laikā ir nepieciešams veikt tās<br />
būtiskas modifikācijas, kā pārvietošanu uz citu a<strong>par</strong>atūru, pārveidošanu atbilstoši<br />
mainītām pasūtītāja vajadzībām utt. Piemēram, ja programmatūras darbība lielā mērā<br />
ir atkarīga <strong>no</strong> spēkā esošās likumdošanas, ir sagaidāms, ka tās uzturēšanas laikā<br />
nāksies izdarīt daudzus pārveidojumus. Šādos gadījumos programmatūras uzturēšana,<br />
neatkarīgi <strong>no</strong> tā, kas to veic, ir iespējama tikai tad, ja papildus iepriekš minētai<br />
dokumentācijai programmatūras produkta izstrādes laikā ir sagatavota vēl virkne<br />
būtisku dokumentu.<br />
1.tabulā ir dots visu programmatūras lietošanai un uzturēšanai nepieciešamo<br />
dokumentu saraksts, kā arī dotas rekomendācijas t.s. minimālam, ieteicamam un<br />
pilnam dokumentu komplektam.<br />
Tabula 1. Programmatūras uzturēšanai nepieciešamā dokumentācija.<br />
okumenta <strong>no</strong>saukums Komplekts Rekomendējošie materiāli dokumenta izstrādei<br />
Min Ieteic Pilns<br />
rogrammatūras lietošanai nepieciešamā dokumentācija<br />
rogrammatūras produkta apraksts + + ISO/IEC 12119; EIA/IEEE J-STD-016 (I.2.1.)<br />
rogrammatūras versijas apraksts + + EIA/IEEE J-STD-016 (I.2.2.)<br />
rogrammatūras lietotāja dokumentācija + + +<br />
LVS 66:1996; ISO/IEC 12119; EIA/IEEE J-STD-<br />
016<br />
rogrammatūras instalēšanas apraksts* + + + EIA/IEEE J-STD-016 (E.2.3.)<br />
rogrammatūras izpildkodi + + + EIA/IEEE J-STD-016 (I.2.1.)<br />
rogrammatūras uzturēšanai papildus nepieciešamā dokumentācija<br />
rogrammatūras darbības koncepcijas apraksts + + LVS 75:1996; EIA/IEEE J-STD-016 (F.2.1.)<br />
rogrammatūras prasību specifikācija + + +<br />
LVS 68:1996;EIA/IEEE J-STD-016 (F.2.2., F.2.3.,<br />
F.2.4.)<br />
rogrammatūras projektējuma apraksts + +<br />
LVS 72:1996; EIA/IEEE J-STD-016 (G.2.1., G.2.2.,<br />
G.2.4.)<br />
atu bāzu projektējuma apraksts* + + + EIA/IEEE J-STD-016 (G.2.3.)<br />
rogrammatūras pirmkodi + + + EIA/IEEE J-STD-016 (G.2.1.)<br />
rogrammatūras uzturēšanas rokasgrāmatas + EIA/IEEE J-STD-016 (5.13.8.)
ogrammatūras uzturēšanas plāns + ISO/IEC 12007<br />
rogrammatūras uzturēšanas procedūra + ISO/IEC 12007<br />
Dokumenti, kuri ietverami attiecīgā komplekta sastāvā, atzīmēti ar "+"ailē Komplekts<br />
(Min, Ieteic un Pilns attiecīgi). Analizējot šos dokumentu komplektus, jāņem vērā<br />
nākamajā punktā dotā informācija.<br />
Minimālais komplekts ietver tos dokumentus, bez kuriem faktiski nav iespējama ne<br />
programmatūras lietošana, ne uzturēšana, t.i., tos dokumentus, bez kuriem<br />
programmatūra nav uzskatāma <strong>par</strong> pabeigtu un nevar tikt pieņemta.<br />
Ieteicamajā komplektā iekļauti tie dokumenti, kuri <strong>no</strong>drošina <strong>no</strong>rmālu<br />
programmatūras lietošanu un neliela apjoma pārveidojumu (pārprogrammēšanas)<br />
veikšanu tās uzturēšanas laikā. Protams, t.s. ieteicamais komplekts nav vienīgais<br />
iespējamais un konkrētā gadījumā, ja to prasa projekta īpatnības, <strong>no</strong> tā var nedaudz<br />
atkāpties uz vienu vai otru pusi.<br />
Pilnajā komplektā <strong>no</strong>rādītie dokumenti atspoguļo pilnu informāciju, kura ir<br />
izstrādātāja rīcībā <strong>par</strong> programmatūras produktu, un kura ir nepieciešama gan pašam<br />
izstrādātājam jaunu produkta versiju attīstīšanai, gan arī personālam, kurš veic<br />
programmatūras būtisku mainīšanu un pilnveidošanu tās uzturēšanas laikā.<br />
Dokumentācijas komplektu īss raksturojums<br />
Apvie<strong>no</strong>jot 1.tabulā dotos dokumentus minimālā, ieteicamā un pilnā dokumentu<br />
komplekta sastāvā, tika ņemti vērā šādi apsvērumi:<br />
1. standartos aprakstītais attiecīgo dokumentu sastāvā ietveramās informācijas<br />
raksturs;<br />
2. programmatūras izstrādāšanas gaitā radusies pieredze, kas uzkrāta un apkopota<br />
starptautiskos standartos;<br />
3. programmatūras izstrādes un kvalitātes pārvaldības funkciju izpildes laikā <strong>no</strong>vērotā<br />
un uzkrātā pieredze.<br />
Šis dalījums faktiski atspoguļo informācijas <strong>no</strong>vērtējumu - lai programmatūru lietotu,<br />
ir vajadzīgs vismaz tas, kas ietverts minimālā dokumentu komplekta sastāvā. Ja<br />
nepieciešams pa laikam drusku kaut ko mainīt vai labot darba gaitā atklātās kļūdas,<br />
tad jābūt pieejamai tai informācijai, kura ietverta ieteicamā komplekta sastāvā, bet ja<br />
nepieciešama <strong>no</strong>pietna modificēšana, tad var būt nepieciešama visa tā informācija, kas<br />
iekļaujama pilnā dokumentu sarakstā minētajos dokumentos. Šajā skatījumā nav<br />
svarīgi, kā rīcībā šie dokumenti atrodas, piemēram, nesagatavojot dokumentētā formā<br />
vismaz to informāciju, kura ir ietverta minimālā komplekta sastāvā, nevar būt runas<br />
<strong>par</strong> to, ka programma būtu pabeigta un to varētu pieņemt. Agri vai vēlu, tādu<br />
programmu nebūtu spējīgs lietot pat tās izstrādātājs.<br />
Turklāt arī šī informācija ir atkarīga <strong>no</strong> konkrētās programmatūras veida. Piemēram,<br />
ja programmatūra nestrādā ar datu bāzēm, 1.tabulas 2.3.1. punktā minētam<br />
dokumentam nav jēgas. Toties, lietojot datu bāzu sistēmas, ja bez programmu<br />
apraksta pieredzējis programmētājs vēl kaut kā var tās uzturēt, tad bez datu bāzu<br />
apraksta tas nekādi nav iespējams.<br />
1.tabulā doto informāciju kopumā vēlreiz var raksturot šādi - tajā ir dots visu<br />
standartos minēto dokumentu saraksts, kuru saturā tiek ietverta informācija, kas<br />
nepieciešama programmatūras lietošanas un uzturēšanas gaitā. Tieši kāda ir šī<br />
informācija - tas ir atkarīgs <strong>no</strong> konkrētās programmatūras un <strong>no</strong> līgumā <strong>no</strong>teiktām<br />
pasūtītāja un izstrādātāja attiecībām.<br />
Jāņem vērā, ka tabulā izmantotie standartos minētie attiecīgo dokumentu<br />
NOSAUKUMI NAV OBLIGĀTI, toties standartos prasītā informācija - ir gan; tāpat<br />
nav obligāti katru <strong>no</strong> minētajiem materiāliem <strong>no</strong>formēt kā patstāvīgu dokumentu.<br />
Toties OBLIGĀTI ir abām pusēm (pasūtītājam un izpildītājam) vie<strong>no</strong>ties <strong>par</strong>
<strong>par</strong>edzēto dokumentu komplektu, to konkrētiem <strong>no</strong>saukumiem un <strong>par</strong> to, kur kāda<br />
veida informācija tiks izvietota, un šo VIENOŠANOS DOKUMENTĒT. Šīs<br />
vie<strong>no</strong>šanās laikā pats svarīgākais ir <strong>no</strong>vērtēt konkrētās programmatūras īpatnības un<br />
izvēlēties tām atbilstošākos dokumentus. Bez tabulā dotajām rekomendācijām, ir<br />
iespējama arī jebkura cita komplektācija, izņemot minimālās samazināšanu.<br />
Kā jau minēts augstāk, 1. tabulā nav atspoguļots tas, kura <strong>no</strong> minētās dokumentācijas<br />
tiek <strong>no</strong>dota pasūtītājam un kura paliek tikai programmatūras izstrādātāju rīcībā.<br />
Nododamās dokumentācijas komplekts ir atkarīgs, pirmkārt, <strong>no</strong> tā, kas veiks<br />
programmatūras uzturēšanu. Šo darbu sadali vēlams īpaši atrunāt līgumā, vai arī slēgt<br />
atsevišķu līgumu <strong>par</strong> programmatūras uzturēšanu. Jāņem vērā, ka veicamā darba<br />
apjoms un līdz ar to programmatūras uzturēšanai nepieciešamais personāls un<br />
izmaksas ir aptuveni vienādas gan tad, ja programmatūras uzturēšanu veic lietotājs,<br />
gan tad, ja to dara programmatūras izstrādātājs. Lietotāja gadījumā izmaksas un<br />
darbietilpība būs lielāka vēl <strong>par</strong> tik, cik vajadzīgs, lai apgūtu programmatūras darbību<br />
un pirmkodus līdz tādam līmenim, ka ir iespējams veikt to modificēšanu. Par<br />
<strong>no</strong>dodamās dokumentācijas (deliverables) komplektu pasūtītājam un izstrādātājam<br />
jāvie<strong>no</strong>jas atsevišķi, rakstiski dokumentējot šo vie<strong>no</strong>ša<strong>no</strong>s (piemēram, līguma<br />
pielikumā). Jāņem vērā, ka dokumentu sagatavošana, īpaši ja tie tiek gatavoti<br />
<strong>no</strong>došanai lietotājam, ir darbietilpīga un līdz ar to arī dārga. Turklāt jāņem vērā, ka<br />
programmatūras uzturamība nebūt nepieaug proporcionāli tās dokumentācijas<br />
apjomam. Pārāk liels dokumentācijas apjoms izsauc pretēju efektu - to sagatavot un<br />
apgūt ir ļoti darbietilpīgi, var būt grūti lietot. Turklāt arī pieaug bīstamība, ka nav<br />
pilnībā izsekotas un atspoguļotas visas izmaiņas, kas tiek izdarītas programmatūras<br />
dzīves jebkurā etapā. Pēdējais moments ir sevišķi bīstams, jo padara dokumentāciju<br />
pretrunīgu.<br />
Vienkāršoti runājot, programmatūras lietošanā un tai atbilstošās dokumentācijas<br />
sagatavošanā var būt šādas raksturīgas situācijas.<br />
A. Programmatūra veic kādas <strong>no</strong>teiktas funkcijas, kuras praktiski nav nepieciešams<br />
mainīt. Turklāt starp programmatūras pasūtītāju un izstrādātāju ir <strong>no</strong>slēgts līgums <strong>par</strong><br />
programmatūras uzturēšanu atbilstoši kuram programmatūras lietošanas laikā atklātās<br />
kļūdas labo izstrādātājs. Šādā gadījumā lietotājam tiešām praktiski pietiek ar lietotāja<br />
dokumentāciju (kurā var būt ietverts arī instalēšanas apraksts, ja tāds nepieciešams)<br />
un programmatūras izpildkodiem. Visa pārējā dokumentācija, kas nepieciešama kļūdu<br />
labošanai, atrodas pie programmatūras izstrādātājiem. Šāda situācija ir raksturīga arī<br />
komerciālu programmatūru gadījumos, kad izstrādātājs ir īpaši ieinteresēts aizsargāt<br />
autortiesības. Šādiem produktiem programmatūras pirmkodi <strong>par</strong>asti ir tikai<br />
izstrādātāja rīcībā.<br />
B. Programmatūra veic kādas <strong>no</strong>teiktas funkcijas, kuras laiku pa laikam var būt<br />
nepieciešams mainīt. Šādos gadījumos, protams, ir iespējams arī iepriekšējā punktā<br />
minētais sadarbības variants. Ja programmatūras uzturēšanu pilnībā vai daļēji pārņem<br />
pasūtītājs, tādā gadījumā ir rūpīgi jāizanalizē, kāda apjoma izmaiņas veic viena vai<br />
otra puse un tā jā<strong>no</strong>drošina ar atbilstošo dokumentāciju. Katrā ziņā, lietotāja rīcībā ir<br />
nepieciešami programmatūras pirmkodi. Ieteikumi varētu būt šādi - sākot jau <strong>no</strong><br />
programmatūras projektēšanas, liela uzmanība ir jāpievērš tādai prasībai, kā<br />
programmatūras modificējamība, un konstanti jāuzrauga tās īste<strong>no</strong>šana. Pasūtītājam<br />
(un līdz ar to turpmākam lietotājam) var būt lietderīgi pārņemt savā ziņā operatīvu<br />
kļūdu labošanu un lokālu izmaiņu izdarīšanu, kā, piemēram, izmaiņas, kas saistītas ar<br />
kāda maksājuma aprēķināšanas algoritma maiņu. Šo pienākumu sadalei ir raksturīgs,<br />
ka, jo vairāk funkciju veic izpildītājs, jo vairāk pasūtītājs ir <strong>no</strong> tā atkarīgs, turklāt ir<br />
nepieciešams zināms papildus laiks darba attiecību <strong>no</strong>formēšanai. Savukārt <strong>no</strong>
lietotāja programmatūras uzturēšana prasa, lai būtu <strong>no</strong>drošināti atbilstošas<br />
kvalifikācijas speciālisti. Šiem speciālistiem darbs var būt tikai periodisks, turklāt,<br />
atšķirībā <strong>no</strong> izstrādātājiem, var būt darbietilpīgāks, jo profesionālam programmētājam<br />
apgūt cita izstrādātas programmas ir iespējams tikai ar zināmu papildus darba<br />
patēriņu. Tādējādi lielāka apmēra izmaiņu izdarīšanu var būt lietderīgi uzticēt<br />
izstrādātājam. Turklāt pēdējā gadījumā ne vienmēr tas būs sākotnējais<br />
programmatūras izstrādātājs.<br />
IETEIKUMS! Lai jebkurā programmatūras dzīves cikla posmā būtu iespējams<br />
izvēlēties kādu <strong>no</strong> sadarbības variantiem, svarīgi ir pašā izstrādes sākumā un turpmāk<br />
jebkuru <strong>no</strong>pietnu izmaiņu izdarīšanas laikā <strong>par</strong>edzēt, ka šādiem gadījumiem<br />
nepieciešamie dokumenti vispār tiks izstrādāti. Tie var tikt <strong>no</strong>doti lietotāja rīcībā tūlīt,<br />
var būt līgumā <strong>par</strong>edzēti <strong>no</strong>sacījumi, ka tiek <strong>no</strong>doti vēlāk zināmās situācijās, vai<br />
<strong>par</strong>edzēts vēl kāds cits piemērots variants.<br />
Pilnas projekta dokumentācijas raksturojums<br />
Iepriekšējā <strong>no</strong>dalījumā tika aplūkoti tikai tie standartu ieteiktie programmatūras<br />
produkta izstrādes dokumenti, kuri ir saistīti ar programmatūras lietošanu un<br />
uzturēšanu. Vienlaikus esam jau teikuši, ka pašā izstrādes sākumā un turpmāk jebkuru<br />
<strong>no</strong>pietnu izmaiņu izdarīšanas brīdī pats svarīgākais ir <strong>par</strong>edzēt, ka šādiem gadījumiem<br />
nepieciešamie dokumenti vispār tiks izstrādāti. Lai pārliecinātos, ka visā<br />
programmatūras attīstības gaitā tiek veikti pasākumi, kas nepieciešami, lai gala<br />
produkts atbilstu tam izvirzītajām prasībām, var būt nepieciešami vai vēlami vēl citi<br />
dokumenti, nekā minēti programmatūras lietošanai un uzturēšanai minētajā sarakstā.<br />
Daži <strong>no</strong> šiem dokumentiem var būt arī papildus <strong>no</strong>derīgi brīžos, kad tiek veiktas<br />
būtiskas modifikācijas. Tādēļ 2.tabulā tiek dots visu to dokumentu saraksts, kurus<br />
standarti iesaka izstrādāt programmatūras projekta dažādos etapos. Lai iegūtu pilnīgu<br />
kopskatu, šajā sarakstā ir iekļauti arī iepriekšējā <strong>no</strong>daļā aplūkotie dokumenti.<br />
Līdzīgi kā 1.tabulā, dokumenti šeit ir iekļauti minimālā, ieteicamā un pilnā<br />
dokumentu komplekta sastāvā, kuri raksturo dokumentos iekļautās informācijas<br />
apjomu.<br />
Tabula 2. Programmatūras izstrādes dokumentācijas pilns saraksts.<br />
okumenta <strong>no</strong>saukums Komplekts Rekomendējošie materiāli dokumenta izstrādei<br />
Min Ieteic Pilns<br />
rojekta sagatavošanas un uzturēšanas dokumenti<br />
ākotnējie projekta priekšlikumi (Preliminary<br />
esign Proposal)<br />
+ +<br />
DATI firmas standarts<br />
PKN.STD.PPPR.22.1.B.1995<br />
īgums ar pasūtītāju + + +<br />
īguma izpildes kalendārais plāns* + + +<br />
rojekta dienasgrāmata + +<br />
rogrammatūras izstrādes datne + + EIA/IEEE J-STD-016<br />
rojekta plā<strong>no</strong>šanas dokumenti<br />
rogrammatūras (Sistēmas) izstrādes plāns + EIA/IEEE J-STD-016<br />
rojekta pārvaldības plāns* + LVS 67:1996; IEEE 1058.1<br />
rogrammatūras konfigurācijas pārvaldības<br />
lāns*<br />
+ + LVS 69:1996; IEEE 1042, IEEE 828<br />
rojekta iekšējo pārbaužu plāns* + +<br />
valitātes <strong>no</strong>drošināšanas plāns* (Software<br />
uality Assurance Plan)<br />
+ + LVS 65:1996; IEEE 730.1<br />
rogrammatūras verifikācijas un validācijas + LVS 71:1996; IEEE 1012
lāns<br />
rogrammatūras (kvalifikācijas) testēšanas<br />
lāns<br />
+ + + LVS 70:1996; EIA/IEEE J-STD-016, IEEE 829<br />
rogrammatūras pārcelšanas (transition) plāns + EIA/IEEE J-STD-016<br />
rogrammatūras instalēšanas plāns +* + + EIA/IEEE J-STD-016 (E.2.3.)<br />
rojekta specifikācijas<br />
arbības koncepcijas apraksts (Operational<br />
oncept Description)<br />
+ + LVS 75:1996; EIA/IEEE J-STD-016 (F.2.1.)<br />
istēmas/apakšsistēmas (kopā ar a<strong>par</strong>atūru)<br />
rasību specifikācija<br />
+ + + LVS 72:1996; EIA/IEEE J-STD-016 (F.2.2.)<br />
rogrammatūras prasību specifikācija<br />
Software Requirements Specification)<br />
+ + + LVS 72:1996; EIA/IEEE J-STD-016 (F.2.4.)<br />
askarņu prasību specifikācija* + + + LVS 72:1996; EIA/IEEE J-STD-016 (F.2.3.)<br />
rogrammatūras produkta specifikācija + + ISO/IEC 12119; EIA/IEEE J-STD-016 (I.2.1.)<br />
rogrammatūras versijas apraksts + + EIA/IEEE J-STD-016 (I.2.2.)<br />
rojektējumu (design) dokumentācija<br />
istēmas/apakšsistēmas (kopā ar a<strong>par</strong>atūru)<br />
LVS 72:1996; EIA/IEEE J-STD-016 (G.2.1.)<br />
+ +<br />
rojektējuma apraksts<br />
IEEE 1016<br />
rogrammatūras projektējuma apraksts + +<br />
LVS 72:1996; EIA/IEEE J-STD-016 (G.2.4.)<br />
IEEE 1016<br />
askarņu projektējuma apraksts* + +<br />
LVS 72:1996; EIA/IEEE J-STD-016 (G.2.2.)<br />
IEEE 1016<br />
atu bāzu projektējuma apraksts* + + +<br />
LVS 72:1996; EIA/IEEE J-STD-016 (G.2.3.)<br />
IEEE 1016<br />
mplementēšanas dokumentācija<br />
rogrammatūras pirmkodi + + + EIA/IEEE J-STD-016 (G.2.1.)<br />
rogrammatūras izpildkodi + + + EIA/IEEE J-STD-016 (I.2.1.)<br />
ietotāja dokumentācija<br />
ietotāja rokasgrāmata + + +<br />
LVS 66:1996; ISO/IEC 12119; EIA/IEEE J-<br />
STD-016 (J.2.1.)<br />
atora programmēšanas rokasgrāmata** + EIA/IEEE J-STD-016 (I.2.3.)<br />
rogramma<strong>par</strong>atūras atbalsta rokasgrāmata** + EIA/IEEE J-STD-016 (I.2.4.)<br />
rogrammatūras uzturēšanas rokasgrāmatas + EIA/IEEE J-STD-016 (5.13.8.)<br />
rogrammatūras ievadizvades rokasgrāmata + EIA/IEEE J-STD-016 (J.2.2.)<br />
atora darbināšanas rokasgrāmata + EIA/IEEE J-STD-016 (J.2.4.)<br />
estēšanas dokumentācija<br />
rogrammatūras testēšanas apraksts + + +<br />
LVS 70:1996; LVS 73:1996; EIA/IEEE J-STD-<br />
016 (G.2.3.); IEEE 1008; IEEE 829<br />
estu projektējuma specifikācija + + LVS 70:1996; IEEE 829<br />
estpiemēru specifikācijas + + LVS 70:1996; IEEE 829<br />
estēšanas procedūras specifikācija + + LVS 70:1996; IEEE 829<br />
estēšanas žurnāls + + + LVS 70:1996; IEEE 829<br />
roblēmu ziņojumi + +<br />
LVS 70:1996; IEEE 829; firmas problēmu<br />
reģistrācijas rīks
estēšanas (kopsavilkuma) pārskats + + + LVS 70:1996; IEEE 829<br />
rojekta iekšējo pārbaužu pārskatu dokumentācija<br />
rogrammatūras izstrādes plāna apskates<br />
ārskats<br />
+ LVS 74:1996<br />
rogrammatūras testēšanas plāna apskates<br />
ārskats<br />
+ + + LVS 74:1996<br />
rogrammatūras instalēšanas plāna apskates<br />
ārskats<br />
+ + + LVS 74:1996<br />
rogrammatūras pārcelšanas (transition) plāna<br />
pskates pārskats<br />
+ LVS 74:1996<br />
rogrammatūras projekta pārvaldības plāna<br />
pskates pārskats<br />
+ LVS 74:1996<br />
rogrammatūras verifikācijas un validācijas<br />
lāna apskates pārskats<br />
+ LVS 74:1996<br />
rogrammatūras konfigurāciju pārvaldības<br />
lāna apskates pārskats<br />
+ + LVS 74:1996<br />
rogrammatūras kvalitātes <strong>no</strong>drošināšanas<br />
lāna apskates pārskats<br />
+ + LVS 74:1996<br />
atorsistēmas darbības koncepcijas apskates<br />
ārskats<br />
+ + LVS 74:1996<br />
rogrammatūras prasību apskates pārskats + + + LVS 74:1996<br />
rogrammatūras projektējuma apskates<br />
ārskats<br />
+ + LVS 74:1996<br />
estēšanas gatavības apskates pārskats + LVS 74:1996<br />
estēšanas rezultātu apskates pārskats + + LVS 74:1996<br />
rogrammatūras lietojamības apskates<br />
ārskats<br />
+ LVS 74:1996<br />
rogrammatūras uzturamības apskates<br />
ārskats<br />
+ LVS 74:1996<br />
ritisku prasību apskates pārskats + 6 + LVS 74:199<br />
Šajā tabulā doti visi dokumenti, kurus rekomendē gatavot programmatūras produkta<br />
izstrādes laikā. Tā kā standartu kopas, uz kurām šajā tabulā ir dotas atsauces,<br />
atspoguļo nedaudz atšķirīgu pieeju programmatūras produkta un projekta<br />
dokumentēšanai (sk. 1. piezīmi <strong>no</strong>dalījumā 6.2.), vie<strong>no</strong>s standartos <strong>par</strong>edzētā<br />
informācija var būt iekļauta citu standartu <strong>no</strong>teiktā vienā vai vairākos atšķirīga<br />
<strong>no</strong>saukuma dokumentos. Tādēļ jāņem vērā, ka vienā projektā nekad nebūs vajadzīgi<br />
visi šīs tabulas pilnā dokumentu komplekta ailē <strong>no</strong>rādītie dokumenti. Piemēram, var<br />
tikt sagatavots vai nu Programmatūras izstrādes plāns atbilstoši standartam EIA/IEEE<br />
J-STD-016, vai arī Projekta pārvaldības plāns un/vai Programmatūras konfigurācijas<br />
pārvaldības plāns, Projekta iekšējo pārbaužu plāns un Kvalitātes <strong>no</strong>drošināšanas plāns<br />
atbilstoši 2.tabulā <strong>no</strong>rādītajiem IEEE standartiem.<br />
Tādējādi, pasūtītājam un izpildītājam vie<strong>no</strong>joties <strong>par</strong> izstrādājamo dokumentāciju,<br />
vispirms ir jāizvēlas, kura <strong>no</strong> standartu grupām tiks ņemta <strong>par</strong> pamatu. Tas neliedz<br />
otras grupas standartus izmantot atsevišķu jautājumu vai dokumentu detalizēšanai.<br />
Vēlreiz īpaši jāpasvītro tas, ka neviens <strong>no</strong> šiem standartiem nebūt neprasa, lai jebkurš<br />
<strong>no</strong> 2.tabulā dotiem dokumentiem tiešām tiktu sagatavots kā atsevišķs dokuments tieši<br />
ar <strong>no</strong>rādīto <strong>no</strong>saukumu. Standarti apraksta informācijas tipu un <strong>no</strong>teikti prasa, lai
projekta sākumā tiktu dokumentāli fiksēta vie<strong>no</strong>šanās, kura informācija tiks<br />
sagatavota un kādos konkrēta <strong>no</strong>saukuma dokumentos tā tiks izvietota.<br />
2.tabulā, tāpat kā iepriekšējā, nav dotas <strong>no</strong>rādes, kurš <strong>no</strong> šiem dokumentiem tiek<br />
izstrādāts tikai projekta iekšienē un kurš tiek <strong>no</strong>dots pasūtītājam. Par šiem<br />
jautājumiem pasūtītājam un izpildītājam katra konkrēta līguma gadījumā ir īpaši<br />
jāvie<strong>no</strong>jas un šī vie<strong>no</strong>šanās dokumentāli jāapstiprina. Nododamo dokumentu<br />
komplekts ir cieši saistīts ar programmatūras īpatnībām, abu pušu vie<strong>no</strong>ša<strong>no</strong>s <strong>par</strong><br />
programmatūras uzturēšanu, autortiesību aizsardzību, kā arī citiem jautājumiem.<br />
Atsauces<br />
1. LR MK Noteikumi Nr. 70 (pieņemti 19.03.1996.) Noteikumi <strong>par</strong> valsts <strong>no</strong>zīmes<br />
datorizēto informācijas sistēmu statusa piešķiršanas kārtību un tehniskās realizācijas<br />
prasībām.<br />
2. A.Ādamsone, J.Borzovs, R.Čevere, M.Lučkina. Framework for Potential Latvian<br />
Software Engineering Standards._ In: Hele-Mai Haav, Bernhard Thalheim(Eds.)<br />
Databases and Information Systems: Proc. 2nd Int. Baltic Workshop, Tallinn, 1996,<br />
pp. 105-112.<br />
3. J.Borzovs. Informācijas teh<strong>no</strong>loģija Latvijā: likumi un standarti._ Rakstu krājums<br />
"Latvija ceļā uz informācijas sabiedrību", Latvijas Akadēmiskā bibliotēka, 1996, lpp.<br />
35-40.<br />
4. I.Mētra. IT Standardization Activities in Latvia._ Baltic IT Review, No. 3, 1996,<br />
pp.48-50.<br />
5. J.Borzovs. Information Tech<strong>no</strong>logy in Latvia: Laws and Standards._ Baltic IT<br />
Review, No. 3, 1996, pp.44-47.<br />
2.1. <strong>Konspekts</strong><br />
Programminženierija<br />
Lekcijas saturs:<br />
Kas ir sistēma<br />
SDK<br />
Prasību uzkrāšana un analīze<br />
Prototipēšana<br />
Sistēmas projektēšana un analīze<br />
Kas ir sistēma<br />
Def. Informācijas sistēma (IS) ir cilvēku, datu, procesu un informācijas teh<strong>no</strong>loģiju<br />
kopums, kurš sadarbojas lai reģistrētu, uzkrātu un apstrādātu informāciju, kura<br />
nepieciešama organizācijas atbalstam.<br />
Def. Informācijas teh<strong>no</strong>loģijas (IT) ir moderns termins, kurš apraksta datoru<br />
teh<strong>no</strong>loģijas (a<strong>par</strong>atūras un programmatūras) kombināciju ar telekomunikāciju<br />
teh<strong>no</strong>loģijām (datu, balss u.c. tīkli).<br />
Sistēmas iedalās 7 veidos:<br />
Transakciju apstrādes sistēmas (Transaction Processing Systems) – uzkrāj un apstrādā<br />
uzņēmuma transakciju datus.
Vadības informācijas sistēmas (Management Information Systems) – <strong>no</strong>drošina<br />
vadībai atskaites <strong>par</strong> uzņēmuma transakciju apstrādi un operācijām.<br />
Lēmumu atbalsta sistēmas (Decision Support Systems) – palīdz identificēt lēmumu<br />
pieņemšanas iespējas vai <strong>no</strong>drošina informāciju lēmumu pieņemšanai.<br />
Izpildes informācijas sistēmas (Executive Information Systems)<br />
Ekspertu sistēmas (Expert Systems) – uzkrāj darbinieku kompetenci un pieredzi<br />
Komunikāciju un sadarbības sistēmas (Communication & Collaboration Systems) –<br />
<strong>no</strong>drošina efektīvu komunikāciju starp darbiniekiem, sadarbības <strong>par</strong>tneriem, klientiem<br />
un piegādātājiem, lai uzlabot viņu sadarbības iespējas.<br />
Biroja automatizācijas sistēmas (Office Automation Systems) – atbalsta dažāda veida<br />
biroja darbu plūsmas.<br />
Informācijas sistēmas veic šādas funkcijas : datu uzkrāšana, aktualizācija,<br />
reģistrēšana, maiņa, likvidēšana, piekļuves <strong>no</strong>drošināšana u.c.<br />
Mūsdienu informācijas sistēmas dzinējspēki ir šādi:<br />
Uzņēmējdarbības dzinējspēki<br />
eko<strong>no</strong>mikas globalizācija - jauns augošs starptautisks tirgus:<br />
pieprasījums pēc dažādu valodu, valūtu <strong>kursu</strong>, uzņēmējdarbības kultūru atbalsta;<br />
pieprasījums starptautisku datu konsolidācijas;<br />
pieprasījums pēc mutiskas un rakstiskas komunikācijas ar vadību un lietotājiem, kuri<br />
runā dažādās valodās.<br />
elektroniskas uzņēmējdarbības un komercijas aktualitāte;<br />
drošība un privātums;<br />
sadarbība un <strong>par</strong>tnerība;<br />
zināšanu vērtību pārvaldība;<br />
procesu uzlabošana un kvalitātes pārvaldība.<br />
Teh<strong>no</strong>loģiskie dzinējspēki<br />
datortīkli un internets (perspektīvākas teh<strong>no</strong>loģijas- xHTML un XML, skriptu<br />
valodas, tīmekļa specifiskas programmēšanas valodas, Intranets, Extranets, portāli,<br />
tīmekļa pakalpojumi (Web services);<br />
mobilas un bezvadu teh<strong>no</strong>loģijas (PDAs, Smart phones, Bluetooth)<br />
objektu teh<strong>no</strong>loģijas (objektu orientēta analīze un projektēšana, atkalizmantošanas<br />
iespējas, Agile izstrādes metodoloģija, objektu orientētas programmēšanas valodas C,<br />
java, Smaltalk, Visual Basic, .NET);<br />
uzņēmumu lietojumprogrammatūra (klientu apkalpošanas sistēmas, piegādes tīkla<br />
pārvaldības sistēmas, personāla vadības sistēmas, finansu sistēmas, tirgvedības un<br />
pārdošanas sistēmas, operāciju vadības sistēmas, uzņēmuma resursu plā<strong>no</strong>šanas u.c.);
1. attēls. Informācijas sistēmas izstrādes fāzes un tajās iesaistītie dalībnieki.<br />
Dinamiskas vai statiskas sistēmas (objekti mainās vai nemainās laikā)<br />
Izstrādes modeļi:
2. attēls. Secīgas un iteratīvas izstrādes modeļi.<br />
SDK<br />
Ar kādām metodēm SDK var dabūt gatavu Trīs avoti:<br />
1. tiesiskie jeb <strong>no</strong>rmatīvie akti
2. intervijas (grāmatas apraksts, kā to darīt)<br />
3. iepriekšējā pieredze<br />
Prasību analīze<br />
- tehniskā realizējamība (vai to var īste<strong>no</strong>t)<br />
- eko<strong>no</strong>miskā lietderība<br />
Prasības izanalizē, reizēm atgriežas pie prasību precizēšanas.<br />
Prasību uzkrāšana un analīze<br />
Prasību uzkrāšana:<br />
Tiek izstrādāta sistēmas prasību specifikācija:<br />
- Izpildāmas funkcijas (funkcionālais modelis)<br />
- lietojamie jēdzieni un to sakarības (datu modelis)<br />
- sistēmas funkcionēšana (dinamiskais modelis) prasības programmatūrai<br />
- prasības tehniskai drošībai<br />
- citas specifikas prasības<br />
Prasību analīze:<br />
Tiek izstrādātas rekomendācijas sistēmas izveidei:<br />
- sistēmas koncepcija<br />
- tehniska realizējamība un variantu analīze<br />
- eko<strong>no</strong>miska lietderība- vai ir eko<strong>no</strong>miski izdevīgi sistēmu taisīt<br />
- izmaksas un termini - cik maksā sistēmas izstrāde un cik ātri to var izveidot<br />
- darbu organizācija.<br />
Darbu organizācijas plāns, projekta vadība.<br />
Prototipēšana<br />
Prototipēšana - izstrādes metodoloģijas veids. Sākumā tiek izstrādāts sistēmas<br />
prototips, tas tiek <strong>par</strong>ādīt sistēmas pasūtītajam, lai precizētu prasības. Papildus<br />
prasības tiek uzskaitītas un pēc to realizācijas pasūtītājam atrāda nākamo prototipu.<br />
Parasti līgumā tiek atrunāts iterāciju skaits, lai nerastos domstarpības.<br />
Prototipēšanā ļoti bieži tiek izmantoti jau eksistējošie moduļi vai koda bibliotēkas.<br />
Prototipu izstrāde <strong>no</strong>tiek ātri un vienā iterācijā netiek izstrādāta visa sistēma, bet gan<br />
tās daļa. Tādējādi klients ātri ierauga topošo sistēmu un pārliecinās <strong>par</strong> tās sastāvdaļu<br />
piemērotību un nepieciešamību.<br />
Prototipēšanu izmanto gadījumos, kad (1) izstrādes komandai trūkst pieredzes līdzīga<br />
veida sistēmu izstrādē; (2) izstrādes vai sistēmas ārējā vide ir nestabila vai ne<strong>no</strong>teikta;<br />
(3) ir būtiskas problēmas lēmumu pieņemšanā.<br />
Sistēmas projektēšana un analīze<br />
Projektēšana:<br />
Tiek izstrādātas sistēmas projekts (projektējuma apraksts):<br />
- izpildāmas funkcijas (meņu)<br />
- ER modelis un datu struktūras<br />
- Sistēmas funkcionēšanas algoritms
- Lietotāju saskarsme (ekrānu formas un atskaites)<br />
- Standartprogrammatūras, datortehnikas, tīklu un citu elementu izvēle.<br />
Analīze:<br />
- Tiek akceptēts sistēmas projekts (pieprasījuma apraksts):<br />
- Standartprogrammatūras, tikli un datortehnikas<br />
- Instalācija un aprobācija<br />
- Simulēšana - reakcijas laiki, drošības situācijas<br />
Programmēšanas vides izvēle<br />
2.2. Kā top informācijas sistēmas I<br />
Kā top informācijas sistēmas<br />
Ivars Solovjovs, DatorPasaule 12 '99<br />
Īss ieskats informācijas sistēmu izstrādes projektu ikdienā<br />
Projekti un to vadība<br />
Droši var apgalvot, ka projekti un to vadība pastāv jau kopš civilizācijas<br />
pirmsākumiem. Vai tā būtu ēģiptiešu piramīdas celtniecība, vai romiešu kara<br />
kampaņas organizēšana, visos šajos gadījumos cilvēks ir risinājis problēmu, kā <strong>no</strong><br />
izejas situācijas A <strong>no</strong>kļūt vēlamajā situācijā B. Gadsimtu gaitā šī pieredze ir<br />
pilnveidojusies un 20. gadsimtā kļuvusi <strong>par</strong> zinātnisku disciplīnu un vienu <strong>no</strong> vadības<br />
zinātņu stūrakmeņiem. Projekts ir uzskatāms <strong>par</strong> citu dimensiju tradicionālajam<br />
veidam, kā tiek veiktas aktivitātes kādā organizācijā. Ja ilglaicīgi un vienveidīgi<br />
tipveida darbi tiek pildīti statisku, funkcionālu struktūrvienību ietvaros, tad<br />
vienreizēja netipiska uzdevuma izpilde tiek organizēta un vadīta kā projekts, tā<br />
izpildei uz laiku apvie<strong>no</strong>jot dažādu struktūrvienību resursus vie<strong>no</strong>tā projekta grupā,<br />
lai sasniegtu konkrētus projekta mērķus. Jauna veida produkcijas ražošanas<br />
uzsākšanu, uzņēmuma struktūras izmaiņu vai jaunas datorsistēmas ieviešanu uzskata<br />
<strong>par</strong> tipiskām aktivitātēm, kuras ir organizējamas kā projekti.<br />
IT projekti un programminženierija<br />
Jaunas informācijas sistēmas (IS) izveide organizācijā bieži vien ir saistīta ar<br />
kardinālām izmaiņām pašā organizācijā un tās biznesa procesos, tāpēc sekmīga IS<br />
izveide nav iespējama bez projektu vadības metožu izmantošanas, kuras, bagātinātas<br />
ar specifisko IT projektu pieredzi, radīja jaunu disciplīnu, kas kopš 70. gadu sākuma ir<br />
pazīstama kā programminženierija (software engineering). Par spīti zinātnieku un<br />
praktiķu pūliņiem, kā arī uzkrātai pieredzei šajā jomā, "sudraba lode" līdz šim tā arī<br />
vēl nav atrasta un centieni pilnveidot IS un programmatūras izstrādes metodes<br />
joprojām turpinās. Taču ir izkristalizējušies virkne principu un paņēmienu, bez kuriem<br />
sekmīga IS izstrādes projektu realizācija nav iespējama.<br />
Amatnieciskā un rūpnieciskā IS izstrāde<br />
Datoru un citu informācijas teh<strong>no</strong>loģiju pieejamība, kā arī bieži kultivētais mīts <strong>par</strong><br />
programmēšanu kā mākslu rada ilūziju, ka IS izstrāde ir vienkārša un īpašus vadīšanas<br />
pūliņus neprasa, jo ir pašregulējoša aktivitāte. IS izveide atbilstoši šim priekšstatam<br />
līdzinātos, teiksim, tam, kā tiek remontēts dzīvoklis, kad palīdz krāsotājs Pēteris, kurš,<br />
kā jau kārtīgs amatnieks, <strong>no</strong> pusvārda saprot jūsu aptuvenās vēlmes un ātri, bez
jebkādām formalitātēm izkrāso jūsu dzīvokli vēlamajā krāsā. Gadījumā, ja neiznāks,<br />
kā vajag, viņš pārkrāsos, jo gan jau jūs kaut kā vie<strong>no</strong>sities. Ļaunākajā gadījumā, ja<br />
bieži rodas vēlēšanās mainīt krāsu, var pieņemt viņu pie sevis darbā, lai būtu visu<br />
laiku pie rokas. Šo piemēru var uzskatīt <strong>par</strong> tipiski amatniecisku pieeju, kura šajā<br />
situācijā ir absolūti dabiska un eko<strong>no</strong>miski gandrīz vai vienīgi iespējamā. Pavisam<br />
cita situācija ir, ja mēs apskatām, piemēram, debesskrāpja vai tilta būvniecību, kur bez<br />
izsmeļoša eko<strong>no</strong>miskā pamatojuma, precīza projekta, tāmes, apakšuzņēmēju<br />
iesaistīšanas un citu it kā birokrātisku procedūru ievērošanas sekmīgs rezultāts<br />
vienkārši nav iespējams. Šāda mēroga un <strong>no</strong>zīmes objektu būvniecībā tiek izmantotas<br />
industriālas metodes, kuras būtiski atšķiras <strong>no</strong> amatnieciskajām.<br />
Tieši tāpat ir ar informācijas sistēmu izstrādi, jo var izmantot abas pieejas – gan<br />
amatniecisko (ja ir runa <strong>par</strong> vienkāršu programmiņu, ar kuru tiktu galā viens cilvēks<br />
divās nedēļās), gan arī rūpnieciskās (industriālās) IS izstrādes metodes (ja tiek<br />
izstrādāta valstiskas <strong>no</strong>zīmes vai uzņēmuma kritisku funkciju <strong>no</strong>droši<strong>no</strong>ša sistēma,<br />
kurā tiek iesaistīti 10 un vairāk cilvēku). Runājot līdzībās, jāsaka, ka galvenais ir<br />
nemēģināt būvēt debesskrāpi, paļaujoties tikai uz amatnieku zelta rokām.<br />
Kāpēc IS izstrādē ir nepieciešami standarti<br />
Kā jau tika minēts, IS izstrādes projekti ļoti bieži ir lieli, un tādos nevar iztikt bez<br />
lielāku uzdevumu sadalīšanas sīkākos, to veikšanu uzticot daudziem izpildītājiem un<br />
pēc tam integrējot atsevišķi iegūtos rezultātus. Nav iespējams šos projektus īste<strong>no</strong>t arī<br />
bez koordinācijas <strong>no</strong>drošināšanas starp atsevišķiem apakšprojektiem, plānu izpildes<br />
gaitas uzraudzības un plānu precizēšanas, bez dažādu ražotāju IT produktu<br />
izmantošanas utt. Normāla sadarbība starp projektā iesaistītajiem dalībniekiem nevar<br />
<strong>no</strong>tikt, ja tie nebalstās uz vie<strong>no</strong>tiem metodoloģiskiem un teh<strong>no</strong>loģiskiem principiem.<br />
Šo iemeslu dēļ, kā jau jebkurā industrializētā <strong>no</strong>zarē, standartu ievērošana kļūst <strong>par</strong><br />
priekš<strong>no</strong>sacījumu, kaut arī ne garantiju veiksmīgam rezultātam. Kā galve<strong>no</strong>s IS<br />
izstrādes procesu reglamentējošos standartus var minēt šādus:<br />
• ISO 9000 grupas standarti, kas <strong>no</strong>saka vispārējos organizācijas darbības principus<br />
un sakārtotību (ieskaitot arī ISO 9000-3 standartu, kurš reglamentē ISO 9000<br />
standartu lietošanu programmatūras izstrādē);<br />
• Standartu kopa, ko veido gan ISO, gan IEEE standarti, kas reglamentē informācijas<br />
sistēmas dzīves ciklu, projekta procesus un to savstarpējo saistību, starpproduktu<br />
<strong>no</strong>menklatūru, saturu un formu (programminženierijas standarti);<br />
Katrai organizācijai jāpiemēro standarti konkrētām vajadzībām, kuru ietvaros<br />
atbilstoši standartu <strong>no</strong>stādnēm ir jādefinē konkrētos apstākļos nepieciešamie procesi,<br />
aktivitātes, attiecīgo dokumentu konkrēts saturs un forma, kā arī vadlīnijas standartu<br />
izmantošanai organizācijā.<br />
Ar ko sākas IS izstrādes projekts<br />
IT izmantošana organizācijā un IS izstrāde nav pašmērķis, bet tikai līdzeklis<br />
(instruments) konkrētu biznesa mērķu sasniegšanai, tāpēc IS izstrāde ir uzskatāma <strong>par</strong><br />
uzņēmuma (vai organizācijas) darbības uzlabošanas procesa sastāvdaļu.<br />
Pirms IS izveides sākuma, uzņēmumam ir jātiek skaidrībā, kādi ir organizācijas<br />
biznesa mērķi, kas un kā ir jāpārveido uzņēmumā, lai tos sasniegtu, kādas ir tās<br />
funkcijas, kuru atbalstam nepieciešams izmantot IT, kāda ir IS izveides un<br />
darbināšanas stratēģija (IS izveide pašu spēkiem vai produktu un pakalpojumu<br />
iepirkšana <strong>no</strong> ārpuses). Parasti šie jautājumi tiek atspoguļoti stratēģiskas dabas<br />
dokumentā (tā <strong>no</strong>saukums varētu būt, piemēram, "Informācijas sistēmas stratēģiskais<br />
plāns"), kas tiek akceptēts visaugstākajā vadības līmenī. Šīs stratēģiskās plā<strong>no</strong>šanas
aktivitātes attiecas ne tik daudz uz IS izstrādi, bet gan uz organizācijas biznesa<br />
procesa sakārtošanu, tāpēc konkrētu standartu, kas reglamentētu šo procesu, nav.<br />
IS izstrādes dzīves cikls<br />
Tāpat kā dzīva būtne, arī IS netop vienā mirklī, un tai ir savs dzīves cikls, kas tiek<br />
aprakstīts ar dzīves cikla modeli. Jau kopš 70. gadu sākuma <strong>par</strong> klasiskām sistēmas<br />
izstrādes dzīves cikla (system development life cycle –SDLC) sastāvdaļām tiek<br />
uzskatītas šādas fāzes (sk.1. zīm.):<br />
• Prasības (sistēmu analīze, prasību specificēšana) –<br />
tiek apzinātas, izanalizētas un dokumentētas prasības (visdažādākās: sākot ar<br />
funkcionālajām un beidzot ar tehniskajām), kurām izstrādājamai IS ir jāatbilst;<br />
• Projektēšana – atbilstoši prasībām tiek projektēta sistēmas iekšējā uzbūve;<br />
• Kodēšana un vienību testēšana – atbilstoši projektētajam tiek izstrādāta (kodēta)<br />
programmatūra un veikta atsevišķu sistēmas sastāvdaļu (moduļu) auto<strong>no</strong>ma testēšana;<br />
• Sistēmas integrācija – atsevišķās sistēmas daļas un komponenti tiek apvie<strong>no</strong>ti vienā<br />
strādājošā sistēmā, kas pēc attiecīgas pārbaudes tiek palaista ražošanā;<br />
• Darbināšana un uzturēšana – regulārs darbs ar sistēmu, kā arī sistēmas modificēšana<br />
atbilstoši prasībām, kas <strong>par</strong>ādās jau tās darbināšanas laikā;<br />
Tas ir tā saucamais vienkāršais (once-trough) ūdenskrituma modelis (waterfall), kas<br />
<strong>par</strong>edz lineāru atsevišķu fāžu secību. Katrā fāzē ir definēti konkrēti mērķi un<br />
aktivitātes, kā arī rezultāti, kurus izmanto nākamajā fāzē. Lai gan pastāv variācijas<br />
attiecībā uz fāžu <strong>no</strong>saukumiem, kā arī atsevišķas fāzes dažkārt tiek dalītas vēl sīkāk,<br />
konkrētais modelis ir uzskatāms <strong>par</strong> klasisku.<br />
Pamatprincipi, uz kuriem balstās ūdenskrituma modelis, ir šādi:<br />
• Pirms projekta uzsākšanas, tas ir rūpīgi jāizplā<strong>no</strong>;<br />
• Jādefinē sistēmas ārējā uzvedība (atribūti), pirms uzsāk sistēmas iekšējās uzbūves<br />
konstruēšanu;<br />
• Jādokumentē katras aktivitātes rezultāti;<br />
• Pirms sistēmas kodēšanas (programmēšanas) tā ir jāprojektē;<br />
• Pēc sistēmas uzbūvēšanas tā ir jātestē.<br />
IS izstrādes dzīves cikla modeļa paveidi<br />
Ūdenskrituma modeļa (klasiskajā variantā) galvenais trūkums – pirms sistēmas<br />
izstrādes uzsākšanas ir jābūt precīzi definētām izstrādājamās sistēmas prasībām.<br />
Ņemot vērā to, ka sistēmas mēdz būt lielas un sarežģītas, kā arī risku, kas ir saistīts ar<br />
nepilnīgi definētām prasībām, praksē bieži vien tiek piemēroti <strong>no</strong> konkrētā modeļa<br />
atvasināti varianti.<br />
Viena iespēja, kā mazināt risku, ir izstrādāt sistēmu pa daļām. Tas ir inkrementālais
modelis (sk. 2. zīm.).<br />
Izstrādes scenārijs, atbilstoši kuram pēc pirmā būvējuma uz tā darbināšanas pieredzes<br />
pamata tiek papildinātas (precizētas) sistēmas prasības, ir evolucionārais modelis (sk.<br />
3. zīm.).<br />
Ņemot vērā moder<strong>no</strong> programmatūras rīku iespējas, dažkārt ir lietderīgi pirms<br />
izstrādes sākuma uzbūvēt sistēmas vienkāršotu prototipu, uz kura pamata tiek<br />
definētas izstrādājamās sistēmas prasības. Tas ir prototipēšanas modelis (sk. 4. zīm.).<br />
IS izstrādes dzīves cikla modeļu galve<strong>no</strong> iezīmju salīdzinājums.
Izstrādes stratēģija (modelis)<br />
Vai vispirms<br />
definē visas<br />
prasības<br />
Vai ir vairāki<br />
izstrādes cikli<br />
Vai tiek izplatīti<br />
(darbināti)<br />
starpbūvējumi<br />
Vienkāršā (once- trough) Jā Nē Nē<br />
Inkrementālā Jā Jā Iespējams<br />
Evolucionārā Nē Jā Jā<br />
Bez minētajiem vēl ir pazīstams spirāles modelis, kas attēlo sistēmas izstrādes procesu<br />
kā iteratīvu ciklu (spirāli), kurš sastāv <strong>no</strong> mērķa uzstādīšanas, risinājuma izvēles un<br />
alternatīvu analīzes, izstrādes, rezultātu salīdzināšanas ar sākotnējo uzdevumu, kā arī<br />
jauna mērķa uzstādīšanas utt.<br />
Lai gan visi šie modeļi savā būtībā nav pretrunīgi un viens otru papildina, tomēr viens<br />
<strong>no</strong> galvenajiem projekta lēmumiem ir izvēlēties konkrētai situācijai piemērotāko<br />
izstrādes stratēģiju. Noteikti būtu jāņem vērā tādi faktori kā problēmas sarežģītība, cik<br />
viegli ir definējamas prasības, prasību izmaiņu varbūtība, cik ātri nepieciešama pirmā<br />
(daļēja) sistēmas funkcionalitāte, finansu iespējas, izstrādei nepieciešamie<br />
cilvēkresursu ierobežojumi un citi faktori.<br />
Mazai sistēmai, kuras visu funkcionalitāti ir iespējams izstrādāt vienā paņēmienā (vai<br />
arī nav jēdzīga/iespējama daļas funkciju realizācija), visdrīzāk derēs vienkāršais vai<br />
prototipa modelis (ja puses atrod <strong>par</strong> ērtāku prasības definēt uz "fiziski aptaustāma"<br />
prototipa pamata). Savukārt lielas sistēmas, kā likums, tiek realizētas vairākās<br />
iterācijās (resursu ierobežojumu dēļ, kā arī lai mazinātu risku un papildu izdevumus,<br />
kas saistīti ar pārlieku liela projekta vadīšanu). Vissaprātīgākais šādā gadījumā ir katrā<br />
nākamajā iterācijā koriģēt/papildināt prasības atbilstoši iepriekšējās iterācijas<br />
rezultātiem (evolucionārais modelis). Taču bieži tiek piemērots arī inkrementālais<br />
scenārijs, kad prasības tiek iesaldētas jau izstrādes sākumā un pēc tam vairākās kārtās<br />
realizētas (ja prasības ir pietiekami stabilas un detalizētas un ir<br />
nepieciešama/iespējama daļas funkciju ātrāka realizācija, kā arī izstrāde tiek<br />
organizēta kā atsevišķs fiksētas cenas kontrakts uz detalizēta prasību specifikācijas<br />
dokumenta pamata).<br />
3.1. <strong>Konspekts</strong><br />
Sistēmas modelēšana
<strong>Izmantoti</strong>e materiāli: Roger S. Pressman, Chapter 10. Sistēmas inženierija. lpp.235-<br />
248<br />
Plāns:<br />
• Sistēmas modelēšana<br />
• Uzņēmuma modelēšana<br />
• Biznesa līmeņa datu modelēšana<br />
• Procesu modelēšana<br />
• Informācijas plūsmas modelēšana<br />
• Sistēmas arhitektūras modelēšana<br />
Sistēmas modelēšana<br />
Sistēmu izstrāde ir modelēšanas process. Neatkarīgi <strong>no</strong> tā, vai uzmanība tiek pievērsta<br />
pasaules redzējumam, vai detalizētākam redzējuma, inženieris izstrādā modeli, kurš:<br />
definē procesus, kuri apmierina šī redzējuma vajadzības;<br />
reprezentē procesu uzvedību un pieņēmumus, uz kuriem balstās procesu uzvedība;<br />
skaidri definē modeļa ieejas informāciju - eksogē<strong>no</strong> un endogē<strong>no</strong> ievadu;<br />
reprezentē visus savie<strong>no</strong>jumus, ieskaitot izvadus, kuri <strong>no</strong>drošinās inženiera labāko<br />
problēmas sfēras redzējumu.<br />
Lai uzbūvētu sistēmas modeli, inženierim ir jāņem vērā vairāki svarīgi faktori:<br />
1. Pieņēmumi, kuri samazina iespējamo permutāciju un variāciju skaitu, tādā veidā<br />
<strong>no</strong>droši<strong>no</strong>t modeļa iespēju adekvāti reaģēt uz problēmu.<br />
2. Vienkāršošana <strong>no</strong>drošina modeļa ātrāku izstrādi.<br />
3. Ierobežojumi, kuri palīdz identificēt būvējamās sistēmas robežas.<br />
4. Teh<strong>no</strong>loģiskie ierobežojumi, kuri <strong>no</strong>saka vadlīnijas būvējamās sistēmas modeļa<br />
realizācijai un implementēšanai.<br />
5. Preferences, kuras <strong>no</strong>saka vēlamo arhitektūras īpašības gan datiem, gan funkcijām,<br />
gan teh<strong>no</strong>loģijām.<br />
Uzņēmuma modelēšana<br />
Veicot uzņēmuma modelēšanu, inženieri izstrādā trīsdimensiju skatījumu uz<br />
uzņēmuma biznesu. Pirmā dimensija pārvalda organizācijas struktūru un funkcijas,<br />
kuras tiek veiktas dotajās organizācijas struktūrās. Otrā dimensija palīdz atdalīt<br />
biznesa funkcijas <strong>no</strong> tām, kuras palīdz biznesa funkcijām eksistēt un realizēties.<br />
Visbeidzot trešā dimensija organizācijai un tās funkcijām pievie<strong>no</strong> mērķus un<br />
kritiskus veiksmes faktorus. Papildus tam, uzņēmuma modelēšanas procesā tiek<br />
izveidots biznesa līmeņa datu modelis, kurš definē datu objektus un to saistību ar<br />
citiem elementiem uzņēmuma modelī.<br />
Biznesa organizācija <strong>par</strong>asti tiek definēta kā klasiska biznesa vienību hierarhija (skat.<br />
Attēlu 1). Katra diagrammas aile raksturo organizācijas biznesa darbības sfēru.<br />
Protams, šo hierarhisko attēlu var detalizēt līdz pat mazām izstrādes komandām vai<br />
pat atsevišķiem darbiniekiem, taču modelēšanas mērķiem tas nav vajadzīgs.<br />
Tālāk tiek identificētas biznesa funkcijas un atbilstošie procesi, nepieciešami šo<br />
biznesa funkciju realizācijai. Biznesa funkciju definē kā biznesa sfēras nepieciešamo<br />
<strong>no</strong>tiekošu aktivitāti. Biznesa funkciju <strong>par</strong>asti raksturo lietvārds. Biznesa procesam,<br />
savukārt, ir ieejas informācija, kuru pārveidojot tiek iegūta izejas informācija. Biznesa<br />
procesu <strong>par</strong>asti raksturo darbības vārds.
Attēls 1. Organizācijas hierarhiskā struktūra un to funkcijas.<br />
Biznesa līmeņa datu modelēšana<br />
Biznesa līmeņa datu modelēšana ir uzņēmuma modelēšana aktivitāte, kurā galvenā<br />
uzmanība tiek pievērsta datu objektiem (tā saucamajām entītēm), kuri ir nepieciešami<br />
biznesa funkcijas mērķu sasniegšanai. Biznesa līmenī tipiskie datu objekti iekļauj<br />
informācijas sniedzējus un informācijas patērētājus (piemēram, klients), lietas<br />
(piemēram, pārskati, atskaites), <strong>no</strong>tikumus (piemēram, konference), organizācijas<br />
lomas (piemēram, vice-prezidents), organizācijas vienības (piemēram, pārdošanas un<br />
mārketinga de<strong>par</strong>taments), vietas (piemēram, rūpnīca) vai informācijas struktūras<br />
(piemēram, darbinieku datne). Datu objektam ir virkne atribūtu, kuri raksturo tā<br />
kvalitāti, raksturojumu vai datus, kurus objekts satur.<br />
Piemēram, aplūkosim datu objekta piemēru - Klients. Lai detalizēti aprakstītu klientu,<br />
izmantosim šādus atribūtus:<br />
______________________<br />
Objekts: Klients<br />
Atribūti:<br />
Vārds<br />
Organizācijas <strong>no</strong>saukums<br />
Amats<br />
Interesējošie produkti<br />
Pirkumu/pasūtījumu vēsture<br />
Pēdējā kontakta datums<br />
Kontakta statuss<br />
Kad ir skaidri datu objekti, tiek identificētas to savstarpējas attiecības. Attiecības<br />
identificē veidu, kā objekti sadarbojas viens ar otru. Piemēram, ir identificēti objekti<br />
Klients, Produkts A un Pārdevējs. Inženieris veido diagrammu, lai attēlotu šo objektu<br />
savstarpējas attiecības. Parasti attiecības var būt lasītas gan <strong>no</strong> viena objekta puses,
gan <strong>no</strong> otra objekta puses. Piemēram, Klients kontaktējas ar Pārdevēju, vai Pārdevējs<br />
palīdz Klientam.<br />
Attēls 2. Biznesa līmeņa datu objektu attiecības<br />
Un visbeidzot ir svarīgi sastādīt griezskaņa (cross-relation) matricu, kurā tiktu<br />
uzskaitītas visas savastarpējas attiecības starp organizāciju un tās biznesa sfērām,<br />
biznesa mērķiem, biznesa funkcijām un procesiem, kā arī datu objektiem.<br />
Procesu modelēšana<br />
Darbs, kurš tiek veikts kādā organizācijā satur virkni biznesa funkciju, kurus <strong>no</strong>formē<br />
kā biznesprocesus.<br />
Izskatīsim procesu modelēšanu uz pārdošanas funkcijas piemēra. Pārdošana satur<br />
vairākus procesus:<br />
- Nodibināt kontaktu ar klientu;<br />
- Nodrošināt literatūru un citu informāciju <strong>par</strong> produktu;<br />
- Atbildēt uz interesējošiem jautājumiem;<br />
- Nodrošināt produktu;<br />
- Pieņemt pircēja pasūtījumu;<br />
- Pārbaudīt pasūtījuma pieejamību;<br />
- Sagatavot piegādi;<br />
- Saskaņot ar pasūtītāju pasūtījuma konfigurāciju, apmaksas un piegādes veidu;<br />
- Pārsūtīt pasūtījumu <strong>par</strong> izpildi atbildīgajam de<strong>par</strong>tamentam;<br />
- Turpināt sarunu ar klientu.<br />
Šai procesa plūsmai var izveidot šādu procesa plūsmas diagrammu (skat. Attēls 3.)
Attēls 3. Procesa plūsmas modelis pārdošanas funkcijai.<br />
Datu plūsmas modelēšana<br />
Datu plūsmas modelis tiek integrēts ar Procesu plūsmas modeli, lai attēlotu kādā<br />
veidā informācija ceļo līdz biznesprocesiem. Katram procesam tiek attēlota ieejas un<br />
izejas informācija, attēlojot informācijas pārveidošanas plūsmu kamēr tiek izpildīta<br />
kāda biznesa funkcija. Datu plūsmas piemēru skat. Attēlā 4.<br />
Attēls 4. Datu plūsmas pievie<strong>no</strong>šana procesa plūsmas modelim.<br />
Kad procesa un datu plūsmas modeļi ir izstrādāti, inženieris, sekojot biznesa procesu<br />
izpildei, mēģina identificēt iespēju optimizēt kādu posmu, ieejas un izejas<br />
informāciju, piemeklējot piemērotāko teh<strong>no</strong>loģisko vai organizatorisko risinājumu.<br />
Uz šo modeļu bāzes vēlāk tek izstrādāta būvējamās sistēmas prasību specifikācija.<br />
Sistēmas arhitektūras modelēšana<br />
Katra sistēmas var būt modelēta kā informācijas pārveidošanas arhitektūra: "ievadsapstrāde-izvads".<br />
Sistēmas modeļa izstrādē tiek izmantota arhitektūras sagatave.<br />
Inženieris uzskaita visus arhitektūras elementus sekojošās grupās: 1) lietotāju
saskarnes; 2) ievadi; 3) sistēmas funkcija un kontroles mehānismi; 4) izvads; 5)<br />
sistēmas uzturēšana un paštesti. Arhitektūras sagataves forma ir redzama attēlā 5.<br />
Attēls 5. Arhitektūras sagataves forma.<br />
Tāpat kā pārējās modelēšanas tehnikas, arhitektūras sagataves ļauj analītiķim pielietot<br />
detalizācijas hierarhiju. Arhitektūras konteksta diagrammas (ACD) atrodas hierarhijā<br />
pašā augšā. Konteksta diagramma <strong>no</strong>sprauž robežas starp sistēmu un sistēmas<br />
ekspluatācijas vidi. Proti, arhitektūras konteksta diagramma definē visus sistēmas<br />
ārējos informācijas piegādātājus un izmantotājus, kā arī visas entītes, kuras sadarbojas<br />
ar ārējiem datu failiem, izmantojot interfeisus.<br />
Piemērā ir attēlota konveijera līnijas sortēšanas sistēma (skat. attēlu 6).<br />
Attēlos 6. Konveijera līnijas sortēšanas sistēmas arhitektūras konteksta diagramma..<br />
Vēlāk inženieris detalizē arhitektūras konteksta diagrammu, identificējot zem katras<br />
kantainas ailes apakšsistēmas, kuras <strong>no</strong>drošina sistēmas funkcionēšanu.<br />
Apakšsistēmas var attēlot arhitektūras plūsmas diagrammā (AFD), kurš balstās uz<br />
arhitektūras konteksta diagrammu (skat. attēlu 7).
Attēls 7. Arhitektūras plūsmas diagramma (AFD).<br />
Pirmā arhitektūras plūsmas diagramma kļūst <strong>par</strong> augšējo virsotni kokā, kura lapas ir<br />
kantainas ailes, kuras, ejot arvien dziļāk, iegūst arvien lielāku detalizācijas pakāpi. Šis<br />
process ir redzams attēlā 8.<br />
Attēls 8. Arhitektūras plūsmas diagrammas hierarhija
3.2. Datu plūsmu diagrammas piemērs<br />
Datu plūsmu diagrammas piemērs<br />
Izmantots kursa projekts: "Personāla darba uzdevumu uzskaites sistēma" R. Zviedris;<br />
M. Vārpa.<br />
Arthur Andersen<br />
vadība<br />
Klients<br />
4.1. <strong>Konspekts</strong><br />
Dati <strong>par</strong> izmaiņām<br />
kompānijās, grupās<br />
un klasifikācijās<br />
Dati <strong>par</strong><br />
meklējamo<br />
personu<br />
ER - diagrammas<br />
Personāla<br />
vadītājs<br />
Dati <strong>par</strong><br />
darbinieku<br />
Darbinieks<br />
Dati <strong>par</strong><br />
prombūtni<br />
Sekretāre<br />
Dati <strong>par</strong><br />
izmaiņām<br />
kompānijās<br />
Kompānijas<br />
Dati <strong>par</strong><br />
darbinieku<br />
Dati <strong>par</strong><br />
darbinieku<br />
Dati <strong>par</strong><br />
prombūtni<br />
Dati <strong>par</strong><br />
Dati <strong>par</strong> "meklētāju"<br />
prombūtni<br />
Apzīmējumi<br />
Dati <strong>par</strong><br />
izmaiņām<br />
grupās<br />
Grupas<br />
Dati<br />
<strong>par</strong><br />
izmaiņām<br />
klasfikācijās<br />
Klasifikācijas<br />
Dati <strong>par</strong><br />
kompānijām<br />
Dati <strong>par</strong><br />
grupām<br />
Personālās<br />
informācijas<br />
redaktors<br />
Dati <strong>par</strong><br />
klasifikācijām<br />
Jauns<br />
ieraksts<br />
Atrašanās<br />
vietas<br />
redaktors<br />
Jauns<br />
ieraksts<br />
Entītija - klase, vienveidīgu objektu kopums. Datubāzē tas pārvērtīsies <strong>par</strong> vienu<br />
tabulu. Nosaukumā lieto lietvārdu.<br />
Piemēri.<br />
Personālā<br />
Personas: klients, darbinieks, students, pasniedzējs. informācija<br />
Atrašanās vietas<br />
informācija<br />
Vietas: universitāte, auditorija, viesnīca, restorāns.<br />
Objekti: grāmata, mašīna, produkts, programmatūras Klasificēta licence, programmatūras<br />
Klasificēta<br />
rīks.<br />
informācija<br />
informācija<br />
Notikumi: apbalvošana, pieņemšana darbā, atlaišana <strong>no</strong> darba, ceļojums.<br />
Entītijas instance ir viena entītijas <strong>par</strong>ādīšanās, piemēram, entītijas Students instance<br />
var būt Austris Ozoliņš.<br />
Personālās<br />
informācijas<br />
apskats<br />
Atrašanās vietu<br />
informācijas<br />
apskats<br />
Elektronisko<br />
ziņu<br />
redaktors<br />
Jauns<br />
ieraksts<br />
Darbinieka<br />
e-pastkaste<br />
Informācija <strong>par</strong> darbienieku<br />
Informācija <strong>par</strong> darbinieka atrašanās vietu<br />
Grāmatvedība<br />
Personāla<br />
vadītājs<br />
Sekretāre<br />
Klients
1. attēls. Entītija Students un tās instances tabulārajā reprezentācijā.<br />
Atribūts ir entītijas raksturojošs elements vai aprakstoša īpašība. Atribūta si<strong>no</strong>nīmi -<br />
elements, īpašība un lauks. Piemēram, Studentam var būt vārds, uzvārds, matu krāsa,<br />
svars u.tml.<br />
Saliktais atribūts ir tāds atribūts, kurš satur citus atribūtus.<br />
Atribūts, kurš atšķir kopas elementus ir galvenā atslēga (primary key), piemēram,<br />
studentus atšķir Studenta apliecības numurs, kurš visiem studentiem ir unikāls. Tā<br />
vietā varētu lietot arī Personas kodu, bet studentiem <strong>no</strong> dažādām valstīm tie būs<br />
dažāda garuma un izskata.<br />
Kandidātatslēga ir viena <strong>no</strong> vairākām atslēgām, kuras var kalpot kā galvenā atslēga (ir<br />
unikāla katrai entītijas instancei).<br />
Alternatīva atslēga ir kandidātatslēga, kura netiek izvēlēta kā galvenā atslēga.<br />
Si<strong>no</strong>nīms - sekundārā atslēga.<br />
Asociatīva entītija ir entītija, kura manto savu galve<strong>no</strong> atslēgu <strong>no</strong> vairāk nekā vienas<br />
citas entītijas (kurus sauc <strong>par</strong> vecākiem (<strong>par</strong>ents)).<br />
Datu tips ir atribūta īpašība, kura identificē to datu tipu, kurus saturēs atribūts.<br />
Attiecība (relācija) - dabiska asociācija starp dažādām entītijām. Attiecība var<br />
reprezentēt <strong>no</strong>tikumu vai citu atbilstību, kura sasaista entītijas. Piemēram, Studenta un<br />
Mācību programmas attiecība - students mācās pēc mācību programmas, savukārt<br />
mācību programmai reģistrē vienu vai vairākus studentus.<br />
2. attēls. Attiecības piemērs.<br />
Attiecības mēdz būt dažāda veida, atkarībā <strong>no</strong> sasaistīto entītiju skaita. Modalitāte -<br />
minimālais instanču <strong>par</strong>ādīšanās skaits, kardinalitāte - maksimālais instanču<br />
<strong>par</strong>ādīšanās skaits.<br />
Nosaukums<br />
Modalitāte Kardinalitāte Grafiskā attēlošana<br />
Tieši viens 1 1
Nulle vai viens 0 1<br />
Viens vai vairāk 1 n (>1)<br />
Nulle, viens vai<br />
vairāk<br />
0 n (>1)<br />
Vairāk <strong>par</strong> vienu n n<br />
ER modeļu realizācija ar tabulām<br />
Tabulu kolonas atbilst atribūtiem. Rindiņu skaits nav ierobežots.<br />
Mācību priekšmets<br />
Kods Nosaukums ...<br />
Y1<br />
Programmēšana<br />
Y2<br />
Diskrētā matemātika<br />
Y3<br />
Projektu vadība<br />
...<br />
...<br />
Mācību priekšmeta galvenā atslēga ir Kods.<br />
Pasniedzējs<br />
Personas kods Vārds Uzvārds ...<br />
PK1- Juris Borzovs<br />
PK2- Jānis Bičevskis<br />
PK3- Guntis Arnicāns<br />
...<br />
Pasniedzēja galvenā atslēga ir Personas kods.<br />
Students<br />
Personas kods Vārds Uzvārds Studiju programma ...<br />
PK1- Juris Bērziņš Datorzinātņu bakalaurs<br />
PK2- Aivis Ozoliņš Programmētājs<br />
PK3- Ieva Liepiņa Datorzinātņu bakalaurs<br />
...<br />
Studenta galvenā atslēga ir personas kods.<br />
Priekšmets - Students<br />
Priekšmets Students Reģistrēšanas datums ...<br />
Y1 PK1 7.IX.03<br />
Y2 PK2 2.II.04<br />
Y3 PK3 5.IX.03<br />
...
Priekšmeta-Studenta tabulā tiek lietotas 2 ārējās atslēgas (foreign key) - mācību<br />
priekšmeta kods un studenta personas kods.<br />
Priekšmets - Pasniedzējs<br />
Priekšmets Pasniedzējs Semestris Kvalitāte ...<br />
Y1 PK1 II ļoti laba<br />
Y2 PK2 III ļoti laba<br />
Y3 PK3 III ļoti laba<br />
...<br />
Ja IS pašos pamatos ieliek neveiksmīgu datu modeli, var sanākt pārtaisīt visu <strong>no</strong><br />
sākuma.<br />
Konceptuālajā modelī var būt m:n attiecības. Realizācijas modelē vairs m:n nav, tur<br />
vēl ir arī kodējumi.<br />
3. attēls. Piemērs.<br />
Datu modelēšanas fāzes.<br />
1. Konceptuālais datu modelis<br />
- lai <strong>no</strong>teiktu projekta sfēru<br />
2. Uz atslēgām balstītais datu modelis<br />
- likvidē nespecifiskas attiecības<br />
- pievie<strong>no</strong> asociatīvas entītijas<br />
- iekļauj galvenās un alternatīvas atslēgas<br />
- precizē kardinalitātes<br />
3. Pilnīgi izskaidrojams datu modelis<br />
- iekļauti visi atlikušie atribūti<br />
- apakškopu veidošanas kritēriju izvēle<br />
4. Normalizēts modelis<br />
4.2. ER modeļa piemērs I<br />
ER modeļa piemērs<br />
Izmantots kursa projekts: "Datu mobilā uzskaite" A. Maruškins; D. Seluto.
Atras mediciniskas palidzibas<br />
automasinu apkalpošanas<br />
bazes<br />
Atras mediciniskas palidzibas<br />
bazes<br />
Pilseta<br />
Atras mediciniskas palidzibas<br />
masinas<br />
Atras mediciniskas palidzibas<br />
personals<br />
Iela<br />
Pasta indekss<br />
Pacienta arstejosais arsts<br />
Apdrosinasanas<br />
kompanijas<br />
Atras mediciniskas<br />
palidzibas izsauksanas<br />
apmaksasanas tarifs<br />
Darba laika aprakstisana<br />
Mediciniskie instrumenti<br />
Izsauktais arsts<br />
Pacienti<br />
Hroniskas<br />
saslimsanas<br />
Starpgadijumi<br />
Kardiologiskas<br />
saslimsanas<br />
Pulmo<strong>no</strong>logiskas<br />
saslimsanas<br />
Nevrologiskas<br />
saslimsanas<br />
Travmotologiskas<br />
saslimsanas<br />
Manipulacijas<br />
EKG defekti<br />
Atras mediciniskas palidzibas<br />
arsta pizimes<br />
Pacienta <strong>par</strong>vesana<br />
Medikamenti<br />
4.3. ER modeļa piemērs II<br />
ER modeļa piemērs<br />
Izmantots kursa projekts: "Personāla darba uzdevumu uzskaites sistēma" R. Zviedris;<br />
M. Vārpa.
4.4. Entītes un atribūti<br />
Entītes un atribūti. Piemērs.<br />
Izmantots kursa projekts: "Datu mobilā uzskaite" A. Maruškins; D. Seluto.<br />
Ātrās medicīniskās<br />
palīdzībās automašīnu<br />
bāzes<br />
1) IDN<br />
2) Ātrās<br />
medicīniskās palīdzības<br />
automašīnu bāzes<br />
identifikācijas numurs<br />
Ātrās medicīniskās<br />
palīdzības bāzes<br />
1) IDN<br />
2) Ātrās<br />
medicīniskās palīdzības<br />
bāzes identifikācijas
numurs<br />
3) Ātrās<br />
medicīniskās palīdzības<br />
bāzes <strong>no</strong>daļas<br />
identifikācijas numurs<br />
Ātrās medicīniskās<br />
palīdzības mašīnas<br />
1) IDN<br />
2) Ātrās<br />
medicīniskās palīdzības<br />
bāzes IDN<br />
3) Mašīnās valsts<br />
numurs<br />
4) Mašīnās<br />
kilometrāže<br />
Ātrās medicīniskās<br />
palīdzības personāls<br />
1) IDN<br />
2) Ātrās<br />
medicīniskās palīdzības<br />
ārsta identifikācijas<br />
numurs<br />
3) Ātrās<br />
medicīniskās palīdzības<br />
medmāsas<br />
identifikācijas numurs<br />
4) Ātrās<br />
medicīniskās palīdzības<br />
vādītāja identifikācijas<br />
numurs<br />
5) Ātrās<br />
medicīniskās palīdzības<br />
bāzes IDN<br />
Darba laika aprakstīšāna<br />
1) IDN<br />
2) Ātrās<br />
medicīniskās palīdzības<br />
pesonāla IDN<br />
3) Ātrās<br />
medicīniskās palīdzības<br />
bāzes IDN<br />
4) Ātrās<br />
medicīniskās palīdzības<br />
mašīnas IDN<br />
5) Darba sakuma
laiks<br />
6) Darba beigas laiks<br />
7) Mašīnas<br />
kilometrāzē darba dienas<br />
sakumā un beigā<br />
Pilsēta<br />
1) IDN<br />
2) Nosaukums<br />
Iela<br />
1) IDN<br />
2) Nosaukums<br />
Pasta indekss<br />
1) IDN<br />
2) Indekss<br />
Apdrošināšanas<br />
kompānijas<br />
1) IDN<br />
2) Nosaukums<br />
3) Identifikācijas<br />
numurs<br />
4) Pilsēta IDN<br />
5) Iela IDN<br />
6) Pasta indeks IDN<br />
7) Adresa<br />
precizēšana<br />
Ātrās medicīniskās<br />
palīdzībās izsaukšanās<br />
apmaksāšanās tarifs<br />
1) IDN<br />
2) Izsauktais ārsts<br />
IDN<br />
3) Tarifa veids<br />
Pacienta ārstējošais ārsts<br />
1) IDN<br />
2) Vārds, uzvārds<br />
3) Identifikācijas<br />
numurs<br />
Izsauktāis ārsts<br />
1) IDN<br />
2) Ārsta tips<br />
3) Ārsta veids
Pacienti<br />
1) IDN<br />
2) Vārds<br />
3) Uzvārds<br />
4) Dzimšanas<br />
datums<br />
5) Vecums<br />
6) Pilsēta IDN<br />
7) Iela IDN<br />
8) Pasta indeks IDN<br />
9) Adresa<br />
precizēšana<br />
10) Dzimums<br />
11) Apdrošināšanas<br />
kompānijas IDN<br />
12) Apdrošināšanas<br />
aģenta (Aa) vārds<br />
13) Aa uzvārds<br />
14) Aa dzimšanas data<br />
15) Aa pilsēta IDN<br />
16) Aa iela IDN<br />
17) Aa pasta indekss<br />
IDN<br />
18) Aa adresa<br />
precizēšana<br />
19) Darba devēja (Dd)<br />
pilsēta IDN<br />
20) Dd iela IDN<br />
21) Dd pasta indekss<br />
IDN<br />
22) Dd adresa<br />
precizēšana<br />
23) Darba dienas<br />
identifikācijas numurs<br />
24) Ātrās medicīniskās<br />
palīdzības mašīnas<br />
izsaukšanas laiks un<br />
datums<br />
25) Ātrās medicīniskās<br />
palīdzības mašīnas<br />
izbraukšanas laiks un<br />
datums<br />
26) Ātrās medicīniskās<br />
palīdzības mašīnas<br />
atbraukšanas laiks un<br />
datums<br />
27) Ātrās medicīniskās<br />
palīdzības mašīnas<br />
aizbraukšanas laiks un<br />
datums
28) Ātrās medicīniskās<br />
palīdzības mašīnas<br />
tiekoša kilometrāža<br />
vertība<br />
29) Darba laika<br />
aprakstīšanas IDN<br />
30) Pirma starpposmu<br />
pieturas (Psp) pilsētas<br />
IDN<br />
31) Psp ielas IDN<br />
32) Psp pasta indeksa<br />
IDN<br />
33) Psp adresa<br />
precizēšana<br />
34) Otra starpposmu<br />
pietura (Osp) pilsētas<br />
IDN<br />
35) Osp ielas IDN<br />
36) Osp pasta indeksa<br />
IDN<br />
37) Osp adresa<br />
precizēšana<br />
38) Treša starpposmu<br />
pietura (Tsp) pilsētas<br />
IDN<br />
39) Tsp ielas IDN<br />
40) Tsp pasta indeksa<br />
IDN<br />
41) Tsp adresa<br />
precizēšana<br />
42) Ātrās medicīniskās<br />
palīdzības izsaukšanās<br />
apmaksāšanās tatrifs<br />
IDN<br />
Medikamenti<br />
1) IDN<br />
2) Grupa<br />
3) Nosaukums<br />
4) Ievada veids<br />
5) Laiks<br />
6) Pacients IDN<br />
Mediciniskie<br />
instrumenti<br />
1) IDN<br />
2) Grupa<br />
3) Nosaukums<br />
4) Ievada veids<br />
5) Laiks
6) Pacients IDN<br />
Manipulācijas<br />
1) IDN<br />
2) Veids<br />
3) Rezultāts<br />
4) Rezultātu grafiks<br />
5) Pacients IDN<br />
Starpgadijumi<br />
1) IDN<br />
2) Nosaukums<br />
3) Laiks<br />
4) Izpausmju veids<br />
5) Pacients IDN<br />
Pacienta <strong>par</strong>vēšana<br />
1) IDN<br />
2) Apmaksāšanas<br />
veids<br />
3) Steidzums<br />
4) Reanimācijas<br />
veids<br />
5) Pīrma<br />
medicīniska palidzība<br />
6) Parvēšanas<br />
veids<br />
7) Pacienta<br />
stavoklis arvēšanas laikā<br />
8) Pacients IDN<br />
EKG defekti<br />
1) IDN<br />
2) Nosaukumi<br />
3) Pacients IDN<br />
Hroniskās saslimšanas<br />
1) IDN<br />
2) Grupa<br />
3) Nosaukums<br />
4) Pacients IDN<br />
Kardioloģiskās<br />
saslimšanas<br />
1) IDN<br />
2) Nosaukums<br />
3) Pacients IDN<br />
Pulmo<strong>no</strong>loģiskās<br />
saslimšanas
1) IDN<br />
2) Nosaukums<br />
3) Pacients<br />
IDN<br />
Travmotoloģiskās<br />
saslimšanas<br />
1) IDN<br />
2) Nosaukums<br />
3) Sarežgetība<br />
4) Izvietojums<br />
5) Pacients IDN<br />
Nevroloģiskas<br />
saslimšanas<br />
1) IDN<br />
2) Grupa<br />
3) Nosaukums<br />
4) Pacients IDN<br />
5.1. <strong>Konspekts</strong><br />
Modelēšanas rīki<br />
Valdis Vītoliņš, e-pasaule 9 '2003<br />
Ir grūti iedomāties biznesa jomu, kurā varētu kaut ko paveikt bez iepriekšējas<br />
plā<strong>no</strong>šanas un analīzes. Tāpēc tiek izstrādāti dažādi modelēšanas rīki, kas atvieglo<br />
dažādu biznesa jomu modelēšanu.<br />
Var pieņemt, ka rīks atbalsta biznesa modelēšanu, ja:<br />
iespējams grafiskā veidā attēlot, kāds ir uzņēmums un kādas darbības tiek veiktas;<br />
dažādos veidos var attēlot arī uzņēmuma resursus, darbības kvalitāti, apkārtni, un jau<br />
ir metodika un/vai šabloni šo aspektu modelēšanai;<br />
uzņēmuma darbību var virtuāli simulēt un pat attēlot kā animāciju (vēlams).<br />
Šāda veida rīki veido <strong>no</strong>sacītu spektru <strong>no</strong> biznesa modelēšanas līdz programmatūras<br />
izstrādei. Biznesa modelēšanas rīkos lielāka uzmanība tiek pievērsta dažādu biznesa<br />
aspektu attēlošanai, metodikai, procesu simulācijai, kā arī vairāki rīki piedāvā savu<br />
metodiku biznesa analīzē. Metodikas atbilst Deminga/ISO vai Balanced Scorecard<br />
kvalitātes pārvaldības procesam, Portera Value Added Chain vai ir pilnīgi atšķirīgas<br />
kā Zahmana metodika (Zachman framework) un ARIS metodiku kompilācija.<br />
Diemžēl šīs metodikas ir zināmā mērā <strong>no</strong>vecojušas, jo slikti atbilst mūsdienās<br />
izplatītajai biznesa transakciju pieejai (B2B un Web servisu izstrādē) un<br />
objektorientēto/sadalīto sistēmu izstrādei.<br />
Programmatūras izstrādes rīki atbalsta modelēšanas valodu Unified Modeling<br />
Language 2.0 (UML) (izņemot Timing diagrammu), kā arī veic programmatūras koda<br />
ģenerēšanu, reinženieriju (koda analīzi) un/vai koda sinhronizēšanu ar modeli. Tā kā<br />
programmatūras kodu klasiski ģenerē tikai <strong>no</strong> klašu diagrammām, citas diagrammas<br />
biznesa modelēšanā kalpo tikai aprakstam.
Pirms izmantot kādu rīku, jāizlemj, vai tas tiks lietots tikai biznesa cilvēku<br />
vajadzībām (uzņēmuma modelēšanai, darbības, kvalitātes, izmaksu un citu aspektu<br />
analīzei) vai arī "tehnisko" darbinieku vajadzībām - programmu izstrādei un<br />
ieviešanai.<br />
Microsoft Visio Professional 2002, Visual Studio .NET Enterprise Architect<br />
Visio ir rīks, kura spēcīgās grafiskās iespējas, pēc Microsoft pārņemšanas, ir<br />
papildinātas ar programmatūras izstrādes un modelēšanas iespējām. Šajā rīkā vairāk ir<br />
attīstītas programmatūras izstrādes iespējas. Biznesa modelēšanai to var izmantot,<br />
lietojot tā UML redaktora iespējas. Rīks ļauj veidot visas praksē izmantotās UML<br />
diagrammas, <strong>no</strong> kurām biznesa modelēšanā vērtīgākās ir klašu un aktivitāšu<br />
diagrammas. Visual Studio .NET Enterprise Architect ir tikai plašākas<br />
programmatūras koda pārvaldības iespējas.<br />
1. attēls. Microsoft Visio Professional 2002<br />
Popkin Software System Architect 8.8<br />
Tas ir "spilgts" biznesa modelēšanas rīks, kas piedāvā īpašu Zahmana metodiku<br />
modeļu izveidē. Šajā metodikā tiek piedāvāts problēmu apskatīt <strong>no</strong> dažādiem<br />
aspektiem un dažādos līmeņos, iegūstot tabulu (divdimensiju matricu):<br />
Diemžēl šī metodika nesasaucas ar objektorientētu un sadalītu sistēmu izstrādi, jo tika<br />
izstrādāta vēl pirms šādas izstrādes izgudrošanas. Rīks ļauj veidot visas izplatītākās<br />
UML diagrammas un piedāvā savas modelēšanas valodas - IDEF0 (ir līdzība ar UML<br />
Use Case) un IFEF3 (UML Activity Diagram). Šīs modelēšanas valodas ir labi<br />
formalizētas, tāpēc IDEF3 (un Process Chart) ļauj arī simulēt un animēt procesus, kas<br />
būtiski palīdz procesu pārveidē un analīzē.<br />
2. attēls. Popkin Software System Architect ar Zahmana piedāvāto modelēšanas<br />
metodiku (pa kreisi) un ar IDEF3 procesa diagrammu (pa labi)<br />
Rational Rose 2002 Modeler Edition<br />
Jaunākā versija gan ir Rose 2003, bet nekas, izņemot XP veida grafisko saskarni, tajā<br />
nav savādāks. Izplatītākais modelēšanas rīks ASV un arī pasaulē. UML standarta<br />
diagrammas tiek zīmētas, lietojot šo rīku. Pārsvars tirgū gan vairāk ir iegūts ar<br />
mārketingu, jo kā grafikas redaktors rīks ir vājš un lielas diagrammas zīmēt ir grūti<br />
(pēc <strong>no</strong>klusēšanas līnijas netiek veidotas tais<strong>no</strong>s leņķos, bet gan slīpi pa īsāko ceļu).
Šis rīks ļauj veidot praktiski visas UML diagrammas, kā arī ģenerēt programmas<br />
kodu. Rational Rose 2002 Modeler Edition neļauj <strong>no</strong> koda ģenerēt (vai sinhronizēt ar)<br />
diagrammu. Biznesa modelēšanai tas <strong>no</strong>der tikai kā konstruktors, un nekādas gatavas<br />
papildu iespējas (piemēram, Org diagrammai, biznesa apkārtnes aprakstīšanai,<br />
simulācijai) nepiedāvā.<br />
S<strong>par</strong>x Systems Enterprise Architect 3.51<br />
Rīks, kas ļauj veidot izplatītākās UML diagrammas un papildus vēl piedāvā savu<br />
pieeju biznesa modelēšanā. Biznesa modelēšanai piedāvā īpašu metodiku (atbilst<br />
Deminga/ISO procesu pārvaldībai un Portera Value Added Chain), bet nepiedāvā<br />
procesu simulāciju. Kā izstrādes rīks <strong>no</strong>drošina arī koda ģenerēšanu un<br />
sinhronizēšanu ar diagrammu. Grafikas redaktors līdzīgs Rational Rose. S<strong>par</strong>x<br />
Systems Enterprise Architect 3.51 ir viskompaktākais <strong>no</strong> visiem testētajiem rīkiem<br />
(programmas kataloga izmērs 17 MB!).<br />
3. attēls. S<strong>par</strong>x Systems Enterprise Architect 3.51.<br />
Casewise Corporate Modeler 8e<br />
Jaudīgs biznesa modelēšanas rīku komplekts, kas tomēr ne<strong>no</strong>drošina sasaisti ar<br />
programmu izstrādi. Līdzīgi kā System Architect, modelēšanā atbalsta Zahmana<br />
metodiku. Simulēto procesu analīzes metodika atbilst Balanced Scorecard. Šajā rīkā<br />
iespējams dažādos skatos (diagrammās) vairākkārt izmantot tos pašus projekta<br />
objektus (items), un īpašā matricā tiek <strong>par</strong>ādītas konkrētās izmantošanas vietas. Tas<br />
ļauj simulēt un animēt Process Dynamic diagrammas. Rīks neļauj uzreiz zīmēt UML<br />
diagrammas, bet var izveidot savus šablonus. (Šādām diagrammām netiks veikta<br />
UML loģikas analīze, kas neļauj zīmēt nekorekti.) Rīks <strong>no</strong>drošina Dynamics un Data<br />
Flow diagrammu konvertēšanu uz/<strong>no</strong> Rose Use Case diagrammām (saglabājot<br />
topoloģiju) un Dynamics diagrammu uz/<strong>no</strong> Visio blokshēmām (pat saglabājot<br />
grafisko izvietojumu!).<br />
QPR Software Plc QPR ProcessGuide 7.0, Infologistik GRADE 4.0 un IDS Sheer<br />
Aris 6.1<br />
QPR ProcessGuide 7.0 ir biznesa modelēšanas rīks, kas piedāvā savu īpašu biznesa<br />
modelēšanas metodiku. Biznesa process tiek apskatīts kā Portera Value Added Chain,<br />
procesu (kvalitātes) pārvaldībā tiek izmantots Balanced Scorecard cikls. Rīkam ir<br />
sava modelēšanas valoda, kas ir pietiekami elastīga lai tajā iekļautu arī dažādus<br />
neformālus elementus (zīmējumus), bet arī pietiekami formāla, lai ļautu izveidoto<br />
procesu simulēt. Pēc simulācijas tiek piedāvāta dažādu datu analīze un attēlošana<br />
grafikos. Rīks <strong>no</strong>der tikai analīzei, jo programmatūras izstrādei tas nav <strong>par</strong>edzēts.
4. attēls. QPR Software Plc QPR ProcessQuide 7.0.<br />
GRADE 4.0 ir labākā cenas/jaudas attiecība, turklāt ar to var veidot patiesi lielas<br />
diagrammas. Šis rīks nepiedāvā īpašu metodiku, bet pilnībā var izmantot biznesa<br />
modelēšanai (ir arī organizatoriskā diagramma). Tas ir ar vecmodīgu Windows 3.1<br />
saskarni un neatbalsta UML 2.0 diagrammas (rīka izstrādes laikā tika izstrādāta UML<br />
1.3).<br />
IDS Cheer Aris 6.1 piedāvā īpašu metodiku kompilāciju (Value Added Chain,<br />
Deminga/ISO pārvaldības ciklu, Score Card), kā arī lielu diagrammu klāstu. Procesu<br />
simulācija iespējama eEPC diagrammām, un tiek izmantota activity-based cost<br />
metodika. Tas palīdz veidot dažādus skatījumus uz organizāciju un tās procesiem, bet<br />
slikti sasaucas ar programmatūras izstrādes <strong>par</strong>adigmām. To varētu izmantot biznesa<br />
cilvēki, bet zināmas problēmas būtu šo rīku lietot gan biznesa procesu aprakstīšanai,<br />
gan to <strong>no</strong>drošināšanai, iztrādājot pārvaldības sistēmas. Vadoties pēc palīdzības (help),<br />
UML klašu diagrammu praktiski izveidot neizdevās.<br />
Citi rīki<br />
Vienā rakstā nav iespējams vispusīgi aplūkot visus vadošos biznesa modelēšanas<br />
rīkus. Tāpēc šajā numurā tika apskatīt Latvijā pieejamākie un pazīstamākie rīki.<br />
Gartnera grupas sagatavotu vadošo biznesa modelēšanas rīku apskatu var izlasīt<br />
http://www.gartner.com/gc/webletter/idsscheer/issue1/article1.html (pētījumu<br />
pasūtījusi IDS Scheer).<br />
5.2. GRADE diagrammu piemēri<br />
GRADE diagrammu piemēri<br />
GRADE diagrammu piemēri atrodami -<br />
http://www.gradetools.com/grade40/examples.htm<br />
Workstation example
UML: class diagram
UML: use case diagram
UML: state diagram
GRADE: business process diagram<br />
Legend:<br />
Round rectangles - tasks (pieces of job)<br />
Arrows - events (messages)<br />
Hexagons - decisions<br />
Clocks - timers
GRADE: organization structure diagram<br />
Legend:<br />
Rectangles - organization units<br />
Round rectangles - positions<br />
Lined round rectangles - resources
GRADE: communicating objects diagram<br />
Top level diagram. Ministry of Planning and its environment
GRADE: process diagram (flowchart)<br />
Legend:<br />
Cyan - receive a message<br />
Gray - perform a simple action<br />
Yellow - take a decision<br />
Magenta - send a message<br />
Green - perform a procedure
GRADE: entity-relationship diagram<br />
You can generate database initialization scripts from these diagrams.<br />
GRADE: data type diagram<br />
Example #1
5.3. Procesu aprakstīšanas programmas<br />
Procesu aprakstīšanas programmas<br />
Juris Nazarenko, E-pasaule<br />
Publikācijā aplūkotas programmas, kuru būtiskākā funkcija ir aprakstīt biznesa<br />
procesus. Vispirms ir jāsaprot procesu aprakstīšanas būtība un pēc tam var <strong>no</strong>vērtēt un<br />
salīdzināt vairākas programmas. Rakstā nav apskatīti jautājumi, kuri ir saistīti ar<br />
procesu orientāciju (process orientation) reālā uzņēmumā, bet gan aplūkota šādas<br />
programmatūras <strong>no</strong>zīme un specifiskās īpašības.<br />
Procesa orientācijas būtība<br />
Modernajā eko<strong>no</strong>mikā ļoti liela uzmanība tiek<br />
veltīta klienta vajadzību apmierināšanai. Tas<br />
<strong>no</strong>zīmē, ka <strong>par</strong> katra uzņēmuma galve<strong>no</strong><br />
uzdevumu kļūst nevis produkta vai<br />
pakalpojuma ražošana, bet gan to pārdošana<br />
klientam. Taču, uzņēmumam paplaši<strong>no</strong>ties, tā<br />
vadība un darbinieki dažādu iemeslu dēļ sāk<br />
atšķirīgi skatīties uz vienām un tām pašām<br />
lietām un diezgan bieži klientam vairs<br />
nepiedāvā to, ko viņš vēlas. Šāda dīvaina<br />
situācija attēlota attēla augšējā daļā.<br />
Procesu orientācija<br />
Šādā situācijā vislabākis glābējlīdzeklis<br />
procesu orientācija. Tas <strong>no</strong>zīmē, ka ar programmas palīdzību tiek atspoguļota<br />
sadarbība ar klientu, sākot <strong>no</strong> pirmās sarunas vai tikšanās līdz brīdim, kad klients<br />
saņem pasūtīto preci un <strong>no</strong>rēķinās <strong>par</strong> to. Šī situācija atspoguļota attēla apakšējā daļā.<br />
Ir skaidri redzams, ka visi uzņēmuma darbinieki vienādi saprot procesa <strong>no</strong>risi un savu<br />
vietu šajā procesā.<br />
Taču vienmēr nepieciešams <strong>no</strong>vērtēt un salīdzināt izmantojamās programmas.<br />
GRADE Modeler 4.0<br />
(www.gradetools.com)<br />
Latvijas produkts, kuru izstrādāja Latvijas Universitātes speciālisti. Viens <strong>no</strong><br />
raksturīgākajiem šīs programmas vērtējumiem - tai ir ļoti plašas iespējas. Lietojot šo<br />
programmu, var ļoti detalizēti dokumentēt procesu, <strong>no</strong>teikt katrai darbībai izpildītājus,<br />
veikt procesa simulāciju ("palaist" procesu reālā laikā) un analizēt procesu <strong>no</strong><br />
dažādiem viedokļiem. Piemēram, var <strong>no</strong>teikt, cik ilgs būs viena produkta pārdošanas<br />
process, kādas ir viena procesa izmaksas, kā arī iespējams <strong>no</strong>teikt procesa vājās vietas<br />
un piedāvāt risinājumu situācijas uzlabošanai. Bez tam pastāv iespēja veikt dažādu<br />
datu eksportu un importu izmantojot atšķirīgus formātus (txt, ODBC). Kā<br />
priekšrocību var minēt to, ka aprakstīto procesu var publicēt intranetā jeb html<br />
formātā.<br />
Vēl viena šīs programmas priekšrocība ir tā, ka tai ir ļoti zema cena - ap Ls 300. Bet<br />
tas ne<strong>no</strong>zīmē, ka programmai ir kaut kādas nepilnības, jo tā tiešām piedāvā ļoti plašas<br />
iespējas.<br />
Taču jāatzīmē arī šīs programmas divi galvenie trūkumi:<br />
• Pirmkārt, procesa aprakstīšanas laikā veidojas <strong>no</strong> biznesa viedokļa nepārskatāms<br />
gala attēls. Tas <strong>no</strong>zīmē, ka tad, ja ir vēlme izprast procesa <strong>no</strong>risi, to var izdarīt, bet
emocionāli (!) tas ir diezgan grūti, jo <strong>no</strong> tīri vizuālā viedokļa<br />
attēls nav pārāk pievilcīgs.<br />
• Otrkārt, šīs programmas lietošana ir sarežģīta - lai izmantotu<br />
kaut nelielu daļu <strong>no</strong> programmas iespējām, ir diezgan daudz<br />
laika jāvelta speciālistu apmācībai. Šī iemesla dēļ pat Latvijas<br />
Universitātes datorzinību maģistranti nevar sekmīgi izveidot<br />
maģistra darbu ar šīs programmas palīdzību.<br />
Secinājums - GRADE Modeler 4.0 lietot reālajā biznesā ir<br />
diezgan apgrūti<strong>no</strong>ši, jo tā nerisina biznesa problēmas.<br />
Vācu kompānijas IDS Scheer programmu kopums ARIS<br />
(www.ids-scheer.com)<br />
IDS Scheer specializējas komplekso vadības risinājumu ieviešanā dažādu <strong>no</strong>zaru<br />
uzņēmumos. Ir atsevišķas programmas procesu aprakstīšanai, procesu simulēšanai,<br />
ABC metodoloģijas ieviešanai, sabalansētu vadības rādītāju pārvaldībai, kā arī<br />
atsevišķa programma procesu publicēšanai intranetā jeb html formātā.<br />
Protams, būtiskākā <strong>no</strong>zīme produktu <strong>no</strong>menklatūrā ir procesu aprakstīšanas rīkam<br />
ARIS Toolset. Salīdzinājumā ar iepriekš aprakstīto produktu GRADE Modeler 4.0,<br />
ARIS Toolset ir ievērojami mazāk iespēju, tāpēc, lietojot šo programmu, arī iespējams<br />
paveikt krietni mazāk. Vācu kompānija šajā programmā ir atstājusi tikai reālam<br />
biznesam nepieciešamās iespējas - procesa aprakstīšanu.<br />
Kā būtisku šīs programmas priekšrocību var minēt to, ka ar iebūvētas<br />
programmēšanas valodas palīdzību <strong>no</strong> attēlotā procesa ir iespējams izdrukāt amata<br />
instrukciju katram darbiniekam, kas piedalās procesā. Turklāt šī instrukcija tiek<br />
izveidota literārā latviešu valodā.<br />
Programmas cena ir ap 3 000 ASV dolāru.<br />
ARIS Toolset būtiskākie trūkumi ir līdzīgi iepriekšminētās programmas trūkumiem:<br />
• Procesa attēlojums ir pasmags, bet tomēr ievērojami pievilcīgāks nekā ar<br />
programmu GRADE Modeler 4.0 iegūtais procesa attēlojums.<br />
• Lai strādātu ar šo programmu, ir nepieciešams iepazīties ar procesa dokumentēšanas<br />
<strong>no</strong>teikumiem, jo pretējā gadījumā <strong>no</strong>dokumentētu procesu nevarēs simulēt.<br />
QPR ProcessGuide<br />
(www.qpr.com)<br />
Kā trešo <strong>no</strong> šāda veida programmām var<br />
apskatīt somu kompānijas QPR Software Plc.<br />
produktu QPR ProcessGuide (www.qpr.com).<br />
Arī šī kompānija piedāvā kompleksos<br />
risinājumus vadības metožu ieviešanai. Ir<br />
atsevišķas programmas gan procesu<br />
aprakstīšanai, gan ABC metodoloģijas<br />
ieviešanai, gan sabalansēto vadības rādītāju<br />
metodoloģijas ieviešanai, gan arī daudzas<br />
citas vadības programmas.<br />
Salīdzinājumā ar abām iepriekšminētajām<br />
programmām procesu dokumentēšanas programmu QPR ProcessGuide var raksturot<br />
savādāk:<br />
1) Šai programmai ir ļoti maz iespēju, jo tā ir domāta procesu dokumentēšanai un<br />
simulēšanai, tāpēc iemācīties strādāt ar to ir ļoti viegli. (Es personīgi sapratu visas<br />
programmas iespējas, <strong>no</strong>skatoties 15 minūšu garu videofilmu, kas ir pieejama QPR<br />
mājas lapā Internetā.)<br />
2) Procesa attēlojums ir ļoti pievilcīgs <strong>no</strong> lietotāja viedokļa, kā arī vizuāli uz to ir
patīkami skatīties.<br />
3) Pēc <strong>no</strong>klusēšanas procesu publicēšana <strong>no</strong>tiek intranetā vai html formātā. Tas<br />
<strong>no</strong>zīmē, ka firmas darbinieki pārlūko procesu ar standarta Interneta pārlūkprogrammu<br />
(Internet Explorer).<br />
Ņemot vērā visu jau minēto, var teikt, ka šī programma palīdz risināt tikai biznesa<br />
vajadzības. Tas <strong>no</strong>zīmē, ka ar dokumentētiem procesiem var strādāt jebkurš firmas<br />
darbinieks neatkarīgi <strong>no</strong> viņa zināšanu līmeņa. Turklāt neviena <strong>no</strong> iepriekšminētajām<br />
programmām ne<strong>no</strong>drošina iespēju izveidot tik vienkāršu un pārskatāmu attēlu. Bez<br />
tam programma QPR ProcessGuide piedāvā datu importēšanas un eksportēšanas<br />
iespējas.<br />
Taču arī šai programmai ir savs trūkums - tā ir dārgāka <strong>par</strong> visām iepriekšminētajām,<br />
jo maksā 5 000 ASV dolāru.<br />
Secinājums<br />
Apkopojot informāciju <strong>par</strong> procesu aprakstīšanas programmu tirgu, var teikt, ka ir ap<br />
1 400 procesu dokumentēšanas programmu, tāpēc ir iespējams izvēlēties sev<br />
visērtāko, izdevīgāko vai pat patīkamāko procesu dokumentēšanas programmu. Šīs<br />
programmas pārsvarā atšķiras :<br />
• ar procesa attēlošanas veidu;<br />
• ar papildu programmēšanas iespējām;<br />
• ar iespējām publicēt informāciju intranetā vai html formātā.<br />
6.1. <strong>Konspekts</strong><br />
Sistēmas objektu funkcionēšanas apraksti<br />
MS <strong>no</strong> izvēlēm un formām. Kodu ģenerē automātiski.<br />
Konceptuālais modelis -> realizācijas modelis (kur atrisinātas m:n saites)<br />
Eksistē translatori <strong>no</strong> modeļa <strong>par</strong> DB (piemēram, Rational Rose)<br />
Strukturēta angļu valoda var kalpot <strong>par</strong> algoritma aprakstu<br />
Programmēšanas valoda, ar komentāriem, atkāpēm u.tml. nav viegli uztverams.<br />
Uzskata, ka 4. paaudzes programmēšanas valodas jau ir labi uztveramas.<br />
C ir stipri līdzīgs Asemblerim, uzskatāmība zema.<br />
Blokshēma<br />
1. attēls. Blokshēmas elementi (pa kreisi) un piemērs (pa labi)..<br />
Shēmas atšķiras pēc sarežģītības. Shēmas, kuras sastāv <strong>no</strong> 3-9 elementiem ir<br />
vienkāršas. Lai shēmas būtu viegli lasāmas, tās ieteicams veidot dažādos detalizācijas<br />
līmeņos. Piemēram, 1.attēla shēmā darbības "Ieraksta apstrāde" detalizētu shēmu<br />
varētu iznest atsevišķā shēmā. Cits piemērs var būt datu apstrāde atšķirībā <strong>no</strong><br />
ievadītas vērtības (sk. 2. attēlu). Piemērā attēlota shēma, kurā atkarībā <strong>no</strong> kursa<br />
vērtībām tiek izpildītas dažādas darbības. Šajā gadījumā darbību detalizēti apraksti arī<br />
var būt iznesti atsevišķās shēmās.<br />
2. attēls. Kursa dažādu vērtību apstrāde.<br />
Strukturālā programmēšana<br />
Strukturālā programmēšanā atļautas tikai <strong>no</strong>teiktas konstrukcijas. Blokam ir viena<br />
ieeja un viena izeja. C valoda ir nestrukturāla, visi asembleri ir nestrukturāli.<br />
Strukturalitāte ne vienmēr <strong>no</strong>zīmē arī saprotamību.<br />
Stāvokļu pāreju diagramma (SPD)
Stāvoklis ir intuitīvs jēdziens. Tā ir atribūtu, vērtību kopa, kas raksturo sistēmas<br />
uzvedību.<br />
Students - imatrikuēts, pārcelts 2. kursā, ...<br />
Datora stāvokļi - ieslēgts, izslēgts, sabojāts, ...<br />
Tātad, šie stāvokļi ir skats <strong>no</strong> funkcionēšanas viedokļa.<br />
Operatīvās atmiņas stāvokļi - cits skats. 2 256MB ir praktiska bezgalība, ar tik<br />
daudziem stāvokļiem nevar tikt galā.<br />
Sistēma → automāts (neliels stāvokļu skaits, definētas stāvokļu pārejas).<br />
Tas var kalpot <strong>par</strong> labu sistēmas aprakstu.<br />
3. attēls. Uzņemšana universitātē. Nedeterminēts automāts.<br />
Tabulārais STD pieraksts.<br />
Personas kods Vārds UzvārdsStāvoklis<br />
PK1 Jānis Osis 1<br />
... ... ... ...<br />
Viegli atlasīt, toties grūti uztaisīt saprātīgu SPD.<br />
7.1. <strong>Konspekts</strong><br />
Lietotāja saskarne
(<strong>no</strong><br />
http://members.tripod.com/~bazman/checklist.htmlbutton1=GUI+Testing+Checklist)<br />
Tēmas plāns<br />
Termi<strong>no</strong>loģija un vēsture<br />
Lietotāja saskarnes <strong>no</strong>vērtēšana<br />
Lietotāju orientēta saskarne programmproduktiem<br />
Lietotāju saskarnes pārbaudes jautājumu saraksts<br />
Termi<strong>no</strong>loģija un vēsture<br />
(<strong>Izmantoti</strong> materiāli <strong>no</strong> http://www.liis.lv/mspamati/ECDL/1modulis/e1040207.htm )<br />
Definīcija:<br />
lietotāja<br />
saskarne<br />
user interface; (lietotāja interefeis), Programmu un a<strong>par</strong>ātu kopums, kas<br />
<strong>no</strong>drošina informācijas apmaiņu starp lietotāju un datu apstrādes sistēmas<br />
a<strong>par</strong>atūras un programatūras komponentiem.<br />
Lietotāja saskarne (interfeiss) ir veids kādā lietotājs var mijiedarboties ar datoru.<br />
Pirmajos IBM PC lietoja Disku Operētājsistēmu Sistēmu - DOS, kura izmantoja<br />
rakstzīmju orientētu lietotāja saskarni (lietotājs instrukcijas ievadīja teksta veidā).<br />
Rakstzīmju orientēta lietotāja saskarne (Character User Interface - CUI) ir lietotāja<br />
saskarne, kas atšķirībā <strong>no</strong> grafiskās lietotāja saskarnes komandu ievadīšanai datorā<br />
<strong>par</strong>edz izmantot tastatūru. (TTC datubāze)<br />
Tā, piemēram, lai kopētu datni <strong>no</strong> disketes uz cieto disku, jā<strong>no</strong>rāda tās <strong>no</strong>saukums<br />
atrašanās vieta un dublikāta atrašanās vieta:<br />
Vēlāk vairākas firmas izstrādāja citas operētājsistēmas:<br />
firma Apple - operētājsistēmu Macinsosh System;<br />
firma IBM - operētājsistēmu OS/2;<br />
firma Microsoft - operētājsistēmu Windows.<br />
Šajās operētājsistēmās jau lietoja grafisko lietotāja saskarni.<br />
Grafiskā lietotāja saskarne ir (Graphical User Interface - GUI) ir displeja<br />
formatēšanas veids, kas ļauj lietotājam izvēlēties komandas, palaist programmas, kā<br />
arī apskatīt datņu sarakstus un citus objektus, <strong>no</strong>rādot to piktogrāfiskos attēlus<br />
(ikonas). Izvēli var izdarīt, izmantojot tastatūru vai peli. Grafiskā lietotāja saskarne<br />
piedāvā vidi, kas <strong>no</strong>drošina tiešu dialogu ar datoru. Grafisko lietotāja saskarni<br />
izmanto, piemēram, operētājsistēma Microsoft Windows. (TTC datubāze)<br />
GUI ir opererētājsistēmas papildu daļa, kas satur izvēlnes, <strong>no</strong>rādes rīkus, programmu<br />
logus, ikonas un citus grafiskus elementus, kas veicina efektīvāku datora lietošanu.<br />
GUI atvieglo lietotāja mijiedarbība ar datoru.<br />
Tā, piemēram, lai kopētu datni <strong>no</strong> disketes uz cieto disku, izvēlas disketi un datnes<br />
ikonu pārvelk uz dublikāta atrašanās vietu:
Programmu logi var saturēt dažādus vadības objektus, piemēram, rīkjoslas,<br />
komandkartes un citu tekstuālu vai grafisku informāciju. Lai lietotājs saskarni varētu<br />
pielāgot savām vajadzībām, šo objektu <strong>no</strong>vietojums, izmēri un forma var tikt mainīti.<br />
Lietotājs vienlaicīgi atvērt var vairāk kā vienas lietojumprogrammas logu un pēc tam<br />
viegli pāriet <strong>no</strong> vienas uz otru.<br />
Ieguvumi, lietojot GUI<br />
Sarežģītu instrukciju vienkāršošana, izmantojot ikonas un izvēlnes.<br />
Vieglāk organizēt darbu un pārvaldīt programmas un datnes.<br />
Visas programmas pēc izskata ir līdzīgas.<br />
Pārēja <strong>no</strong> vienas kādas ražotāja programmas uz cita ražotāja līdzīgu programmu ir<br />
vienkārša.<br />
Lietojumprogrammas darbojas līdzīgi datorā izmantotajai operētājsistēmai.<br />
Programmētāji var izveidot pēc izskata līdzīgas programmas.<br />
Lietotāja saskarnes <strong>no</strong>vērtēšana<br />
Lietotāja saskarni var <strong>no</strong>vērtēt pēc vairākiem principiem:<br />
cik ātri un ērti var iegūt vajadzīgo rezultātu<br />
iespēja intuitīvi (bez instrukciju lasīšanas) iegūt vajadzīgo rezultātu<br />
lietotā valoda, žargons, saprotamība, gramatiskas kļūdas<br />
ekrāna formu saprotamība<br />
programmas ātrdarbība<br />
programmas drošums pret lietotāja neloģiskām darbībām<br />
programmas spēja darboties daudzlietotāju režīmā<br />
krāsu un skaņas signālu izmantošana<br />
Izstrādājot lietotāju saskarni, kā svarīgākos var minēt sekojošus atribūtus:<br />
piemērotība uzdevumam (suitability for the task);<br />
pašaprakstāmība (self-descriptiveness);<br />
vadāmība (controllability);<br />
atbilstība lietotāja gaidītajam (conformity with user expectations);<br />
kļūdu piecietība (error tolerance);<br />
piemērotība individualizācijai (suitability for individualization);<br />
mācīšanās piemērotība (suitability for learning);
Lietotāju orientēta saskarne programmproduktiem<br />
(IBM stratēģijas Ease of Use)<br />
Lietotāju saskarnei ir jābūt orientētai. Šis faktors ir vitāli svarīgs ieviešot<br />
programmatūru. Ja lietotājiem programmatūras saskarne nav ērta, saprotama un<br />
vienkārši lietojama, tad, lai arī cik laba un kvalitatīva programmatūra nebūtu, to,<br />
iespējams, neviens neizmantos.<br />
Lai izstrādātu lietotāju orientētu saskarni, jāseko šādiem projektēšanas principi:<br />
- Nospraudiet biznesa mērķus. Nosakot mērķus un lietotāju cerības ir atslēga<br />
projektējuma uzsākšanai un lietotāju iesaistīšanai.<br />
- Saprotaties ar lietotājiem. Lietotāju iesaistīšana projektēšanas procesā ir viens <strong>no</strong><br />
galvenajiem veiksmes faktoriem. Ja jūs vēlaties, lai lietotājs saprastu jūsu<br />
programmproduktu, jums ir sākumā jāsaprot lietotājs.<br />
- Sasniedziet konkurētspēju. Pārākuma sasniegšanai nepieciešams uzturēt<br />
konkurētspējīgu produktu. Kad jūs esat sapratis lietotāju uzdevumus, jums ir jātestē<br />
šos uzdevumus pret citu konkurentu alternatīvām un salīdzināt viņu un savus<br />
rezultātus.<br />
- Projektējiet vispārējo lietotāju pieredzi. Viss, ko redz un kam pieskārās lietotājs, ir<br />
projektēts kopā ar daudzdisciplīnu komanda. Tas iekļauj veidu, kā produkts tiek<br />
reklamēts, pasūtīts, iegādāts, iepakots, instalēts, administrēts, dokumentēts, atkļūdots<br />
un uzturēts.<br />
- Novērtējiet projektējumu. Lietotāju atsauksmes tiek iegūtas savlaicīgi un bieži,<br />
lietojot programmatūras prototipus, tādējādi šīs atsauksmes var virzīt<br />
programmprodukta projektēšanu un izstrādi <strong>par</strong>eizajā virzienā.<br />
- Pārvaldiet lietotāju pastāvīgu <strong>no</strong>vērošanu. Produkta dzīves cikla laikā ir svarīgi<br />
<strong>no</strong>vērot un uzklausīt lietotājus, tādējādi iegūstot atsauksmes turpmākai<br />
programmprodukta uzlabošanai, panākot labākus rezultātus.<br />
Lietotāju saskarnes pārbaudes jautājumu saraksts<br />
(<strong>no</strong> http://www.csst-tech<strong>no</strong>logies.com/guichk.htm)<br />
Šis saraksts ir izveidots, balstoties uz kļūdām, atrastām grafiskajās lietotāju saskarnēs.<br />
Šo sarakstu var izmantot kā sākumu lietotāju saskarnes testēšanā un apskatēs.<br />
Assure that the start-up icon for the application under consideration is unique from all<br />
other current applications.<br />
Assure the presence of a control menu in each window and dialog box.<br />
Assure the correctness of the Multiple Document Interface (MDI) of each window -<br />
Only the <strong>par</strong>ent window should be modal (All child windows should be presented<br />
within the confines of the <strong>par</strong>ent window).<br />
Assure that all windows have a consistent look and feel.<br />
Assure that all dialog boxes have a consistent look and feel.<br />
Assure that the child widows can be cascaded or tiled within the <strong>par</strong>ent window.<br />
Assure that icons which represent minimized child windows can be arranged within<br />
the <strong>par</strong>ent window.<br />
Assure the existence of the "File" menu.<br />
Assure the existence of the "Help" menu.<br />
Assure the existence of a "Window" Menu.<br />
Assure the existence and proper location of any other menus which are logically<br />
required by the application.<br />
Assure that the proper commands and options are in each menu.<br />
Assure that all buttons on all tool bars have a corresponding menu commands.
Assure that each menu command has an alternative(hot-key) key sequence which will<br />
invoke it where appropriate.<br />
In "tabbed" dialog boxes, assure that the tab names are <strong>no</strong>t abbreviations.<br />
In "tabbed" dialog boxes, assure that the tabs can be accessed via appropriate hot key<br />
combinations.<br />
In "tabbed" dialoged boxes, assure that duplicate hot keys do <strong>no</strong>t exist<br />
Assure that tabs are placed horizontally across the top (avoid placing tabs vertically<br />
on the sides as this makes the names hard to read).<br />
Assure the proper usage of the escape key (which is to roll back any changes that have<br />
been made).<br />
Assure that the cancel button functions the same as the escape key.<br />
Assure that the Cancel button becomes a Close button when changes have be made<br />
that can<strong>no</strong>t be rolled back.<br />
Assure that only command buttons which are used by a <strong>par</strong>ticular window, or in a<br />
<strong>par</strong>ticular dialog box, are present.<br />
When a command button is used sometimes and <strong>no</strong>t at other times, assure that it is<br />
grayed out when it should <strong>no</strong>t be used.<br />
Assure that OK and Cancel buttons are grouped se<strong>par</strong>ately from other command<br />
buttons.<br />
Assure that command button names are <strong>no</strong>t abbreviations.<br />
Assure that command button names are <strong>no</strong>t technical labels, but rather are names<br />
meaningful to system users.<br />
Assure that command buttons are all of similar size and shape.<br />
Assure that each command button can be accessed via a hot key combination (except<br />
the OK and CANCEL buttons which do <strong>no</strong>t <strong>no</strong>rmally have hot keys).<br />
Assure that command buttons in the same window/dialog box do <strong>no</strong>t have duplicate<br />
hot keys.<br />
Assure that each window/dialog box has a clearly marked default value (command<br />
button, or other object) which is invoked when the Enter key is pressed.<br />
Assure that focus is set to an object which makes sense according to the function of<br />
the window/dialog box.<br />
Assure that option button (AKA radio button) names are <strong>no</strong>t abbreviations.<br />
Assure that option button names are <strong>no</strong>t technical labels, but rather are names<br />
meaningful to system users.<br />
If hot keys are used to access option buttons, assure that duplicate hot keys do <strong>no</strong>t<br />
exist in the same window/dialog box.<br />
Assure that option box names are <strong>no</strong>t abbreviations.<br />
Assure that option box names are <strong>no</strong>t technical labels, but rather are names<br />
meaningful to system users.<br />
If hot keys are used to access option boxes, assure that duplicate hot keys do <strong>no</strong>t exist<br />
in the same window/dialog box.<br />
Assure that option boxes, option buttons, and command buttons are logically grouped<br />
together in clearly demarcated areas.<br />
Assure that each demarcated area has a meaningful name that is <strong>no</strong>t an abbreviation.<br />
Assure that the Tab key sequence which traverses the defined areas does so in a<br />
logical way.<br />
Assure that the <strong>par</strong>ent window has a status bar.<br />
Assure that all user-related system messages are presented via the status bar.<br />
Assure consistency of mouse actions across windows.
Assure that the color red is <strong>no</strong>t used to highlight active GUI objects (many individuals<br />
are red-green color blind).<br />
Assure that the user will have control of the desktop with respect to general color and<br />
highlighting (the application should <strong>no</strong>t dictate the desktop background<br />
characteristics).<br />
Assure that the GUI does <strong>no</strong>t have a cluttered appearance (GUIs should <strong>no</strong>t be<br />
designed to look like a mainframe character user interfaces (CUIs) when replacing<br />
such data entry/retrieval screens)<br />
Lasiet vēl : http://hcibib.org/sam/ - Guidelines for design user interface software<br />
7.2. Lietotāja saskarnes testēšanas kontrolsaraksts<br />
Lietotāja saskarnes testēšanas kontrolsaraksts<br />
CONTENTS:<br />
Section 1 - Windows Compliance Standards<br />
<strong>1.1.</strong> Application<br />
1.2. For Each Window in the Application<br />
1.3. Text Boxes<br />
1.4. Option (Radio Buttons)<br />
1.5. Check Boxes<br />
1.6. Command Buttons<br />
1.7. Drop Down List Boxes<br />
1.8. Combo Boxes<br />
1.9. List Boxes<br />
Section 2 - Tester's Screen Validation Checklist<br />
2.1. Aesthetic Conditions<br />
2.2. Validation Conditions<br />
2.3. Navigation Conditions<br />
2.4. Usability Conditions<br />
2.5. Data Integrity Conditions<br />
2.6. Modes (Editable Read-only) Conditions<br />
2.7. General Conditions<br />
2.8. Specific Field Tests<br />
2.8.1. Date Field Checks<br />
2.8.2. Numeric Fields<br />
2.8.3. Alpha Field Checks<br />
Section 3 - Validation Testing - Standard Actions<br />
3.1. On every Screen<br />
3.2. Shortcut keys / Hot Keys<br />
3.3. Control Shortcut Keys<br />
Section 4 - Origin & Inspiration<br />
4.1. Document origin<br />
4.2. Sources of Inspiration & information<br />
4.3. Contacting the author.
Section 1 - Windows Compliance Testing<br />
<strong>1.1.</strong> Application<br />
Start Application by Double Clicking on its ICON. The Loading message should<br />
show the application name,<br />
version number, and a bigger pictorial representation of the icon (a 'splash' screen).<br />
No Login is necessary<br />
The main window of the application should have the same caption as the caption of<br />
the icon in Program Manager.<br />
Closing the application should result in an "Are you Sure" message box<br />
Attempt to start application Twice<br />
This should <strong>no</strong>t be allowed - you should be returned to main Window<br />
Try to start the application twice as it is loading.<br />
On each window, if the application is busy, then the hour glass should be displayed. If<br />
there is <strong>no</strong> hour glass<br />
(e.g. alpha access enquiries) then some enquiry in progress message should be<br />
displayed.<br />
All screens should have a Help button, F1 should work doing the same.<br />
1.2. For Each Window in the Application<br />
If Window has a Minimise Button, click it.<br />
Window Should return to an icon on the bottom of the screen<br />
This icon should correspond to the Original Icon under Program Manager.<br />
Double Click the Icon to return the Window to its original size.<br />
The window caption for every application should have the name of the application<br />
and the window name -<br />
especially the error messages. These should be checked for spelling, English and<br />
clarity , especially on the top<br />
of the screen. Check does the title of the window makes sense.<br />
If the screen has an Control menu, then use all ungreyed options. (see below)<br />
Check all text on window for Spelling/Tense and Grammar<br />
Use TAB to move focus around the Window. Use SHIFT+TAB to move focus<br />
backwards.<br />
Tab order should be left to right, and Up to Down within a group box on the screen.<br />
All controls
should get focus - indicated by dotted box, or cursor. Tabbing to an entry field with<br />
text in it should highlight<br />
the entire text in the field.<br />
The text in the Micro Help line should change - Check for spelling, clarity and <strong>no</strong>nupdateable<br />
etc.<br />
If a field is disabled (greyed) then it should <strong>no</strong>t get focus. It should <strong>no</strong>t be possible to<br />
select them with either<br />
the mouse or by using TAB. Try this for every greyed control.<br />
Never updateable fields should be displayed with black text on a grey background<br />
with a black label.<br />
All text should be left-justified, followed by a colon tight to it.<br />
In a field that may or may <strong>no</strong>t be updateable, the label text and contents changes from<br />
black to grey depending<br />
on the current status.<br />
List boxes are always white background with black text whether they are disabled or<br />
<strong>no</strong>t. All others are grey.<br />
In general, do <strong>no</strong>t use goto screens, use gosub, i.e. if a button causes a<strong>no</strong>ther screen to<br />
be displayed, the<br />
screen should <strong>no</strong>t hide the first screen, with the exception of tab in 2.0<br />
When returning return to the first screen cleanly i.e. <strong>no</strong> other screens/applications<br />
should appear.<br />
In general, double-clicking is <strong>no</strong>t essential. In general, everything can be done using<br />
both the mouse and<br />
the keyboard.<br />
All tab buttons should have a distinct letter.<br />
1.3. Text Boxes<br />
Move the Mouse Cursor over all Enterable Text Boxes. Cursor should change from<br />
arrow to Insert Bar.<br />
If it doesn't then the text in the box should be grey or <strong>no</strong>n-updateable. Refer to<br />
previous page.<br />
Enter text into Box<br />
Try to overflow the text by typing to many characters - should be stopped Check the<br />
field width with capitals W.<br />
Enter invalid characters - Letters in amount fields, try strange characters like + , - *<br />
etc. in All fields.<br />
SHIFT and Arrow should Select Characters. Selection should also be possible with<br />
mouse. Double Click should<br />
select all text in box.<br />
1.4. Option (Radio Buttons)<br />
Left and Right arrows should move 'ON' Selection. So should Up and Down.. Select<br />
with mouse by clicking.<br />
1.5. Check Boxes
Clicking with the mouse on the box, or on the text should SET/UNSET the box.<br />
SPACE should do the same.<br />
1.6. Command Buttons<br />
If Command Button leads to a<strong>no</strong>ther Screen, and if the user can enter or change<br />
details on the other screen then<br />
the Text on the button should be followed by three dots.<br />
All Buttons except for OK and Cancel should have a letter Access to them. This is<br />
indicated by a letter underlined<br />
in the button text. The button should be activated by pressing ALT+Letter. Make sure<br />
there is <strong>no</strong> duplication.<br />
Click each button once with the mouse - This should activate<br />
Tab to each button - Press SPACE - This should activate<br />
Tab to each button - Press RETURN - This should activate<br />
The above are VERY IMPORTANT, and should be done for EVERY command<br />
Button.<br />
Tab to a<strong>no</strong>ther type of control (<strong>no</strong>t a command button). One button on the screen<br />
should be default (indicated by<br />
a thick black border). Pressing Return in ANY <strong>no</strong> command button control should<br />
activate it.<br />
If there is a Cancel Button on the screen , then pressing should activate it.<br />
If pressing the Command button results in uncorrectable data e.g. closing an action<br />
step, there should be a message<br />
phrased positively with Yes/No answers where Yes results in the completion of the<br />
action.<br />
1.7. Drop Down List Boxes<br />
Pressing the Arrow should give list of options. This List may be scrollable. You<br />
should <strong>no</strong>t be able to type text<br />
in the box.<br />
Pressing a letter should bring you to the first item in the list with that start with that<br />
letter. Pressing ‘Ctrl - F4’<br />
should open/drop down the list box.<br />
Spacing should be compatible with the existing windows spacing (word etc.). Items<br />
should be in alphabetical<br />
order with the exception of blank/<strong>no</strong>ne which is at the top or the bottom of the list<br />
box.<br />
Drop down with the item selected should be display the list with the selected item on<br />
the top.
Make sure only one space appears, shouldn't have a blank line at the bottom.<br />
1.8. Combo Boxes<br />
Should allow text to be entered. Clicking Arrow should allow user to choose from list<br />
1.9. List Boxes<br />
Should allow a single selection to be chosen, by clicking with the mouse, or using the<br />
Up and Down Arrow keys.<br />
Pressing a letter should take you to the first item in the list starting with that letter.<br />
If there is a 'View' or 'Open' button beside the list box then double clicking on a line in<br />
the List Box, should act in the same way as selecting and item in the list box, then<br />
clicking the command button.<br />
Force the scroll bar to appear, make sure all the data can be seen in the box.<br />
Section 2 - Screen Validation Checklist<br />
2.1. Aesthetic Conditions:<br />
Is the general screen background the correct colour<br />
Are the field prompts the correct colour<br />
Are the field backgrounds the correct colour<br />
In read-only mode, are the field prompts the correct colour<br />
In read-only mode, are the field backgrounds the correct colour<br />
Are all the screen prompts specified in the correct screen font<br />
Is the text in all fields specified in the correct screen font<br />
Are all the field prompts aligned perfectly on the screen<br />
Are all the field edit boxes aligned perfectly on the screen<br />
Are all groupboxes aligned correctly on the screen<br />
Should the screen be resizable<br />
Should the screen be minimisable<br />
Are all the field prompts spelt correctly<br />
Are all character or alpha-numeric fields left justified This is the default unless<br />
otherwise specified.<br />
Are all numeric fields right justified This is the default unless otherwise specified.<br />
Is all the microhelp text spelt correctly on this screen<br />
Is all the error message text spelt correctly on this screen<br />
Is all user input captured in UPPER case or lower case consistently
Where the database requires a value (other than null) then this should be defaulted<br />
into fields. The<br />
user must either enter an alternative valid value or leave the default value intact.<br />
Assure that all windows have a consistent look and feel.<br />
Assure that all dialog boxes have a consistent look and feel.<br />
2.2. Validation Conditions:<br />
Does a failure of validation on every field cause a sensible user error message<br />
Is the user required to fix entries which have failed validation tests<br />
Have any fields got multiple validation rules and if so are all rules being applied<br />
If the user enters an invalid value and clicks on the OK button (i.e. does <strong>no</strong>t TAB off<br />
the field) is the invalid entry identified and highlighted correctly with an error<br />
message.<br />
Is validation consistently applied at screen level unless specifically required at field<br />
level<br />
For all numeric fields check whether negative numbers can and should be able to be<br />
entered.<br />
For all numeric fields check the minimum and maximum values and also some midrange<br />
values allowable<br />
For all character/alphanumeric fields check the field to ensure that there is a character<br />
limit specified and that this limit is exactly correct for the specified database size<br />
Do all mandatory fields require user input<br />
If any of the database columns don't allow null values then the corresponding screen<br />
fields must be mandatory. (If any field which initially was mandatory has become<br />
optional then check whether null values are allowed in this field.)<br />
2.3. Navigation Conditions:<br />
Can the screen be accessed correctly from the menu<br />
Can the screen be accessed correctly from the toolbar<br />
Can the screen be accessed correctly by double clicking on a list control on the<br />
previous screen<br />
Can all screens accessible via buttons on this screen be accessed correctly<br />
Can all screens accessible by double clicking on a list control be accessed correctly<br />
Is the screen modal. i.e. Is the user prevented from accessing other functions when<br />
this screen is active and is this correct<br />
Can a number of instances of this screen be opened at the same time and is this<br />
correct<br />
2.4. Usability Conditions:<br />
Are all the dropdowns on this screen sorted correctly Alphabetic sorting is the<br />
default unless otherwise specified.<br />
Is all date entry required in the correct format<br />
Have all pushbuttons on the screen been given appropriate Shortcut keys<br />
Do the Shortcut keys work correctly<br />
Have the menu options which apply to your screen got fast keys associated and should<br />
they have<br />
Does the Tab Order specified on the screen go in sequence from Top Left to bottom<br />
right This is the default unless otherwise specified.<br />
Are all read-only fields avoided in the TAB sequence<br />
Are all disabled fields avoided in the TAB sequence
Can the cursor be placed in the microhelp text box by clicking on the text box with<br />
the mouse<br />
Can the cursor be placed in read-only fields by clicking in the field with the mouse<br />
Is the cursor positioned in the first input field or control when the screen is opened<br />
Is there a default button specified on the screen<br />
Does the default button work correctly<br />
When an error message occurs does the focus return to the field in error when the user<br />
cancels it<br />
When the user Alt+Tab's to a<strong>no</strong>ther application does this have any impact on the<br />
screen upon return to The application<br />
Do all the fields edit boxes indicate the number of characters they will hold by there<br />
length e.g. a 30 character field should be a lot longer<br />
2.5. Data Integrity Conditions:<br />
Is the data saved when the window is closed by double clicking on the close box<br />
Check the maximum field lengths to ensure that there are <strong>no</strong> truncated characters<br />
Where the database requires a value (other than null) then this should be defaulted<br />
into fields. The user must either enter an alternative valid value or leave the default<br />
value intact.<br />
Check maximum and minimum field values for numeric fields<br />
If numeric fields accept negative values can these be stored correctly on the database<br />
and does it make sense for the field to accept negative numbers<br />
If a set of radio buttons represent a fixed set of values such as A, B and C then what<br />
happens if a blank value is retrieved from the database (In some situations rows can<br />
be created on the database by other functions which are <strong>no</strong>t screen based and thus the<br />
required initial values can be incorrect.)<br />
If a <strong>par</strong>ticular set of data is saved to the database check that each value gets saved<br />
fully to the database. i.e. Beware of truncation (of strings) and rounding of numeric<br />
values.<br />
2.6. Modes (Editable Read-only) Conditions:<br />
Are the screen and field colours adjusted correctly for read-only mode<br />
Should a read-only mode be provided for this screen<br />
Are all fields and controls disabled in read-only mode<br />
Can the screen be accessed from the previous screen/menu/toolbar in read-only<br />
mode<br />
Can all screens available from this screen be accessed in read-only mode<br />
Check that <strong>no</strong> validation is performed in read-only mode.<br />
2.7. General Conditions:<br />
Assure the existence of the "Help" menu.<br />
Assure that the proper commands and options are in each menu.<br />
Assure that all buttons on all tool bars have a corresponding key commands.<br />
Assure that each menu command has an alternative(hot-key) key sequence which will<br />
invoke it where appropriate.<br />
In drop down list boxes, ensure that the names are <strong>no</strong>t abbreviations / cut short<br />
In drop down list boxes, assure that the list and each entry in the list can be accessed<br />
via appropriate key / hot key combinations.<br />
Ensure that duplicate hot keys do <strong>no</strong>t exist on each screen
Ensure the proper usage of the escape key (which is to undo any changes that have<br />
been made) and generates a caution message "Changes will be lost - Continue yes/<strong>no</strong>"<br />
Assure that the cancel button functions the same as the escape key.<br />
Assure that the Cancel button operates as a Close button when changes have be made<br />
that can<strong>no</strong>t be undone.<br />
Assure that only command buttons which are used by a <strong>par</strong>ticular window, or in a<br />
<strong>par</strong>ticular dialog box, are present. - i.e make sure they don't work on the screen behind<br />
the current screen.<br />
When a command button is used sometimes and <strong>no</strong>t at other times, assure that it is<br />
grayed out when it should <strong>no</strong>t be used.<br />
Assure that OK and Cancel buttons are grouped se<strong>par</strong>ately from other command<br />
buttons.<br />
Assure that command button names are <strong>no</strong>t abbreviations.<br />
Assure that all field labels/names are <strong>no</strong>t technical labels, but rather are names<br />
meaningful to system users.<br />
Assure that command buttons are all of similar size and shape, and same font & font<br />
size.<br />
Assure that each command button can be accessed via a hot key combination.<br />
Assure that command buttons in the same window/dialog box do <strong>no</strong>t have duplicate<br />
hot keys.<br />
Assure that each window/dialog box has a clearly marked default value (command<br />
button, or other object) which is invoked when the Enter key is pressed - and NOT the<br />
Cancel or Close button<br />
Assure that focus is set to an object/button which makes sense according to the<br />
function of the window/dialog box.<br />
Assure that all option buttons (and radio buttons) names are <strong>no</strong>t abbreviations.<br />
Assure that option button names are <strong>no</strong>t technical labels, but rather are names<br />
meaningful to system users.<br />
If hot keys are used to access option buttons, assure that duplicate hot keys do <strong>no</strong>t<br />
exist in the same window/dialog box.<br />
Assure that option box names are <strong>no</strong>t abbreviations.<br />
Assure that option boxes, option buttons, and command buttons are logically grouped<br />
together in clearly demarcated areas "Group Box"<br />
Assure that the Tab key sequence which traverses the screens does so in a logical<br />
way.<br />
Assure consistency of mouse actions across windows.<br />
Assure that the color red is <strong>no</strong>t used to highlight active objects (many individuals are<br />
red-green color blind).<br />
Assure that the user will have control of the desktop with respect to general color and<br />
highlighting (the application should <strong>no</strong>t dictate the desktop background<br />
characteristics).<br />
Assure that the screen/window does <strong>no</strong>t have a cluttered appearance<br />
Ctrl + F6 opens next tab within tabbed window<br />
Shift + Ctrl + F6 opens previous tab within tabbed window<br />
Tabbing will open next tab within tabbed window if on last field of current tab<br />
Tabbing will go onto the 'Continue' button if on last field of last tab within tabbed<br />
window<br />
Tabbing will go onto the next editable field in the window<br />
Banner style & size & display exact same as existing windows
If 8 or less options in a list box, display all options on open of list box - should be <strong>no</strong><br />
need to scroll<br />
Errors on continue will cause user to be returned to the tab and the focus should be on<br />
the field causing the error. (i.e the tab is opened, highlighting the field with the error<br />
on it)<br />
Pressing continue while on the first tab of a tabbed window (assuming all fields filled<br />
correctly) will <strong>no</strong>t open all the tabs.<br />
On open of tab focus will be on first editable field<br />
All fonts to be the same<br />
Alt+F4 will close the tabbed window and return you to main screen or previous<br />
screen (as appropriate), generating "changes will be lost" message if necessary.<br />
Microhelp text for every enabled field & button<br />
Ensure all fields are disabled in read-only mode<br />
Progress messages on load of tabbed screens<br />
Return operates continue<br />
If retrieve on load of tabbed window fails window should <strong>no</strong>t open<br />
2.8. Specific Field Tests<br />
2.8.1. Date Field Checks<br />
Assure that leap years are validated correctly & do <strong>no</strong>t cause errors/miscalculations<br />
Assure that month code 00 and 13 are validated correctly & do <strong>no</strong>t cause<br />
errors/miscalculations<br />
Assure that 00 and 13 are reported as errors<br />
Assure that day values 00 and 32 are validated correctly & do <strong>no</strong>t cause<br />
errors/miscalculations<br />
Assure that Feb. 28, 29, 30 are validated correctly & do <strong>no</strong>t cause errors/<br />
miscalculations<br />
Assure that Feb. 30 is reported as an error<br />
Assure that century change is validated correctly & does <strong>no</strong>t cause errors/<br />
miscalculations<br />
Assure that out of cycle dates are validated correctly & do <strong>no</strong>t cause<br />
errors/miscalculations<br />
2.8.2. Numeric Fields<br />
Assure that lowest and highest values are handled correctly<br />
Assure that invalid values are logged and reported<br />
Assure that valid values are handles by the correct procedure<br />
Assure that numeric fields with a blank in position 1 are processed or reported as an<br />
error<br />
Assure that fields with a blank in the last position are processed or reported as an error<br />
an error<br />
Assure that both + and - values are correctly processed<br />
Assure that division by zero does <strong>no</strong>t occur<br />
Include value zero in all calculations<br />
Include at least one in-range value<br />
Include maximum and minimum range values<br />
Include out of range values above the maximum and below the minimum<br />
Assure that upper and lower values in ranges are handled correctly
2.8.3. Alpha Field Checks<br />
Use blank and <strong>no</strong>n-blank data<br />
Include lowest and highest values<br />
Include invalid characters & symbols<br />
Include valid characters<br />
Include data items with first position blank<br />
Include data items with last position blank<br />
Section 3 - Validation Testing - Standard Actions<br />
3.1. Examples of Standard Actions - Substitute your specific commands<br />
Add<br />
View<br />
Change<br />
Delete<br />
Continue - (i.e. continue saving changes or additions)<br />
Add<br />
View<br />
Change<br />
Delete<br />
Cancel - (i.e. abandon changes or additions)<br />
Fill each field - Valid data<br />
Fill each field - Invalid data<br />
Different Check Box / Radio Box combinations<br />
Scroll Lists / Drop Down List Boxes<br />
Help<br />
Fill Lists and Scroll<br />
Tab<br />
Tab Sequence<br />
Shift Tab<br />
3.2. Shortcut keys / Hot Keys<br />
Note: The following keys are used in some windows applications, and are included as<br />
a guide.<br />
Key No Modifier Shift CTRL ALT<br />
F1 Help Enter Help<br />
Mode<br />
n\a<br />
n\a<br />
F2 n\a n\a n\a n\a<br />
F3 n\a n\a n\a n\a<br />
F4 n\a n\a Close<br />
Document /<br />
Child window.<br />
Close<br />
Application.
F5 n\a n\a n\a n\a<br />
F6 n\a n\a n\a n\a<br />
F7 n\a n\a n\a n\a<br />
F8<br />
Toggle extend<br />
mode, if<br />
supported.<br />
Toggle Add<br />
mode, if<br />
supported.<br />
n\a<br />
n\a<br />
F9 n\a n\a n\a n\a<br />
F10<br />
Toggle menu<br />
bar activation.<br />
n\a n\a n\a<br />
F11, F12 n\a n\a n\a n\a<br />
Tab<br />
Move to next<br />
active/editable<br />
field.<br />
Move to<br />
previous<br />
active/editable<br />
field.<br />
Move to next<br />
open Document<br />
or Child<br />
window.<br />
(Adding SHIFT<br />
reverses the<br />
order of<br />
movement).<br />
Switch to<br />
previously used<br />
application.<br />
(Holding down<br />
the ALT key<br />
displays all<br />
open<br />
applications).<br />
Alt<br />
Puts focus on<br />
first menu<br />
command (e.g.<br />
'File').<br />
n\a n\a n\a<br />
3.3. Control Shortcut Keys<br />
Key<br />
CTRL + Z<br />
CTRL + X<br />
CTRL + C<br />
CTRL + V<br />
CTRL + N<br />
CTRL + O<br />
CTRL + P<br />
CTRL + S<br />
CTRL + B<br />
Function<br />
Undo<br />
Cut<br />
Copy<br />
Paste<br />
New<br />
Open<br />
Print<br />
Save<br />
Bold*
CTRL + I<br />
Italic*<br />
CTRL + U<br />
Underline*<br />
* These shortcuts are suggested for text formatting applications, in the context for<br />
which they make sense. Applications may use other modifiers for these operations.<br />
8.1. <strong>Konspekts</strong><br />
Darba organizācija programmēšanas grupā<br />
Projekta komanda un tās izvēle<br />
Programmatūras izstrādes projekta realizācijas komandas plā<strong>no</strong>šana ir atbildīs solis.<br />
No projekta komandas komplektācijas ir atkarīga projekta turpmākā <strong>no</strong>rise un<br />
veiksme. Novērtējot projektam nepieciešamo darbietilpību jau ir jāzina, kādi<br />
darbinieki piedalīsies sistēmanalīzē, projektēšanā, izstrādē, testēšanā, dokumentēšanā<br />
un ieviešanā.<br />
Izstrādes projektos <strong>par</strong>asti piedalās:<br />
projekta vadītājs;<br />
sistēmanalītiķi;<br />
projektētāji;<br />
programmētāji;<br />
testētāji;<br />
dokumentētāji;<br />
kvalitātes speciālisti;<br />
administrators.<br />
Taču šo lomu skaits var būtiski atšķirties atkarībā <strong>no</strong> projekta lieluma. Mazajos<br />
projektos viens un tas pats darbinieks var pildīt vairākus uzdevumus. Jo lielāks<br />
projekts, jo svarīgāka ir lomu atdalīšana un šaurāka specializācija.<br />
Tomēr šo IT organizācijas tieši projektā iesaistītie darbinieki nav vienīgie. Ne mazāk<br />
svarīgi atrast projekta sponsoru - ieinteresēto personu <strong>no</strong> Pasūtītāja puses, kā arī<br />
projekta pārraugu <strong>no</strong> IT organizācijas augstākās vadības. Ir vitāli svarīgi iesaistīt arī<br />
citus pasūtītāja pārstāvjus, kā biznescilvēkus, izstrādājamās sistēmas lietotājus un<br />
akcepttestēšanas dalībniekus.<br />
Plā<strong>no</strong>jot projekta komandu ir vērtīgi ņemt vērā šādus faktorus:<br />
Vai projekta komanda ir sastrādājusies<br />
Savstarpējas komunikācijas stingri apgrūtinātas<br />
Daļēji sastrādājusies komanda<br />
Pārsvarā sastrādājusies komanda<br />
Ļoti labi sastrādājusies komanda<br />
Kāda ir iesaistīto darbinieku pieredze līdzīgu projektu realizācijā<br />
Nav<br />
Komandai tas ir pārsvarā nepazīstams uzdevums<br />
Ir atrodamas dažas nepazīstamas vietas<br />
Komandai šis ir vispārīgos vilcie<strong>no</strong>s pazīstams uzdevums<br />
Šis ir pārsvarā pazīstams uzdevums<br />
Šis ir l abi zināms uzdevums
Kāda ir iesaistīto darbinieku pieredze IT jomā<br />
Ārkārtīgi zema (
sniegumu. Savukārt <strong>par</strong> projekta kopējiem rezultātiem ir atbildīgs projekta vadītājs,<br />
kurš saņem informāciju <strong>no</strong> grupu līderiem.<br />
Lielākajos projektos (50 un vairāk iesaistīto darbinieku) starp projekta pārvaldnieku<br />
un grupu līderiem var būt izveidots papildus līmenis - apakšprojektu vadītāji. Atkarībā<br />
<strong>no</strong> iespējas projektu neatkarīgi izstrādāt pa moduļiem, projekts var būt sadalīts<br />
vairākos apakšprojektos.<br />
Alternatīva hierarhiskajam projekta organizācijas modelim ir "Āzijas" jeb armijas<br />
modelis. Spēcīga motivācijas sistēma. Piemēri - mongoļu impērija, nacistu sistēma,<br />
padomju sistēma.<br />
Pārvaldības modelis - būvu cilvēku kompānija<br />
Vēl viens projekta organizatorisks modelis ir būvu cilvēku kompānija - lēmumu<br />
pieņemšana gandrīz neiespējama. Piemērs - Eiropa nespēj pieņemt lēmumu Irākas<br />
jautājumā, Balkānu jautājumā u.tml.<br />
2. attēls. Pārvaldības modelis - būvu cilvēku kompānija.<br />
Administratīvais (pozitīvās un negatīvās puses)<br />
- skaidra atbildība,<br />
- kontekstu var nezināt,<br />
- jo augstāk hierarhija, jo lielāka slodze un atbildība,<br />
- "aklais lidotājs - programmētāji, kas nezina kontekstu<br />
Galvenā programmētāja brigāde (Chief Programmer's Team)<br />
Funkcijas :<br />
- Galvenais programmētājs - pats pieredzējušākais, labākais u.tml.; pats izstrādā<br />
svarīgākos gabalus.<br />
- Otrais pilots - zina to pašu un var uzņemties vadību; arī pats izstrādā.<br />
- Programmētāji - izstrādā.<br />
- Instrumentālists - izvēlas vidi, apgūst, pēc tam māca / konsultē<br />
- Dokumentētājs - atbild <strong>par</strong> sistēmas dokumentāciju<br />
- Bibliotekārs - pārzina versijas<br />
- Vadītājs (manager) - <strong>no</strong>drošina resursus u.tml.<br />
Komanda uzstājas kā vie<strong>no</strong>ts organisms. Hierarhiskajā modelī vadītāji ātri pārstāj būt<br />
speciālisti (programmēšanas speciālisti). Galvenā programmētāja brigādē (GPB)<br />
saglabājas profesionalitāte, aug jauni līderi, taču jābūt saderīgiem raksturiem. Tomēr<br />
GPB ir kāds apjoma slieksnis, ko tā nespēj pārkāpt, t.i. apmēram 10-20000 gatavu<br />
koda rindiņu gadā ar visu dokumentāciju. Lielākām sistēmām hierarhija ir<br />
neizbēgama.
Prince organizācijas struktūra<br />
Pārvaldības modeļa <strong>no</strong>saukums PRINCE ir saīsinājums <strong>no</strong> 'Projects in Controlled<br />
Environments' jeb projekti pārvaldāmā vidē. PRINCE ir strukturēta pieeja projektu<br />
pārvaldībai un to ir izstrādājusi Lielbritānijas valdība. PRINCE modelis jau sākumā<br />
tika <strong>par</strong>edzēts informācijas sistēmu izstrādes projektiem, taču lielākā daļa modeļa<br />
principu ir attiecināma uz plaša spektra projektu situācijām. PRINCE piedāvā<br />
vairākas priekšrocības, kuras padara programmatūras izstrādes projektus veiksmīgus:<br />
Definēta pārvaldības struktūra<br />
Plā<strong>no</strong>šanas sistēma<br />
Pārvaldāmo procedūru kopa<br />
Fokusēšanās uz produktu plā<strong>no</strong>šanas, t.i. <strong>no</strong>devumu plā<strong>no</strong>šanas.<br />
PRINCE pārvaldības struktūra.<br />
PRINCE pārvaldības hierarhijas galā atrodas pārvaldības a<strong>par</strong>āts, kurš <strong>no</strong>saka<br />
vispārējus mērķus programmatūras izstrādes projekta organizācijai. Šis līmenis var<br />
atšķirties katrā organizācijā. Iespējams, ka svarīgākus lēmumus pieņems organizācijas<br />
vadība organizācijas valdes priekšsēdētāju sastāvā. Patstāvīgu projektu augstākā<br />
līmeņa vadība, kuru <strong>no</strong>saka PRINCE sauc <strong>par</strong> projekta valdi. Projekta valde<br />
reprezentē trīs galvenās instances, svarīgas projektu pārvaldībā : izpild-vadītājs -<br />
persona, kuru ievel organizācijas augstākā vadība savu biznesa interešu aizstāvībai;<br />
galvenais lietotājs - reprezentē biznesa sfēras intereses, kuras ietekmē jaunas<br />
informācijas sistēmas ieviešana, un runā visu gala lietotāju vārdā; galvenais<br />
piegādātājs - reprezentē jaunas informācijas sistēmas izstrādātājus, tas var būt IT<br />
direktors vai programmatūras izstrādes pārvaldnieks.<br />
Svarīgi ir tas, ka PRINCE modelis ir elastīgs, tādējādi organizatoriskā struktūra var<br />
variēt, lai labāk atbilstu projektu specifikai un vajadzībām. Piemēram, iespējama<br />
situācija, kurā izpild-vadītāja un galvenā lietotāja lomu <strong>no</strong> pasūtītāja puses pārstāv<br />
viena un tā pati persona. No otras puses, var gadīties situācija, kurā galve<strong>no</strong> lietotāja<br />
lomu pārstāv vairāki gala lietotāju pārstāvji. Galvenais ir iedibināt efektīvi strādājošu<br />
pārvaldības struktūru, kura spēj ātri pieņemt lēmumus.
Mūsdienu projektu pārvaldība ir projekta pārvaldnieka un viena vai vairāku komandu<br />
pārvaldnieku atbilstības sfēra. Projekta pārvaldnieka lomai nav nepieciešami<br />
komentāri. Kas attiecās uz komandu pārvaldniekiem, PRINCE modelis <strong>par</strong>edz, ka<br />
projekts sava dzīves cikla laikā izies cauri vairākām fāzēm, kurās iespējami būs<br />
nepieciešams atsevišķs atbildīgais. Tā kā katrā <strong>no</strong> fāzēm var būt nepieciešamas<br />
specifiskas atšķirīgas zināšanas, komandu pārvaldnieka lomu var katrā <strong>no</strong> šīm fāzēm<br />
ieņemt cits darbinieks. Tādējādi var gadīties, ka projekta pārvaldnieks strādā projekta<br />
laikā ar vairākiem komandu pārvaldniekiem; vai projekta pārvaldnieks uzņemas arī<br />
komandu pārvaldnieka lomu; vai projekta pārvaldnieka lomu var katrā atsevišķā fāzē<br />
uzņemties komandas pārvaldnieks.<br />
Projekta <strong>no</strong>drošinājuma līmenis atrodas starp projekta valdes un projekta pārvaldnieka<br />
līmeņiem. Tas iekļauj trīs galve<strong>no</strong>s aspektus - biznesa <strong>no</strong>drošinājumu (jebkuru<br />
būtisko izmaiņu ietekmes <strong>no</strong>vērtējums un kontrole), lietotāju <strong>no</strong>drošinājumu<br />
(programmatūras gala lietotāju interešu pārstāvēšana, prasību realizācijas kontrole) un<br />
tehnisko <strong>no</strong>drošinājumu (palīdzība tehnisko projekta stratēģiju definēšanā, kvalitātes<br />
kritēriju un citu tehnisko metožu un standartu ievērošanas kontrole).<br />
Projekta atbalsta līmenis atrodas starp projekta pārvaldnieku un komandu<br />
pārvaldniekiem. Projekta atbalsta komanda palīdz projekta pārvaldniekam plānu<br />
sastādīšanā, projekta atsekošanā un mērīšanā, projekta un komandu pārvaldības<br />
atskaišu sagatavošanā, kā arī veic lēmumu pieņemšanas procesa kontroli un projekta<br />
progresa uzraudzību.<br />
Lai projekts būtu veiksmīgs, ir vitāli svarīgi apzināties kurš ir pasūtītājs, kurš pieņem<br />
galve<strong>no</strong>s svarīgus lēmumus un kurš uzņemsies atbildību <strong>par</strong> projektā <strong>no</strong>tiekošo.<br />
PRINCE <strong>no</strong>drošina projekta pārvaldības metodi, kura piedāvā ērtu un efektīvu<br />
struktūru programmatūras projektu pārvaldībai.<br />
8.2. Kā top informācijas sistēmas III<br />
Kā top informācijas sistēmas<br />
<strong>Izmantoti</strong>e materiāli: Ivards Solovjovs, DatorPasaule, 2'2000, III daļa<br />
Projektu vadīšanas tehnika<br />
IS projekts <strong>par</strong>asti sastāv <strong>no</strong> daudzām savstarpēji saistītām aktivitātēm (dažkārt to ir<br />
simtiem), kurās tiek iesaistīti daudzi cilvēki (<strong>par</strong>asti 5 – 100), kā arī eksistē dažādi<br />
ierobežojumi (koplietošanas resursi, fiksēti atsevišķu <strong>no</strong>tikumu termiņi un citi). Lai šo<br />
procesu varētu <strong>no</strong>rmāli plā<strong>no</strong>t un vadīt, īpaši <strong>no</strong>derīga ir vispārpieņemtā projektu<br />
vadīšanas tehnika. Pazīstamākās <strong>no</strong> projekta plā<strong>no</strong>šanas tehnikām (rīkiem) ir GANTT<br />
un PERT diagrammas. Pirmā akcentē atsevišķu darbu izpildes termiņus un<br />
nepieciešamos resursus, otrā – aktivitāšu un <strong>no</strong>tikumu savstarpējo atkarību. Abu veidu<br />
diagrammas atbalsta arī plaši lietotā Microsoft Project programmatūra.<br />
IS izstrādes projekta GANTT diagrammas piemērs dots 1. attēlā.
Kā tipiskākos projekta vadības uzdevumus var minēt šādas aktivitātes:<br />
Darbu (aktivitāšu) sadalīšana sīkāk.<br />
Projekta mērķa dekompozīcija, atsevišķos darbos (aktivitātēs) iegūstot vairāklīmeņu<br />
hierarhisku, numurētu struktūru (work breakdown structure – WBS). Detalizācijas<br />
līmenis ir atkarīgs <strong>no</strong> abstrakcijas līmeņa, kādā projekts tiek aplūkots (piemēram,<br />
zemākā līmeņa aktivitāte var atbilst gan līgumā <strong>par</strong>edzētam darbu posmam, gan arī<br />
konkrētam darbiniekam uzdodamajam uzdevumam).<br />
Projekta darbu (aktivitāšu) secīga sakārtošana.<br />
Katram darbam tiek <strong>no</strong>rādīti tie darbi, kuru pabeigšana ir priekš<strong>no</strong>sacījums tā<br />
uzsākšanai (predsessors), Tādējādi tiek definēta darbu izpildes loģiskā secība.<br />
Darbu (aktivitāšu) termiņu, resursietilpības un izmaksu vērtēšana.<br />
Katram darbam tiek <strong>no</strong>vērtēti tā izpildei nepieciešamie resursi, kā arī termiņi (sk.<br />
nākamo sadaļu). Tā kā darba apjoms ir funkcija <strong>no</strong> laika un resursiem, tad atkarībā <strong>no</strong><br />
tā, kas ir ierobežojošais faktors, var izvēlēties dažādus darbu izpildes variantus.<br />
Projekta plāna saskaņošana ar laika ierobežojumiem.<br />
Ja ierobežojošais faktors ir projekta izpildes gala termiņš, to var mēģināt samazināt,<br />
palieli<strong>no</strong>t iesaistāmos resursus, mai<strong>no</strong>t darbu izpildes secību (piemēram, atsevišķus<br />
darbus veicot <strong>par</strong>alēli) vai radikālā gadījumā samazi<strong>no</strong>t izvirzīto mērķi<br />
(funkcionalitāti).<br />
Projekta plāna optimizēšana, izmantojot kritiskā ceļa metodi.<br />
Īpaša metode projekta plāna analīzei un optimizēšanai, <strong>no</strong>sakot to darbu virkni, kas<br />
summāri veido visgarāko laika posmu. Saīsi<strong>no</strong>t vai citādi optimizējot darbus, kuri<br />
atrodas uz kritiskā ceļa, reizē tiek samazināts arī projekta kopējais garums.<br />
Projekta plāna saskaņošana ar resursu ierobežojumiem.<br />
Ja ierobežojošais faktors ir pieejamie resursi, darbu izpildes termiņi ir "jāsakrata"<br />
atbilstoši to pieejamībai. Protams, jāizvairās arī <strong>no</strong> resursu dīkstāves, kā arī straujiem<br />
resursu izmantošanas lēcieniem.<br />
Regulāra projekta darbu izpildes uzraudzīšana, projekta plāna modificēšana, kā arī<br />
citu koriģējošu pasākumu veikšana.<br />
Tas ir regulārs process visa projekta garumā, kura ietvaros, tiek sekots līdzi, kā tiek<br />
pildīti plā<strong>no</strong>tie darbi. Termiņu kavējumu gadījumā vai nu tiek veiktas koriģējošas<br />
darbības (piemēram, izdalīti papildu resursi vai speciāli motivēti darbinieki), vai arī<br />
tiek mainīts projekta plāns atbilstoši faktiskajai situācijai. Šajā gadījumā papildus<br />
sākotnējam plānam <strong>par</strong>ādās plāna bāzlīniju versijas. Jebkuras projekta plāna izmaiņas<br />
ir formāli akceptējamas attiecīgā līmeņa projekta vadības institūcijā.<br />
Resursu un termiņu <strong>no</strong>vērtēšana – IS projektu kritiskais faktors<br />
Programmatūras izstrādei nepieciešamā darba apjoma un termiņu <strong>par</strong>eizs <strong>no</strong>vērtējums
laikam ir uzskatāms <strong>par</strong> sekmīga projekta galve<strong>no</strong> priekš<strong>no</strong>sacījumu. Pat pieredzējuši<br />
izstrādātāji, paļaujoties tikai uz savu intuīciju, šajā ziņā mēdz kļūdīties pat <strong>par</strong> kārtu.<br />
Tāpēc nav brīnums, ka jau kopš programmatūras izstrādes pirmsākumiem,<br />
pamatojoties uz uzkrāto pieredzi, ir mēģināts izveidot precīzu kvantitatīvi<br />
algoritmisku modeli, kas būtu izmantojams programmatūras izstrādei nepieciešamā<br />
darba apjoma un termiņu prog<strong>no</strong>zēšanai. Pašreiz plaši tiek izmantots COCOMO<br />
modelis (ir vairāki tā paveidi), kura pamatā ir funkcijpunkti. Tā ir <strong>no</strong>sacīta<br />
mērvienība, kas atbilst izstrādājamās programmatūras funkcionalitātei un kura tiek<br />
<strong>no</strong>vērtēta, balstoties uz programmatūras funkcionāli skaitliskiem atribūtiem (ievades,<br />
izvades, vaicājumu, iekšējo datu failu, saskarņu skaits, to sarežģītības vērtējums).<br />
Tālāk tiek <strong>no</strong>vērtēts, ar cik programmēšanas valodas <strong>no</strong>sacītām koda rindiņām dotā<br />
funkcionalitāte ir realizējama (atkarīgs <strong>no</strong> programmēšanas vides produktivitātes).<br />
Tad, ņemot vērā vairākus izstrādes procesu raksturojošus atribūtus (izstrādātāju<br />
pieredze, koda atkārtojama izmantošana, laika un citi ierobežojumi, prasību stabilitāte<br />
u.tml.), tiek <strong>no</strong>vērtēts gan darba apjoms (cilvēkmēnešos), gan termiņi (mēnešos).<br />
Turklāt jāpiezīmē, ka mēneši un cilvēki nav savstarpēji aizvietojami (deviņi cilvēki<br />
vienā mēnesī nevar paveikt to, ko viens deviņos: jo vairāk cilvēku, jo lielāka darba<br />
daļa aiziet uz komunikāciju un koordinēšanu).<br />
Jāsaka, ka šādi iegūti vērtējumi ir tikai aptuveni, turklāt – jo precīzākas mūsu<br />
zināšanas <strong>par</strong> izstrādājamo sistēmu, jo precīzāka ir prog<strong>no</strong>ze. Parastā prakse ir tāda,<br />
ka COCOMO metodi izmanto, balstoties uz programmatūras prasību specifikācijā<br />
pieejamo informāciju. Pieredze rāda, ka šādi iegūtās prog<strong>no</strong>zes pietiekami precīzi<br />
sakrīt ar faktiskajiem skaitļiem.<br />
Nozīmīgs faktors prog<strong>no</strong>zes precizitātes palielināšanai ir pieredzes uzkrāšana un<br />
formulās izmantojamo koeficientu koriģēšana, balstoties uz prog<strong>no</strong>zēto un faktisko<br />
skaitļu salīdzināšanu.<br />
Projekta organizatoriskā struktūra<br />
Efektīva projekta vadība nav iespējama bez atbilstošas projekta organizatoriskās<br />
struktūras izveides. Tas <strong>no</strong>zīmē, ka jāizveido projekta vadības institūcijas, jā<strong>no</strong>zīmē<br />
konkrētas amatpersonas, jāizstrādā un jāapstiprina attiecīgi <strong>no</strong>likumi un<br />
amatinstrukcijas.<br />
Stratēģisku projekta jautājumu risināšanai būtu jāorganizē projekta valde (angliski šo<br />
institūciju mēdz saukt <strong>par</strong> steering comitee vai project board). Šie jautājumi ietver<br />
projekta stratēģisko uzdevumu formulēšanu un izpildes kontroli, projekta plānu<br />
apstiprināšanu, koriģēšanu un plānu izpildes kontroli, principiālu projekta lēmumu<br />
pieņemšanu, finansu un citu resursu <strong>no</strong>drošināšanu, finansiālu jautājumu un<br />
konfliktsituāciju risināšanu, kā arī citus stratēģiskus jautājumus. Valdes sastāvu<br />
<strong>par</strong>asti veido uzņēmuma vadības pārstāvji, lietotāju vadības pārstāvji, uzņēmuma IT<br />
daļas vadītājs, galve<strong>no</strong> projekta izpildē iesaistīto organizāciju augstākās<br />
amatpersonas, kā arī projekta vadītāji (gan <strong>no</strong> pasūtītāja, gan izpildītāju puses).<br />
Lai risinātu konkrētus ar projekta izpildi saistītus jautājumus, <strong>par</strong>asti tiek izveidota<br />
izmaiņu vadības padome (IVP) vai vienkārši projekta vadības padome, kuras<br />
kompetencē ir projekta darbu izpildes organizēšana, prasību, projektējumu un citu<br />
dokumentu apstiprināšana, izmaiņu pieprasījumu un problēmziņojumu izskatīšana,<br />
izpildītāju darba koordinēšana, kā arī citu darba jautājumu risināšana. IVP sastāvā ir<br />
iekļaujami projektu vadītāji (gan <strong>no</strong> pasūtītāja, gan izpildītāju puses), lietotāju<br />
pārstāvji, izstrādātāju pārstāvji, uzņēmuma IT daļas pārstāvji, kā arī citi speciālisti.<br />
IVP sēdēm jā<strong>no</strong>tiek regulāri (teiksim, reizi nedēļā) un jātiek attiecīgi protokolētām.<br />
Nepieciešamības gadījumā var izveidot arī IVP apakškomisijas, kurās tiek risināti ar
Pr Vadibas Str.BMP (72898 bytes)<br />
atsevišķu apakšsistēmu (kādu komponentu vai tematisko jomu) saistīti jautājumi (sk.<br />
2. attēlu.)<br />
Izmaiņu pārvaldība<br />
Vēl viens <strong>no</strong>zīmīgs aspekts visa projekta dzīves cikla garumā ir izmaiņu pārvaldība.<br />
Lai cik precīzi mēs censtos specificēt izstrādājamo sistēmu un definēt izstrādātājam<br />
darba uzdevumu, laikā gaitā <strong>par</strong>ādās jaunas prasības, izpētes rezultātā esošās ir<br />
jāmodificē, tāpēc ir jāmaina arī darba uzdevums izstrādātājam. Sistēmas darbināšanas<br />
laikā lietotāji var vēlēties kādas jaunas iespējas vai arī tiek konstatētas dažādas<br />
nepilnības sistēmas darbā. Šāda situācija ir <strong>no</strong>rmāla, un grūti iedomāties, ka kaut cik<br />
<strong>no</strong>pietnā projektā varētu būt citādi. Lai nerastos problēmas abu pušu starpā, ir ļoti<br />
svarīgi, lai eksistētu dokumentēts un savstarpēji saskaņots mehānisms un procedūra<br />
šādu jautājumu risināšanai. Parasti visas pasūtītāja vēlmes, kā arī konstatētās<br />
problēmas tiek fiksētas izmaiņu pieprasījumu un problēmziņojumu veidā ar speciālu<br />
veidlapu palīdzību. Visi ziņojumi tiek reģistrēti, izanalizēti un izskatīti izmaiņu<br />
vadības padomē un <strong>par</strong> katru <strong>no</strong> tiem tiek pieņemts attiecīgs lēmums (piemēram,<br />
precizēt, <strong>no</strong>raidīt, realizēt nākamajā versijā utt.). Šādu problēmziņojumu un izmaiņu<br />
pieprasījumu var būt pietiekami daudz, tāpēc bieži šis darbs tiek automatizēts ar<br />
speciālu programmu palīdzību.<br />
Kvalitātes <strong>no</strong>drošināšana<br />
Ja runa ir <strong>par</strong> <strong>no</strong>pietnu projektu realizāciju (īpaši to, kuri ir saistīti ar informācijas<br />
sistēmu izstrādi un ieviešanu), kvalitātes pārvaldība ir viena <strong>no</strong> būtiskākajām<br />
aktivitātēm visā projekta dzīves ciklā. Kvalitātes pārvaldības galvenais uzdevums ir<br />
<strong>no</strong>drošināt visu projekta <strong>no</strong>risē iesaistīto un gala rezultātā ieinteresēto pušu (esošo un<br />
potenciālo) prasību un vajadzību apmierināšanu. Kvalitātes jautājumu pārraudzīšanu<br />
konkrētā projektā <strong>par</strong>asti <strong>no</strong>drošina speciāli <strong>no</strong>zīmēts cilvēks – projekta kvalitātes<br />
pārvaldnieks.<br />
Pirmais faktors kvalitatīva rezultāta <strong>no</strong>drošināšanā ir sakārtots un kvalitatīvs pats<br />
darba process. Par standartiem, atbilstoši kuriem jāorganizē darbs, jau tika stāstīts.<br />
Iesaistot darbu veikšanā vai preču piegādē citas organizācijas, jābūt pārliecībai, ka arī<br />
šo organizāciju darba procesi ir sakārtoti. Mērķtiecīgi ir orientēties uz tiem<br />
pakalpojumu sniedzējiem un preču piegādātājiem, kuriem ir ISO9000 sertifikāts.<br />
Kā otrs faktors <strong>no</strong>teikti jāmin precīzs prasību un izmaiņu pieprasījumu pārvaldības<br />
darbs, kā arī konfigurācijas pārvaldības darbs. Praktiski tas <strong>no</strong>zīmē lietotāja prasību<br />
precīzu uzskaiti un trasējamību visā projekta dzīves cikla laikā, kā arī prasību
precizēšanu un izmaiņas saskaņā ar izmaiņu vadības kārtību, visu izstrādājamo<br />
vienumu precīzu uzskaiti, versiju kontroli utt.<br />
Trešais ļoti <strong>no</strong>zīmīgs kvalitātes <strong>no</strong>drošināšanas faktors IS izstrādes projektos ir<br />
programmatūras testēšana. Tiek praktizēta dažādu veidu testēšana – autortestēšana,<br />
sistēmanalītiskā testēšana, vienību testēšana, integrācijas testēšana, kvalifikācijas<br />
testēšana u.c.<br />
Ceturtais faktors kvalitātes <strong>no</strong>drošināšanā ir regulārie gan iekšējie, gan ārējie auditi,<br />
projekta apskates un citas vadīklas (controls) (atbilstoši ISO9000 termi<strong>no</strong>loģijai), kas<br />
<strong>no</strong>drošina objektīvu informāciju <strong>par</strong> to, kādā mērā reālā situācija atbilst projekta<br />
mērķiem, lietotāja prasībām, standartiem un citiem reglamentējošiem dokumentiem.<br />
Īsas pamācības IS projektu veidošanā<br />
Apzi<strong>no</strong>ties, ka šī tēma nav aptverama viena raksta ietvaros, <strong>no</strong>beigumā dažas atziņas,<br />
kas varētu <strong>no</strong>derēt praktiskajā darbībā.<br />
1. Nebūvējiet debesskrāpi, paļaujoties tikai uz amatnieku zelta rokām, jo <strong>no</strong>pietnu<br />
informācijas sistēmu izstrāde prasa industriālu pieeju un standartu izmantošanu.<br />
2. Pirms uzsākat darbu pie IS projekta, tieciet skaidrībā <strong>par</strong> mērķiem, ko gribat<br />
sasniegt, un cik jūs esat gatavi investēt to sasniegšanā.<br />
3. Brīnumu pasaulē nav, tāpēc nevajag cerēt, ka rezultāti būs uzreiz, neprasot piepūli.<br />
4. Sistēmas tiek izstrādātas lietotājam, tāpēc viņam arī jābūt sistēmas saimniekam.<br />
5. Visa pamatā – prasības (cik labi būs definētas prasības, tik labs būs arī rezultāts).<br />
6. Koncentrējieties uz projekta vadību un procesa organizēšanu, jo tehnisko<br />
kompetenci izdevīgāk ir iepirkt <strong>no</strong> ārpuses.<br />
7. Tas, kas nav uzrakstīts, neeksistē, tāpēc izstrādes process un rezultāti ir<br />
jādokumentē.<br />
8. Izmaiņas sistēmā ir <strong>no</strong>rmāli, galvenais ir tās kontrolēt.<br />
9. Nelaidiet izstrādātājus pie sistēmas darbināšanas.<br />
10. Divas svešas acis redz labāk nekā simt savējo (apskates un auditi nav tukša laika<br />
kavēšana).<br />
11. Ja nekas cits nelīdz, izmantojiet savu pieredzi un veselo saprātu, jo nekas <strong>no</strong> jau<br />
teiktā nav dogma.<br />
8.3. Programmatūras izstrādes projekta vadītāja piezīmes<br />
Programmatūras izstrādes projekta vadītāja piezīmes<br />
E-pasaule, Vita Karnīte.<br />
Lai cik plaši būtu pieejami pētījumi <strong>par</strong> projektu vadību, ikviens programmatūras<br />
izstrādes projekta vadītājs savulaik ir pionieris un pirmatklājējs vadīšanas praksē, līdz<br />
ar pieredzi krājot arī secinājumus un ieteikumus. Rakstā apkopotas vairāku<br />
programmatūras izstrādes projektu vadītāju populārākās atziņas.<br />
Kas ir projekts<br />
Projekts = termiņš + sasniedzamais rezultāts + budžets.<br />
Projekts ir uzdevums ar <strong>no</strong>teiktiem <strong>par</strong>ametriem – sākuma un beigu datumi,<br />
sasniedzamais rezultāts, budžets.<br />
Projekta vadītājs = zināšanas + entuziasms + pieredze.
Projekta vadītājs ir cilvēks, kam jāsasniedz konkrēts rezultāts <strong>no</strong>teiktā laikā,<br />
izmantojot resursus, ko var atļauties saskaņā ar atvēlēto budžetu. Vadītājs var<br />
izmantot savas zināšanas un spējas, piesaistīt citu cilvēku zināšanas un spējas, kā arī<br />
izvēlēties palīglīdzekļus. Ja projekts tiek realizēts veiksmīgi, tā vadītājs var pamatoti<br />
lepoties ar pakāpienu savā karjerā, turklāt sevišķi augstu tiek vērtēti tie vadītāji, kuri<br />
izveduši projektu <strong>no</strong> krīzes situācijas. Projektam ciešot neveiksmi, atbildība pilnībā<br />
jāuzņemas vadītājam.<br />
Ar projektu realizāciju savas dzīves laikā sastopas ikviens cilvēks, un patstāvīgi<br />
cilvēki ar laiku pierod arī sadzīvē domāt projektu vadības kategorijās – izvirza<br />
konkrētus mērķus, <strong>no</strong>saka laiku, rēķinās ar konkrētiem līdzekļiem. Filozofiski uz to<br />
skatoties, visa cilvēka dzīve ir kā liels projekts ar daudziem apakšprojektiem, kas<br />
laika gaitā kļūst arvien sarežģītāki, piemēram:<br />
• skolā – kontroldarbs matemātikā jāuzraksta 45 minūtē, un atbildei jāsakrīt ar<br />
skolotāja rīcībā esošo;<br />
• augstskolā – programmēšanas kursam <strong>par</strong>edzēti trīs mēneši, atzīmei jābūt >8,<br />
budžetu veido stipendija un studiju kredīts;<br />
• darbā – programmatūras izstrādes termiņš ir divi gadi, tiek izstrādāta un ieviesta<br />
<strong>no</strong>rēķinu sistēma, budžets – Ls 600 000.<br />
Vadība<br />
Prakse liecina, ka 80% <strong>no</strong> veicamā uzdevuma prasa 50% tam atvēlētā laika. Ja 80%<br />
<strong>no</strong> uzdevuma ir izdarīti 80% <strong>no</strong> atvēlētā laika, ļoti iespējams, ka termiņš tiks<br />
<strong>no</strong>kavēts.<br />
Plašāk pazīstamas un praksē arvien pārbaudītas sakarības, ar kurām<br />
vadītājs var rēķināties, ir tā sauktās sakarības 80:20, piemēram:<br />
• 80% labumu var <strong>no</strong>drošināt ar 20% <strong>no</strong> prasību realizācijas,<br />
• 20% profesionālāko programmētāju rada 80% koda,<br />
• 20% vājāko programmētāju rada 80% <strong>no</strong> atklātajām kļūdām.<br />
Ja vadītājs nevar atbildēt uz kādu projekta īste<strong>no</strong>šanā radušos<br />
jautājumu, tad viņam jāzina, kā šo atbildi rast. Vadītājam jāspēj<br />
pieņemt jebkuru ar projektu saistītu lēmumu vai nu pašam, vai<br />
deleģējot lēmuma pieņemšanu speciālistam (piemēram, vai datu bāzei<br />
piekļūt ar ODBC vai OLE DB). Jebkurā gadījumā vadītājs ir atbildīgs<br />
<strong>par</strong> lēmuma sekām.<br />
Vadītājam, kas pats nav programmējis, ir ievērojami grūtāk vadīt programmatūras<br />
izstrādes projektu nekā cilvēkam, kas karjeru ir sācis kā programmētājs. Labi, ka<br />
projektā ir galvenais speciālists, kas pārzina teh<strong>no</strong>loģisko pusi un spēj pieņemt<br />
lēmumus, taču šādos gadījumos pastāv projekta dubultās vadības risks un vadītājam<br />
jābūt gatavam strādāt arī tādos apstākļos.<br />
Ja projekta gaitā rodas problēma, vadītājam jādomā <strong>par</strong> tās atrisināšanu – viņam<br />
jāzina, kā mainīt sistēmu, lai šādas problēmas vairs nerastos, un jāspēj mainīt sistēmu.<br />
Vadītājam ir jāzina un arī jājūt vietas, kuras varēs precizēt programmatūras izstrādes<br />
gaitā. Nav vērts censties izstrādāt 100% atbilstošu projektējumu, jo praktiski nav tādu<br />
projektu, kurus praksē izdotos pilnībā izstrādāt pēc ūdenskrituma modeļa.<br />
Jo vairāk problēmu iespējams atrisināt sarunājoties, jo profesionālāks ir vadītājs. Un<br />
otrādi – jo profesionālāks ir vadītājs, jo vairāk jautājumu var <strong>no</strong>kārtot sarunu ceļā.<br />
Pasūtītājs<br />
Ja vien tas ir iespējams, piedāvājums un cenu aprēķins jāiesniedz pasūtītājam<br />
personīgi, izskaidrojot un pamatojot savu piedāvājumu.
Jo mazāka ir sadarbības pieredze, jo vairāk jautājumu jārisina klātienes sarunās. Kad<br />
izveidots pamats ilgstošai sadarbībai, var atļauties daļu problēmu risināt pa e-pastu vai<br />
telefonu.<br />
Paralēli formālajiem pasākumiem (piemēram, izmaiņu vadības padomes), svarīgi<br />
“uztaustīt” pasūtītāja procesus pārzi<strong>no</strong>šu cilvēku vai cilvēkus, kam var uzdot<br />
jautājumus <strong>par</strong> dažādām situācijām. Ideāli, ja šis cilvēks ir arī oficiālā kontaktpersona<br />
<strong>par</strong> attiecīgajiem jautājumiem, jo var teikt, ka projekta panākumi ir proporcionāli tam,<br />
cik veiksmīgi izveidojas sadarbība ar šo cilvēku vai cilvēkiem.<br />
Pēc iespējas ātrāk vajag vizuāli <strong>par</strong>ādīt pasūtītājam iespējamo rezultātu, sākotnēji kaut<br />
vai sarunas laikā to uzskicējot uz papīra. Mūsdienu rīki ļauj ātri un viegli uzzīmēt<br />
ekrānformas, pirms uzsāk programmēt.<br />
Deleģēšana<br />
Jāprot prog<strong>no</strong>zēt darbinieka spēju veikt uzdevumu. Ja darbinieka spējas nav zināmas,<br />
tad, deleģējot tam uzdevumu, sākotnēji jāpieņem, ka darbinieks nepārzina konkrēto<br />
jomu, un uzdevums sīki un smalki jāizstāsta. Jāpārliecinās arī <strong>par</strong> deleģētā uzdevuma<br />
izpildi.<br />
Efektīvākais veids, kā pārliecināties, vai darbinieks sapratis uzdevumu, ir palūgt<br />
viņam atstāstīt, kā viņš to ir sapratis.<br />
Secinājumi<br />
Projektu vadība ir vairāku zinātņu apvie<strong>no</strong>jums, un, izstrādājot programmatūras<br />
projektus, tās ir – datorzinātne, vadība, psiholoģija, eko<strong>no</strong>mika. Mūsdienās ģeniāli<br />
atklājumi visvairāk tiek izdarīti kombinētajās zinātnēs, piemēram, klasiskajā<br />
matemātikā jaunu un ģeniālu atklājumu ir maz, toties, apvie<strong>no</strong>jot matemātiku ar fiziku<br />
un ķīmiju, tika radīti pirmie kvantu datori.<br />
Programmatūras izstrādes projektu vadība ir formalizēta pieeja apvie<strong>no</strong>jumā ar<br />
mākslu, un speciālisti visā pasaulē strādā, lai šajā jomā procentuāli palielinātu<br />
formalizēto pieeju un samazinātu māksliniecisko. Pašlaik šī procentuālā attiecība<br />
programmatūras izstrādes projektu vadības praksē, manuprāt, ir 50 pret 50. Kamēr tā<br />
nav būtiski mainījusies, tikmēr labs programmatūras izstrādes projektu vadītājs<br />
joprojām būs datorspeciālists, psihologs, eko<strong>no</strong>mists un nedaudz arī burvju<br />
mākslinieks.<br />
8.4. Efektīvas projekta komandas kontrolsaraksts<br />
Efektīvas projekta komandas kontrolsaraksts<br />
(<strong>no</strong> http://www.rspa.com/checklists/teams.html)<br />
The intent of this checklist is to assess the degree to which a software project team<br />
will work together effectively (SEPA 5/e, Chapter 3). It should be <strong>no</strong>ted that many<br />
factors affect the qualty of a team. However, the following issues should be addressed<br />
by the project manager/team leader as the team is formed. For this checklist, the more<br />
questions that elicit a negative response, the higher the risk that the team will fail.<br />
Has the team worked together before If so, were the results of past working<br />
experience favorable<br />
Do members of the team have the correct mix of k<strong>no</strong>wledge, training, and experience<br />
for the job to be done<br />
Do members of the team come from the same technical "culture" the same<br />
organization<br />
Have the roles and responsibilities of each team member been clearly defined
Have communication mechanisms for the team and with the outside world been<br />
clearly defined<br />
Do the team members have respect for the project manager the team technical<br />
leader<br />
Is the working environment (e.g., offices, meeting rooms, tools) conducive tgood<br />
teamwork<br />
Have team members been shielded from administrative record keeping<br />
Have team members been provided with appropriate support staff<br />
9.1. <strong>Konspekts</strong><br />
Tehniskā realizācija - centralizēts vai decentralizēts risinājums<br />
1. Nofiksētas:<br />
- funkcionālās prasības<br />
- nefunkcionālās prasības<br />
2. Novērtēta eko<strong>no</strong>miskā efektivitāte (<strong>par</strong>asti eko<strong>no</strong>miskā efekta (tiešā) nav). Mēdz<br />
spiest konkurence.<br />
3. Pieņemts lēmums <strong>par</strong> izstrādi.<br />
4. Jāsāk izstrāde.<br />
Homogēnas un heterogēnas sistēmas<br />
Homogēna sistēma - ja ir viena un tā pati datu bāžu pārvaldības sistēma (DBPS) (sk.<br />
1.attēls pa labi)<br />
Heterogēna sistēma - ja dažādas DBPS (sk. 1.attēls pa kreisi)<br />
1. attēls. Homogēnās un heterogēnas sistēmas piemēri.<br />
Heterogēnu sistēmu galvenā problēma - savstarpēja integrācija.<br />
Centralizētas un decentralizētas sistēmas<br />
Centralizētas sistēmas - pamatā ir tikai viena datu bāze (sk. 2.attēls pa kreisi).<br />
Decentralizēta sistēma - sastāv <strong>no</strong> vairākām datu bāzēm (sk. 2.attēls pa labi).
2.attēls. Centralizētas un decentralizētas sistēmas<br />
Piemēri:<br />
CSDD - centralizēta DB (kaut arī izvietota divās vietās - pašvaldībās reģistrē dzīves<br />
vietas, bet tās netiek pie centrālās DB).<br />
LUIS - centralizēta sistēma.<br />
Audzēkņu reģistrs (skolās) - decentralizēta sistēma (skolās - Lotus Notes, centrā -<br />
ORACLE).<br />
Ģimenes ārsti - decentralizēta sistēma (MS SQL centrā, 7 slimokases, ārstniecības<br />
iestādes).<br />
Ja nav ātra interneta pieslēguma, tad gandrīz <strong>no</strong>teikti jātaisa decentralizēta sistēma.<br />
Arī gadījumos, kad dažādos līmeņos funkcijas būtiski atšķiras, decentralizēts<br />
risinājums ir piemērotāks.<br />
Centralizētas sistēmas<br />
Decentralizētas sistēmas<br />
+ –<br />
vienkārša lietotājam,<br />
konfigurācijas vadība,<br />
konfidencialitāte,<br />
integritāte,<br />
izstrādes izmaksas<br />
pieejamība (drošības<br />
komponente)<br />
veiktspēja,<br />
izmaksas DB,<br />
pieejamība<br />
konfidencialitāte<br />
integritāte<br />
izstrādes izmaksas<br />
Ieskats vēsturē
3.attēls. Lieldatoru ēra (1980).<br />
Pēc lieldatoru ēras atnāca personālie datori - un tos ātri akceptēja, jo katrs dabūja savu<br />
datoru. Bet ātri vien sākās integrācijas problēmas, jo, piemēram, 3 grāmatvežiem bija<br />
jāapmainās ar datiem. Pēc tam izgudroja LAN tīklus, kas radīja sinhronizācijas<br />
problēmu.<br />
4.attēls. LAN struktūra.<br />
Fox programmas, lai taisītu kopsavilkumus, visi dati bija jādabū vie<strong>no</strong>ti, "jāpumpē"<br />
caur tīklu.<br />
Pēc tam <strong>par</strong>ādījās klient-servera arhitektūra - pamatrēķini <strong>no</strong>tiek uz servera, bet pa<br />
tīklu ceļo tikai pieprasījumi un rezultāti.<br />
Tātad esam loģiski turpat, pie lieldatoriska risinājuma.<br />
Rodas konflikti starp operatīviem pieprasījumiem un pieprasījumiem, kuru izpildei<br />
nepieciešami lieli resursi (piemēram, pilna pārbūve)<br />
10.1. <strong>Konspekts</strong><br />
Informācijas sistēmu drošība. Informācijas kodēšana<br />
Drošība → pieejamība (avalability) + integritāte (integrity) + konfidencialitāte<br />
(confidentiality)<br />
(saskaņā ar LVS, ISO standartiem un MK <strong>no</strong>teikumiem)<br />
Pieejamība - sistēmu var lietot tad, kad tas nepieciešams (tikai pilnvaroti lietotāji).<br />
Integritāte - iekšējā nepretrunība, informācijas pilnība un precizitāte.<br />
Konfidencialitāte - netiek klāt tie, kam tas nav <strong>par</strong>edzēts.<br />
Vai ir iespējama absolūti droša sistēma<br />
Izstrādājot sistēmu, jāizvērtē informācija, cik lielā mērā tā ir jāaizsargā.
- publiska informācija<br />
- ierobežotas pieejamības informācija (ja draud ar morāliem vai eko<strong>no</strong>miskiem<br />
zaudējumiem)<br />
- slepena informācija (saskaņā ar likumu)<br />
- sevišķi slepena informācija (datoru nedrīkst pievie<strong>no</strong>t tīklam)<br />
Pieejamība atkarīga <strong>no</strong><br />
- a<strong>par</strong>atūras un tīkla kvalitātes<br />
- programmatūras kvalitātes<br />
- rezervēšana (arī - kopēšana)<br />
- serveru klasteri (arī - spoguļošana)<br />
- dublēšana (a<strong>par</strong>ātiska)<br />
- karstā rezerve<br />
- aukstā rezerve<br />
- u.c.<br />
Integritāte atkarīga <strong>no</strong><br />
- programmatūras kvalitātes<br />
Sliktākais piemērs ar FOX, kas glabā indeksus operatīvajā atmiņā; izslēdzot un<br />
ieslēdzot datoru, viss <strong>no</strong>jūk un ir vai nu jāpārindeksē, vai arī jāatjau<strong>no</strong> <strong>no</strong> rezerves<br />
kopijām.<br />
Labs piemērs - ar WORD, kas glabā faila atvērtības pazīmi uz diska.<br />
Konfidencialitātes pārvarēšana - dabūt pieteikuma (login) vārdu, PIN kodu.<br />
Divdaļīgas <strong>par</strong>oles - maināmā publiskā daļa un nemaināma slepenā.<br />
Laba prakse - visas darbības uzglabāt auditācijas pierakstos (audit trial) nemaināmā<br />
protokola datnē - žurnālā (log)<br />
Visa informācija var tikt <strong>no</strong>klausīta pārraidot - informācija jāšifrē.<br />
Šifrēšanas atslēgas garums nepieciešams arvien garāks. Agrāk šifrētos datus pēc laika<br />
varēja viegli atšifrēt, mainīt un aizšifrēt atpakaļ.<br />
Laba risinājuma nav.<br />
Informācijas kodēšana<br />
Ieviesa personkodus.<br />
Kā izvēlas kodus<br />
a) visus objektus sanumurē - kods ļoti racionāls, bet to grūti lietot;<br />
b) pozicionālie kodi - objektus sadala sanumurētās grupās, piešķir numurus grupas<br />
iekšienē (piemēram, studentu liecības DatZ 01 0017).<br />
b' ) domēnspecifiskie kodi, kas vēsturiski izveidojušies <strong>no</strong>zarē<br />
c) lietotāja saskarnei jābūt "draudzīgai"<br />
- krāsas, izvietojums, u.tml.<br />
- uzskatāmi kodi, kas ir mnemoniski<br />
Izvēlnē piedāvā mnemoniskos kodus, bet sistēmas iekšienē lieto kodifikatora esošo,<br />
kas <strong>par</strong>asti ir garš un cilvēkam neuztverams. ER realizācijas modelī <strong>par</strong>ādās<br />
kodifikatoru kodi.
1<strong>1.1.</strong> <strong>Konspekts</strong><br />
Programmatūras prasību pamati<br />
(The Essential Software Requirements)<br />
<strong>Izmantoti</strong>e materiāli:<br />
Karl E. Wieger. “Software Requirements” – Microsoft Press, 1999, lpp. 350<br />
Lekcijas plāns<br />
Programmatūras prasību definīcijas<br />
Prasību līmeņi<br />
Darījumprasības (business requirements)<br />
Lietotāja prasības<br />
Funkcionālās prasības<br />
Nefunkcionālās prasības<br />
Kvalitātes atribūti<br />
ierobežojumi<br />
Biežākie neadekvāta prasību procesa rīki<br />
Piemērs<br />
MARIJA: „Sveiks, Fil! Šeit Marija <strong>no</strong> Personāla <strong>no</strong>daļas. Mums ir radusies problēma<br />
ar darbinieku sistēmu, kuru tu mums esi programmējis. Viena <strong>no</strong> darbiniecēm ir tikko<br />
mainījusi uzvārdu uz Startailts, savukārt sistēma neatļauj šo izmaiņu. Vai tu mums<br />
palīdzēsi”<br />
FILS: „Viņa ir apprecējusies ar Startailtu”<br />
MARIJA: „Nē, viņa nav apprecējusies, viņa vienkārši ir mainījusi savu uzvārdu,”<br />
atbild Marija. „Tā jau arī ir tā problēma. Izskatās, ka mēs varam <strong>no</strong>mainīt uzvārdu<br />
tikai tad, ja mainās cilvēka ģimenes stāvoklis”.<br />
FILS: „Nu, jā. Es nekad neesmu iedomājies, ka kāds varētu mainīt tāpat vien savu<br />
vārdu vai uzvārdu. Es neatceros, ka jūs man būtu <strong>par</strong> to kaut ko teikusi, kad mēs<br />
runājām <strong>par</strong> sistēmas funkcijām. Tieši tāpēc jūs arī nevarat tagad izsaukt logu<br />
„Uzvārda, vārda maiņa” bez ģimenes stāvokļa maiņas,” saka Fils.<br />
MARIJA: „Es domāju, ka tu zini, ka cilvēkiem ar likumu ir atļauts mainīt vārdu un<br />
uzvārdu, kad viņi to vien vēlas. Lai nu kā, mums ar šo problēmu ir jātiek galā līdz<br />
nākamai nedēļai, vai arī grāmatvedei nebūs iespējas aprēķināt viņas algu. Vai tu vari<br />
izlabot šo kļūdu”<br />
FILS: „Tā nav kļūda! Es nekad neesmu biju informēts <strong>par</strong> to, ka šāda iespēja ir<br />
vajadzīga. Es esmu aizņemts jaunas veiktspējas aprēķina sistēmas izstrādē. Cita<br />
starpā, man ir uzkrājušās arī citas izmaiņu prasības attiecībā uz darbinieku sistēmu...<br />
Jā, lūk, te ir vēl viena. Es tās abas varētu atrisināt līdz mēneša beigām, bet <strong>no</strong>teikti ne<br />
šonedēļ. Ļoti atvai<strong>no</strong>jos. Nākamreiz, lūdzu, brīdiniet mani <strong>par</strong> šādām lietām agrāk un,<br />
lūdzu, dariet to rakstveidā”.<br />
MARIJA: „Ko man teikt grāmatvedei Viņa kļūs patiesi dusmīga, ja nebūs iespējas<br />
aprēķināt šīs darbinieces algu.”<br />
FILS: „Marija, tā taču nav mana kļūda!” – protestē Fils. „Ja jūs man būtu <strong>no</strong> paša<br />
sākuma pateikusi, ka darbiniekiem jāvar mainīt uzvārdu un vārdu jebkurā laikā, tas<br />
pat nebūtu <strong>no</strong>ticis. Jūs nevarat mani apvai<strong>no</strong>t <strong>par</strong> nespēju lasīt jūsu domas”..<br />
MARIJA, dusmīgi un neapmierināti – „Jā, nu labi, šī ir <strong>no</strong> tām lietām, kuras liek man<br />
ienīst datorsistēmas. Piezvani man, tiklīdz problēma būs <strong>no</strong>vērsta”.
Ja kaut reizi esat pabijuši šīs sarunas klienta pusē, jūs zināsiet cik tas ir nepatīkami -<br />
lietot programmatūru, kas neļauj jums pildīt pamatfunkcijas. Jūs <strong>no</strong>teikti nebūtu arī<br />
apmierināti ar izstrādātāju, kurš atliek jūsu izmaiņu izpildi uz vēlāku laiku. No<br />
izstrādātāja puses, jūs zināt, cik nepatīkami ir pēkšņi pēc sistēmas ieviešanas atklāt<br />
trūkstošu funkcionalitāti, kuru lietotājs ir gaidījis. Tas ir arī nepatīkami, ja jūs traucē<br />
tādu izmaiņu pieprasījuma dēļ, kas izmaina sistēmu, kura strādā precīzi tā, kā to ir<br />
aprakstījis lietotājs.<br />
Daudzas programmatūras izstrādes problēmas ir izskaidrojamas ar trūkumiem prasību<br />
vākšanas, dokumentēšanas procesos un pieredzē. Runājot <strong>par</strong> Filu un Mariju, viņu<br />
problēma ir neoficiālas informācijas vākšana, nefiksēta vai šaubīga funkcionalitāte,<br />
neatklāti vai nepateikti pieņēmumi, neadekvāta prasību dokumentēšana un nejaušs<br />
izmaiņu procesa raksturs.<br />
Programmatūras prasību definēšana<br />
Viena <strong>no</strong> programminženierijas problēmām ir vienkāršu definīciju trūkums tiem<br />
terminiem, kurus mēs izmantojam mūsu darba aspektu aprakstam. Pasūtītāja<br />
"prasību" definīcija izstrādātājam izklausās pēc augstākā līmeņa koncepcijas.<br />
Savukārt izstrādātāja priekšstats <strong>par</strong> prasībām lietotājam var izklausīties pēc detalizēta<br />
projektējuma. Šīs ir dažādas perspektīvas un mainīgi precizitātes un detaļu līmeņi.<br />
IEEE Standard Glossary of Software Engineering Termi<strong>no</strong>logy (1997) definē prasības<br />
kā:<br />
(1) Nosacījums vai spēja, kura nepieciešama lietotājam problēmas risināšanai vai<br />
mērķu sasniegšanai.<br />
(2) Nosacījums vai spēja, kura var piemist sistēmai vai sistēmas komponentei, lai<br />
izpildītu līgumu, standartu, specifikāciju vai citu formāli obligātu dokumentu.<br />
(3) Dokumentēta (1) vai (2) formulēto <strong>no</strong>sacījumu vai spēju reprezentācija.<br />
Dažas „prasību” interpretācijas<br />
IEEE definīcija pārklāj gan lietotāja skatu uz prasībām (ārējo sistēmas uzvedību), gan<br />
izstrādātāja priekšstatu <strong>par</strong> to.<br />
Atslēgas koncepcija ietver sevī nepieciešamību dokumentēt prasības. Autors<br />
piedalījās vienā projektā, kurā iesaistītie programmētāji mainījās. Pasūtītājs bija<br />
<strong>no</strong>vests līdz asarām katru reizi, kad jaunais prasību analītiķis nāca un sludināja<br />
„Mums ir jāaprunājas <strong>par</strong> prasībām”. Pasūtītāja reakcija uz to bija „Es jau esmu jūsu<br />
priekštečiem visu izstāstījis. Uztaisiet man sistēmu !” Bet realitātē prasības netika<br />
dokumentētas, līdz ar to katrs analītiķis visu sāka <strong>no</strong> pamatiem. Sludināt, ka jums ir<br />
uzkrātas „prasības”, ir pašapmāns, ja viss, kas jums ir – ir daži e-pasti un balss pasta<br />
ziņojumi, "post-it" lapiņas, sapulces protokoli un miglainas priekšnama sarunu<br />
atmiņas.<br />
Cita definīcija saka, ka prasības ir „lietotāja vajadzību konstatējums, kurš izraisa<br />
programmas vai sistēmas izstrādi” (Jones 1994). Prasību specificēšanas autoritāte<br />
Alans Daviss (1993) paplašina šo koncepciju līdz „lietotāju vajadzības vai<br />
nepieciešamas sistēmas pazīmes, funkcijas vai atribūti, kuras var just <strong>no</strong> ārpus
sistēmas pozīcijas”. Šīs definīcijas uzsver, ko produkts ietvers, nevis kā produkts tiks<br />
uzprojektēts un konstruēts. Nākamā definīcija iet dziļāk <strong>no</strong> lietotāju vajadzību spektra<br />
līdz sistēmas raksturīpašībām (Sommerville un Sawyer 1997):<br />
Prasības ir... specifikācija, kurā ir teikts kas ir jāievieš. Tie ir apraksti kā sistēmai ir<br />
jāuzvedas, kādas ir sistēmas īpašības un atribūti. Tās var kalpot arī kā ierobežojums<br />
sistēmas izstrādes procesā.<br />
Šīs atšķirīgās definīcijas <strong>no</strong>rāda uz termina „prasības” neskaidrību un nepārprotamas<br />
izpratnes trūkumu. Īstas prasības patiesībā atrodas cilvēku galvās. Jebkura prasību<br />
dokumentēta forma (kā, piemēram, prasību specifikācija) ir tikai modelis vai<br />
reprezentācija (Lawrence 1998). Mums nepieciešams pārliecināties, ka visām projektā<br />
ieinteresētām pusēm ir līdzīga terminu izpratne, aprakstot prasības.<br />
Prasību līmeņi<br />
Formulēsim definīcijas, kas apraksta dažus ar prasību inženieriju saistītus terminus.<br />
Programmatūras prasības ietver trīs skaidrus līmeņus – darījumprasības, lietotāju<br />
prasības un funkcionālās prasības – kā arī dažādas nefunkcionālas prasības.<br />
Darījumprasības ir augstāka līmeņa organizācijas vai pasūtītāja mērķu reprezentācija,<br />
kuru realizāciju <strong>par</strong>edz sistēma. Šīs prasības tiek uzkrātas speciālā projekta vīzijas vai<br />
aptvēruma (scope) dokumentā. Lietotāju prasības apraksta lietotājiem nepieciešamus<br />
uzdevumus, kuri ir jārealizē sistēmā. Tās tiek ietvertas lietošanas piemēru vai<br />
scenāriju aprakstos. Funkcionālas prasības definē programmatūras funkcionalitāti,<br />
kura izstrādātājiem ir jārealizē, lai lietotāji varētu pildīt savus uzdevumus, turklāt<br />
apmieri<strong>no</strong>t darījumprasības. Iezīme (feature) ir loģiski saistīto funkcionālo prasību<br />
kopa, kura <strong>no</strong>drošina lietotājam iespēju un apmierina darījumprasības. 1. attēls <strong>par</strong>āda<br />
dažas <strong>no</strong> šīm komponentēm.<br />
1.attēls. Attiecības starp dažādām programmatūras prasību komponentēm
Funkcionālās prasības tiek dokumentētas programmatūras prasību specifikācijā – PPS<br />
(Software Requirements Specification – SRS), kas pēc iespējas precīzāk un pilnīgāk<br />
apraksta sagaidāmo ārējo sistēmas uzvedību. PPS tiek izmantota izstrādē, testēšanā,<br />
kvalitātes <strong>no</strong>drošināšanā, projekta pārvaldībā un saistītajās projekta funkcijās.<br />
Sarežģītam programmproduktam programmatūras funkcionālām prasībām jābūt<br />
sistēmas prasību apakškopai, ja tādas ir. Papildus funkcionālām prasībām, kas<br />
apraksta sistēmas uzvedību un tās veicamās operācijas, PPS satur arī nefunkcionālās<br />
prasības. Tām jāsatur standarti, <strong>no</strong>teikumi un vie<strong>no</strong>šanās, kurām produktam ir<br />
jāatbilst, kā arī ārējo saskarņu aprakstus, veiktspējas prasības, projektējuma un<br />
ieviešanas <strong>no</strong>teikumus un kvalitātes atribūtus. Ierobežojumi tiek doti izstrādātājiem<br />
tad, kad sistēmas konstrukcijā iespējami varianti. Kvalitātes atribūti paplašina<br />
produkta funkcionalitātes aprakstu, papildi<strong>no</strong>t to ar produkta raksturiezīmēm, kuras ir<br />
svarīgas lietotājiem vai izstrādātājiem.<br />
Dažādu prasību piemērs. Izstrādājamā sistēma – teksta redaktors.Darījumprasības<br />
varētu skanēt šādi - „Lietotājiem jābūt iespējai efektīvi izlabot dokumenta<br />
<strong>par</strong>eizrakstības kļūdas”. Gramatisko kļūdu labotājs varētu būt iezīme (feature), kura<br />
tiek iestrādāta programmā un kura apmierina darījumprasības. Sekojot lietotāju<br />
prasībām, prasības var tikt papildinātas ar šādu apgalvojumu (lietošanas piemēru):<br />
„Atrast dokumentā <strong>par</strong>eizrakstības kļūdas un izlemt, vai jāveic katras pārrakstīšanās<br />
aizvietošana ar vienu <strong>no</strong> piedāvātiem <strong>par</strong>eiziem variantiem”. Gramatisko kļūdu<br />
labotājam var būt daudz individuālo funkcionālo prasību, kuras <strong>no</strong>saka operācijas, kā,<br />
piemēram, ne<strong>par</strong>eizo vārdu meklēšana un izcelšana, piedāvāto <strong>par</strong>eizo variantu<br />
attēlošana un vispārējas aizvietošanas veikšana.<br />
Vadībai vai tirgvedības speciālistiem ir jādefinē programmatūras darījumprasības,<br />
kuras palīdzēs viņu organizācijai strādāt efektīvāk (informācijas sistēmām) vai<br />
veiksmīgi iekarot tirgu (komerciāliem programmatūras produktiem). Visām lietotāju<br />
prasībām ir jābūt saskaņotām ar darījumprasībām. Lietotāju prasības ļauj prasību<br />
analītiķim izsecināt lietotāju uzdevumu izpildei nepieciešamo funkcionalitāti.<br />
Izstrādātāji lieto funkcionālās prasības risinājumu projektēšanā un izstrādē, līdz ar to<br />
ieviešot nepieciešamo funkcionalitāti. Ievērojiet, ka prasības atbilstoši šīm definīcijām<br />
nesatur projektējuma un implementēšanas detaļas, projekta plā<strong>no</strong>šanas vai testēšanas<br />
informāciju. Šiem aprakstiem jābūt atdalītiem <strong>no</strong> prasībām, lai prasību aktivitātes<br />
varētu koncentrēties uz izstrādājamās sistēmas izzināšanu. Projektos var gadīties arī<br />
citu veidu prasības, kā, piemēram, izstrādes vides prasības vai prasības pret produkta<br />
versiju attīstību.<br />
Kad sliktas prasības gadās ar labiem cilvēkiem<br />
Projekta komandas, kuras nevērīgi izturas pret prasību procesiem, apdraud pašas sevi.<br />
Nepilnības prasību inženierijā velk aiz sevis virkni risku, kuri apdraud projekta<br />
veiksmi, kur „veiksme” var būt definēta kā tāda produkta piegāde, kurš apmierina<br />
lietotāju ieceres <strong>par</strong> tā funkcionalitāti un kvalitāti, pie tam savlaicīgi un <strong>par</strong> <strong>no</strong>runāto<br />
cenu. Daži <strong>no</strong> šiem riskiem ir aprakstīti zemāk.<br />
No neatbilstoša prasību procesa izrietošie riski.<br />
No nepietiekamas lietotāju iesaistīšanas izriet nepieņemams produkts.
"Peldošas" (bieži mainītas) lietotāju prasības izsauc laika pārtēriņu un produkta<br />
kvalitātes pazemināšanu.<br />
Neskaidras prasības <strong>no</strong>ved līdz neefektīvi izmantotam laikam un pārstrādei.<br />
Pārāk liela slīpēšana un izskaistināšana <strong>no</strong> izstrādātāju un lietotāju puses pievie<strong>no</strong><br />
produktam nevajadzīgas iezīmes.<br />
Minimālas prasības <strong>no</strong>ved līdz svarīgu prasību trūkumam.<br />
Noteiktu lietotāju grupu prasību izlaišana rada pasūtītāju neapmierinātību.<br />
Nepilnīgi definētas prasības padara neiespējamu projekta precīzu plā<strong>no</strong>šanu un<br />
izsekošanu.<br />
12.1. <strong>Konspekts</strong><br />
Programmatūras prasību pamati<br />
(The Essential Software Requirements)<br />
<strong>Izmantoti</strong>e materiāli:<br />
Karl E. Wieger. “Software Requirements” – Microsoft Press, 1999, lpp. 15-35<br />
Lekcijas plāns<br />
Teicamu prasību raksturojums<br />
Prasību specifikācijas raksturojums<br />
Prasību izstrāde un pārvaldība<br />
Prasības <strong>no</strong> pasūtītāja perspektīvas<br />
Kas ir pasūtītājs<br />
Programmatūras pasūtītāju tiesības<br />
Programmatūras pasūtītāju pienākumi<br />
Kādas saistības izriet <strong>no</strong> prasību specifikācijas <strong>par</strong>akstīšanas<br />
Teicamu prasību raksturojums<br />
Kādā veidā var atšķirt labas programmatūras prasību specifikācijas (PPS; angliski -<br />
Software Requirements Specification, SRS) <strong>no</strong> problemātiskām<br />
Uzmanīga PPS apskate (review) <strong>no</strong> projektā iesaistītām pusēm, reprezentējot dažādus<br />
skatupunktus, ir labākais veids, lai pārbaudītu, vai prasības atbilst visiem<br />
nepieciešamiem raksturlielumiem. Ja, formulējot un apskatot prasības, patur prātā<br />
zemāk uzskaitītos raksturlielumus (characteristics),<br />
<strong>par</strong>asti izdodas uzlabot prasību dokumentus un izstrādāt labākus programmproduktus.<br />
Prasību pārskata raksturlielumi<br />
· Pabeigtība (Complete)<br />
Katrai prasībai ir pilnīgi jāapraksta piegādājamā funkcionalitāte. Tai jāsatur visu<br />
nepieciešamu informāciju, lai izstrādātājs varētu šo funkcionalitāti uzprojektēt un<br />
implementēt.<br />
· Pareizība (Correct)<br />
Katrai prasībai ir rūpīgi jāapraksta iestrādājamā funkcionalitāte. Pareizības etalons ir<br />
prasību avots, kā, piemēram, pasūtītāja vai augstāka līmeņa sistēmas prasību<br />
specifikācija. Programmatūras prasība, kas ir pretrunā ar atbilstošo sistēmas prasību,
ir ne<strong>par</strong>eiza. Tikai lietotāju pārstāvji var <strong>no</strong>vērtēt lietotāju prasību <strong>par</strong>eizību, tieši šī<br />
iemesla dēļ ir ļoti svarīgi iesaistīt gala lietotājus prasību apskatēs. Prasību apskatēs,<br />
kurās nepiedalās lietotāji, iesaistītie dalībnieki var prātot - „Tas nav saprotams, bet<br />
laikam jau ir tas, ko viņi gribēja”. Tā ir minēšana uz labu laimi.<br />
· Iespējamība (Feasible)<br />
Ir jābūt drošai iespējai katru prasību implementēt iecerētajā sistēmā un tās vidē,<br />
ņemot vērā <strong>no</strong>teiktos ierobežojumus. Lai izvairītos <strong>no</strong> neiespējamām prasībām,<br />
prasību vākšanas procesā ieteicams iesaistīt papildus tirgvedības vai prasību<br />
analītiķim arī programmatūras izstrādes komandas dalībnieku. Šis cilvēks var<br />
<strong>no</strong>drošināt iespējamības pārbaudi – ko var un ko nevar tehniski realizēt, kā arī kuru<br />
prasību implementācija prasīs pārmērīgi lielus laika un materiālos resursus.<br />
· Nepieciešamība (Necessary)<br />
Katrai prasībai ir jādokumentē kaut kas lietotājam tiešām vajadzīgs vai arī kaut kas,<br />
kas ir nepieciešams ārējo sistēmu prasību vai standartu atbilstībai. Prasības rodas <strong>no</strong><br />
zināmiem avotiem, daži <strong>no</strong> tiem ir ar lielāku autoritāti. Prasības atkārtoti jāsalīdzina ar<br />
informāciju <strong>no</strong> citiem avotiem, piemēram, <strong>no</strong> vairākiem lietošanas piemēriem (use<br />
case).<br />
· Prioritizējamība (Prioritized)<br />
Visas prasības, funkcionalitātes un lietošanas piemēri jāsakārto pa prioritātēm, lai<br />
<strong>no</strong>vērtētu, cik svarīga ir šo prasību realizācija dotajā izstrādes versijā. Ja<br />
visām prasībām tiktu <strong>no</strong>teikta vienādi augsta prioritāte, projekta pārvaldniekam trūks<br />
brīvības, reaģējot uz jaunām prasībām, kuras nāks klāt izstrādes laikā, kā arī uz<br />
budžeta samazinājumu, laika pārtēriņu vai projekta personāla pietrūkumu.<br />
· Skaidrība (Unambiguous)<br />
Visiem prasību dokumenta lasītājiem ir jāvie<strong>no</strong>jas <strong>par</strong> vie<strong>no</strong>tu, konsekventu to<br />
interpretāciju. Dažreiz izteikumu izvēle var <strong>no</strong>vest pie divdomības, tāpēc prasības ir<br />
svarīgi izklāstīt vienkāršā, kodolīgā valodā, kuru saprot lietotāji, nevis tikai<br />
datorspeciālisti. Jāievieš prasību dokumentu apskates procedūra, rakstot testa<br />
piemērus, izstrādājot prototipus un izgudrojot specifiskus izmantošanas scenārijus, lai<br />
efektīvi panāktu izteiksmes vienkāršību.<br />
· Verificējamība jeb pārbaudāmība (Verifiable)<br />
Jāizpēta visas prasības, lai redzētu, vai ir iespējas pārbaudīt to <strong>par</strong>eizību pēc produkta<br />
ieviešanas, veicot nelielu testu skaitu vai ar citu pārbaudes pieeju palīdzību, kā,<br />
piemēram, apskatēm vai demonstrāciju. Ja prasība ir nepārbaudāma, pierādīt to, ka tā<br />
ir <strong>par</strong>eizi iestrādāta, kļūst <strong>par</strong> viedokļa jautājumu un izslēdz objektīvu analīzi.<br />
Nepārbaudāmas ir arī pretrunīgās, nesaskanīgās, nepierādāmās vai neskaidrās<br />
prasības.<br />
Prasību specifikācijas raksturojums<br />
· Pabeigtība (Complete)<br />
Nedrīkst pietrūkt kādu prasību vai nepieciešamas informācijas. Trūkstošas prasības ir<br />
grūti pamanīt, jo tās ir neredzamas. Koncentrējoties uz lietotāju uzdevumiem vairāk<br />
nekā uz sistēmas funkcijām, var izvairīties <strong>no</strong> nepilnības. Ja zināms <strong>par</strong> <strong>no</strong>teiktas
informācijas trūkumu, jābūt apņēmībai šo trūkumu <strong>no</strong>vēršanā vēl līdz konstruēšanas<br />
uzsākšanai.<br />
· Nepretrunība (Consistent)<br />
Neviena prasība nedrīkst <strong>no</strong>nākt pretrunā ar citām programmatūras vai augstāka<br />
līmeņa (sistēmas vai darījumu (business)) prasībām. Visām pretrunām starp prasībām<br />
ir jābūt atrisinātām pirms izstrādes procesa. Katras prasības <strong>par</strong>eizību var atklāt, tikai<br />
veicot mērķtiecīgu izpēti.<br />
· Maināmība (Modifiable)<br />
Ir jābūt iespējai pārskatīt PPS, ja tas ir nepieciešams, un uzturēt detalizētu prasību<br />
izmaiņu vēsturi. Tas prasa, lai katra prasība būtu unikāli apzīmēta (marķēta/numurēta)<br />
un atdalīta <strong>no</strong> citu prasību apraksta, lai uz to varētu vien<strong>no</strong>zīmīgi un skaidri<br />
atsaukties. Katrai prasībai ir PPS jā<strong>par</strong>ādās tikai vienu reizi, pretējā gadījumā, ieviešot<br />
izmaiņas, ir ļoti vienkārši pieļaut kļūdu, izmai<strong>no</strong>t prasības tikai vienā vietā. PPS<br />
izmaiņu ieviešanu vienkāršos satura tabulas, indekss un šķērsatsauces.<br />
· Trasējamība (Traceable)<br />
Jābūt iespējai sasaistīt katru <strong>no</strong> programmatūras prasībām ar tās avotu un tās<br />
projektējuma elementiem, pirmkodu un testpiemēriem, kuri kalpo kā pārbaude<br />
prasību izpildes <strong>par</strong>eizībai. Trasējamas prasības ir unikāli apzīmētas<br />
(marķētas/numurētas) un ir izklāstītas strukturētā, „smalkgraudainā” veidā, pretēji<br />
neskaidrām, plašām rindkopām.<br />
Prasību izstrāde un pārvaldība<br />
Sajukums prasību termi<strong>no</strong>loģijā attiecas arī uz šīs disciplīnas <strong>no</strong>saukumu. Daži autori<br />
sauc šo procesu „prasību inženierija” (requirements engineering), kamēr citi to sauc<br />
<strong>par</strong> prasību pārvaldību (requirements management). Mēs sadalīsim programmatūras<br />
prasību inženierijas procesus divās daļās – „prasību izstrāde” un „prasību pārvaldība”,<br />
kā ir <strong>par</strong>ādīts 1. attēlā.<br />
1.attēls. Hierarhiskā prasību inženierijas sfēras dekompozīcija.<br />
Prasību izstrāde var būt sīkāk sadalīta, ietverot prasību <strong>no</strong>skaidrošanu, analīzi,<br />
specificēšanu un pārbaudi. Šie apakšprocesi aptver visas aktivitātes, kas saistītas ar<br />
programmatūras prasību vākšanu, <strong>no</strong>vērtēšanu un dokumentēšanu. Prasību izstrādes<br />
aktivitātes ir šādas.<br />
Sagaidāmo programmprodukta lietotāju identificēšana un grupēšana<br />
Katras lietotāju grupas vajadzību <strong>no</strong>skaidrošana
Patieso lietotāju uzdevumu un mērķu, kā arī darījumu (business) vajadzību šo<br />
uzdevumu veikšanai izzināšana<br />
No lietotājiem saņemtās informācijas analīze, atšķirot viņu uzdevumu vajadzības <strong>no</strong><br />
funkcionālo prasību, darījumu <strong>no</strong>teikumu, kvalitātes atribūtu un ieteikto risinājumu<br />
viedokļa<br />
Sistēmas līmeņa prasību sadalīšana galvenajās apakšsistēmās un šo prasību<br />
piekārtošana katrai <strong>no</strong> programmatūras komponentēm<br />
Kvalitātes atribūtu svarīguma saprašana<br />
Implementēšanas prioritāšu apspriešana<br />
Ievākto lietotāju vajadzību pārvēršana rakstītajās specifikācijās un modeļos<br />
Prasību specifikāciju apskates ar mērķi pārliecināties, ka visas prasības tikušas <strong>par</strong>eizi<br />
saprastas un uzskaitītas, un izlabot visas problēmas pirms izstrādes uzsākšanas.<br />
Prasību pārvaldība <strong>no</strong>zīmē „<strong>no</strong>dibināt un uzturēt vie<strong>no</strong>ša<strong>no</strong>s ar pasūtītāju <strong>par</strong><br />
programmatūras projekta prasībām”. Šī vie<strong>no</strong>šanās tiek „iemiesota” rakstītajās<br />
prasību specifikācijas un modeļos. Pasūtītāja piekrišana ir tikai puse <strong>no</strong> prasību<br />
apstiprināšanas "vienādojuma". Izstrādātājiem arī tās ir jāapstiprina un<br />
jāiestrādā programmproduktā. Visbiežāk prasību pārvaldība ietver šādas aktivitātes.<br />
Prasību vadlīniju definēšana<br />
Ierosināto prasību izmaiņu apskates un to ietekmes <strong>no</strong>vērtēšana pirms katras <strong>no</strong>teiktas<br />
prasības apstiprināšanas<br />
Apstiprināto prasību izmaiņu iekļaušana un vadība<br />
Projekta plānu un prasību aktualitātes uzraudzība<br />
Jaunu saistību apspriešana, kuras izriet <strong>no</strong> prasību izmaiņu ietekmes <strong>no</strong>vērtējuma<br />
Individuālo prasību trasēšana uz atbilstošo projektējumu, pirmkodu un testpiemēriem<br />
Prasību statusa un izmaiņu aktivitāšu izsekošana visa projekta garumā<br />
2. attēls <strong>par</strong>āda citu skatu uz atšķirību starp prasību izstrādi un prasību pārvaldību.
2.attēls. Robeža starp prasību izstrādi un pārvaldību.<br />
Prasības <strong>no</strong> pasūtītāja perspektīvas<br />
Piemērs<br />
Džerards, "Contoso Pharmaceuticas" vecākais pārvaldnieks tiekas ar Sintiju,<br />
"Contoso" informācijas sistēmas izstrādes grupas jau<strong>no</strong> pārvaldnieci. „Mums ir<br />
nepieciešams izstrādāt ķīmisko vielu izsekošanas informācijas sistēmu "Contoso"<br />
vajadzībām,” iesāk Džerards. „Sistēmai jāļauj mums uzkrāt datus <strong>par</strong> ķīmiskām<br />
vielām, kuras atrodas fondā vai konkrētās laboratorijās. Tādējādi ķīmiķi varētu iegūt<br />
to, kas viņiem nepieciešams, <strong>no</strong> fondā jau esošām vielām tā vietā, lai pirktu<br />
katru reizi jaunas. Veselības un drošības de<strong>par</strong>tamentam arī būtu jādod iespēja veidot<br />
dažus pārskatus federālai valdībai <strong>par</strong> ķīmisko vielu izmantošanu.<br />
Vai jūsu grupa var to realizēt piecos mēnešos, lai sistēma strādātu mūsu pirmā finansu<br />
audita laikā”<br />
„Es saprotu, Džerard, kāpēc šis projekts ir tik svarīgs”, saka Sintija. „Bet pirms es<br />
varu kaut ko pateikt <strong>par</strong> termiņiem, mums ir jāveic prasību analīze jūsu<br />
sistēmai”.<br />
Džerards samulsis - „Ko jūs ar to gribat pateikt Es esmu tikko jums visu izstāstījis”.<br />
„Patiesībā jūs esat aprakstījis koncepciju un dažus projekta mērķus”, paskaidro<br />
Sintija. „Šīs ir augstākā līmeņa darījumprasības, kuras nedod man<br />
pietiekami daudz detaļu, lai pateiktu, kādu programmatūru jums nepieciešams<br />
izstrādāt un cik ātri to varētu paveikt. Man nepieciešams vismaz pāris reizes<br />
satikties ar ķīmiķiem, lai saprastu viņu prasības pret sistēmu. Tad mēs varēsim<br />
izdomāt vajadzīgo funkcionalitāti, lai apmierinātu gan jūsu mērķus, gan<br />
lietotāju vajadzības. Varbūt jums nemaz nevajag jaunu sistēmu, lai eko<strong>no</strong>mētu naudu<br />
uz ķīmiskām vielām”.<br />
Džerards nekad nebija saskāries ar šādu reakciju <strong>no</strong> programmatūras izstrādes cilvēka.<br />
„Ķīmiķi ir aizņemti cilvēki," viņš protestē. „Viņiem nav laika izklāstīt jums katru<br />
detaļu, pirms jūs varēsiet sākt programmēt. Vai jūsu cilvēki nevar paši izdomāt, ko<br />
izstrādāt”<br />
Sintija mēģina paskaidrot viņas nepieciešamību prasību vākšanai tieši <strong>no</strong> cilvēkiem,<br />
kuri izmantos jau<strong>no</strong> sistēmu: „Ja mēs pēc vislabākās apziņas minēsim,<br />
ko vajag lietotājiem, mēs nevaram paveikt labu darbu. Mēs esam programmatūras<br />
izstrādātāji, nevis ķīmiķi. Mēs īsti pat nezinām, ko ķīmiķiem vajag, lai<br />
atsekotu ķīmiskās vielas laboratorijās. Mūsu pieredze saka, ka, iesākot darbu pirms<br />
problēmas saprašanas, neviens nav apmierināts ar rezultātiem”.<br />
„Labi, mums tam visam nav laika,” uzstāj Džerards. „Es jums esmu iedevis prasības.<br />
Tagad, lūdzu, vienkārši izstrādājiet sistēmu. Un informējiet mani <strong>par</strong><br />
projekta gaitu”.<br />
Šāda veida sarunas programmatūras izstrādes jomā <strong>no</strong>tiek regulāri. Pasūtītāji, kas<br />
pieprasa jaunu informācijas sistēmu, bieži nesaprot gala lietotāju iesaistīšanas<br />
svarīgumu. Tirgvedības speciālisti ar brīnišķīgu jaunas sistēmas koncepciju var<br />
iedomāties, ka viņi ļoti labi reprezentēs pasūtītāja intereses. Diemžēl patieso gala<br />
lietotāju intervēšanai aizstājēja nav. Viens pētījums, kurā tika apskatīti 8380 projekti,<br />
atklāja, ka divi galvenie projektu neveiksmes iemesli ir lietotāju neiesaistīšana un<br />
nepilnīgas prasības un specifikācijas.
Daļa <strong>no</strong> problēmas, kas saistīta ar prasībām, ceļas <strong>no</strong> sajukuma, aprakstot dažāda<br />
līmeņa prasības: darījumprasības, lietotāju un funkcionālās prasības. Džerards<br />
izklāstīja dažas darījumprasības, bet viņš nevarēja aprakstīt lietotāja prasības, jo nav<br />
sistēmas potenciālais lietotājs. Patiesie lietotāji var aprakstīt uzdevumus, kurus viņiem<br />
būs jāpilda ar sistēmas palīdzību, bet viņi nevar identificēt visas specifiskas<br />
funkcionālās prasības, kuras ir jāievieš šo uzdevumu izpildei.<br />
Kas ir pasūtītājs<br />
Plašā <strong>no</strong>zīmē pasūtītājs ir persona vai organizācija, kura iegūst tiešu vai netiešu<br />
labumu <strong>no</strong> produkta. Programmatūras pasūtītāji ir projektā ieinteresētas puses, kuras<br />
pasūta, maksā, izvēlas vai izmanto programmatūras produktu, vai kuri saņem<br />
rezultātus <strong>no</strong> produkta izmantošanas.<br />
Džerards reprezentē tādu pasūtītāju, kurš projektu iniciē un apmaksā. Džerarda līmeņa<br />
pasūtītāji ir atbildīgi <strong>par</strong> darījumprasību precizēšanu. Viņi <strong>no</strong>drošina augstākā līmeņa<br />
koncepciju un ar darījumiem saistītā virziena uzdošanu. Kā jau bija aprakstīts,<br />
darījumprasības apraksta mērķus, kurus pasūtītājs, organizācija vai citas ieinteresētās<br />
puses grib sasniegt, vai arī vērtības, kuras viņi vēlas saņemt <strong>no</strong> sistēmas.<br />
Darījumprasības <strong>no</strong>drošina vadošo uzbūvi visa projekta garumā. Visa pārējā<br />
informācija, kura tiek uzskatīta <strong>par</strong> prasībām, tiek saskaņota ar darījumprasībām, tāpat<br />
kā katra iestrādāta funkcionalitāte. Tomēr darījumprasības ne<strong>no</strong>drošina pietiekamu<br />
detalizāciju, lai izstrādātājs zinātu, ko veidot.<br />
Nākamais prasību līmenis – lietotāju prasības. Tām ir jābūt iegūtām <strong>no</strong> cilvēkiem,<br />
kuri izmantos produktu pašu rokām. Šie lietotāji (bieži saukti <strong>par</strong> gala lietotājiem)<br />
tādējādi veido citu programmatūras pasūtītāju veidu. Lietotāji apraksta uzdevumus,<br />
kurus viņi pildīs ar programmatūras palīdzību, kā arī nefunkcionālus raksturlielumus,<br />
kuri ir svarīgi, lai produktu akceptētu.<br />
Tie pasūtītāji, kuri <strong>no</strong>drošina darījumprasības, dažreiz liecinās lietotāju vietā, bet<br />
visbiežāk viņi ir pārāk tālu <strong>no</strong> patiesiem izstrādātāju uzdevumiem, lai izklāstītu<br />
precīzas prasības. Informācijas sistēmas, līguma vai individuāla lietojuma izstrādē<br />
darījumprasībām ir jānāk <strong>no</strong> personām, kurām ir nauda, kamēr lietotāju prasībām ir<br />
jānāk <strong>no</strong> personām, kuras "spaidīs produkta pogas".<br />
Diemžēl abu pasūtītāju veidu pārstāvji var uzskatīt, ka viņiem nav laika strādāt ar<br />
prasību analītiķiem, kuri vāc, analizē un dokumentē prasības. Dažreiz pasūtītāji<br />
sagaida <strong>no</strong> analītiķiem vai izstrādātājiem izpratni <strong>par</strong> to, kas ir vajadzīgs lietotājiem,<br />
bez ilgām diskusijām un dokumentēšanas. Ja vien tas būtu tik vienkārši. Ja<br />
jpasūtītājam ir <strong>no</strong>pietna attieksme pret projekta veiksmi, ir jāsaprot, ka laiks, kad<br />
programmētājiem pa durvju spraugu tika piegādātas miglainas prasības un picas<br />
kastes, ir beidzies.<br />
Komerciālo sistēmu izstrāde (gatavo programmproduktu pārdošanai), kurā pasūtītājs<br />
ir reizē arī lietotājs, ir nedaudz atšķirīga. Pasūtītāju aizstājējs, kā, piemēram,<br />
tirgvedības de<strong>par</strong>taments, var mēģināt <strong>no</strong>teikt, kādu programmatūras produktu pircējs<br />
vēlēsies iegādāties. Tomēr arī komerciālo sistēmu izstrādē ir jāiesaista patiesus<br />
lietotājus prasību vākšanas procesā.
Programmatūras pasūtītāju tiesības<br />
Pasūtītājam ir tiesības:<br />
1. Sagaidīt, ka analītiķis runās pasūtītāja valodā.<br />
2. Sagaidīt, ka analītiķi apgūs organizācijas darījumus un sistēmas mērķus.<br />
3. Sagaidīt, ka analītiķis fiksēs prasību vākšanas procesa laikā iegūto informāciju<br />
programmatūras prasību specifikācijā.<br />
4. Sagaidīt <strong>no</strong> izstrādātājiem izskaidrojumu <strong>par</strong> prasību vākšanas darba rezultātiem.<br />
5. Sagaidīt <strong>no</strong> izstrādātājiem cieņu un profesionālu attieksmi pret sadarbību visas<br />
saskarsmes laikā.<br />
6. Sagaidīt <strong>no</strong> izstrādātājiem idejas un alternatīvus risinājumus gan prasībām, gan to<br />
ieviešanai.<br />
7. Sagaidīt programmprodukta īpašību raksturojumu, kurš padarīs tā lietošanu<br />
vieglu un patīkamu.<br />
8. Sagaidīt iespēju pielāgot prasības turpmākai esošo programmatūras komponenšu<br />
atkalizmantošanai.<br />
9. Būt <strong>no</strong>drošinātiem prasību izmaiņu gadījumos ar godīgu izmaksu un ietekmes<br />
<strong>no</strong>vērtējumu, kā arī kompromisiem.<br />
10. Saņemt sistēmu, kura apmierina funkcionālas un kvalitātes vajadzības tādā<br />
līmenī, kādā tās bija izklāstītas un akceptētas.<br />
Programmatūras pasūtītāju pienākumi<br />
Pasūtītājam ir pienākums:<br />
1. Izglītot analītiķus savā darījumu sfērā un definēt darījumu žargonu.<br />
2. Pavadīt pietiekamu laiku prasību izklāstīšanai, precizēt prasības un atkārtoti<br />
atjaunināt tās.<br />
3. Būt konkrētam un precīzam prasību izskaidrošanas laikā.<br />
4. Savlaicīgi (ātri) pieņemt lēmumus <strong>par</strong> prasībām, ja tas ir nepieciešams.<br />
5. Cienīt izstrādātāja prasību izmaksu un iespējamības <strong>no</strong>vērtējumu.<br />
6. Noteikt individuālo prasību, sistēmas funkcionalitāšu un lietošanas piemēru<br />
prioritātes.<br />
7. Veikt prasību dokumentācijas un prototipu apskates.<br />
8. Informēt <strong>par</strong> projekta prasību izmaiņām, cik ātri vien iespējams.<br />
9. Sekot projekta izstrādes organizācijas vadlīnijām, piesakot izmaiņu pieprasījumus.<br />
10. Cienīt izstrādātāju lietotus prasību inženierijas procesus<br />
Kādas saistības izriet <strong>no</strong> prasību specifikācijas <strong>par</strong>akstīšanas<br />
Viens <strong>no</strong> svarīgākiem pasākumiem pasūtītāja un izstrādātāja attiecībās ir panākt<br />
izstrādājamā produkta prasību apstiprinājumu. Daudzas organizācijas praktizē prasību<br />
specifikācijas <strong>par</strong>akstīšanu kā liecību prasību apstiprinājumam. Ir svarīgi, lai visi<br />
apstiprināšanas procesa dalībnieki zinātu, <strong>par</strong> ko viņi <strong>par</strong>akstās un kādas saistības tas<br />
uzliek.<br />
Viena problēma ir pasūtītāja pārstāvis, kurš uzskata prasību <strong>par</strong>akstīšanu <strong>par</strong><br />
bezjēdzīgu rituālu: „Man bija dota lapa, uz kuras bija uzdrukāts mans vārds ar<br />
<strong>par</strong>aksta vietu. Es to <strong>par</strong>akstīju, jo citādi izstrādātāji neuzsāktu programmēšanu”. Šāda<br />
attieksme var <strong>no</strong>vest līdz konfliktiem, kad pasūtītājs vēlas izmainīt vai papildināt
prasības, vai arī brīnās <strong>par</strong> to, kas ir piegādāts: „Protams, es <strong>par</strong>akstījos zem prasībām,<br />
bet man nebija laika tās izlasīt. Es jums uzticējos, bet jūs mani piemānījāt!”<br />
Tikpat problemātiska ir situācija, kad izstrādes vadītājs uzlūko <strong>par</strong>akstīšanas procesu<br />
<strong>par</strong> prasību negrozāmu iesaldēšanu. Kad <strong>par</strong>ādās izmaiņu pieprasījumi, viņš uzrāda<br />
PPS un protestē pret tiem: „Bet jūs esat <strong>par</strong>akstījuši šīs prasības, tieši to mēs arī<br />
izstrādājām. Ja jūs gribējāt kaut ko citu, jums vajadzēja toreiz to teikt”.<br />
Abas šīs attieksmes ir pretrunā ar reālo dzīvi – ir neiespējami zināt absolūti visas<br />
prasības projekta sākumā, kā arī nedrīkst uzskatīt, ka prasības paliks pilnīgi<br />
nemainīgas laika gaitā. Prasību <strong>par</strong>akstīšana iezīmē prasību izstrādes procesa beigas.<br />
Tomēr dalībniekiem ir precīzi jāsaprot, ko <strong>no</strong>zīmē viņu <strong>par</strong>aksti uz prasību<br />
dokumenta.<br />
Vēl svarīgāk <strong>par</strong> <strong>par</strong>akstīšanas procesu ir <strong>no</strong>dibināt prasību apstiprināšanas vadlīniju<br />
kā fiksāciju kādā <strong>no</strong>teiktā laika brīdī. Tādējādi <strong>par</strong>akstu uz prasību specifikācijas ir<br />
jātulko kā „Es piekrītu, ka šis dokuments labākā veidā reprezentē mūsu<br />
programmatūras prasību izpratni šodien. Turpmākās izmaiņas var <strong>no</strong>tikt tikai saskaņā<br />
ar projektā definēto izmaiņu procesu. Es saprotu, ka apstiprinātas izmaiņas var<br />
pieprasīt papildus izmaksas, resursus un laika grafika saskaņošanu”.<br />
Šī procesa izpratne palīdzēs situācijās, kad, projektam attīstoties, atklāsies jaunas,<br />
negaidītas izmaiņas vai izmainīsies pasūtītāja tirgus vai darījumu pieprasījums.<br />
Sākotnējo prasību <strong>par</strong>akstīšana palīdzēs veiksmīgi pārvaldīt turpmākās pasūtītājaizstrādātāja<br />
attiecības.<br />
12.2. Programmatūras prasību specifikācijas kontrolsaraksts<br />
Programmatūras prasību specifikācijas kontrolsaraksts<br />
(<strong>no</strong> http://www.rspa.com/checklists/reqspec.html)<br />
The Software Requirements Specification is the work product that is often produced<br />
as a consequence of the analysis activity. The checklist that follows will help you to<br />
assist the quality of this document. . For this checklist, the more questions that elicit a<br />
negative response, the higher the risk that the specification will <strong>no</strong>t adequately serve<br />
its purpose.<br />
Do stated goals and objectives for software remain consistent with system goals and<br />
objectives<br />
Have important interfaces to all system elements been described<br />
Have all data objects been described Have all attributes been identified<br />
Do major functions remain within scope and has each been adequately described<br />
Have functions been refined (elaborated) to an appropriate level of detail<br />
Is information flow adequately defined for the problem domain<br />
Are diagrams clear; can each stand alone without supplementary text<br />
Is the behavior of the software consistent with the information it must process and the<br />
functions it must perform<br />
Have events and states been identified<br />
Are design constraints realistic<br />
Have tech<strong>no</strong>logical risks been fully defined<br />
Have alternative software requirements been considered
Have validation criteria been stated in detail; are they adequate to describe a<br />
successful system<br />
Have inconsistencies, omissions or redundancy been identified and corrected<br />
Is the customer contact complete<br />
Has the user reviewed the Preliminary User's Manual or prototype<br />
How are the Software Project Plan estimates affected<br />
During the review of a requirements specification we attempt to uncover problems<br />
that may be hidden within the specification content. The following guidelines for a<br />
detailed specification review are suggested:<br />
Be on the lookout for persuasive connectors (e.g., certainly, therefore, clearly,<br />
obviously, it follows that), ask why<br />
Watch out for vague terms (e.g., some, sometimes, often, usually, ordinarily, most,<br />
mostly); ask for clarification.<br />
When lists are given, but <strong>no</strong>t completed, be sure all items are understood. Keys to<br />
look for: "etc., and so forth, and so on, such as."<br />
Be sure stated ranges don't contain unstated assumptions (e.g., Valid codes range from<br />
10 to 100. Integer Real Hex)<br />
Beware of vague verbs such as "handled, rejected, processed, skipped, eliminated."<br />
There are many ways they can be interpreted.<br />
Beware of ambiguous pro<strong>no</strong>uns (e.g., The I/O module communicates with the data<br />
validation module and its control flag is set. Whose control flag)<br />
Look for statements that imply certainty (e.g., always, every, all, <strong>no</strong>ne, never), then<br />
ask for proof.<br />
When a term is explicitly defined in one place, try substituting the definition for other<br />
occurrences of the term<br />
When a structure is described in words, draw a picture to aid in understanding.<br />
When a calculation is specified, work at least two examples.<br />
13.1. <strong>Konspekts</strong><br />
Prasību inženierijas labā prakse<br />
<strong>Izmantoti</strong>e materiāli:<br />
Karl E. Wieger. “Software Requirements” – Microsoft Press, 1999, lpp. 37-52<br />
Roger S. Pressman “Software Engineering. A Practioners Approach” - McGraw-Hill.<br />
Inc., 1997, 4. <strong>no</strong>daļa, lpp. 253-259<br />
Lekcijas plāns<br />
· Prasību inženierijas labā prakse.<br />
o Prioritātes<br />
o Skaidrojumi<br />
· Tehniski eko<strong>no</strong>miskas pamatojums<br />
· Eko<strong>no</strong>miskā lietderība<br />
· Tehniskā realizējamība<br />
Prasību inženierijas labā prakse<br />
Zemāk tabulā sniegti labās prakses padomi, kuri ietekmē projekta veiksmi. Padomi<br />
sakārtoti pēc to prioritātēm un sarežģītības.
Prioritāte Sarežģītība<br />
Augsta Vidēja Zema<br />
Augsta - Definēt prasību realizācijas<br />
procedūru<br />
- Izstrādāt plānus uz prasību<br />
pamata<br />
- Pārrunāt saistības<br />
- Identificēt lietošanas piemērus /<br />
scenārijus<br />
- Definēt kvalitātes atribūtus<br />
- Pielāgot PPS sagatavi<br />
Vidēja<br />
Zema<br />
- Izglītot lietotājus un vadību <strong>par</strong><br />
prasībām<br />
- Modelēt prasības<br />
- Veikt prasību riskus pārvaldību<br />
- Izmantot prasību pārvaldības<br />
rīkus<br />
- Izveidot prasību trasējamības<br />
matricu<br />
- Noturēt kopsanāksmes (Joint<br />
Application Development<br />
sessions)<br />
- Atkalizmantot prasības<br />
- Lietot kvalitātes funkciju<br />
izvietošanas (Quality Functions<br />
Deployment) pieeju<br />
- Mērīt prasību stabilitāti<br />
- Definēt izmaiņu vadības procesu<br />
- Nodibināt izmaiņu vadības<br />
padomi<br />
- Pārbaudīt prasību dokumentus<br />
- Vingrināt prasību analītiķus<br />
- Nodibināt fokusēšanas grupas<br />
- Izstrādāt prototipus<br />
- Analizēt iespējamību<br />
- Definēt pieņemšanas kritērijus<br />
- Veikt izmaiņu ietekmes analīzi<br />
- Izsekot katrai izmaiņai līdz<br />
visiem ietekmētiem<br />
darbproduktiem<br />
- Izvēlēties piemērotāko dzīves<br />
ciklu<br />
- Analizēt lietotāju darba plūsmu<br />
- Pētīt problēmu ziņojumus<br />
- Uzrakstīt lietotāju rokasgrāmatu<br />
- Uzturēt prasību vēsturi<br />
- Dokumentēt prasību<br />
darbietilpību<br />
Padomu izskaidrojums un sadalījums pa procesiem<br />
ZINĀŠANAS<br />
- Vingrināt prasību analītiķus. Visiem izstrādātājiem jābūt pamatzināšanām <strong>par</strong><br />
prasību inženieriju, savukārt analītiķus nepieciešams vairāk izglītot šajā jomā.<br />
Analītiķiem ir jābūt labām verbālās un neverbālas komunikācijas iemaņām, labi<br />
organizētiem, zi<strong>no</strong>šiem lietojumprogrammatūras jomā.<br />
- Izglītot lietotājus un vadību <strong>par</strong> prasībām. Visiem izstrādes projektos iesaistītiem<br />
darbiniekiem ir jāsaprot prasību inženierijas pamati un prasību svarīgumu un ietekmi<br />
uz projekta rezultātiem.<br />
- Vingrināt izstrādātājus problēmapgabala koncepcijās. Lai iesaistītie darbinieki labāk<br />
saprastu apgabalu, kuram tiks izstrādāta programmatūra, nepieciešams sarīkot<br />
semināru <strong>par</strong> pasūtītāja darbības jomu - darījumprocesiem, termi<strong>no</strong>loģiju, mērķiem.<br />
Tas var mazināt jucekli un komunikācijas problēmas.<br />
- Izstrādāt projekta terminu vārdnīcu. Lai mazinātu komunikācijas problēmas,<br />
- Vingrināt izstrādātājus<br />
lietojumprogrammatūras<br />
- Uzrakstīt vīziju un aptv<br />
- Identificēt lietotāju gru<br />
- Uzzīmēt konteksta dia<br />
- Identificēt prasību avot<br />
- Apzīmēt katru prasību<br />
- Nodibināt bāzlīnijas un<br />
prasību dokumentu versi<br />
kontroli<br />
- Izstrādāt zināšanu krāju<br />
- Izvēlēties produkta "če<br />
- Izveidot datu vārdnīcu<br />
- Novērot un fiksēt<br />
darījumlikumus (busines<br />
- Izstrādāt prasībām atbil<br />
testpiemērus<br />
- Sekot līdzi prasību statu
jāizstrādā terminu vārdnīca, kurā definē specializētus terminus problēmapgabala sfērā.<br />
Svarīgi iekļaut terminus ar vairākām <strong>no</strong>zīmēm.<br />
PRASĪBU IZZINĀŠANA<br />
- Uzrakstīt vīziju un aptvērumu (scope). Vīzijas un apjoma dokumentam jāsatur<br />
augstā līmeņa lietojumprogrammatūras prasības. Atbilstoši šai vīzijai tiek vēlāk<br />
izstrādāti visi lietošanas scenāriji un funkcionālās prasības.<br />
- Definēt prasību realizācijas procedūru. Prasību izzināšanas, analīzes, specificēšanas<br />
un pārbaudes soļiem jābūt definētiem un dokumentētiem vie<strong>no</strong>tā procedūrā, kura<br />
kalpo analītiķiem <strong>par</strong> ceļvedi.<br />
- Identificēt lietotāju grupas. Lai neizlaistu nevienu lietotāju prasību izzināšanas<br />
procesā, lietotāji ir jāklasificē grupās. Jāidentificē katras grupas <strong>no</strong>zīmība un ietekme<br />
uz produktu.<br />
- Izvēlēties produkta čempionus. Jāizvēlas vismaz viens pārstāvis lietotāju grupā, kurš<br />
var precīzi definēt prasības. Tiem ir jāpiedalās dažādās aktivitātēs projekta gaitā un<br />
jāvar pieņemt lēmumi.<br />
- Nodibināt fokusa grupas. Fokusa grupas ir lietotāji, kuri var nepieņemt lēmumus, bet<br />
kuri pārzina funkcionālas un nefunkcionālas programmatūras produkta prasības.<br />
- Identificēt lietošanas piemērus/scenārijus. Par lietošanas piemēriem jeb scenārijiem<br />
kalpo lietotāju pārstāvju pienākumi, kuru atbalstam nepieciešams izstrādāt<br />
lietojumprogrammatūru.<br />
- Noturēt kopsanāksmes. Kopsanāksmes (Joint Application Development sessions)ir<br />
paplašināti veici<strong>no</strong>ši semināri, kuros iesaista analītiķus un pasūtītāja pārstāvjus, lai<br />
izstrādātu prasību dokumentu. Pasūtītāja iesaistīšana šajā intensīvajā darbā,kalpo <strong>par</strong><br />
pamatu ciešām attiecībām prasību definēšanas un produkta izstrādes laikā.<br />
- Analizēt lietotāju darba plūsmu. Lai izprastu darba plūsmu, pasūtītāja pārstāvjus<br />
mēdz <strong>no</strong>vērot, pildot savus pienākumus. Darba plūsmas dokumentēšana palīdz<br />
identificēt lietošanas scenārijus un funkcionālās prasības.<br />
- Definēt kvalitātes atribūtus. Kvalitātes atribūtu un nefunkcionālo prasību<br />
(veiktspēja, efektivitāte, uzticamība, lietojamība u.c.) pirmavots ir lietotāja ieceres.<br />
- Izpētīt problēmu ziņojumus. Problēmu un uzlabojumu ziņojumi kalpo <strong>par</strong> bagātu<br />
avotu produkta papildus funkcionalitātes idejām, kuras var būt <strong>par</strong> pamatu nākamām<br />
produkta versijām.<br />
- Atkalizmantot prasības. Ja pasūtītājam nepieciešamās funkcionālās prasības ir<br />
līdzīgas jau esošajam produktam, ir vērtīgi izmantot jau iegūtās prasības, kā arī meklēt<br />
iespēju izmantot jau gatavus programmatūras komponentus.<br />
PRASĪBU ANALĪZE<br />
- Uzzīmēt konteksta diagrammu. Konteksta diagramma ir vienkāršs modelis, kurš<br />
definē robežas un saskarnes starp izstrādājamo programmatūru un pasūtītāja esošām<br />
sistēmām. Tā identificē arī informācijas un resursu plūsmu pār saskarnēm.<br />
- Izstrādāt prototipus. Ja izstrādātāji vai lietotāji nav pārliecināti <strong>par</strong> prasībām, var<br />
piemērot lietotāju saskarņu prototipus - daļēju iespējamās funkcionalitātes realizāciju,<br />
kas kalpo turpmākai koncepcijas izstrādei.<br />
- Analizēt prasību iespējamību. Katrai prasībai ir jāizvērtē realizācijas un ieviešanas<br />
iespējamība, ņemot vērā izmaksas, veiktspēju un izstrādes vidi. Jā<strong>no</strong>vērtē riski, kas<br />
var apdraudēt prasību realizācijas iespējamību, ietverot prasību konfliktus, atkarību <strong>no</strong><br />
ārējiem faktoriem un tehniskiem apstākļiem.
- Prioritizēt prasības. Ar analītiskas pieejas palīdzību pēc iespējas jāprioritizē<br />
lietošanas scenāriju, funkcionalitāšu un atsevišķo prasību realizācija. Ņemot <strong>par</strong><br />
pamatu prioritātes, jāvie<strong>no</strong>jas <strong>par</strong> to, kura programmatūras lietojuma versija saturēs<br />
kuru daļu realizēto prasību.<br />
- Modelēt prasības. Grafiskie prasību analīzes modeļi (datu plūsmas diagrammas,<br />
entītiju relāciju diagrammas, stāvokļu-pāreju diagrammas, dialogu kartes un objektu<br />
klašu un mijiedarbības diagrammas) var kalpot <strong>par</strong> vērtīgu papildinājumu PPS<br />
dokumentam.<br />
- Izveidot datu vārdnīcu. Datu vārdnīca ir centrālā krātuve visu datu vienumu un<br />
struktūru definīcijām. Tā <strong>no</strong>drošina izstrādātājiem visu nepieciešamo informāciju,<br />
strādājot pie saistītiem programmatūras komponentiem.<br />
- Pielietot kvalitātes funkciju izvietošanu. Kvalitātes funkciju izvietošana (Quality<br />
Funkcion Deployment) ir augsti sistemātiska tehnika produktu funkcionalitāšu<br />
sasaistīšanai ar pasūtītāja vērtībām un mērķiem. Tā sniedz analītisku pieeju to<br />
funkcionalitāšu identificēšanai, kuras <strong>no</strong>drošinās visaugstāko klienta apmierinātību.<br />
PRASĪBU SPECIFICĒŠANA<br />
- Izvēlēties PPS sagatavi. Organizācijā jābūt definētai programmatūras prasību<br />
specifikācijas dokumenta sagatavei, kura ļauj pielāgot šo sagatavi atkarībā <strong>no</strong> projekta<br />
vajadzībām, kā arī atvieglo prasību dokumentēšanu.<br />
- Identificēt prasību avotus. Lai pārliecinātos, ka visas ieinteresētās puses zina, kāpēc<br />
katra <strong>no</strong> funkcionālām prasībām ir iekļauta PPS, jāveic atgriezeniska prasību<br />
izsekošana, identificējot katras prasības avotu.<br />
- Apzīmēt katru prasību. Katrai PPS prasībai ir jābūt unikālam identifikatoram vai<br />
marķējumam, kas kalpo <strong>par</strong> palīgu prasību trasējamības un statusa izsekošanas<br />
procesos.<br />
- Novērot un fiksēt darījumu likumus. Darījumu likumi ir principi attiecībā uz<br />
programmatūru, kā piemēram, kurš un kādos gadījumos var veikt <strong>no</strong>teiktu funkciju.<br />
Šiem principiem jābūt dokumentētiem, lai vēlāk varētu veikt to izpildes pārbaudi.<br />
- Izveidot prasību trasējamības matricu. Katrai atsevišķai prasībai ir jābūt sasaistītai ar<br />
projektējuma elementu un kodu, kas to implementē, kā arī ar attiecīgo testu, kurš<br />
pārbauda tās realizāciju. Prasību trasējamības matrica var arī sasaistīt funkcionālās<br />
prasības ar augstākā līmeņa prasībām.<br />
PRASĪBU PĀRVALDĪBA<br />
- Definēt izmaiņu vadības procesu. Prasību izmaiņu pieteikšanai, analīzei un lēmumu<br />
pieņemšanai <strong>par</strong> prasību realizāciju ir jā<strong>no</strong>tiek saskaņā ar iepriekš definētu izmaiņu<br />
vadības procedūru.<br />
- Nodibināt izmaiņu vadības padomi. Nodibi<strong>no</strong>t nelielu ieinteresēto pušu grupu, kura<br />
saņem izmaiņu pieprasījumus, izvērtē, vai tie ir projekta aptvēruma ietvaros, un<br />
pieņem lēmumu <strong>par</strong> to akceptēšanu vai <strong>no</strong>raidīšanu, tiek panākta efektīva<br />
izmaiņuvadība - <strong>no</strong>vērtēšana, saskaņošana vai <strong>no</strong>raidīšana, prioritizēšana un<br />
piesaistīšana versijām.
- Veikt izmaiņu ietekmes analīzi. Katrai pieteiktai izmaiņai nepieciešams <strong>no</strong>vērtēt tās<br />
ietekmi uz projekta kalendāro plānu un citām prasībām.<br />
- Izsekot katras prasības ietekmei uz darbproduktiem. Kad izmaiņas ir akceptētas, tām<br />
ir jābūt saskaņotām ar prasību trasējamības matricu, lai <strong>no</strong>skaidrotu, vai nav kādas<br />
citas prasības, projektējuma komponenti, kods vai testpiemēri, kuriem atbilstoši jābūt<br />
izmainītiem.<br />
- Nodibināt bāzlīniju un veikt prasību dokumentu versiju vadību. Definēt prasību<br />
bāzlīniju, kas ir attiecīgā brīža saskaņoto prasību momentuzņēmums. Kad prasības ir<br />
<strong>no</strong>stiprinātas, tās var tikt mainītas, tikai izejot speciālu izmaiņu vadības procedūru.<br />
Vislabākā pieeja ir izmantot kādu <strong>no</strong> konfigurāciju pārvaldības rīkiem.<br />
- Uzturēt prasību vēsturi. Prasību versiju kontrole ietver vēstures uzturēšanu, t.i. fiksēt<br />
izmaiņu pieteicēju, datumu un laiku, iemeslu, prasību dokumenta rediģētāju, datumu<br />
un laiku, kā arī jaunu versijas numuru.<br />
- Sekot līdzi prasību statusam. Vislabākais veids, kā panākt prasību statusa<br />
izsekojamību, ir izveidot reģistru, kurā tiek uzturēta informācija <strong>par</strong> katras prasības<br />
atribūtiem, tai skaitā statusu (piemēram, pieteikta, apstiprināta, implementēta vai<br />
verificēta).<br />
- Mērīt prasību stabilitāti. Jā<strong>no</strong>saka <strong>no</strong>stiprināto (baselined) prasību skaitu un<br />
pieteikto un apstiprināto izmaiņu skaitu mēneša vai nedēļas laikā. Pārmērīgas prasību<br />
izmaiņas ir sarkanais karodziņš, kas liecina <strong>par</strong> problēmām projekta uzdevumu<br />
izpratnē, definēšanā vai citiem ietekmējošiem aspektiem.<br />
- Izmantot prasību pārvaldības rīkus. Komerciālie prasību pārvaldības rīki atvieglo<br />
prasību trasējamības un vadības procesu, kalpojot <strong>par</strong> palīgu komunikācijā starp<br />
analītiķiem, izstrādātājiem, testētājiem un, atsevišķos gadījumos, pasūtītājiem.<br />
PRASĪBU VERIFIKĀCIJA JEB PĀRBAUDE<br />
- Pārbaudīt (inspect) prasību dokumentus. Formāla prasību dokumenta pārbaude, ko<br />
veic dažādus skatījumus pārstāvoša speciālistu grupa (piemēram, analītiķis, pasūtītājs,<br />
projektētājs un testētājs) ir viena <strong>no</strong> augsti vērtējamām programmatūras kvalitātes<br />
<strong>no</strong>drošināšanas aktivitātēm. Tā ļauj pārbaudīt dokumentu un identificēt kļūdas pirms<br />
<strong>no</strong>došanas pasūtītājam.<br />
- Izstrādāt prasībām atbilstošos testpiemērus. Ņemot <strong>par</strong> pamatu lietošanas scenārijus,<br />
iespējams izstrādāt melnās kastes testpiemērus, lai dokumentētu sagaidāmo<br />
programmatūras uzvedību (rezultāts) pie specificētiem <strong>no</strong>sacījumiem (ieejas dati).<br />
Testpiemērus var izmantot arī prasību modeļu <strong>par</strong>eizības testēšanai (dialogu kartes,<br />
prototipu testēšanā).<br />
- Uzrakstīt lietotāju rokasgrāmatu. Lietotāju rokasgrāmatas sākotnējais variants,<br />
izstrādāts vēl pirms izstrādes, var kalpot <strong>par</strong> prasību specifikāciju vai papildinājumu<br />
tai. Laba rokasgrāmata iezīmē visu lietotājam redzamu funkcionalitāti labi saprotamā<br />
valodā.
- Definēt pieņemšanas jeb akceptēšanas kritērijus. Lai labāk izstrādātu pieņemšanas<br />
testus, ieteicams aptaujāt lietotājus, lai identificētu, kā viņi <strong>no</strong>skaidros, vai gatava<br />
programmatūra atbilst viņu prasībām. Šī informācija var tikt ietverta testpiemēros,<br />
lietošanas piemēros vai pieņemšanas testos.<br />
PROJEKTU PĀRVALDĪBA<br />
- Izvēlēties piemērotāko dzīves ciklu. Atkarībā <strong>no</strong> prasību detalizācijas un stabilitātes,<br />
organizācijai ir jāizvēlas piemērotākais dzīves cikls. Ūdenskrituma modelis ir<br />
piemērojams tajos gadījumos, kad prasības ir labi definētas jau projekta sākumā.<br />
Pretējā gadījumā jāpiemēro prototipēšanas metodika, pasoļu izstrāde vai kāds cits<br />
izstrādes dzīves cikla modelis.<br />
- Izstrādāt plānus uz prasību pamata. Darbietilpību un kalendāro plānu sākotnēji<br />
<strong>no</strong>vērtē, ņemot <strong>par</strong> pamatu darījumprasības, vīziju un aptvērumu. Šie <strong>no</strong>vērtējumi nav<br />
sevišķi precīzi, tāpēc tie ir jāpārvērtē, kad prasības kļūst skaidrākas.<br />
- Pārrunāt saistības. Kad projektam tiek pievie<strong>no</strong>tas jaunas papildus<br />
prasības,jā<strong>no</strong>vērtē, vai joprojām ir iespējams sasniegt kvalitātes saistības un iekļauties<br />
kalendārajā plānā. Ja tas nav iespējams, situācija ir jāpārrunā ar vadību, piedāvājot<br />
jaunus, reālistiskākus plānus.<br />
- Veikt prasību risku pārvaldību. Riskiem, kas saistīti ar prasībām, ir jābūt<br />
uzskaitītiem un dokumentētiem risku pārvaldības dokumentā. Ir jābūt skaidrai iespējai<br />
mazināt vai likvidēt šos riskus.<br />
- Dokumentēt prasību darbietilpību. Uzskaitot prasību izstrādei un pārvaldībai<br />
nepieciešamo darbietilpību un laiku, iespējams <strong>no</strong>vērtēt, vai plā<strong>no</strong>tās aktivitātes ir<br />
<strong>no</strong>tikušas kā plā<strong>no</strong>ts, kā arī ļauj labāk plā<strong>no</strong>t resursus nākamajos projektos.<br />
Tehniski eko<strong>no</strong>miskais pamatojums<br />
Visi projekti ir iespējami - ar neierobežotiem resursiem un laiku ! Diemžēl,<br />
programmatūras izstrādē ļoti bieži gadās situācijas, kad resursi ir ierobežoti, bet<br />
<strong>no</strong>došanas termiņi ir vairāk nereāli nekā iespējami. Tieši tāpēc ir ļoti svarīgi <strong>no</strong>vērtēt<br />
projekta iespējamību pēc iespējas ātrāk. Atklājot nereālus plānus, var <strong>no</strong>vērst mēnešu<br />
un pat gadu ilgu nepamatotu darbu, kā arī tūkstošu latu tēriņu.<br />
Iespējamības un risku analīze ir līdzīgi savā starpā. Ja projekta risks ir augsts, tad<br />
programmatūras pabeigšanas iespējamība samazinās. Tomēr, veicot produkta izstrādi,<br />
uzmanība tiek koncentrēta uz 4 galvenajām lietām:<br />
Eko<strong>no</strong>miskais pamatojums. Tiek <strong>no</strong>vērtētas izstrādes izmaksas pret ienākumiem vai<br />
citiem ieguvumiem <strong>no</strong> projekta realizācijas.<br />
Tehniskais pamatojums. Tiek izpētītas funkciju, veiktspējas un ierobežojumu, kuri var<br />
apdraudēt sistēmas izstrādes pabeigšanu.<br />
Tiesisks pamatojums. Tiek <strong>no</strong>teikti jebkuri likumpārkāpumi, traucējumi vai atbildība,<br />
kuri var iestāties vai izrietēt <strong>no</strong> sistēmas izstrādes.<br />
Alternatīvas. Tiek <strong>no</strong>vērtētas alternatīvas pieejas sistēmas izstrādei.<br />
Tehniski eko<strong>no</strong>miskais pamatojums nav obligāts, ja sistēmas izstrādes eko<strong>no</strong>miskais<br />
attais<strong>no</strong>jums ir acīmredzams, tehniskais risks ir zems, gaidāmas neliels skaits tiesisku<br />
problēmu un neeksistē saprātīgas alternatīvas. Tomēr, ja jebkurš <strong>no</strong> šiem faktoriem ir<br />
citādāks, tehniski eko<strong>no</strong>miskais pamatojums ir jāveic.
Apsvērumi, saistīti ar tehniski eko<strong>no</strong>misko pamatojumu ir šādi:<br />
Izstrādes risks. Vai sistēmas elements var būt izstrādāts, sasniedzot nepieciešamas<br />
funkcijas un veiktspēju, kā arī ņemot vērā <strong>no</strong>teiktus ierobežojumus<br />
Resursu pieejamība. Vai zi<strong>no</strong>ši darbinieki ir pieejami sistēmas vai sistēmas elementa<br />
izstrādei Vai citi resursi (a<strong>par</strong>atūra, programmatūra) ir pieejami, lai veikt izstrādi<br />
Teh<strong>no</strong>loģija. Vai atbilstoša teh<strong>no</strong>loģija ir sasniegusi līmeni, kurš nepieciešams, lai<br />
veiksmīgi atbalstītu un uzturētu sistēmas funkcijas<br />
Tehniski eko<strong>no</strong>miskais pamatojums var būt dokumentēts kā atsevišķa atskaite<br />
augstākai vadībai, kura iekļauj papildinājumus esošai sistēmas specifikācijai. Tomēr<br />
šī dokumenta forma var atšķirties. Dokumenta satura <strong>par</strong>augs:<br />
I. Ievads<br />
A. Problēmas izklāstījums<br />
B. Ieviešanas vide<br />
C. Ierobežojumi<br />
II. Pārvaldības kopsavilkums un rekomendācijas<br />
A. Svarīgie konstatējumi<br />
B. Komentāri<br />
C. Rekomendācijas<br />
D. Ietekme<br />
III. Alternatīvas<br />
A. Sistēmas konfigurācijas alternatīvas<br />
B. Gala pieejas izvēlē izmantoti kritēriji<br />
IV. Sistēmas apraksts<br />
A. Īss aptvēruma izklāstījums<br />
B. Noteikto elementu iespējamība<br />
V. Izmaksu-labumu analīze<br />
VI. Tehnisko risku <strong>no</strong>vērtējums<br />
VII. Tiesisks sazarojums<br />
VIII. Citi projektam specifiskie faktori<br />
Tehniski eko<strong>no</strong>misko pamatojumam pirmo apskati veic projekta pārvaldnieks (lai<br />
<strong>no</strong>vērtētu satura uzticamību) un tad augstākā vadība (lai <strong>no</strong>vērtētu projekta statusu).<br />
Pamatojumam ir jāseko lēmuma pieņemšanai "sākt/nesākt". Ir jāpiezīmē, ka šādi<br />
lēmumi tiks vēlāk pieņemti arī pēc plā<strong>no</strong>šanas, specifikācijas izstrādes un<br />
programmatūras izstrādes soļiem.<br />
Eko<strong>no</strong>miskā lietderība<br />
Starp citām svarīgām lietām tehniski eko<strong>no</strong>miskais pamatojums satur izmaksu un<br />
labumu analīzi - <strong>no</strong>vērtējumu sistēmas izstrādes projekta eko<strong>no</strong>miskajam<br />
pamatojumam. Izmaksu-labumu analīze attēlo projekta izstrādei nepieciešamas<br />
izmaksas un salīdzina tos ar materiāliem un nemateriāliem ieguvumiem <strong>no</strong> sistēmas<br />
izstrādes.<br />
Izmaksu-labumu analīzi sarežģī kritēriji, kuri ir atkarīgi <strong>no</strong> izstrādājamās sistēmas<br />
raksturlielumiem, relatīva projekta izmēra un sagaidāmās peļņas <strong>no</strong><br />
kapitālieguldījumiem, kura ir daļa <strong>no</strong> organizācijas stratēģiskā plāna. Bez tam, audzi<br />
ieguvumi <strong>no</strong> sistēmas izstrādes ir nes nemateriālu vērtību (piemēram, labākā<br />
projektēšanas kvalitāte, veicot iteratīvu optimizāciju, paaugstināta klientu<br />
apmierinātība, labāka lēmumu pieņemšana). Dažreiz tiešo kvantitatīvo <strong>no</strong>vērtējumu ir<br />
grūti iegūt.
Iespējamie informācijas sistēmas ieguvumiIespējamas informācijas sistēmas izmaksas<br />
Ieguvumi <strong>no</strong> aprēķinu vai drukāšanas Sagādes izmaksas<br />
uzdevumu uzlabošanas<br />
Konsultāciju izmaksas<br />
Izmaksu samazināšana katra vienuma Aprīkojuma iegādes vai <strong>no</strong>mas izmaksas<br />
aprēķinam un drukāšanai (CR)<br />
Aprīkojuma instalācijas izmaksas<br />
Aprēķinu uzdevumu precizitātes Izmaksas aprīkojuma izmaiņām (gaisa<br />
uzlabošana (ER)<br />
kondicionēšanas iekārtas, drošība u.c.)<br />
Iespēja ātri izmainīt mainīgos un vērtības Īpašuma izmaksas<br />
aprēķinu programmās (IF)<br />
Pārvaldības un ar sagādi saistītā personāla<br />
Ievērojami uzlabots aprēķinu un izmaksas<br />
drukāšanas ātrums (IS)<br />
Sākotnējas izmaksas<br />
Ieguvumi <strong>no</strong> ierakstu uzturēšanas Operētājsistēmas programmatūras<br />
uzdevumu uzlabošanas<br />
izmaksas<br />
Iespēja "automātiski" vākt un uzkrāt datus Komunikācijas aprīkojuma instalācijas<br />
<strong>no</strong> ierakstiem (CR, IS, ER)<br />
izmaksas (telefonlīnijas, datu līnijas u.c.)<br />
Ierakstu pilnīgāka un sistēmatiskāka Palaides personāla izmaksas<br />
uzturēšana (CR, ER)<br />
Darbaspēka meklēšanas un salīgšanas<br />
Paaugstināta ierakstu uzturēšanas ietilpība izmaksas<br />
- vietas un izmaksu ziņā (CR)<br />
Zaudējumi <strong>no</strong> sistēmas nepalaišanas<br />
Ierakstu uzturēšanas standartizēšana (CR, Ar projektu saistītas izmaksas<br />
IS)<br />
Lietojumprogrammatūras iegādes<br />
Uzlabota ierakstu uzkrāšanas drošība (ER, izmaksas<br />
CR, MC)<br />
Programmatūras pielāgošanas izmaksas<br />
Uzlabota ierakstu pārnesamība (IF, CR, Iekšējo lietojumu izstrādes darbaspēka,<br />
IS)<br />
u.c. izmaksas<br />
Ieguvumi <strong>no</strong> ierakstu meklēšanas Lietotāju personāla apmācības izmaksas<br />
uzdevumu uzlabošanas<br />
Datu vākšanas un datu instalācijas<br />
Ātrāka ierakstu izguve (IS)<br />
procedūru izmaksas<br />
Uzlabota iespēja piekļūt ierakstiem <strong>no</strong> Dokumentācijas sagatavošanas izmaksas<br />
lielām datu bāzēm (IF)<br />
Izstrādes pārvaldības izmaksas<br />
Uzlabota iespēja veikt labojumus ierakstos Nepārtrauktas izmaksas<br />
datu bāzēs (IF, CR)<br />
Sistēmu uzturēšanas izmaksas (a<strong>par</strong>atūra,<br />
Spēja savie<strong>no</strong>t vietnes, kurām<br />
programmatūra un telpas)<br />
nepieciešama meklēšanas iespēja, ar Īres izmaksas (elektrība, telefoni, u.c.)<br />
telekomunikāciju palīdzību (IF, IS) A<strong>par</strong>atūras amortizācijas izmaksas<br />
Iespēja auditēt un analizēt ierakstu Sistēmu pārvaldības, ekspluatācijas un<br />
meklēšanas aktivitātes (MC, ER) plā<strong>no</strong>šanas aktivitātēs iesaistītā personāla<br />
Ieguvumi <strong>no</strong> sistēmas pārveidošanas izmaksas<br />
iespēju uzlabošanas<br />
Iespēja vienlaicīgi mainīt visas ierakstu<br />
klases (IS, IF, CR)<br />
Iespēja pārvietot lielus datu failus (IS, IF)<br />
Iespēja veidot jaunus failus, apvie<strong>no</strong>jot<br />
citu failu elementus (IS, IF)<br />
Ieguvumi <strong>no</strong> analīzes un simulācijas<br />
iespēju uzlabošanas<br />
Iespēja ātri veikt sarežģītus, vienlaicīgus<br />
aprēķinus (IS, IF, ER)<br />
Iespēja veidot simulācijas sarežģītām
<strong>par</strong>ādībām, atbildot uz jautājumu "kas būs,<br />
ja..." (MC, IF)<br />
Iespēja savākt lielu apjomu datu<br />
plā<strong>no</strong>šanai un lēmumu pieņemšanai (MC,<br />
IF)<br />
Ieguvumi <strong>no</strong> procesu un resursu<br />
pārvaldības uzlabošanas<br />
Samazināta darbaspēka nepieciešamība<br />
procesu un resursu pārvaldībai (CR)<br />
Uzlabota iespēja savirknēt procesus, kā,<br />
piemēram, veidojot konveijeru (CR, MC,<br />
IS, ER)<br />
Uzlabota iespēja uzturēt ilgstošu resursu<br />
uzraudzību (MC, ER, IF)<br />
Saīsinājumi: CR - izmaksu samazināšana;<br />
ER - kļūdu samazināšana; IF - elastīguma<br />
paaugstināšana; IS - aktivitātes ātruma<br />
paaugstināšana; MC - uzlabota pārvaldības<br />
plā<strong>no</strong>šana vai kontrole.<br />
Tehniskā realizējamība<br />
Veicot tehnisko analīzi, analītiķis <strong>no</strong>vērtē sistēmas koncepcijas tehniskos plusus,<br />
<strong>par</strong>alēli uzkrājot informāciju <strong>par</strong> veiktspēju, uzticamību, uzturamību un produktivitāti.<br />
Dažos gadījumos, sistēmas analīzes solis iekļauj arī ierobežotu izpēti un projektēšanu.<br />
Tehniskā analīze sākas ar sistēmas tehniskās dzīvotspējas <strong>no</strong>vērtēšanu. Kādas<br />
teh<strong>no</strong>loģijas ir nepieciešamas, lai apmierinātu sistēmas funkcionalitāti un veiktspēju<br />
Kādi materiāli, metodes, algoritmi vai procesi ir nepieciešami un kādi ir to izstrādes<br />
riski Kā šīs teh<strong>no</strong>loģijas ietekmēs izmaksas<br />
Starp rīki, pieejamiem tehniskas analīzes veikšanai, var minēt dažus, kā, piemēram,<br />
matemātiskas modelēšanas un optimizēšanas tehnikas, iespējamības un statistikas,<br />
rindošanas teorija un kontroles teorija.<br />
Blanchard un Fabrycky definē kritēriju kopu modeļu izmantošanai, veicot tehnisko<br />
analīzi, šādi:
1. Modelim ir jāreprezentē sistēmas konfigurācijas dinamiku pietiekami vienkāršu, lai<br />
to varētu viegli saprast un manipulēt ar to, tai pat laikā pietiekami tuvu realitātei.<br />
2. Modelim ir jāiezīmē tie faktori, kuri ir svarīgi problēmas risināšanai un <strong>no</strong>klusēt<br />
tos, kuri nav tik svarīgi.<br />
3. Modelis ir jāveido kā vispārējs, iekļaujot visus būtiskus faktorus un tam ir jābūt<br />
uzticamam, ņemot vērā rezultātu atkārtojamību.<br />
4. Modeļa projektējumam jābūt pietiekami vienkāršam, lai savlaicīgi implementēt<br />
problēmu risinājumus.<br />
5. Modeļa projektējumam ir jāiekļauj <strong>no</strong>teikumi vieglai modificēšanai un/vai<br />
papildināšanai, lai ļautu <strong>no</strong>vērtēt papildus faktorus atbilstoši prasībām.<br />
No tehniskās analīzes iegūtie rezultāti veido bāzi citiem "sākt/nesākt" lēmumiem. Ja<br />
tehniskais risks ir <strong>no</strong>pietns, ja modelis <strong>no</strong>rāda uz pieprasītas funkcijas vai veiktspējas<br />
realizācijas neiespējamību, ja sistēmas daļas vienkārši nav savie<strong>no</strong>jamas - ir jāveic<br />
solis atpakaļ !<br />
14.1. <strong>Konspekts</strong> 1<br />
Projektēšanas pamati un principi<br />
(Design Concepts and Principles)<br />
<strong>Izmantoti</strong>e materiāli:<br />
Roger S. Pressman. “Software Engineering. A Practioners Approach” – McGraw-Hill.<br />
Inc., 1997, 13. <strong>no</strong>daļa (lpp.341-364)<br />
Lekcijas plāns<br />
Projektējuma dokumentācija<br />
Secinājumi<br />
Projektēšanas metodes<br />
Datu projektēšana<br />
Arhitektūras projektēšana<br />
Arhitektūras projektēšanas process<br />
Projektējuma pēc beigu apstrāde
1. attēls. Analīzes modeļa pārveidošana <strong>par</strong> programmatūras projektējumu<br />
Projektējuma dokumentācija<br />
Projektējuma dokumentācijas sagatave:<br />
I. Sfēra<br />
A. Sistēmas mērķi<br />
B. Galvenās programmatūras prasības<br />
C. Projektējuma ierobežojumi<br />
II. Datu projektējums<br />
A. Datu objekti un izrietošas datu struktūras<br />
B. Failu un datu bāžu struktūras<br />
1. ārējo failu struktūra<br />
a. loģiskā struktūra<br />
b. loģiskais ierakstu apraksts<br />
c. piekļuves metodes<br />
2. globālie dati<br />
3. failu un datu saistes <strong>no</strong>rādes<br />
III. Arhitektūras projektējums<br />
A. Datu un kontroles plūsmas apraksts<br />
B. Atvasināta programmas struktūra<br />
IV. Saskarņu projektējums<br />
A. Cilvēka-datora saskarnes specifikācija<br />
B. Cilvēka-datora saskarnes projektējuma likumi<br />
C. Ārējo saskarņu projektējums<br />
1. Saskarnes uz ārējiem datiem<br />
2. Saskarnes uz ārējām sistēmām vai ierīcēm<br />
D. Iekšējo saskarņu projektējuma likumi<br />
V. Procesuāls projektējums<br />
Katram modulim:<br />
A. Apstrādes apraksts<br />
B. Saskarņu apraksts<br />
C. Projektējuma valodas (vai citu) apraksts<br />
D. Lietotie moduļi<br />
E. Iekšējo datu struktūras<br />
F. Komentāri/ ierobežojumi<br />
VI. Prasību saistes <strong>no</strong>rādes<br />
VII. Testēšanas <strong>no</strong>teikumi<br />
A. Testēšanas vadlīnijas
B. Integrācijas stratēģija<br />
C. Īpašie apsvērumi<br />
VIII. Īpašas piezīmes<br />
IX. Pielikumi<br />
Katra projektējuma dokumentācijas sadaļa attiecas uz dažādiem projektējuma modeļu<br />
aspektiem. Numurētas sekcijas ir <strong>par</strong>asti pabeigtas, kad projektētājs sagatavo<br />
programmatūras risinājuma prezentāciju. Liela daļa informācijas, kuru satur I sekcija,<br />
nāk <strong>no</strong> programmatūras prasību specifikācijas (PPS) un analītiskā modeļa. II sekcija<br />
apraksta ārējo datņu struktūru, iekšējo datu struktūru un šķersatsauces starp datu<br />
objektiem un konkrētām datnēm. III sekcija uzskatāmi <strong>par</strong>āda, kā programmatūras<br />
arhitektūra izriet <strong>no</strong> analītiskā modeļa. IV un V sekcijas attīstās līdz ar saskarņu un<br />
procedūru projektējumu. VI sekcija satur prasību šķērsatsauces, kuru mērķis ir<br />
izveidot matricu, kurā būtu redzams, kā programmatūras projektējums apmierina<br />
klienta prasības, kā arī identificēts konkrēto prasību implementācijas kritiskums,<br />
sadalot tās pa moduļiem. VII sadaļa satur pirmo testēšanas dokumentācijas fāzi, kā arī<br />
<strong>no</strong>rādījumus produkta piegādei klientam. Visbeidzot, IX sadaļa satur<br />
papildinformāciju - algoritmu aprakstus, alternatīvas procedūras, tabulārus datus,<br />
izvilkumus <strong>no</strong> citiem dokumentiem un citu svarīgu informāciju. Ir ieteicams izstrādāt<br />
arī sākotnējo darbības/instalācijas rokasgrāmatu un iekļaut to projektējuma<br />
dokumentācijas pielikumos.<br />
Secinājumi<br />
"Mēs mēģinām risināt problēmu, steidzoties caur projektēšanas procesu, lai iekrātu<br />
pietiekami laika, ko projekta beigu posmā izmantot to defektu atklāšanai un<br />
<strong>no</strong>vēršanai, kuri mums būs radušies tāpēc, ka esam sasteiguši projektēšanas procesu".<br />
Glenford Myers<br />
Projektēšanas metodes<br />
Datu projektēšana<br />
Datu projektēšana ir pirmais un pēc dažu uzskatiem pats svarīgākais <strong>no</strong> 4<br />
projektēšanas soļiem, kurus veic programminženierijas laikā. Datu projektēšanas<br />
process ir šāds: sākotnēji tiek izvēlēta loģiskā datu objektu (struktūru) reprezentācija;<br />
tad ir ļoti svarīgi identificēt programmas moduļus, kuriem ir jāsadarbojas tieši ar datu<br />
objektiem vai loģiskām struktūrām. Vasermans (Wasserman) piedāvā šādus datu<br />
projektējuma principus.<br />
1. Sistemātiskas analīzes principus, ko lieto funkciju un uzvedības izzināšanā,<br />
jālieto arī datiem.<br />
2. Visām datu struktūrām un ar tām veiktajām operācijām ir jābūt identificētām.<br />
3. Jāizveido datu vārdnīca un tā jālieto gan datu, gan programmatūras projektēšanā.<br />
4. Zema līmeņa datu projektējuma lēmumi ir jāpieņem projektēšanas procesa<br />
beigās.<br />
5. Datu struktūras reprezentācijai ir jābūt zināmai tikai tiem moduļiem, kuri tieši<br />
izmanto datus, kurus satur atbilstošas struktūras.<br />
6. Jāizveido <strong>no</strong>derīgo datu struktūru bibliotēka ar operācijām, kuras var būt veiktas,<br />
izmantojot šīs datu struktūras.<br />
7. Programmatūras projektēšanas un programmēšanas valodai ir jāatbalsta abstraktu<br />
datu tipu specifikācija un realizācija.
Arhitektūras projektēšana<br />
Arhitektūras projektēšanas galvenais mērķis ir izstrādāt modulāru programmas<br />
struktūru un reprezentēt vadības attiecības starp moduļiem. Katrai programmatūras<br />
projektēšanas metodei ir savi plusi un mīnusi. Svarīgs faktors projektēšanas metodes<br />
izvēlē ir lietojumu plašums, kam šī metode var tikt piemērota. Datu plūsmu orientēta<br />
projektēšana ir piemērojama plašam lietojumu jomu lokam. Tā ir lietderīga gandrīz<br />
visām sistēmām, kur informācija rodas secīgi un nepastāv īpaša datu struktūru formāla<br />
hierarhija.<br />
Arhitektūras projektēšanas process<br />
Datu plūsmu orientēta projektēšana ir arhitektūras projektēšanas metode, kura ļauj ērti<br />
pāriet <strong>no</strong> programmas struktūras analītiskā modeļa uz projektējuma aprakstu. Šī<br />
pāreja <strong>no</strong> informācijas plūsmas uz moduļu struktūru ir veicama 5 soļos:<br />
1. informācijas plūsmas tipa konstatēšana;<br />
2. plūsmu robežu identificēšana;<br />
3. datu plūsmu diagrammas (DPD) attēlošana <strong>par</strong> programmas struktūru;<br />
4. vadības hierarhijas definēšana;<br />
5. izveidojušās struktūras uzlabošana, izmantojot dažādus projektēšanas paņēmienus<br />
un heiristikas.<br />
Pārveidošanas (transform) plūsma:<br />
Sistēmas pamatmodelī (datu plūsmas modeļa 0. līmenis) informācijai ir jāienāk un<br />
jāiznāk <strong>no</strong> programmatūras "ārējās pasaules" formā. Informācija, kas ienāk sistēmā pa<br />
ārējo datu pārveidošanas ceļiem uz iekšējo formu, ir ienākošā (incoming) plūsma.<br />
Ienākošie dati tiek izlaisti caur pārveidošanas centru (transform center) un sāk<br />
virzīties pa ceļiem uz sistēmas ārpusi. Šī plūsma saucas <strong>par</strong> izejošo (outgoing)<br />
plūsmu. Ja kādā datu plūsmu diagrammas daļā saskatāmi pieminētie elementi, tā ir<br />
pārveidošanas plūsma.<br />
Transakciju (transaction) plūsma:<br />
Sistēmas pamatmodelis demonstrē pārveidošanas plūsmu, tāpēc visas datu plūsmas<br />
varētu ietilpināt šajā kategorijā.Tomēr nereti informācijas plūsmu raksturo viens datu<br />
vienums(item), ko sauc <strong>par</strong> transakciju, un kas izraisa citu datu plūsmu pa kādu <strong>no</strong><br />
daudziem iespējamiem ceļiem. Transakciju pāreja ir līdzīga pārveidošanas pārejai.<br />
Galvenās atšķirības ir pārējā <strong>no</strong> DPD uz programmatūras struktūru:<br />
1. solis - Apskata sistēmas pamatmodeli<br />
2. solis - Apskata un detalizē datu plūsmu diagrammas<br />
3. solis - Noskaidro, vai DPD fragmentam ir pārveidošanas vai transakciju plūsmu<br />
raksturiezīmes<br />
4. solis - Izolē transakciju centru, <strong>no</strong>sakot ienākošo un izejošo plūsmu robežas<br />
5. solis - Attēlo DFD <strong>par</strong> programmas struktūru, kas atbild <strong>par</strong> vadības plūsmas<br />
organizēšanu<br />
6. solis - Caurskata DFD procesus ("burbuļus") un attēlo tos <strong>par</strong> atbilstošiem<br />
moduļiem<br />
7. solis - Detalizē pirmās iterācijas programmas struktūru, izmantojot projektēšanas<br />
heiristikas, lai uzlabotu programmatūras kvalitāti<br />
Projektējuma pēcapstrāde<br />
Veiksmīgas pārveidošanas vai transakciju attēlošanas (mapping) beigās <strong>par</strong>asti seko
papildus dokumentēšana, kas ir daļa <strong>no</strong> arhitektūras projektēšanas procesa. Pēc tam,<br />
kad struktūra ir izveidota un detalizēta, ir jāveic šādi uzdevumi:<br />
jāizstrādā apstrādes apraksts katram modulim;<br />
jāizstrādā saskarņu apraksts katram modulim;<br />
jādefinē lokālo un globālo datu struktūras;<br />
jāatzīmē visi projektējuma ierobežojumi;<br />
jāveic projektējuma apskate (review);<br />
jāapsver optimizācija (ja nepieciešama un pamatojama).<br />
14.2. <strong>Konspekts</strong> 2<br />
Sistēmas projektēšana - pāreja <strong>no</strong> DFD uz arhitektūras projektējumu<br />
<strong>Izmantoti</strong>e materiāli:<br />
Roger S. Pressman. “Software Engineering. A Practioners Approach” – McGraw-Hill.<br />
Inc., 1997, 13. <strong>no</strong>daļa (lpp.375-391)<br />
Lekcijas plāns<br />
Arhitektoniskā projektēšana<br />
Transformācijas plūsma<br />
Transakciju plūsma<br />
Projektēšanas piemērs<br />
Arhitektoniskā projektēšana<br />
Datu plūsmu-orientēta projektēšana ir arhitektoniskās projektēšanas metode, kura ļauj<br />
ērti pāriet <strong>no</strong> analīzes modeļa uz programmas struktūras projektējuma aprakstu. Pāreja<br />
<strong>no</strong> informācijas plūsmas (reprezentētas kā datu plūsmu diagramma) uz programmas<br />
struktūru <strong>no</strong>sacīti sastāv <strong>no</strong> 5 soļiem:<br />
(1) <strong>no</strong>saka informācijas plūsmas tipu;<br />
(2) identificē plūsmas robežas;<br />
(3) datu plūsmu diagrammu attēlo <strong>par</strong> programmas struktūru;<br />
(4) ar „faktorēšanas” metodi definē vadības hierarhiju;<br />
(5) rezultējošo struktūra pilnveido, izmantojot dažādus projektēšanas paņēmienus un<br />
heiristiskas metodes.<br />
Transformācijas plūsma<br />
Fundamentālajā sistēmas modelī (datu plūsmas diagrammas 0. līmenis) informācija<br />
ieiet un iziet <strong>no</strong> sistēmas "ārējās pasaules" formā (skat. 1.att.). Informācija ieiet<br />
sistēmā pa ceļiem, kas pārveido ārējos datus iekšējā formā, tāpēc to sauc <strong>par</strong> ienākošo<br />
plūsmu. Sistēmas kodolā <strong>no</strong>tiek pārveidošana jeb transformācija. Ieejas dati tiek<br />
izlaisti caur transformācijas centru un sāk virzīties uz sistēmas ārpusi. Datus, kuri iziet<br />
pa šiem ceļiem, sauc <strong>par</strong> izejošo plūsmu. Kopējā plūsma rit secīgi un tā iet pa vienu<br />
vai dažiem "taisniem" ceļiem. Kad kādam datu plūsmas diagrammas segmentam<br />
piemīt šādas raksturiezīmes, mums ir transformācijas plūsma.<br />
Transakciju plūsma<br />
Fundamentālais sistēmas modelis vienmēr satur transformācijas plūsmu, tādējādi tā<br />
iespējams raksturot ikvienu datu plūsmu. Tomēr informācijas plūsmu nereti var<br />
raksturot, izmantojot vienu datu vienumu, ko sauc <strong>par</strong> transakciju un kura izraisa
pārējās datu plūsmas. Transakciju plūsma <strong>par</strong>ādās, kad datu plūsmu diagramma<br />
pieņem 2.att. redzamo formu.<br />
1. attēls. Informācijas plūsma<br />
Transakciju plūsmu raksturo datu kustība pa ieejas ceļiem, pārveidojot ārējās pasaules<br />
informāciju <strong>par</strong> transakciju. Transakcija tiek aprēķināta, <strong>par</strong> pamatu ņemot tās vērtību,<br />
tiek uzsākta plūsma pa vienu <strong>no</strong> darbības ceļiem (action paths). Informācijas plūsmas<br />
centru, kurš izstaro darbības ceļus, sauc <strong>par</strong> transakcijas centru.<br />
2. attēls. Transakciju plūsma<br />
Transformāciju attēlošana (Tranform mapping)<br />
Transformāciju attēlošana ir projektēšanas soļi, kuri ļauj DFD ar transformācijas<br />
plūsmas raksturiezīmēm attēlot kā iepriekš definētu sagatavi programmas struktūrām.<br />
Piemērs.<br />
Sistēmas apraksts<br />
Lai ilustrētu projektēšanas procesu, aprakstīsim SafeHome drošības sistēmas izstrādi.<br />
SafeHome sistēma ļauj mājas saimniekam konfigurēt drošības sistēmu, kad tā ir<br />
instalēta, pārvaldīt drošības sistēmai pievie<strong>no</strong>tus sensorus un darboties ar
papildtastatūru un funkcionālo tastatatūru, ko satur SafeHome vadības panelis (3.<br />
attēls)<br />
3. attēls. SafeHome vadības panelis<br />
Veicot instalāciju, SafeHome vadības panelis tiek izmantots sistēmas konfigurēšanai.<br />
Katram sensoram tiek piešķirts numurs un tips, tiek uzstādīta galvenā <strong>par</strong>ole sistēmas<br />
ieslēgšanai un izslēgšanai, kā arī tiek ievadīts telefona numurs, kas tiks uzgriezts, ja<br />
sistēma <strong>no</strong>strādās.<br />
Kad tiek atpazīts sensora <strong>no</strong>tikums, sistēma rada skaņas signālu. Pēc konfigurācijā<br />
<strong>no</strong>teiktā laika intervāla sistēma uzgriež telefona numuru un ziņo <strong>par</strong> <strong>no</strong>tikuma vietu<br />
un dabu. Zvans tiek atkārtots ik pa 20 sekundēm, kamēr uz to netiek atbildēts.<br />
Visa veida mijiedarbība ar SafeHome tiek pārvaldīta <strong>no</strong> lietotāju-mijiedarbības<br />
apakšsistēmas, kura <strong>no</strong>lasa ievadu, ko <strong>no</strong>drošina papildtastatūra un funkcionālā<br />
tastatūra, attēlo paziņojumus un sistēmas statusu uz LCD ekrāna....<br />
0. līmeņa datu plūsmu diagramma SafeHome sistēmai ir <strong>par</strong>ādīta 4. attēlā.<br />
4. attēls. Konteksta līmeņa datu plūsmu diagramma<br />
Projektējuma soļi<br />
1. solis - caurskatīt fundamentālo sistēmas modeli jeb 0. līmeņa DPD (5. att.).
5. attēls. 1. līmeņa datu plūsmu diagramma<br />
2. solis - caurskatīt un uzlabot sistēmas datu plūsmu diagrammu (6. att.).<br />
6. attēls. 2. līmeņa datu plūsmu diagramma<br />
3. solis - <strong>no</strong>teikt, vai DPD ir transformācijas vai transakcijas plūsmu raksturiezīmes<br />
(7. att.).<br />
4. solis - izolēt transformācijas centru, <strong>no</strong>rādot ienākošās un izejošās plūsmas robežas<br />
(7. att.).
7. attēls. 3. līmeņa datu plūsmu diagramma ar plūsmas robežām<br />
5. solis - veikt "pirmā-līmeņa faktorēšanu (factoring)" (8. att.).
8. attēls. Pirmā-līmeņa „faktorējums"<br />
6. solis - veikt "otrā-līmeņa faktorējumu" (9. att.).
9. attēls. Pirmā līmeņa faktorējums<br />
7. solis - uzlabot pirmo sistēmas struktūras iterāciju, izmantojot heiristisku<br />
projektēšanu programmatūras kvalitātes uzlabošanai (10. att.).<br />
10. attēls. "Pirmā slīpējuma" sistēmas struktūra
Transakciju attēlošana (mapping).<br />
Daudzos lietojumos viens datu vienums izraisa vienu vai vairākas informācijas<br />
plūsmas, kuras ietekmē funkciju, kuru satur šis datu vienums (11. att.).<br />
Transakciju attēlošanas soļi:<br />
1. solis - Caurskatīt fundamentālo sistēmas modeli.<br />
2. solis - Caurskatīt un uzlabot datu plūsmas diagrammu.<br />
3. solis – Noteikt, vai DPD ir transformācijas vai transakcijas plūsmas raksturiezīmes.<br />
4. solis - Identificēt transakcijas centru un plūsmas raksturiezīmes katram darbību<br />
ceļam.<br />
5. solis - Attēlot DPD <strong>par</strong> programmas struktūru, kas būs atbildīga <strong>par</strong> transakciju<br />
veikšanu.<br />
6. solis - Sadalīt un uzlabot transakciju struktūru un katra darbību ceļa struktūru.<br />
7. solis - Uzlabot pirmo programmas struktūras iterāciju, izmantojot projektēšanas<br />
heiristikas programmatūras kvalitātes uzlabošanai.<br />
11. attēls. Transakcijas attēlošana<br />
15.1. <strong>Konspekts</strong><br />
Konfigurācijas pārvaldība<br />
(Configuration Management)<br />
<strong>Izmantoti</strong>e materiāli:
Roger S. Pressman. “Software Engineering. A Practioners Approach” – McGraw-Hill.<br />
Inc., 1997, 9. <strong>no</strong>daļa (lpp.209-227)<br />
Lekcijas plāns<br />
Kas ir programmatūras konfigurācijas pārvaldība<br />
Bāzlīnijas<br />
Programmatūras konfigurācijas vienumi<br />
Programmatūras konfigurācijas pārvaldības process<br />
Programmatūras konfigurācijas objektu identifikācija<br />
Versiju kontrole<br />
Izmaiņu vadība<br />
Konfigurācijas audits<br />
Stāvokļa uzskaite<br />
Kas ir programmatūras konfigurācijas pārvaldība<br />
Programmatūras izstrādes procesa rezultātus var iedalīt 3 kategorijās:<br />
(1) programmas (koda līmenis, izpildāmās formas);<br />
(2) dokumentācija (tehniska, administratora, lietotāja);<br />
(3) dati, ko satur pati programma.<br />
Informācijas kopu, kas satur visus izstrādes procesa rezultātus, sauc <strong>par</strong><br />
programmatūras konfigurāciju.<br />
Laika gaitā konfigurācijas vienumu kļūst arvien vairāk un vairāk. Arī programmatūras<br />
izmaiņas dara savu. Kā vēsta programmatūras inženierijas Pirmais likums : "Nav<br />
svarīgi, kurā solī jūs atrodaties sistēmas dzīves ciklā, sistēma mainīsies un sistēmas<br />
tieksme mainīties augs līdzi dzīves ciklam".<br />
Bāzlīnijas<br />
Izmaiņas ir dzīves neizbēgama realitāte programmatūras izstrādē. Pasūtītāji vēlas<br />
mainīt prasības. Izstrādātāji vēlas mainīt tehnisko pieeju. Vadītāji vēlas mainīt<br />
projekta pieeju. Kāpēc Atbilde ir tiešām ļoti vienkārša. Laikam ejot uz priekšu, visas<br />
iesaistītās puses uzzina vairāk <strong>par</strong> to, ko viņi vēlas, kādu pieeju labāk izvēlēties u.tml..<br />
Šīs jaunās zināšanas ir galvenais izmaiņu virzītājs, un visbiežāk izmaiņas ir<br />
pamatotas, ko, protams, ir grūti pieņemt izstrādātājiem.<br />
Bāzlīnijas ir programmatūras konfigurācijas pārvaldības koncepcija, kas palīdz mums<br />
pārvaldīt izmaiņas bez <strong>no</strong>pietnām traucējumiem pamatoto izmaiņu realizācijai. IEEE<br />
Std. 610.12-1990 definē bāzlīnijas sekojoši: Specifikācija vai produkts, kurš formāli ir<br />
apskatīts un saskaņots, kurš tādējādi kalpo <strong>par</strong> pamatu turpmākai izstrādei un kurš var<br />
tikt mainīts, tikai izmantojot formālu vadības procedūru.<br />
Viens veids, kā ilustrēt bāzlīnijas, ir analoģija: Iedomājieties virtuves durvis lielā<br />
restorānā. Lai izvairītos <strong>no</strong> sadursmēm, viena durvju puse ir atzīmēta kā IEEJA, bet<br />
otra - kā IZEJA. Durvīm ir ierīkoti slēdži, kuri ļauj katrai durvju pusei vērties tikai<br />
savā virzienā. Ja oficiants pieņem pasūtījumu virtuvē, <strong>no</strong>liek to uz paplātes un tad<br />
saprot, ka ir paņēmis ne<strong>par</strong>eizo šķīvi, viņš var ātri, bez problēmām <strong>no</strong>mainīt šķīvjus<br />
pirms iziešanas <strong>no</strong> virtuves. Bet, ja oficiants jau ir paspējis iziet <strong>no</strong> virtuves un iedot<br />
ne<strong>par</strong>eizo šķīvi restorāna apmeklētājam, apmeklētājam aizrādot <strong>par</strong> kļūdu, oficiantam<br />
ir jāseko <strong>no</strong>teiktai procedūrai: (1) paskatīties pasūtījuma lapā, lai pārliecinātos <strong>par</strong><br />
kļūdu; (2) atvai<strong>no</strong>ties; (3) atgriezties virtuvē caur IEEJAs durvīm; (4) paskaidrot<br />
problēmu; un tā tālāk...
Bāzlīnijas ir analogs šķīvim, kurš ceļo <strong>no</strong> virtuves līdz restorāna apmeklētājam. Pirms<br />
programmatūras konfigurācijas vienums (item) kļūst <strong>par</strong> bāzlīniju, izmaiņas var <strong>no</strong>tikt<br />
ātri un neformāli. Savukārt, ja bāzlīnijas ir <strong>no</strong>dibinātas, mēs figurāli esam izgājuši ārā<br />
pa viena virziena durvīm, un turpmākās izmaiņas var <strong>no</strong>tikt tikai pēc <strong>no</strong>teiktas<br />
procedūras. Zemāk ir attēloti konfigurācijas pārvaldības izplatītākie vienumi (1.<br />
attēls) un to saistība ar projekta datubāzi (si<strong>no</strong>nīmi - projekta datne, repozitorijs) (2.<br />
attēls).<br />
1.attēls. Izplatītākas programmatūras bāzlīnijas.
2.attēls. "Bāzlīnijoti"programmatūras konfigurācijas vienumi un projekta datubāze.<br />
Programmatūras konfigurācijas vienumi<br />
Sekojoši konfigurācijas vienumi ir galvenie un veido vadlīniju kopu:<br />
1. Sistēmas specifikācija<br />
2. Programmatūras projekta plāns<br />
3. Programmatūras prasību specifikācija<br />
a. Grafiskie analīzes modeļi<br />
b. Procesu specifikācija<br />
c. Prototips(i)<br />
d. Matemātiskā specifikācija<br />
4. Sākotnēja lietotāju rokasgrāmata<br />
5. Projektējuma specifikācija<br />
a. Datu projektējuma apraksts<br />
b. Arhitektūras projektējuma apraksts<br />
c. Moduļu projektējuma apraksti<br />
d. Saskarņu projektējuma apraksti<br />
e. Objektu apraksti (objektu-orientētas izstrādes gadījumā)<br />
6. Programmatūras koda izdruka<br />
7. Testēšanas specifikācija<br />
a. Testa plāns un procedūra<br />
b. Testpiemēri un rezultāti<br />
8. Darbības un instalācijas rokasgrāmatas<br />
9. Strādājošā programmatūra<br />
a. Strādājošo moduļu kods<br />
b. Saistītie moduļi<br />
10. Datubāzes apraksts<br />
a. Shēma un failu struktūra<br />
b. Sākotnējs saturs<br />
11. Lietotāju rokasgrāmata<br />
12. Uzturēšanas dokumentācija<br />
a. Programmatūras problēmu ziņojumi<br />
b. Uzturēšanas pieprasījumi<br />
c. Izmaiņu pieprasījumi<br />
13. Programmatūras inženierijas standarti un procedūras<br />
Programmatūras konfigurācijas pārvaldības process<br />
Programmatūras konfigurācijas pārvaldība ir svarīga kvalitātes <strong>no</strong>drošināšanas<br />
sastāvdaļa. Tās galvenā atbildības sfēra ir izmaiņu vadība. Tomēr programmatūras<br />
konfigurācijas pārvaldība ir atbildīga arī <strong>par</strong> konfigurējamo vienumu identifikāciju un<br />
programmatūras versijām, programmatūras auditēšanu, lai pārliecinātos, ka tā ir<br />
izstrādāta <strong>par</strong>eizi, un visu konfigurācijas izmaiņu uzskaiti. Jebkura diskusija <strong>par</strong><br />
programmatūras konfigurācijas pārvaldību aptver sarežģītu jautājumu kopu:<br />
Kā organizācija identificē un pārvalda daudzas esošas programmas versijas (un to<br />
dokumentāciju), lai <strong>no</strong>drošinātu efektīvu izmaiņu pievie<strong>no</strong>šanu<br />
Kā organizācija vada izmaiņas pirms un pēc programmatūra ir piegādāta pasūtītājam<br />
Kurš ir atbildīgs <strong>par</strong> izmaiņu apstiprināšanu un prioritizēšanu<br />
Kā var pārliecināties, ka izmaiņas ir izpildītas <strong>par</strong>eizi<br />
Kāds mehānisms tiek lietots, lai ieviestu paveiktās izmaiņas
Šie jautājumi pieved pie 5 konfigurācijas pārvaldības uzdevumu definīcijas:<br />
identificēšana, versiju vadība, izmaiņu vadība, konfigurācijas auditēšana un stāvokļa<br />
uzskaite.<br />
Programmatūras konfigurācijas objektu identifikācija<br />
Lai vadītu un pārvaldītu programmatūras konfigurācijas vienumus, katram <strong>no</strong> tiem ir<br />
jābūt atsevišķi <strong>no</strong>sauktam un organizētam objektorientētā modelī. Identificējami ir 2<br />
veida objekti: pamatobjekti un agregātobjekti. Katram objektam ir <strong>no</strong>saukums,<br />
apraksts, resursu saraksts un "realizācija". Objekta <strong>no</strong>saukumam jāidentificē objektu<br />
nepārprotami (t.i. unikāli). Objekta apraksts ir informācija, kas identificē<br />
konfigurācijas pārvaldības vienuma tipu (dokuments, programma, dati), projekta<br />
identifikatoru un izmaiņu un/vai versijas informāciju.<br />
Katrs objekts laika gaitā mainās, tāpēc tā vēsture var tikt attēlota kā evolūcijas grafs<br />
(3. attēls).<br />
3. attēls. Konfigurācijas objekta evolūcijas grafs.<br />
Versiju vadība<br />
Versiju vadība ietver procedūras un rīkus dažādu konfigurācijas objektu versiju<br />
pārvaldībai. Konfigurācijas pārvaldība ļauj lietotājam iezīmēt alternatīvas sistēmas<br />
konfigurācijas, izvēloties attiecīgas versijas. Tas tiek <strong>no</strong>drošināts, sasaistot atribūtus<br />
katrai programmatūras versijai, un ļaujot izvēlēties konfigurāciju, aprakstot<br />
nepieciešamo atribūtu kopu. Ar "atribūtiem" ir domāts versijas numurs vai veikto<br />
izmaiņu apraksts, kas atšķir vienu programmatūras versiju <strong>no</strong> otras.<br />
Viena versiju reprezentācija ir evolūcijas grafs (3. attēls). Katrs grafa mezgls ir<br />
agregātobjekts, kas ir gatava programmatūras versija. Savukārt katra programmatūras<br />
versija ir konfigurācijas objektu vienumu kopa (programmatūras kods, dokumenti,<br />
dati) un katra versija var sastāvēt <strong>no</strong> dažādiem variantiem.
4. attēls. Versijas varianti<br />
Piemēram, iedomāsimies tādu programmas versiju, kurai ir komponentes 1, 2, 3, 4 un<br />
5 (4. attēls). Komponente 4 tiek izmantota tikai tad, ja programmatūra tiek instalēta uz<br />
datoriem, kuri izmanto krāsu monitorus, savukārt, uz mo<strong>no</strong>hromatiskiem monitoriem<br />
tiek lietota 5. komponente. Tādējādi var secināt, ka versijai ir 2 varianti:<br />
(1) komponentes 1,2,3 un 4;<br />
(2) komponentes 1,2,3 un 5.<br />
Lai instalētu <strong>par</strong>eizo programmatūras versijas variantu, katrai komponentei var<br />
piešķirt "atribūtu-kopu" - <strong>no</strong>sacījumus, kuri <strong>no</strong>saka, vai komponente ir lietojama<br />
instalējamā programmatūras versijā. Katram variantam var piešķirt vienu vai vairākus<br />
atribūtus. Piemēram, krāsas atribūtu var lietot, lai <strong>no</strong>teiktu, kuru komponenti<br />
nepieciešams iekļaut krāsu monitoru gadījumā.<br />
Izmaiņu vadība<br />
Lielam programmatūras izstrādes projektam nevadītas izmaiņas <strong>no</strong>ved pie haosa.<br />
Izmaiņu vadība iekļauj procedūras un rīkus, lai <strong>no</strong>drošinātu izmaiņu vadības<br />
mehānismu. Izmaiņu vadības process ir ilustrēts 5. attēlā.
5. attēls. Izmaiņu vadības process<br />
Izmaiņu pieprasījums tiek iesniegts un <strong>no</strong>vērtēts, lai aprēķinātu tehniskus plusus,<br />
potenciālus blakus efektus, vispārējo ietekmi uz citiem konfigurācijas objektiem un<br />
sistēmas funkcijām, kā arī tā realizācijas izmaksas. Novērtējuma rezultāti tiek<br />
pasniegti kā izmaiņu ziņojums, ko izmanto izmaiņu vadības padome (IVP) - cilvēks<br />
vai grupa, kuri pieņem gala lēmumu <strong>par</strong> izmaiņas statusu un prioritāti. Saskaņotām<br />
izmaiņām tiek veidots inženieriskais izmaiņu pieprasījums, kas raksturo izmaiņas,<br />
kuras jāveic, un apskates un auditēšanas kritērijus. Kad izmaiņas ir realizētas, izmaiņu<br />
vadības mehānisms tiek izmantots nākamās programmatūras versijas sagatavošanā.<br />
"Bloķēšanas" un "atbloķēšanas" procesi implementē divus svarīgus izmaiņu vadības<br />
elementus - piekļuves vadību un sinhronizācijas vadību (6. attēls). Piekļuves vadība<br />
pārvalda, kurš <strong>no</strong> programmatūras izstrādātājiem ir tiesīgs piekļūt un izmainīt <strong>no</strong>teiktu<br />
konfigurācijas objektu. Sinhronizācijas vadība palīdz pārliecināties, ka <strong>par</strong>alēlas<br />
izmaiņas, kuras veic divi darbinieki, nepārklāj viena otru.
6. attēls. Piekļuves un sinhronizācijas vadības procesi<br />
Konfigurācijas audits<br />
Identifikācija, versiju vadība un izmaiņu vadība palīdz programmatūras izstrādātājiem<br />
uzturēt kārtībā to, kas citādi būtu haoss. Tomēr pat visveiksmīgākais vadības<br />
mehānisms izseko izmaiņai tikai, līdz inženieriskais izmaiņu pieprasījums ir izveidots.<br />
Kā mēs varam būt pārliecināti, ka izmaiņas ir <strong>par</strong>eizi īste<strong>no</strong>tas Atbilde ir divēja: (1)<br />
izmantojot formālas tehniskas apskates un (2) veicot programmatūras konfigurācijas<br />
auditu.<br />
Programmatūras konfigurācijas audits papildina formālas tehniskas apskates,<br />
<strong>no</strong>vērtējot konfigurācijas objektu raksturiezīmes, kurām netiek pievērsta uzmanība<br />
apskašu laikā. Audits uzdod un atbild uz sekojošiem jautājumiem:<br />
1. Vai izmaiņu pieprasījumā iekļautās izmaiņas tika realizētas Vai tika veiktas<br />
kādas papildus izmaiņas<br />
2. Vai tika veikta formāla tehniska apskate, lai <strong>no</strong>vērtētu tehnisku <strong>par</strong>eizību<br />
3. Vai izstrādātāji strikti sekoja programmatūras izstrādes standartiem<br />
4. Vai izmaiņas tika iekļautas programmatūras konfigurācijas vienumos Vai<br />
izmaiņu datums un autors tika ierakstīti Vai konfigurācijas objekta atribūti<br />
atspoguļoti izmaiņās<br />
5. Vai izmaiņas bloķēšanā, atbloķēšanā un uzskaitīšanā ir sekots programmatūras<br />
konfigurācijas vadības procedūrām<br />
6. Vai visi konfigurācijas vienumi ir atbilstoši atjaunināti<br />
Stāvokļa uzskaite<br />
Konfigurācijas stāvokļa uzskaite (dažreiz saukta <strong>par</strong> stāvokļa grāmatvedību) ir<br />
programmatūras konfigurācijas vadības uzdevums, kurš atbild uz šādiem<br />
jautājumiem:<br />
1. Kas ir <strong>no</strong>ticis<br />
2. Kurš to izdarīja
3. Kad tas <strong>no</strong>ticis<br />
4. Ko tas vēl ietekmēs<br />
Informācijas plūsma šim procesam ir attēlota 5. attēlā.<br />
Konfigurācijas stāvokļa uzskaite spēlē vitālu lomu lielu programmatūras izstrādes<br />
projektu veiksmē. Kad projektā ir iesaistīti daudzi darbinieki, ļoti bieži gadās, ka<br />
"kreisā roka nezina, ko dara labā roka". Divi izstrādātāji var vienlaicīgi modificēt<br />
vienu un to pašu konfigurācijas vienumu. Tādējādi konfigurācijas stāvokļa uzskaite<br />
palīdz izvairīties <strong>no</strong> problēmām, uzlabojot komunikāciju starp iesaistītām pusēm.<br />
16.1. Dokumenti programmizstrādes gaitā<br />
16.2. Projekta uzsākšanas pārskats<br />
Unprintable file: I semestris/Kospekti/Sagataves/1.Projekta uzsaksana.doc<br />
16.3. Projekta biznesa sfēras apraksts<br />
Unprintable file: I semestris/Kospekti/Sagataves/2.Biznesa sferas apraksts.doc<br />
16.4. Projekta uzsākšanas rīkojums<br />
Unprintable file: I semestris/Kospekti/Sagataves/3.Projekta rikojums.doc<br />
16.5. Projekta sfēra<br />
Unprintable file: I semestris/Kospekti/Sagataves/4.Projekta sfera.doc<br />
16.6. Darba <strong>no</strong>stādnes<br />
Unprintable file: I semestris/Kospekti/Sagataves/5.Darba <strong>no</strong>stadne.doc<br />
16.7. Projekta plāns<br />
Unprintable file: I semestris/Kospekti/Sagataves/6.Projekta plans.doc<br />
16.8. Projekta kalendārais plāns<br />
Unprintable file: I semestris/Kospekti/Sagataves/7.Projekta kalendarais plans.mpp<br />
16.9. Programmatūras prasību specifikācijas sagatave<br />
Programmatūras prasību specifikācijas sagatave<br />
LVS standarts - Informācijas teh<strong>no</strong>loģija. Programmatūras prasību specifikācijas<br />
(PPS) ceļvedis (LVS 68:1996) - iesaka, izstrādājot projektējuma dokumentu, izmantot<br />
šādu sagatavi.
1. Ievads<br />
<strong>1.1.</strong> Nolūks<br />
1.2. Darbības sfēra<br />
1.3. Definīcijas, akronīmi un saīsinājumi<br />
1.4. Saistība ar citiem dokumentiem<br />
1.5. Pārskats<br />
2. Vispārējais apraksts<br />
2.1. Produkta perspektīva<br />
2.2. Produkta funkcijas<br />
2.3. Lietotāja raksturiezīmes<br />
2.4. Vispārējie ierobežojumi<br />
2.5. Pieņēmumi un atkarības<br />
3. Konkrētās prasības<br />
3.1. Funkcionālās prasības<br />
3.<strong>1.1.</strong> Funkcionālā prasība 1<br />
3.<strong>1.1.</strong>1. Ievads<br />
3.<strong>1.1.</strong>2. Ievade<br />
3.<strong>1.1.</strong>3. Apstrāde<br />
3.<strong>1.1.</strong>4. Izvade<br />
3.1.2. Funkcionālā prasība 2<br />
.....<br />
3.1.n. Funkcionālā prasība n<br />
3.2. Ārējās saskarnes prasības<br />
3.2.1. Lietotāja saskarne<br />
3.2.2. A<strong>par</strong>atūras saskarne<br />
3.2.3. Programmatūras saskarne<br />
3.2.4. Sakaru saskarne<br />
3.3. Veiktspējas prasības<br />
3.4. Projekta ierobežojumi<br />
3.4.1. Atbilstība standartiem<br />
3.4.2. A<strong>par</strong>atūras ierobežojumi<br />
.....<br />
3.5. Atribūti<br />
3.5.1. Drošība<br />
3.5.2. Uzturamība<br />
.....<br />
3.6. Citas prasības<br />
3.6.1. Datu bāze<br />
3.6.2. Operācijas<br />
3.6.3. Vietas adaptācija<br />
Atsauces<br />
Pielikumi<br />
Indekss<br />
16.10. Projektējuma dokumentācijas sagatave<br />
Projektējuma dokumentācijas sagatave
LVS standarts - Informācijas teh<strong>no</strong>loģija. Ieteicamā prakse programmatūras<br />
projektējuma aprakstīšanai (LVS 72:1996) - iesaka, izstrādājot projektējuma<br />
dokumentu, izmantot šādu sagatavi.<br />
1. Ievads...........................................................................................................................<br />
.....<br />
<strong>1.1.</strong> Nolūks.......................................................................................................................<br />
..<br />
1.2. Darbības<br />
sfēra..............................................................................................................<br />
1.3. Definīcijas un<br />
saīsinājumi..............................................................................................<br />
2. Saistība ar citiem<br />
dokumentiem...........................................................................................<br />
3. Dekompozīcijas<br />
apraksts.....................................................................................................<br />
3.1. Moduļu<br />
dekompozīcija..................................................................................................<br />
3.<strong>1.1.</strong> Pirmā moduļa apraksts...........................................................................................<br />
3.1.2. Otrā moduļa apraksts.............................................................................................<br />
3.2. Vienlaicīgo procesu<br />
dekompozīcija.................................................................................<br />
3.2.1. Pirmā procesa apraksts..........................................................................................<br />
3.2.2. Otrā procesa apraksts............................................................................................<br />
3.3. Datu<br />
dekompozīcija......................................................................................................<br />
3.3.1. Pirmās datu entītijas apraksts.................................................................................<br />
3.3.2. Otrās datu entītijas apraksts...................................................................................<br />
4. Atkarības<br />
apraksts..............................................................................................................<br />
4.1. Starpmoduļu<br />
atkarības..................................................................................................<br />
4.2. Starpprocesu<br />
atkarības.................................................................................................<br />
4.3. Datu<br />
atkarības..............................................................................................................<br />
5. Saskarnes<br />
apraksts............................................................................................................<br />
5.1. Moduļu<br />
saskarne..........................................................................................................<br />
5.<strong>1.1.</strong> Pirmā moduļa apraksts...........................................................................................<br />
5.1.2. Otrā moduļa apraksts.............................................................................................<br />
5.2. Procesu<br />
saskarne........................................................................................................<br />
5.2.1. Pirmā procesa apraksts..........................................................................................<br />
5.2.2. Otrā procesa apraksts............................................................................................<br />
6. Detalizētais<br />
projektējums.....................................................................................................
6.1. Moduļu detalizētais<br />
projektējums...................................................................................<br />
6.<strong>1.1.</strong> Pirmā moduļa<br />
detalizējums.....................................................................................<br />
6.1.2. Otrā moduļa detalizējums.......................................................................................<br />
6.2. Datu detalizētais<br />
projektējums.......................................................................................<br />
6.2.1. Pirmās datu entītijas<br />
detalizējums...........................................................................<br />
6.2.2. Otrās datu entītijas detalizējums.............................................................................<br />
Atsauces...........................................................................................................................<br />
....<br />
16.11. Kvalitātes plāns<br />
Unprintable file: I semestris/Kospekti/Sagataves/8.Kvalitates plans.doc<br />
16.12. Pagrieziena punktu pārskats<br />
Unprintable file: I semestris/Kospekti/Sagataves/9.Pagrieziena punktu <strong>par</strong>skats.doc<br />
16.13. Iknēdeļas statusa atskaite<br />
Unprintable file: I semestris/Kospekti/Sagataves/10.Iknedelas statusa atskaite.doc<br />
16.14. Mēneša progresa atskaite<br />
Unprintable file: I semestris/Kospekti/Sagataves/11.Menesa progresa atskaite.doc<br />
16.15. Projekta riski<br />
Unprintable file: I semestris/Kospekti/Sagataves/12.Projekta riski.doc<br />
16.16. Izmainu pieprasījums<br />
Unprintable file: I semestris/Kospekti/Sagataves/13.Izmainu pieprasijums.doc