dainius balšaitis - magistrinis (final) no-trk

Download Dainius Balšaitis - Magistrinis (final) no-trk

If you can't read please download the document

Upload: laurynasstasys

Post on 24-Oct-2014

138 views

Category:

Documents


6 download

TRANSCRIPT

VILNIAUS UNIVERSITETAS MATEMATIKOS IR INFORMATIKOS FAKULTETAS PROGRAM SISTEM KATEDRA

Daugiaagentinis program krimo proceso imitacijos modelisMulti-Agent-based Software Development Process Simulation Model

Magistro baigiamasis darbas

Atliko: Darbo vadovas: Recenzentas:

Dainius Balaitis Andrius Adamonis Laura Saviien

(paraas)

(paraas)

(paraas)

Vilnius 2011

2

SANTRAUKAiame magistro darbe autorius pasil imitavimo model, kuris taiko daugiaagent poir program krimo proceso imitacij. Program krimo proceso imitavimo sritis yra pakankamai nauja, taiau bendruomen jau turi savas nusistovjusias praktikas. Viena j imitavimo modeliams sudaryti naudojama Sistem dinamikos metodologija, kurios pagrindinis bruoas akcentuojamas procesas nekreipiant dmesio, kas j vykdo i ties. io darbo iskirtinumas taikomas agentins paradigmos poiris, sudarant model. Jo esm imituojami proces vykdantys agentai ir j charakteristikos tam, kad bt igautos proceso ir proceso vykdymo metu sukuriam artefakt charakteristikos. io darbo rezultatas yra program krimo proceso imitacijos modelis apjungiantis naumo, ini ir artefakt kokybs modelius. is modelis buvo realizuotas kaip prototipinis imitatorius su kuriuo galima atlikti tiesioginius eksperimentus. Imitavimo modeli negalima pilnai verifikuoti ir validuoti, taiau iame darbe autorius savo model validavo pakankamai isamiai tam, kad padidint pasitikjim jo teikiamais rezultatais.

3

SUMMARYIn this Masters thesis author presents a simulation model that uses multiagent-based approach to software development process simulation. Software development process simulation field is relatively new, yet it already has its best practices in the community. One of them the use of System Dynamics (SD) for simulation modelling. One of the main aspects of SD is its explicit focus on the process, as if it happens all by itself, whitout any regard for who is actually running it. Exclusiveness of this thesis is the use of agency paradigm approach to model building. The essence of this model simulation of agents, that perform activities in the process, and their characteristics to derive result variables of the process and artefacts that it produces. The result of this paper is a software development process simulation model that combines productivity, knowledge and artefact quality models. This model was implemented as a prototype simulator that can be used for experimentation. Though it is impossible to verify and validate a simulation model fully, yet the author still validated his model as thoroughly as possible to increase confidence in its results.

4

TURINYSTURINYS................................................................................................................5 VADAS.................................................................................................................8 PROGRAM KRIMO PROCESAS.............................................................................12 PROGRAM KRIMO PROCESO IMITACINIS MODELIAVIMAS......................................13 SISTEM DINAMIKA..............................................................................................15 SISTEM DINAMIKOS TAIKYMAS PROGRAM KRIMO PROCESO IMITAVIMUI............17 SOCIALINIS ASPEKTAS..........................................................................................18 AGENTAIS PAGRSTAS IMITACINIS MODELIAVIMAS ................................................20 AGENTAISGRSTO MODELIAVIMO IDJA.............................................................................................20

BANDYMAI.............................................................................................................................21 PROGRAMINS RANGOS KRJ NAUMAS IR KOGNITYVINS CHARAKTERISTIKOS. .23 NAUMOCHARAKTERISTIKOS........................................................................................................23

Tikjimosi teorija.......................................................................................................23 Tiksl nustatymo teorija............................................................................................24 Individualios charakteristikos.....................................................................................24 Apibendrinimas..........................................................................................................24 KOGNITYVINSCHARAKTERISTIKOS..................................................................................................25

8. PROGRAMINS RANGOS KRIMO PROCESO IMITACIJOS MODELIO SUDARYMAS.....26 8.1. PROGRAMINSRANGOS KRIMAS KAIP PROCESAS..........................................................................26

8.1.1. Krioklio modelis................................................................................................26 8.1.2. Iteratyvusis modelis.........................................................................................27 8.2. PROGRAMINSRANGOS KRIMO PROCESO IMITACIJOS MODELIS...........................................................28

8.2.1. Pastang Naumo Modelis (PNM) ....................................................................298.2.1.1. Tikjimosi teorija........................................................................................................29 8.2.1.2. Tiksl nustatymo teorija............................................................................................29 8.2.1.3. Individualios charakteristikos....................................................................................29 8.2.1.4. PNM rezultatai............................................................................................................30

8.2.2. ini modelis (HM).........................................................................................328.2.2.1. ini kaupimas ir modelis .........................................................................................33 8.2.2.2. P krjo ini lygio atnaujinimas..............................................................................34

8.2.3. Artefakto Kokybs Modelis (AKM).....................................................................348.2.3.1. Artefakto dydis ..........................................................................................................34

5

8.2.3.2. Artefakto kokyb........................................................................................................35

8.3. PNM, HM IR AKM MODELI

INTEGRAVIMAS...........................................................................36

8.3.1. Gebjimas........................................................................................................36 8.3.2. Uduoties sudtingumas..................................................................................368.3.3. Uduoties aikumas......................................................................................................36 8.3.4. Artefakto kokyb...........................................................................................................37

8.4. P krjo ir artefakto sveikos modelis................................................................37 8.5. IMITACIJOSMODELIO AGENTINS SAVYBS....................................................................................38

8.5.1. Aplinka ir agentai.............................................................................................38 8.5.2. Aplinka............................................................................................................398.5.2.1. Artefaktai...................................................................................................................39 8.5.2.2. Procesas.....................................................................................................................39 8.5.2.3. Laikas.........................................................................................................................39

8.5.3. Imitacins aplinkos charakteristikos ...............................................................398.5.3.1. Dalinai matoma..........................................................................................................40 8.5.3.2. Stochastika...............................................................................................................40 8.5.3.3. Epizodika..................................................................................................................40 8.5.3.4. Dinamika..................................................................................................................40

8.5.4. Agentai ...........................................................................................................408.5.4.1. Agent autonomija.....................................................................................................40 8.5.4.2. Agent intelektas.......................................................................................................41

9. IMITATORIAUS REALIZACIJA...............................................................................42 9.1. IMITATORIUJEREALIZUOTI AGENTAI............................................................................................42

9.1.1. P krjo agentas.............................................................................................42 9.1.2. Projekto vadovo agentas..................................................................................42 9.2. AGENTSPRENDIMO PRIMIMO ALGORITMAS.................................................................................43 STRUKTROS SAVYBS.........................................................................................44

9.3. IMITATORIAUS

9.3.1. Imitatoriaus struktra......................................................................................44 9.3.2. Imitatoriaus pradini duomen struktra ir valdymas......................................459.3.2.1. Proceso apibrimas.................................................................................................45 9.3.2.2. Fazs apibrimas......................................................................................................46 9.3.2.3. Projekto apibdinimas...............................................................................................46

9.4. PAGRINDINIS

IMITACIJOS ALGORITMAS.........................................................................................48

9.4.1. Laiko matavimas imitatoriuje...........................................................................48 9.4.2. Imitacijos vykdymas ir algoritmas....................................................................48 9.5. IMITACIJOSREZULTATAI IR J ATVAIZDAVIMAS................................................................................49

9.5.1. vesties kintamieji............................................................................................49 9.5.2. Rezultat kintamieji.........................................................................................49 9.5.3. Rezultat atvaizdavimas..................................................................................50

6

10. IMITATORIAUS MODELIO VERIFIKACIJA IR VALIDACIJA........................................51 10.1. VERIFIKACIJA..................................................................................................................51 10.2. VALIDAVIMOMETODAI........................................................................................................51

10.2.1. Iorinis validavimas........................................................................................5210.2.2. Modelio su modeliu validavimas.................................................................................52

10.3. Validavimo rezultatai........................................................................................52 10.3.1. Imitatoriaus iorinis validumas.......................................................................5210.3.1.1. P krjas dirbantis be pertrauk............................................................................52 10.3.1.2. P krjas dirbantis tik darbo dienomis ..................................................................53 10.3.1.3. P krjas dirbantis tik darbo valandomis (8 - 17) .................................................53 10.3.1.4. P krjas dirbantis su piet pertraukomis (12 13) .............................................53

10.3.2. IMITATORIAUS

MODELIO PALYGINIMAS SU

HM........................................................................53

10.3.2.1. Imitacijos atvejis Nr. 1.................................................................................54 10.3.2.2. Imitacijos atvejis Nr. 2................................................................................55 ..................................................................................................................................56 ..................................................................................................................................56 10.3.2.3. Imitacijos atvejis Nr. 3.................................................................................57 REZULTATAI IR IVADOS ......................................................................................58 ALTINIAI............................................................................................................60 SANTRUMPOS......................................................................................................62 PRIEDAI...............................................................................................................63 1PRIEDAS . INDIVIDUALI CHARAKTERISTIK NUSTATYMO KLAUSIMYNAI..........................................................63

Kontrols lokuso skal..............................................................................................63 Saviverts klausimynas.............................................................................................65 Pasiekim poreikio klausimynas.................................................................................66

7

VADASProgramins rangos krimo proces imitacinis modeliavimas (PKPIM) yra bdas analizuoti, atvaizduoti ir kontroliuoti program krimo proces. PKPIM apima daugyb program krimo proceso srii, toki kaip [KMR99]: Proces tobulinimas ir technologij sisavinimas, Supratimo apie procesus ir j tarpusavio dinamik gilinimas, Mokymai ir tobulinimasis, Strateginis valdymas, Planavimas, Kontrol ir operacinis valdymas.

Bendrai imitacinis modeliavimas, kaip ir PKPIM, yra eksperimentavimo bdas. Toks eksperimentavimas bando numatyti pasekmes ir pagerinti ms supratim apie imituojam program krimo proces. Kontroliuojami eksperimentai realioje organizacijos aplinkoje sunkiai gyvendinami dl didiuli kat ir laiko snaud reikaling tokiam eksperimentui atlikti [Mye76], taiau PKPIM suteikia tyrintojams ir projekt vadovams laboratorijai artimas slygas eksperimentavimui su programins rangos procesais. Egzistuoja daugyb program krimo proceso imitavimo bd. Keletas i j [KMR99]: Bsena pagrsti proceso modeliai, Diskrei vyki imitacijos, Sistem dinamika (SD). Pirmieji du bdai yra diskreios, o sistem dinamika - tolydios prigimties. Daugyb SD modeli gantinai skmingai atkartojo reali proces kiekybinius duomenis. Kelet i ymesni modeli yra pasil Abdel-Hamid [Abd89], Abdel-Hamid ir Madnick [AM91], Madachy [Mad96] bei Glickman ir Kopcho [GK95]. Visi ie modeliai sukurti panaudojant centralizuot veiklomis grindiam poir, kuris neatsivelgia sveikas individ lygmenyje [WD03].

8

Kai veiklomis grindiamas poiris pritaikomas PKPIM, vairios programins rangos krj charakteristikos, kurios i prigimties yra individualios, yra atvaizduojamos kaip visos grups vidurkiai, pavyzdiui [Abd89]: vidutinis produktyvumas, vidutin sisavinimo gaitis, vidutin perdavimo gaitis. iuo poiriu grindiami modeliai i esms daro prielaid, kad programins rangos krjai yra vienodi (homogeniki) [WD03]. Dl ios prieasties, kaip pastebjo Burke, tokie modeliai negali numatyti ir paaikinti kai kuri fakt, stebim realiame gyvenime [Bur97]. Kadangi programins rangos krimo veikla yra atliekama moni, kilo susidomjimas traukti socialines aplinkybes PKPIM modelius [WD03]. Christie ir Staley [CS99] buvo vieni pirmj, dieg socialinius aspektus tokius modelius. Jie band itirti, kaip moni tarpusavio bendravimo efektyvumas veikia JAD (angl. Joint Application Development) reikalavim proceso kokyb ir trukm. iam tikslui pasiekti jie naudojo diskret vykiais grindiam poir organizacini proces modeliavimui, o socialiniam modeliui naudojo tolydin imitacij. Tolydiojo socialinio modelio integravimas diskretj organizacin model pasirod problemikas dl i dviej paradigm skirtumo [CS99]. Tolydusis socialinis modelis neturi diskrei laiko vienet svokos, skirtingai nei diskretusis organizacinis. Galiausiai, Wickenberg ir Davidsson straipsnyje autoriai apvelg tuo metu naudotus imitavimo bdus ir vardino daugelio j pagrindinius trkumus [WD03]: Poiris proces imitavim grindiamas veiklomis (angl. activity based), Homogenikumo prielaidos vis dalyvi (vykdytoj) charakteristikos vienodos, Neatsivelgiama tai, kad program krimo proces atlieka mons. Nepaisant vis i plaiai naudojam imitavimo modeli trkum ir argument, palaikani daugeliu agent grindiamos imitacijos tinkamum program krimo proceso imitaciniam modeliavimui [WD03], kuriuos papildo program krimo proceso (PKP) imitavime vyraujanti informacijos apdorojimo dinamika [PSR98], praktikai nra tyrim, susijusi su daugiaagentins imitavimo paradigmos ir PKP imitacinio modeliavimo integravimu.

9

Darbo tikslas Pagrindinis io darbo tikslas pagrsti daugiaagenio imitacinio modeliavimo tinkamum program krimo proceso imitaciniam modeliavimui. iam tikslui pasiekti reikia: Apibrti proceso ir konkreiai program krimo proceso imitavimo dalykin srit bei galimas imituoti charakteristikas ir bdus, taip pat nustatyti daugiaagenio imitacijos bdo galimybes, remiantis program krimo proceso imitavim nagrinjaniais literatros altiniais. Sudaryti program krimo proceso imitavimo model, pritaikant daugiaagentin imitacijos poir program krimo proceso imitavimui. Realizuoti sudaryto program krimo proceso imitavimo modelio prototip kaip imitatori tam, kad galima bt atlikti eksperimentus. Validuoti imitatori tiek, kiek leidia objektyvios galimybs, siekiant pagrsti imitavimo modelio, kur gyvendina imitatorius, adekvatum realiai vykstantiems procesams. Proceso imitavimo ir program krimo proceso imitavimo dalykin sritis aptariama pirmuose septyniuose skyriuose. I j 6-ame ir 7-ame skyriuose aptariama specifikai agentais grstas imitavimas ir imituojamos charakteristikos. Remiantis surinktais duomenimis, sudarytas diaugiaagentis program krimo proceso modelis (8-as skyrius) ir is modelis gyvendintas kaip program sistema imitatorius, kurio savybs apibdintos 9 skyriuje. Panaudoti matematiniai modeliai aprayti io darbo 8.2 poskyryje. Imitatoriaus gyvendinimui panaudoti principai aprayti 8.3 poskyryje. Daugiaagenio modelio savybs idstytos 8.4 poskyryje, o 8.5 poskyryje apibrtos imitatoriaus charakteristikos. Usibrti tikslai skmingai gyvendinti. Buvo sudarytas agentais pagrstos paradigmos modelis program krimo proceso imitacijai. is modelis panaudoja ne tik inovatyv poir program krimo proceso imitacij, taiau taipogi leidia matuoti imitacijos metu kuriam ieigos artefakt kokyb pasinaudojus Hanakawa ini Modeliu (HM).

10

gyvendintas imitatorius leido atlikti tiesioginius eksperimentus su modeliu (10 skyrius), todl galima buvo atlikti Imitatoriaus modelio validacij, lyginant imitacijos rezultatus su kito modelio, aprayto literatroje, rezultatais. Tai duoda pagrindo manyti, kad imitatoriaus prototipas gyvendintas korektikai.

11

PROGRAM KRIMO PROCESASProgramins rangos krimo procesas (PKP) tai rinkinys veikl, kurias atlieka programins rangos krjai. PKP rezultatas yra darbo produkt rinkinys. Kai kurie i t darbo produkt kuriami tam, kad bt galima juos panaudoti sekaniose veiklose. Paios veiklos bei tvarka, kuria jos bus vykdomos, suplanuojamos ankstyvoje programins rangos krimo projekto stadijoje pagal kok nors i anksto apibrt proces. Keletas PKP veikl pavyzdi: Reikalavim igavimas, Architektrin analiz, Testavimo atvej specifikavimas, Programavimas, Naudojimo atvej sukrimas.

Dauguma veikl priima kelet darbo produkt kaip eig (angl. input) ir sukuria vien ar daugiau nauj arba pakeist darbo produkt kaip ieig (angl. output). Pavyzdys i RUP (Rational Unified Process) modelio: architektrin analiz tai veikla, kuri eigoje priima naudojimo atvej model, papildomus reikalavimus, verslo model ir architektros apraym. Taigi, program krimo proces galima modeliuoti kaip veikl sekas, kurios yra susietos su kitomis veiklomis per kuriamus darbo produktus. Programins rangos krimo projektai danai nepateisina lkesi, susijusi su j kaina, kokybe ir trukme. Standish Group atliktos JAV nacionalins apklausos ataskaitoje pateikiama, kad vidutinikai tik 44% projekt baigiami laiku, daniausiai projektai trunka 222% ilgiau nei planuota, 189% virija planuot biudet, 70% projekt negyvendina planuotos apimties, o 30% projekt nutraukiami nesulaukus projekto pabaigos [PQA06]. Programins rangos krimo bendruomen pasuko PKP apibrimo keliu tam, kad sumaint projekt kain, trukm, padidint kokyb bei tam, kad leist prognozuoti iuos kintamuosius programins rangos krimo metu. Statiniai PKP modeliai buvo pakankamai skmingai naudojami tam, kad leist prognozavim, o empiriniai tyrinjimai padjo geriau suprasti, kaip veiklos veikia ir yra veikiamos darbo produkt, kuriais manipuliuoja. Kita vertus, apie skirting veikl apjungimo pasekmes ir tak tas veiklas vykdaniai organizacijai yra inoma visai nedaug. Keiiant bd, kuriuo organizacija kuria programin rang, galima pasiekti akivaizdaus ilaid sumajimo ir kokybs padidjimo, taiau t pokyi gyvendinimas gali nemaai kainuoti. 12

PROGRAM KRIMO PROCESO IMITACINIS MODELIAVIMASVienas i PKP dinamikos tyrinjimo ir prognozavimo bd yra imitacinis modeliavimas. Programins rangos krimo proces imitacija sulaukia vis daugiau dmesio ne tik i akademinio pasaulio, bet ir i programins rangos krimo industrijos. Kaip rodymas yra kasmet rengiamas ProSim (Software Process Simulation Modeling) praktinis seminaras, pradtas rengti 1998 metais. Kelnerio ir kit autori parengtame straipsnyje [KMR99] apibendrinami darbai pristatyti pirmame Tarptautiniame praktiniame seminare skirtame program krimo proceso imitaciniam modeliavimui (ProSim98). Pagrindinis io straipsnio indlis yra tas, kad jame pateikiamas struktrizuotas vadas program krimo proceso imitacinio modeliavimo srit. Straipsnyje identifikuojami ir detaliai apibriami vairs tikslai (atsakant klausim kodl?), apimtys (atsakant klausim k?) ir metodai (atsakant klausim kaip?) imitaciniam program krimo proceso modeliavimui atlikti. Kaip teigiama straipsnyje, pagrindinis imitacinio modeliavimo tikslas yra pagalba sprendim primime. Imitacinis modeliavimas padeda priimti sprendimus susijusius su [KMR99]: strateginiu valdymu, planavimu, vykdomuoju (operaciniu) valdymu, proces gerinimu, mokymu, supratimu.

Autori teigimu, bet kuris vienas imitacinio modeliavimo bdas gali bti panaudotas sprendiant daugel program krimo proceso imitacinio modeliavimo svarstom problem, jei modelio sudarytojas turi pakankamai patirties kurti imitacinius modelius. Taiau n vienas bdas nra tinkamas vis program krimo proceso imitacinio modeliavimo aspekt tyrimams atlikti, bent jau ta prasme, kad modelis natraliai atvaizduot modeliuojam srit [KMR99]. Straipsnio apibendrinime lyginami tolydaus laiko imitavimai su diskreiais, vykiais ir bsenomis pagrstais, imitavimais. Pasak Kelnerio ir bendraautori tolydieji imitavimai tinkamesni makroskopinio lygio ir/arba ilgalaikei analizei, o diskretieji labiau tinka emo lygio analizei, pavyzdiui proceso arba resurs panaudojimo kokioje nors fazje analizei [KMR99]. 13

Programins rangos krimo proceso imitacija naudojama programins rangos krimo projekt valdymo palaikymui, proces tobulinimui bei supratimo apie procesus gilinimui. Nepaisant fakto, kad programins rangos krimo procesas atliekamas keleto bendradarbiaujani individ, daugelyje plaiai naudojam proceso imitacijos metod pasirinktas centralizuotas veiklomis, o ne individais, paremtas poiris. Tai reikia, kad sudarant imitacin model, j traukiamos tik veiklos, o ne patys individai, kurie jas atlieka. Tiktina, kad galima naudoti abu iuos poirius sprendiant bet kok PKP imitacijos udavin, taiau, kur poir naudoti konkreiu atveju, priklauso nuo imitacijos tiksl ir formuluojamo udavinio. Sekaniame skyriuje apvelgsime veiklomis grindiam imitavimo paradigm sistem dinamik.

14

SISTEM DINAMIKASistem dinamikos paradigm 1950 metais apibr J. Foresteris, joje apjungiami teoriniai metodai ir filosofija, bandanti suprasti sudting sistem elgsenos pasekmes [For93]. iam tikslui plaiai naudojama grtamojo ryio schema. Sistemos dinamikos filosofija remiasi prielaida, jog neutenka suprasti vien individuali sistemos dali, jeigu jos nra pastatomos grtamojo ryio sistemos kontekste, kuris ir takoja visos sistemos elgsen, o galiausiai ir atskir jos dali elgsen. Toki sistem sudtingumas ir j sveikos negali bti suvokiamos intuityviai, todl sistemos dinamika skatina i sistem imitacin modeliavim. Imitaciniam modeliavimui sistem dinamika pateikia rank, padedant suvaldyti didel modelio ir jo grtamojo ryio struktros sudtingum [Abd84]. Esminiai sistem dinamikos bruoai, skirti kompleksini sistem analizei ir iskiriantys j i kit analizs bd grtamojo ryio cikl bei atsarg ir sraut panaudojimas. i element panaudojimas leidia apibdinti, kaip i pairos paprastos sistemos pasiymi stebtinu netiesikumu [Wik01]. Grtamojo ryio struktra apibriama kaip aplinka, kurioje slygos takoja sprendimus, o ie savo ruotu takoja slygas takojanias sekanius sprendimus [For93]. Sistemos dinamika pripasta ir pabria, kad grtamojo ryio struktra dominuoja agent sprendim primime, netgi daug labiau nei ie sivaizduoja [For93]. Diagramoje (1 pav.) pateikiamas sistem dinamikos modelio prieastinis ciklas. Jame vaizduojama, kaip galt atrodyti organizacijos, kuri planuoja ileisti novatorik produkt, rinkos modelis. Toks modelis organizacijai padt suvokti tiktin rinkos dinamik ruoiant rinkodaros ir gamybos planus [Wik01].

15

1 pav. Paprasto sistem dinamikos modelio pavyzdys [Wik01]. iame paprastame modelyje Potencials pirkjai ir Pirkjai atvaizduoja atsargas, o Nauji pirkjai atvaizduoja sraut tarp atsarg. Nauj pirkj srautas susideda i Imitatori ir Inovatori, kuri suma atimama i Potenciali pirkj ir pridedama prie Pirkj. Inovatori kiekis priklauso nuo Potenciali pirkj kiekio, o Imitatori kiekis - nuo Pirkj kiekio ir Tikimybs, kad mogus dar nenusipirko. Pastarj takoja Pirkj ir Potenciali pirkj kiekis. Filosofija ir teorija, remianti sistemos dinamik, paaikina labai daug apie sistem sudtingum ir j netiesik pobd, taiau jos pritaikymas yra gana ribotas. Nepaisant to, kad sistemos dinamika pripasta dinamik sistem elgsen, taiau imitacinio modeliavimo paradigmos taikymas nesugeba paaikinti pai sistem struktros dinamikumo. Modeliai negali bti inicijuoti kaip egzemplioriai ar objektai, dl to labai sunku suimituoti dinamikus pokyius j struktroje. Tai labai nestebina todl, kad sistemos dinamika yra senesn nei objektikai orientuota paradigma. Taiau, kaip raoma iame straipsnyje [WD03], iuos trkumus turjo bti labiau atsivelgta dl sistemos dinamikos plataus paplitimo tyrj bendruomenje. Sekaniame skyriuje bus apvelgti darbai susij su sistem dinamikos pritaikymu program krimo proceso imitaciniam modeliavimui.

16

SISTEM

DINAMIKOS TAIKYMAS PROGRAM KRIMO PROCESO

IMITAVIMUIAbdel-Hamido darbai [Abd84], [Abd89] (taipogi ir Abdel-Hamid ir Madnickas [AM91]) yra vieni ymesni darb ia tema ir, labai tiktina, pirmieji bandymai pritaikyti sistem dinamik program krimo proceso imitavimui. Pirmasis darbas buvo atliktas tuo metu, kai pasaul krt programins rangos kriz. ios krizs esm programins rangos ininerijos sunkumai, susij su kat ir termino perviriu bei nesugebjimas patenkinti usakov lkesi, susijusi su galutinio produkto kokybe. Pagrindinis dmesys iame darbe buvo skirtas vadybinei perspektyvai, taiau darbo rezultate gautas integruotas modelis, kuriame buvo trauktos [Abd84]: Vadovavimui skirtos funkcijos. o Planavimas, o Kontrol, o Darbuotoj samdymas ir kt. Programins rangos krimui skirtos funkcijos. o Projektavimas, o Programavimas, o Revizijos, o Testavimas. Modelio pagrindas - 27-i interviu su programins rangos projekt vadovais i penki sitvirtinusi programins rangos organizacij. Taip pat buvo remtasi plataus masto literatros apvalga, kuri suteik pagrind empirinms ivadoms. Modelio tikslas buvo pagilinti tuomet supratim apie program krimo proces. Pasak Abdel-Hamido, sistemos dinamikos galinti formalizavimo ir imitavimo rankiai padjo suvaldyti modelio sudtingum ir imtus jo kintamj [Abd84]. is modelis tuomet buvo panaudotas atliekant tyrimus etoje programin rang kurianioje organizacijoje. Ten naudojant model pavyko labai tiksliai atkartoti pasirinkto projekto istorij, ypatingai - darbo jgos lygio, laiko grafiko ir kat kintamj [Abd84].

17

SOCIALINIS ASPEKTASChristi ir Stalei [CS99] paband sumodeliuoti reikalavim sudarymo proces, konkreiai JAD (angl. Joint Application Development jungtinis taikomosios programos krimas), i organizacins ir socialins perspektyvos. Modelis padjo analizuojant bendravimo tarp dalyvi efektyvumo tak JAD proceso kokybei ir trukmei. Autoriai pasil empirin vairi dalyvi model. Dalyviai buvo sukategorizuoti tarpininkus ir techninius ekspertus. Ekspertai modeliuoti priskiriant skaitines reikmes (nuo 0 iki 1) trims pagrindinms charakteristikoms: Technin kompetencija, Gebjimas paveikti kitus dalyvius (taiga), Atvirumas kit dalyvi idjoms.

Modelis vertina kiekvieno dalyvio supratim, pritaikydamas skaitin analogij skysio tkmei ir i rezervuaro. Liks skysio kiekis atspindi pasirinktojo dalyvio supratim. is perdtas supratimo supaprastinimas i dalies takotas sistemos dinamikos modeliavimo metodo. Tarpininkai modeliuojami taip, kad jie veda JAD sesijas, takodami kiekvieno dalyvaujanio eksperto pagrindini charakteristik reikmes. Nors straipsnyje ir yra pateikiama lygtis, apraanti kaip is pokytis vyksta, taiau ios lygties validumas nra rodytas. Autori nuomone, pakanka to, kad modelis elgiasi taip kaip to galima bt tiktis tuomet, kai pritaikomos ribins ekstremalios reikms. Net jei tai ir yra tiesa, modelio elgsena ribini reikmi atveju nepagrindia modelio elgsenos validumo tarpinse reikmse tarp ekstremum. Nepaisant i apribojim, straipsnis yra naudingas tuo, kad tai vienas pirmj bandym imitacinio modeliavimo pagalba sumodeliuoti bendravim tarp moni reikalavim sudarymo srityje. iuo straipsniu pabriama realistik modeli sudarymo svarba ir paaikinama, kad imitacinis modeliavimas susiduria su grietesniais barjerais nei tradiciniai metodai dl imituojamj modeli validavimo sudtingumo pilnai rodyti modelio validumo nemanoma, galima tik padidint pasitikjim modeliu, jei nepavyksta jo paneigti [Rob97]. Autoriai taipogi primygtinai reikalauja, kad programins rangos imitacinio modeliavimo bendruomen turt atkreipti dmes ias problemas, jeigu kas nors nori enkliai prisidti prie proces gerinimo [CS99].

18

Burke, taip pat panaudodamas sistem dinamikos paradigm, integravo socialinius aspektus modeliuodamas aukto brandos lygio programins rangos organizacij JAV nacionalins aeronautikos ir kosmoso agentros Goddard kosmini skrydi centr (NASA GSFC) [Bur97]. Lygtimis grindiami modeliai, tokie kaip sistem dinamikos, danai turi homogenikumo prielaidas tai yra visi proces vykdantys dalyviai yra vienodi, todl juos galima atvaizduoti kaip vien bendr darin, vien vis apimant kintamj, dl ko j teikiami rezultatai yra maiau tiksls nei t modeli, kurie toki prielaid neturi. Parunak ir kiti pademonstravo tai atvejo analizje, lyginanioje agentais grindiam modeliavim su lygtimis grindiamu modeliavimu. Jie daro ivad, kad agentais pagrstas modeliavimas labiau tinka modeliuoti sritis, kurios yra labai iskirstytos ir kuriose vyrauja diskrets sprendimai, o lygtimis pagrstas modeliavimas labiau tinka sritims, kurios gali bti modeliuojamos centralizuotai ir kuri dinamikoje vyrauja fizikos dsniai, o ne informacijos apdorojimas [PSR98].

19

AGENTAIS PAGRSTAS IMITACINIS MODELIAVIMASNuo program krimo proceso imitacijos srities atsiradimo prajo nemaai laiko ir tyrj bendruomen ne tik iaugo, bet ir specializavosi. Vis atrandamos naujos, siauros sritys, kurias norima itirti giliau, taiau senieji metodai ir senas poiris nebetinka, labai varo ar veria kurti nenatralias abstrakcijas [KMR99]. Vienas i naujesni poiri program krimo proces yra atsigrimas mog proces atlieka ir jo veiklas bei uduotis vykdo individuals program krjai, su savo individualiu elgesiu, kur takoja j individualios charakteristikos. De facto standartas program krimo proces imitavime sistem dinamika, su savo matematiniu, lygtimis pagrstu tolydiniu modeliu ir notacija, orientuota veiklomis pagrst poir, nebetenkina tyrj [PSR98]. Tyrjai kvieia kolegas iekoti nauj imitavimo paradigm, kurti naujus hibridinius modelius, apjungianius kitus jau egzistuojanius modelius [ZKP08].

Agentais grsto modeliavimo idjaWickenbergas ir Davidssonas straipsnyje [WD03] apie program krimo proceso imitacin modeliavim paymi, kad nors veiklos program krimo procese ir yra atliekamos grupels bendradarbiaujani individ, taiau daniausiai jos yra modeliuojamos i centralizuoto, veiklomis grsto poirio tako, o ne individualaus kaip galima bt tiktis. iedu autoriai buvo pirmieji pasil idj, kad daugiaagentis imitacinis modeliavimas gali bti tinkama alternatyva veiklomis grstiems metodams program krimo proceso imitavimui. J tyrimo tikslas buvo nustatyti daugiaagenio imitacinio modeliavimo paradigmos pritaikomum program krimo procesui. Dl ios prieasties jie gvildeno i problem i keli abstrakcijos lygmen (emas abstrakcijos lygmuo agentas yra mogus; auktas abstrakcijos lygmuo agentas yra moni grup, visas skyrius ar P bendrov) ir nustat, kad daugiaagentis imitacinis modeliavimas yra manoma alternatyva. Imitacijos, kuri detalumo lygis apima net menkiausi sveik tarp program krj, galt bti pagrstos daugiaagenio imitavimo paradigma todl, kad panaudojant daugiaagent imitavim, galima modeliuoti netgi pokalbius tarp vairi moni, atliekani program krimo proceso veiklas. Imitacijos, suprojektuotos aukto abstrakcijos lygio modeliams tyrinti, pavyzdiui, darbuotoj kaitai organizacijoje, taip pat gali remtis daugiaagenio imitacinio modeliavimo paradigma. Straipsnyje paminta, kad dar auktesniame abstrakcijos lygmenyje agentai nebtinai turi atstovauti vien tik individus organizacijoje [WD03]. Agentus galima panaudoti modeliuojant organizacijos

20

departamentus ar net paias organizacijas, ir kitus program krimo procesu suinteresuotus asmenis ir j tarpusavio sveik. Pagal straipsnio autorius daugiaagenio imitacinio modeliavimo pritaikymas program krimo procesui yra smarkiai apribotas: daugeliu atveju inoma labai nedaug informacijos apie individuali elgsen, paprastai inoma tik individui priskirta rol apibrtame procese. Kitas daugiaagenio imitacinio modeliavimo taikymo program krimo procese ribojantis veiksnys, susijs su statistini duomen trkumu: trksta duomen, dokumentuojani individuali proceso dalyvi elgsen. Daugiaagents paradigmos naudojimas nesuteikia beveik jokio pranaumo prie kitas imitacinio modeliavimo paradigmas, jeigu apie dalyvi elgsenos naum inoma tik kaip apie visumos statistin vidurk, o j rol susijusi su procesu, t.y. tiesiogiai nuspjama.

BandymaiYilmaz ir Phillipsas pasil agentais pagrst imitacijos model, kur jie naudojo nordami suprasti komandos elgesio poveik programins rangos organizacijai, siekianiai sidiegti papildant (angl. incremental) programins rangos proces, tok kaip RUP (Rational Unified Process) [YP07]. J tyrimas remiasi organizacine teorija, pagal kuri buvo konstruojamas imitacinio modeliavimo karkasas. is karkasas tuomet buvo naudojamas veiksming komandos archetip nustatymui. Autoriai iskyr bdingiausius keturis komandos elgesio archetipus [YP07]: Judrus (angl. agile), Savarankikas (angl. autonomous), Lygiagretus (angl. concurrent), Sinchronikas (angl. synchroneous).

Tuo paiu imitacinio karkaso pagalba buvo nustatinjamas skuri (angl. turbulance) poveikis komandos archetip veiksmingumui. Skuriai apibriami kaip reikalavim pokyiai ir darbuotoj kaita [YP07]. Modelis buvo validuojamas lyginant jo ieigos rezultatus su faktais stebimais empiriniuose tyrimuose. Nors modelyje agentai naudojami krj komandoms atvaizduoti, taiau pagrindinis dmesys skiriamas komandos lygmeniui, o ne individualiam kiekviena komanda modeliuojama kaip vienas agentas. Autoriai pripasta poreik isamiau tyrinti detalesnius modelius, kuriuose agentai atstovaut individualius komandos narius [YP07]. 21

[YP07] modelyje komandas velgiama kaip autonomikas esybes, taiau tokios prielaidos neleidia pilnai inaudoti agentins paradigmos galimybi ir pranaum dl to, kad tenka pasikliauti grups vidurkiais atvaizduojant komandos naum. Visos komandos savybi vaizdavimas, atskir komandos nari savybi vidurkiu veda homogenikumo prielaidas, o tai lemia imitacinio modeliavimo rezultatus, kurie negali paaikinti tam tikr fakt, stebim realaus pasaulio procese, kur imituoja modelis [Bur97]. Kitame tyrime [SCF06], Smithas ir Capiluppas paband pritaikyti agentais pagrst imitacin modeliavim atvirojo kodo programinei rangai tirti. Jie band nustatyti sryius tarp dydio, sudtingumo ir reikaling pastang. Autoriai pateik model, kuriame sudtingumas yra laikomas trikdaniu faktoriumi produktyvumui, reikalavim neprietaringumui ir programuotoj motyvacijai. Autoriai paymi fundamental skirtum tarp tradicinio udarojo kodo programins rangos krimo ir kooperatyvaus bei iskirstyto atvirojo kodo programins rangos krimo pobdio proceso ir evoliucijos prasme. Modelio validumui utikrinti autoriai palygino jo rezultatus su keturiais dideliais atvirojo kodo programins rangos krimo projektais, taiau modelis negaljo pagrsti projekto dydio evoliucijos. Taip gali bti dl to, kad modelis yra gana paprastas ir tiesmukas, kadangi tiek programuotojai, tiek reikalavimai yra modeliuojami panaudojant lygiaverius agentus, gyvendintus kaip lstels gardelje. i gardel veda erdvin metafor, kuri nra labai tinkama modeliuotam atvejui. Autoriai naudoja fizinio artimumo notacij, modeliuodami tikimyb kokiam nors reikalavimui pritraukti programuotoj keliaujant elektroninje erdvje [SCF06]. Nors kalbama apie elektronin erdv, taiau naudojama abstrakcija tinkama tik realaus fizinio pasaulio erdvei, kas arti realybje, nebtinai arti elektroniniame pasaulyje ir atvirkiai. Kaip vien i agentins paradigmos naudojimo stiprybi [KMR99] nurodo, kad galima projektuoti sistemas naudojant metaforas, artimas probleminei sriiai, ypa esant pasiskirsiusiems ir autonomikiems individams ar sistemoms. Dl ios prieasties reikalavimo ar uduoties fizinio artumo pro al slenkaniam individui metaforos naudojimas, siekiant imatuoti tikimyb, kad is susidoms uduotimi, yra metafora, kuri neatitinka tikrovs, todl autori straipsnyje nortsi matyti stipr pagrindim, kad agent panaudojimas tokiomis aplinkybmis yra tinkamas ir adekvatus.

22

PROGRAMINS RANGOS KRJ NAUMAS IR KOGNITYVINS CHARAKTERISTIKOSio skyriaus poskyriuose bus apvelgtos naumo ir kognityvini charakteristik modeliavimo galimybs, kurios yra svarbios sudarant program krimo proceso imitavimo model, paremt agentine paradigma. Jos yra svarbios dl to, kad agentins paradigmos pranaumas prie kitas yra btent tas, kad agentin paradigma suteikia galimyb atsivelgti proces atliekani veikj individualias charakteristikas ir i to sekant individual elges, galiausiai takojant viso proceso rezultat.

Naumo charakteristikosRasch ir Tosi pasil teorin model sudaryt i faktori, kurie daro poveik programuotojo pastangoms ir naumui. Autoriai savo model vadina integruotu todl, kad jame bandoma apjungti [RT92]: tikjimosi teorij (angl. expectancy theory), tiksl nustatymo teorij, individuali charakteristik tyrimus.

Tikjimosi teorijaTai teorija apie protinius procesus, susijusius su pasirinkimu. Ji paaikina procesus vykstanius individo viduje, kai jis atlieka pasirinkim. Organizacinio elgesio tyrimuose tikjimosi teorija atitinka motyvacijos teorij pasilyt Victoro Vroomo i Yalio vadybos mokyklos. Tikjimosi teorija numato, kad organizacijos darbuotojai bus motyvuoti, kai jie tiks, kad [Wik02]: didesni pastang djimas duos geresnius darbo rezultatus, geresni darbo rezultatai duos naudos (pvz.: darbo umokesio padidjimas ar privilegijos), prognozuojama nauda yra vertinama atitinkamo darbuotojo.

23

Tiksl nustatymo teorijaTai organizacins psichologijos teorija teigianti, kad konkrets tikslai, kuriuos sunku pasiekti, didina produktyvum labiau nei tikslai, kurie tokie nra. Tikslai gali tapti konkretesni kvantifikuojant arba enumeruojant (turt bti pamatuojami) juos. Tiksl nustatymas veikia rezultatus keturiais bdais [Wik03]: Pasirinkimas: tikslai susiaurina dmes ir nukreipia pastangas veiklas, susijusias su tikslu, atmetant nepageidaujamas ar nesvarbias tikslui veiklas. Pastangos: tikslai veda prie didesni pastang (pvz.: jei kas nors tipikai pagamina 4 darbo produktus per valand, o turi tiksl pagaminti 6, tuomet jis gali pradti dirbti intensyviau, negu neturdamas tokio tikslo). Atkaklumas: Individas tampa labiau links veikti klitis siekdamas tikslo. Kognityvumas: tikslai gali takoti individ sukurti kognityvin strategij savo elgesiui pakeisti.

Individualios charakteristikosIndividualiosios programins rangos krj charakteristikos, kurias tyr [RT92]: Savivert, Pasiekim poreikis, Kontrols lokusas.

ApibendrinimasAutori sudarytas modelis remiasi empirinio tyrimo rezultatais. Jie surinko madaug 230 panaudojam atsakym (modelio sudarymui aktuali ir tinkam) i trij dideli programins rangos kompanij Jungtinse Amerikos Valstijose. is tyrimas kvalifikuoja ir kiekybikai vertina (kvantifikuoja) sryius tarp vairi faktori ir individuali pastang bei naumo [RT92]. is empirinis tyrimas turi gantinai rimtus teorinius pagrindus ir yra validuotas naudojant grietus statistinius metodus [RT92], taiau is modelis ireiktinai netraukia patirties ar, pavyzdiui, programuotoj iankstinio nusistatymo, kylanio i priklausomybs kokiai nors socialinei grupei

24

[HMT02]. Gali bti taip, kad ie faktoriai nra labai svarbs arba daro tik labai ribot poveik, taiau apvelgiamo tyrimo autori nuomone j klaidingai intuityvus charakteris vertas paminjimo.

Kognityvins charakteristikosHanakawa su kitais straipsnio autoriais taiko dar kitok program krimo proceso imitavimo bd, pristatydami model, kuris traukia proceso vykdytojo ini lyg ir io lygio pokyius projekto eigoje. ini lygio struktros pokyiai tiesiogiai koreliuoja su proceso dalyvio produktyvumu [HMT02]. Svarbiausias io modelio bruoas yra tas, kad jis atsivelgia fakt, kad mogus, atlikdamas proceso veiklas, gali gyti daugiau ini. Modelyje iskiriami trys atvejai, susij su ini, reikaling uduoiai atlikti, ir uduotis atliekanio mogaus ini lygio santykiu [HMT02]: Reikalingos inios < turimos inios. Kai uduotis reikalauja maiau ini, nei j yra, tuomet uduotis laikoma lengva ir vykdytojas j atlieka naiai, taiau negyjamos naujos inios. Virutin riba > Reikalingos inios >= turimos inios. Kai virutin riba yra truputl aukiau nei uduoties vykdytojo turim ini lygis, jo naumas gali bti atitinkamai maesnis, taiau gyjamos inios, kurios padidins naum vlesnse fazse. Reikalingos inios > Apatin riba > Turimos inios. Kai apatin riba yra enkliai vir turim ini lygio, uduotis laikoma pernelyg sudtinga ir tuomet vykdytojas gyja tik labai nedaug ini. Apibendrinant reikia paymti, kad daugiaagents imitavimo paradigmos suteikiamas pranaumas, leidiantis imituoti ne tik stambias organizacijas, bet ir pavienius asmenis dalyvaujanius program krimo procese, nebt pilnai inaudotas netraukus imitavimo model kognityvini charakteristik. Kuo tiksliau apibrtos agent, atvaizduojani program krimo proceso dalyvius, savybs, tuo galima tiktis artimesni realybei imitacijos rezultat. Realistikas modelis, galima tiktis, padt paaikinti arba leist sumodeliuoti situacijas, vykstanias realiame pasaulyje, kuri nemanoma atkartoti modeliais, sudarytais atmetant tokias prielaidas kaip nesvarbias.

25

8.

PROGRAMINS

RANGOS

KRIMO

PROCESO

IMITACIJOS

MODELIO SUDARYMASiame skyriuje aptarsime su programins rangos krimo proceso imitavimo modelio sudarymu susijusius klausimus. Pirmajame poskyryje apvelgsime programins rangos ininerij i proceso arba sek modelio perspektyvos. Sekaniame poskyryje apraysime sudarytj imitavimo model skirt program krimo proceso imitavimui atlikti ir apibdinsime imitatori, kuris gyvendina t model.

8.1. Programins rangos krimas kaip procesas programins rangos krimo proces galima irti, kaip etap kait. Kiekvienas etapas sudarytas i rinkinio veikl, kurios priklauso nuo eigos artefakt, toki kaip specifikacijos, kurios buvo sukurtos ankstesnje fazje tam, kad apibrt artefaktus, kuriamus dabartinje fazje. Procese turi bti nurodytas projekto ir kiekvienos jo fazs pabaigos kriterijus, kuris gali bti vienas i i: terminas, pasiekta kokyb, ubaigtumo lygis, snaudos arba projekto ataukimas.

proces taip pat galima irti kaip sek ar chronologijos model veikloms, kurias jis apima, nurodant kokia tvarka vairs etapai vyksta ir koks grtamasis ryys yra tarp dviej fazi bei kokia seka toks ryys sklinda [CS99]. Daugelis program krimo proces gali bti apibdinti kaip atstovaujantys krioklio gyvavimo ciklo model (ar pana) arba inkrementin (iteratyvj) model [KMR99].

8.1.1. Krioklio modelisKrioklio modelis numato, jog tarp skirting projekto fazi nevyksta beveik jokio atgalinio ryio. I esms modelis teigia, kad kiekviena faz baigiasi pateikdama sekaniai fazei pakankamai auktos kokybs artefaktus, kuri jai reikia. Dl ios prieasties nereikalingas joks reikmingas 26

prajusi fazi pakartojimas. Toks procesas labai gerai tinka projektams, kuriuose reikalavimai yra gerai suformuluoti, ilieka stabils projekto eigoje ir kur didioji dalis rizikos, vlavim ir kat gali bti numatyti ankstyvoje proceso stadijoje. Pagal model daniausiai pradedama nuo galimybi studijos ir baigiama perira, kuri atskleidia klaidas, trkumus ir potencialiai tobulintinas vietas. Jei priimamas sprendimas taisyti aptiktus trkumus, tuomet procesas pradedamas i naujo nuo galimybi studijos iki periros. Daugyb ininerini disciplin gali skmingai panaudoti paprast, taiau sistemik model, taiau, remiantis iuolaikine literatra apie judriuosius program krimo procesus, programins rangos ininerija nra viena i i disciplin [Wik05]. Kita vertus, didels programins rangos bendrovs yra linkusios naudoti model, nepaisydamos jo trkum. Geriausias to paaikinimas, matyt, yra, kad modelio paprastumas yra toks svarbus, kad vadovyb ir programins rangos ininieriai mano, jog tai kompensuos anksiau mintus trkumus.

8.1.2. Iteratyvusis modelisAlternatyvus proceso veiklos modelis yra inkrementinis arba iteratyvusis. Toks modelis naudoja skaldyk ir valdyk princip kiekvienoje fazje. Vietoje to, kad kiekviena faz bt vykdoma iki pabaigos (kaip krioklio modelio atveju), ji yra vykdoma tik tol, kol atlieka ribot dal paskirt veikl, tuomet laikinai sustabdoma ir darb pratsia sekanti faz. Kai visos fazs atlieka po dal joms skirt veikl, laikoma, kad atlikta viena iteracija. Tuomet procesas ciklikai vl kartojamas nuo pradins fazs. Tokiu bdu po kiekvienos iteracijos projekto atlikt darb sraas po truput paauga. Program krimo procesas, taikantis tok model gali turti kokybs kontrols ar klaid aptikimo grtamj ry po kiekvienos fazs arba po kiekvienos iteracijos. Tokio modelio nauda: pripastama emos ieigos kokybs galimyb (artefaktai i bet kurios fazs, tam komponuota grtamojo ryio galimyb) nustatomas neteisingumas, neibaigtumas, nekonsistentikumas ir/ar konfliktuojantys reikalavimai anksti projekto eigoje. Ankstyvas i trkum itaisymas, dl ankstyvo aptikimo, inoma, yra labiau ekonomikas nei klaid taisymas vlyvoje stadijoje. Pagrindinis skirtumas tarp dviej veiklos modeli, irint i imitacijos poirio tako, yra valdymas likusi fazs veikl, kurias reikia atlikti sekanioje iteracijoje, skaitant pagerinimus ir pataisymus (pvz.: i kokybs kontrols). is valdymas taikomas tik inkrementiniam veiklos modeliui.

27

8.2. Programins rangos krimo proceso imitacijos modelisSudarant program krimo proceso imitavimo model, pagrst individualiu poiriu programins rangos krjus, pirmiausia reikia nustatyti, kurios i daugybs manom charakteristik ir kintamj daro didiausi tak programins rangos krj darbui ir j darbo produkt kokybei. Remiantis literatros analizs rezultatais, egzistuoja du pagrindiniai veiksniai, kurie enkliai prisideda prie krj pasiekim ir artefakt, kuriuos jie gamina, kokybs. Pirmasis yra naumas (angl. performance), kuris yra pagrstas individualiomis P krjo savybmis, atspindiniomis pastang lyg, kur P krjas nori pasiekti ir kokiu greiiu. Antrasis veiksnys yra P krjo ini kompetencija. Be pakankam ini apie domen, atliekam uduot, susijusias technologijas ar iankstinius reikalavimus, maai tiktina, kad P krjas pasiekt didel naum ir dar maiau tiktina, kad jis pasiekt aukt kokyb. Kaip pamatme literatros analizje (r. 7.1 poskyr), Rach ir Tosi [RT92] pateik tikinam model, skirt apibdinti individo naum, kuriame empirikai integruota tiktinumo teorija, tiksl nusistatymo teorija ir moksliniai tyrimai apie individualias savybes, pavyzdiui kontrols lokus, savivert ir pasiekim poreik. J atlikto tyrimo dydis ir statistinis tikslumas leidia manyti, kad is modelis tinka imituoti P krjus ir netgi vairi P krjams pateikiam artefakt kokyb. Rach ir Tosi model toliau tekste vadinkime Pastang ir Naumo Modeliu (arba PNM). Kaip matome diagramoje 8.2.1.4 papunktyje, viena i eig PNM yra tikslo sudtingumas. Remiantis anksiau atlikta Hanakawa ini Modelio (HM) [HMT02] apvalga, tikslo ar uduoties sudtingumas yra susijs su mogaus, kuris atlieka uduot, ini lygiu. Kitaip tariant, ta pati uduotis gali turti skirting sudtingumo reikm, priklausomai nuo to, kas j atlieka. Be to HM atsivelgiama tai, kad ini lygis apie uduot auga, kuo ilgiau mogus j atlieka. Tam tikra prasme HM laiko, kad inios auga su patirtimi. Atsivelgiant iuos faktus, pasirinkimo pritaikyti HM kuriamame imitacijos modelyje ir panaudojant j gauti kintamuosius, tarp kuri bt ir tikslo sudtingumas, kuris po to bus panaudotas kaip eiga PNM modelyje. Kita eiga PNM, kaip parodyta diagramoje (2 pav., r. 8.2.1.4. papunkt), yra tikslo aikumas. is veiksnys yra ireikiamas per odinius nurodymus i usakov ir projekto vadovo bei uraytas specifikacijose ir artefaktuose. Pirmosios dvi iraikos yra pernelyg sudtingos jas traukti model

28

iuo metu, taiau pastarosios dvi yra susijusios su artefakto kokybe, kuri kuriamas imitavimo modelis palaiko. Tolesniuose punktuose bus pateikti susij PNM, HM ir AKM modeli aspektai ir kaip jie bus tarpusavyje integruojami kuriam model.

8.2.1. Pastang Naumo Modelis (PNM)Kaip minta 7.1. poskyryje, Rach ir Tosi [RT92] grindia savo darb koncepciniu karkasu, kuris bando apjungti svokas i Tikjimosi teorijos ir Tiksl nustatymo teorijos su individuali charakteristik moksliniais tyrimais.

8.2.1.1. Tikjimosi teorijaTikjimosi teorija buvo plaiai taikoma studijuojant motyvacijos problemas (Baker et al., 1989; Brownell and McInnes, 1986; Butler and Womer, 1985; Harrell and Stahl, 1984; Kaplan, 1985; Nickerson and McClelland, 1989) [RT92]. i teorija yra grindiama sitikinimu, kad labai motyvuoti asmenys ds didesnes pastangas, todl jie pasieks didesn naum nei maiau motyvuoti asmenys [RT92]. Pagal [RT92] Tikjimosi teorija susieja naum su asmens pastang lygiu, gebjimais ir rols suvokimu.

8.2.1.2. Tiksl nustatymo teorijaTiksl nustatymo teorija susieja tikslo skm su jo sudtingumo ir aikumo lygiu. Aikumo stygius neigiamai veikia naum, kadangi tai sukelia nerim ir dvejones sprendim primimo procese. Na, o tikslo sudtingumas veikia ir pastangas, ir naum, kadangi didelis sudtingumas veria dti daugiau pastang ir tol, kol tikslas yra pasiekiamas, tai veda prie didesnio naumo (Locke ir Latham, 1990) [RT92].

8.2.1.3. Individualios charakteristikosRasch ir Tosi [RT92] nustato treij perspektyv, analizuodami P krj pastangas ir naum, tai individualios charakteristikos. ioje perspektyvoje yra: Pasiekim poreikis, Kontrols lokusas, 29

Savivert.

1 lentel. vairi individuali charakteristik apibdinimas. Individuali charakteristika Pasiekim poreikis Kontrols lokusas Savivert Apibdinimas Kaip asmuo vertina skm darbe. Asmens suvokimas, kiek jis kontroliuoja savo likim. Individo saviverts suvokimas. is faktorius teigiamai koreliuoja su pastangomis ir naumu.

i charakteristik procentins reikms apskaiiuojamos atsakius klausimyno klausimus pateiktus io darbo prieduose (1 priedas).

8.2.1.4. PNM rezultataiemiau esanioje diagramoje (2 pav.) pavaizduota, kaip vairs modelio parametrai veikia pastangas ir naum (pajuodinti elementai). Ant rodykli esantys skaiiai vaizduoja koreliacijos stiprum tarp parametro ir elemento (pastangos arba naumas), kur jis veikia tiesiogiai. Neigiamas skaiius reikia neigiam poveik veikiamam elementui. Kadangi pastangos veikia naum, o vairs parametrai gali veikti ir pastangas ir naum tiesiogiai, todl kai kurie parametrai turi papildomai ir netiesiogin poveik naumui, kaip pavaizduota emiau esanioje lentelje (2 lentel). Lentelje pavaizduotas bendras atskir modelio parametr poveikis naumui (tiesioginio ir netiesioginio poveikio suma).

30

Savivert

Tikslo Sudtingumas

Tikslo Aikumas

Pastangos

Naumas

Pasiekim Poreikis

Kontrols Lokusas Gebjimai

2 pav. PNM modelio parametr, veikiani pastangas ir naum reprezentacija, kaip empirikai nustat Rasch ir Tosi [RT92] 2 lentel. Empirinis modelio parametr poveikis naumui; kaip pristatyta Rasch ir Tosi [RT92] Parametras Pasiekim poreikis Savivert Kontrols lokusas Tikslo aikumas Tikslo sudtingumas Pastangos Gebjimai Tiesioginis poveikis 0,18 0,15 0,11 -0,11 0,21 0,54 Netiesioginis poveikis 0,39 x 0,21 = 0,08 0,19 x 0,21 = 0,04 0,19 x 0,21 = 0,04 Bendras poveikis 0,18 + 0,08 = 0,26 0,15 0,11 0,04 -0,11 + 0,04 = -0,07 0,21 0,54

Empirinio tyrimo rezultatai parod, kad gebjimai buvo svarbiausias parametras, veikiantis naum su 0,54 koreliacija, kaip parodyta diagramoje (2 pav.).

31

8.2.2. ini modelis (HM)Hanakawa [HMT02] pirmasis pristat mokymosi kreive pagrst imitacijos model, kuris atsivelgia P krjo ini apie uduot pokyt, priklausant nuo laiko, praleisto atliekant t uduot. Po to buvo publikuotas apraymas, kaip taikyti model pramons aplinkoje (suteikiant nuorodas, kaip isiaikinti daugelio modelio kintamj reikmes) [HMT02], kur sek atnaujintas modelis, atsivelgiantis iankstines inias apie konkret ini tip [HMT02]. ioje vlesnje versijoje modelis pagrstas individualia ini struktra. ini struktra pavaizduota kaip kognityvinis emlapis grafas, kuriame virns vaizduoja ini element, tok kaip reliacins duomen bazs (RDB) ir struktrizuota uklaus kalba (SQL), o briaunos tarp virni vaizduoja iankstini slyg ry tarp ini element. Hanakawa [HMT02] ubaigia kognityvin emlap su dar dviem parametrais, tai: ini adekvatumas Darbo krvis (darbui, reikalaujaniam konkrei ini). ini adekvatumas atvaizduoja individuali pasiekim procent konkreiam ini elementui. Darbo krvis yra veiklos, kuriai reikia ini elemento, vertis. Pirmasis parametras gali bti imatuotas pateikus P krjui egzamin, kurio metu patikrinamos jo inios apie ini element. Jei tai nemanoma, galima kiekybikai vertinti laik, kiek krjas dirbo su konkreiu ini elementu [HMT02]. Kitaip tariant daroma prielaida, kad patirtis atspindi ini adekvatum kuo ilgiau dirbama su ini elementu, tuo geresns inios apie j. Darbo krvis kiekybikai vertinamas analizuojant anksiau, panaiuose projektuose, pagamint artefakt apimt. I toki dokument itraukiama tokio tipo informacija: veiklos dydis, taikom ini tipas. Hanakawa [HMT02] pateikia projektinio dokumento pavyzd i projekto, panaaus t, kuris yra vertinamas. I to dokumento autoriai skaiiuoja ini tipus, kuri reikia paruoti kiekvien dokumento puslap. Hanakawa pavyzdyje projektinis dokumentas buvo 500 puslapi, i kuri 50 buvo susij su reliacinmis duomen bazmis (RDB), o 100 puslapi buvo susij su SQL kalba. Tokiu atveju, RDB darbo krvis apima 10%, o SQL darbo krvis apima 20% viso darbo krvio. inant projekto reikalavim apimt funkciniais takais, lengva apskaiiuoti, kad, jei naujo projekto 32

reikalavimai apima pus praeito projekto funkcini tak, naujasis projektinis dokumentas turt bti 250 puslapi i kuri 25-iems reikt ini apie RDB ir 50-iai ini apie SQL kalb. Tokie paskaiiavimai turt bti atliekami atsargiai, kadangi gali bti, kad naujasis projektas apima tik pus funkcini tak tik todl, kad reikalavimuose nra duomen bazs. To pasekoje RDB ir SQL darbo krvis bt lygus nuliui. Dl ios prieasties Hanakawa spja, kad bt lyginama su prajusiais, taiau panaiais projektais [HMT02]. Hanakawa modelis yra sudarytas i trij maesni sub-modeli: Veiklos, Produktyvumo ir ini modelio. I i tik paskutinis yra svarbus iam tyrimui.

8.2.2.1. ini kaupimas ir modelisini modelyje P krjas gauna naud (t.y. padidjusias inias ir dl to padidjus naum) atlikdamas koki nors uduot. Jeigu yra ini lygis, kurio reikia atlikti tam tikr uduot j, o bij yra P krjo i ini lygis apie i uduot, tuomet Hanakawa pateikia tokias ivadas [HMT02]: 1. P krjas i negauna jokios naudos (ini padidjimo), jei < bij . 2. P krjas i gauna didiul naud atlikdamas uduot j, jei yra truputli didesn u bij. 3. Jei yra enkliai didesn, nei bij tuomet gaunama labai maai naudos, todl kad uduotis j tampa per sudtinga. emiau pateikiama Hanakawa lygtis [HMT02].

(2) ia: Lij(): Kij: bij: Eij: : Wj: ini kiekis, kur gauna P krjas i atlikdamas veikl j, kuriai reikia ini . Gaunam ini maksimumas P krjui atliekaniam uduot j. P krjo i inios apie uduot j. P krjo i ini gavimo majimo danis atliekant uduot j. Uduoiai j atlikti reikalingas ini kiekis. Bendras uduoties j dydis (apimtis). 33

8.2.2.2. P krjo ini lygio atnaujinimasAukiau pateikta lygtis (2) leidia apskaiiuoti P krjo gaunam ini kiek Lij(E) atliekant uduot j, kuriai reikia ini lygio . Kiekvienu laiko momentu t, originalusis ini lygis bijt yra papildomas Lij(E)t: (3-1)

8.2.3. Artefakto Kokybs Modelis (AKM)is Artefakto kokybs modelis yra supaprastintas HM modelyje [HMT02] naudojamo ieigos kokybs modelio variantas, pritaikius artefakto svokas i PNM modelio [RT92]. Kadangi is modelis yra tarpinis variantas tarp modeli naudojam PNM ir KHM darbo produktams apibrti, todl jis bus panaudotas, kai 8.3. poskyryje bus jungiami HM ir PNM modeliai tarpusavyje, tam kad gauti darbe naudojam integruot model. Artefakto kokybs matavimas kiekybiniais matais gali atrodyti neveikiama uduotimi, todl, kad tai galima bt pabandyti padaryti, vis pirma reikia rasti prieastin ry tarp kokybs, ini ir patirties [HMT02]. inios suteikia programins rangos krjui abstrakt ir teorin pagrind tam, kad galima bt atlikti duot uduot. Patirtis sustiprina iuos pagrindus praktiniu poiriu, kas leidia P krjui gauti supratim apie vien teorij ir praktik ribas arba kit nepamainom svarb kasdieniame darbe. iuo poiriu patirtis yra balansavimo priemon P krjui, lyginaniam skirtingos kilms sprendimus vienas su kitu, renkantis optimal galutin sprendim. PNM modelis abstrahuoja inias ir patirt gebjim faktori. Kuriamame modelyje bus naudojama i abstrakcija, t.y. bus naudojamas gebjimas vietoje ini ir patirties tam, kad galima bt susieti PNM model su AKM modeliu. Artefaktas yra keli pouduoi, kurias atlieka galbt keletas asmen, sintez. Artefakto a dydis s bet kuriuo metu priklauso nuo individo, kuris dirba su tuo artefaktu, naumo. Panaiai kokyb q priklauso nuo individo gebjim.

8.2.3.1. Artefakto dydisArtefakto dydis yra vis individuali indli suma. Paymsime cij kaip individual indl P krjo i, uduoiai j, pvz.: cij = darbo naumasij x trukmij (3-2) 34

Veiklos j dydis sj priklauso nuo bendro dalyvi i indlio:

Todl bendras artefakto dydis yra:

8.2.3.2. Artefakto kokybKaip minta 8.2.3. punkte kokyb susieta su gebjimu. Kadangi artefaktas yra keletos veikl sintez, todl galima ivesti vidutin kokybs qj dyd veiklai j, remiantis veikl atliekani moni gebjimais:

Kadangi kokyb yra subjektyvus dalykas, labai tiktina, kad kai kuri veikl kokyb yra svarbesn nei kit, priklausomai nuo to, kas vertina kokyb. Todl bus vesta svertins sumos lygtis artefakto kokybei q.

wj yra svorinis koeficientas, paymintis artefakto veiklos j kokybs santykin svarb imitacijos naudotojui. Tai reikia, kad imitacijos naudotojas gali pats nustatyti jam svarbi veikl kokybs svarb, ireikt svoriniu koeficientu. Imitatoriui skaiiuojant bendr artefakto kokyb, ias veiklas bus labiau atsivelgiama nei kitas.

35

8.3. PNM, HM ir AKM modeli integravimasTam, kad galt pateikti naumo reikm, PNM modelis turi kaip eig gauti gebjim, uduoties sudtingum ir uduoties aikum. Taiau HM modelis pateikia tiktai ini adekvatumo matavim, priklausant nuo reikiam ini, ir model, kuris matuoja dinamik pastarojo kitim.

8.3.1. GebjimasPNM modelyje gebjimas yra apibriamas matuojant esanius intelektinius gebjimus ir formali studij kokyb. Dl to galime naudoti ini lyg, kur pateikia HM modelis, gebjimui atvaizduoti.

8.3.2. Uduoties sudtingumasUduoties sudtingumui pavaizduoti reikia atsivelgti intelektualin ik, kur jis atspindi. I esms sudtingum galima irti kaip skirtum tarp esamo ini lygio ir reikiamo ini lygio duotai uduoiai.

8.3.3. Uduoties aikumasUduotys, kurias ms modelyje atlieka P krjas, yra grindiamos artefaktais, pagamintais ankstesniuose proceso etapuose. i artefakt kokyb lemia atliekamos uduoties aikum. Pavyzdiui, geros kokybs reikalavim specifikacija yra maiau dviprasmika, tikslesn ir isamesn nei ta, kuri yra prastesns kokybs. Kitaip tariant, geros kokybs reikalavim specifikacija yra tokia, kurioje reikalavimai yra aikiai idstyti ir tokiu bdu analizs uduotis, kuri atliekama vliau, yra grindiama aikiais vesties artefaktais. Ms atveju, uduoties j aikumas yra lygus artefakto kokybei.

36

8.3.4. Artefakto kokybAnkstesniame papunktyje (8.2.3.2) buvo pristatytas artefakto kokybs modelis ir kaip jis yra naudojamas gauti P krjo uduoties j atlikto darbo kokybs vert qj, remiantis jo gebjimais. Taiau integruotame modelyje esamas ini lygis bij yra naudojamas vietoje Gebjimasij, todl pakeit (3-7) lygtyje (3-5) gauname sujungt lygt:

8.4. P krjo ir artefakto sveikos modelisKiekviename proceso etape yra keletas pagrindini veikl, kurias reikia atlikti. P krjas taiko ias veiklas eities artefaktams, tokiu bdu prisiddamas prie ieigos artefakt. Kiekvieno etapo veikla yra apibrta etapo ablone nurodant, kokius veiksmus (veiklas) reikia atlikti ir kokia rol ar kompetencija yra reikalinga. vesties artefaktas reprezentuoja pat objekt, kuriam taikomos veiklos. Pavyzdiui, fazje, kuri vadinasi projektavimas, galt bti apibrta veikl aib: A = {P projektavimas, Testavimo atvej projektavimas}, Veiklas i aibs A reikia atlikti gaminant artefakt analizs specifikacija, kuris savyje turi elementus: I = { GUI, RDB, ... }. Tai reikt, kad P krjas taikys veikl P projektavimas elementui GUI, tuomet RDB, o tada jis arba koks nors testuotojas taikys veikl Testavimo atvej projektavimas pirma GUI, o tada RDB. Tam, kad ieigos artefaktas bt ubaigtas, visi eigos artefakto elementai turi bti apdoroti su kiekviena veikla, kuri yra aprayta toje proceso fazje (ablone). Pavyzdiui, apibrkime sekanias veiklas: A = { a1, a2, ..., an }, kurios turi bti atliktos artefaktui, kuris turi iuos elementus: I = { i1, i2, ..., im }. is algoritmas parodo kaip eigos artefaktas yra paveriamas ieigos artefakt: 37

FOREACH (veikla a in A) { FOREACH (elementas i in I) { IeigosArtefaktas.add(a, i); } } Taiau, iame algoritme nesimato kaip P krjams yra priskiriamos veiklos pagal j rol ir kompetencij. Aukiau esaniame pavyzdyje etapo ablonas apibria, kad, pavyzdiui, testuotojas, o ne P krjas turt atlikti Testavimo atvej projektavim. Realizuotame imitatoriuje, projekto vadovo agentas palygina veiklai atlikti reikalingas roles, kaip nurodyta proceso etapo ablone, su role (ar rolmis), kurias atlieka agentas. Jei veikla netinka agentui (nesutampa agento rol su veiklai atlikti reikalinga role), projekto vadovas tikrina sekani veikl savo srae, kol kokia nors tinkama veikla yra randama, prieingu atveju grinama null reikm, kas reikia, kad P krjas iame etape nebeturi k veikti.

8.5. Imitacijos modelio agentins savybs 8.5.1. Aplinka ir agentaiDirbtinio intelekto srityje egzistuoja daugiau nesutarim nei sutarim, kas i ties yra agentas. Wooldridge pateikia tok apbrim [Woo05]: Agentas tai kompiuterin sistema, kuri randasi kokioje nors aplinkoje, ir, kuri gali atlikti autonomikus veiksmus ioje aplinkoje tam, kad pasiekt savo tikslus. Pagal Wooldridge agentais paremtas sprendimas yra tinkamas tuomet, kai sprendiama problema pasiymi viena ar daugiau i i charakteristik [Woo05]: Aplinka yra atvira, labai dinamika, neaiki arba komplikuota. Agentai suteikia natrali metafor udaviniui sprsti. Duomenys, kontrol arba ekspertiz yra iskirstyti.

ios charakteristikos tinka apibdinant program krimo proceso savybes ir tai tik dar labiau patvirtina daugiaagenio poirio tinkamum program krimo proceso imitaciniam modeliavimui. Dl paio agento apibdinimo irint i praktiko poirio tako, labai tikslus apibrimas nra reikalingas. Agent naudojimas nra ir neturt bti btinas vien dl agentins paradigmos 38

panaudojimo. Svarbiausia yra tai, kad agent paradigmos naudojimas suteikia pranaum. Agent autonomija suteikia teising metafor atvaizduojant autonomikus programins rangos krjus. inoma, imitacijose agentas yra autonomikas tik iki tam tikro laipsnio. Pavyzdiui, agentas negali atsisakyti ir nedaryti veiklos, kuri jam yra paskirta, taiau agentai dirba tik tai darbo dienomis ir darbo valandomis (nuo 8 iki 17 valandos). iuo poiriu, agentas yra pakankamai autonomikas, taiau ne daugiau.

8.5.2. AplinkaMs modelyje aplinka, kurioje veikia agentai - tai artefakt, su kuriais jie sveikauja, pasaulis. Programins rangos krimo procesas ir laiko dimensija sudarys io pasaulio struktr.

8.5.2.1. ArtefaktaiArtefaktais laikysime vairius reikalavimus, specifikacijas ir programin kod, kurie pateikiami agentui kiekvienos fazs pradioje tam, kad jis naudot juos kurdamas artefaktus kitai fazei.

8.5.2.2. ProcesasProcesas apibria eig rinkin, kur agentas naudos tam tikroje fazje, bei ieig, kuri gaunama ubaigus faz.

8.5.2.3. LaikasLaikas veikia ir proces, ir agent. Kiekvienai proceso fazei pabaigos kriterij galima ireikti laiko elementais (pvz.: terminas). Agento aplinkoje, artefaktai ir proceso bsena kis laike dl kit agent veiklos. Visgi pagrindinis laiko poveikis agentui bus jauiamas kaip darbo valandos, kai agentas dirba.

8.5.3. Imitacins aplinkos charakteristikosRemiantis Russell ir Norvig [RN02], ms imitavimo modelio imitacin aplinka yra dalinai matoma, stochastika, epizodika ir dinamika.

39

8.5.3.1. Dalinai matomaAplinka dalinai matoma agentui, nes bet kuriuo metu agentas mato tiktai tas veiklas, kurios jam yra paskirtos einamoje fazje. Aplinkos vaizdas nra pilnas todl, kad agentas neino, ar faz yra ubaigta ir todl, kad jis nemato kit agent indlio.

8.5.3.2. StochastikaAplinka yra stochastika (atsitiktin) todl, kad ji nra pilnai matoma ir dl to, kad sekanti bsena nepriklauso tiesiogiai nuo konkretaus agento veiksm atliekam dabartinje bsenoje, nes kiti agentai taip pat veikia aplink.

8.5.3.3. EpizodikaAplinka yra epizodika, nes agento veiksm pasirinkimas unikaliai priklauso nuo dabartins aplinkos bsenos, taiau nepriklauso nuo kit agent bsenos. Kok veiksm pasirinks atlikti agentas labiausiai priklauso nuo to, ar dabartinis laikas patenka darbo valandas ir nuo to, ar agentas iuo metu turi k veikti. Jei agentas turi k veikti, tuomet jis atlieka likusi veikl, jei ne, tuomet pasirenka sekani veikl.

8.5.3.4. DinamikaAplinka yra dinamika todl, kad ji kinta laike, kol agentas atlieka veiklas ar renkasi koki kit veikl atlikti. Kiti agentai tuo metu keiia aplink, papildydami ieigos artefakt. Kitaip tariant, ieigos artefaktas yra papildomas vien agent indliu, kol kiti renkasi koki kit uduot atlikti.

8.5.4. Agentaiio punkto papunkiuose apibrime daugiaagenio program krimo proceso imitacijos modelio agent savybes, j autonomikum bei intelekt.

8.5.4.1. Agent autonomijaAgentas yra autonomikas tiek, kiek jam to reikia. Kitaip tariant, jis nedirba nedarbo valandomis, taiau darbo valandomis privalo dirbti ir negali atsisakyti vykdyti uduot.

40

8.5.4.2. Agent intelektasIntelektas arba intelekto nebuvimas yra, ko gero, prietaringiausias agentins paradigmos aspektas. iame darbe agento intelektas gyvendintas kaip paprast slygini sakini hierarchija. Agentas slyginiais sakiniais patikrina aplinkos bsena tam, kad priimt sprendim auktesniame lygyje ir perduot valdym hierarchikai emesniame lygyje esantiems slyginiams sakiniams. irint i ios perspektyvos, agentus galima apibdinti kaip reaktyvius (t.y. tiesmukai reaguojanius aplink).

41

9. IMITATORIAUS REALIZACIJAio skyriaus poskyriuose apraysime kaip buvo realizuotas daugiaagentis program krimo proceso imitavimo modelis (toliau vadinsime imitatoriumi). Pirmas ir antras poskyris skirtas apvelgti imitatoriuje realizuotus agentus ir j sprendimo primimo algoritm. Treias poskyris skirtas imitatoriaus fizins ir pradini duomen struktros analizei. Paskutiniame poskyryje apvelgsime imitatoriaus program krimo proceso imitavimo algoritm ir rezultat kintamuosius.

9.1. Imitatoriuje realizuoti agentaiDaugiaagentis program krimo proceso imitacijos modelis yra realizuotas panaudojant objektikai orientuot programavimo paradigm individuals P krjai yra objektai. Apibriama bendrin klas, kuriai sukuriami objektai turintys individualias P krjus atvaizduojani charakteristik savybes. Agentai sveikauja su artefakt objektais ir yra veikiami (pvz.: j naumas) pastang naumo bei ini modeli, kurie yra integruoti agent apibriani klas. Sveikos vyksta per objekt metodus, parametruose perduodant jiems kitus objektus, kuriuos metodas moka apdoroti. Priklausomai nuo ikvieiamo metodo, jis gali grinti reikm arba kit objekt.

9.1.1. P krjo agentasgyvendintame modelyje, vienas agentas atstovauja vien P krj (ar testuotoj). Agentas yra paprastas objektas, kurio elgsena yra kaip reaktyvaus agento, kaip aprayta 8.5.5 punkte. Kiekvienas agentas turi rinkin individuali charakteristik (Pasiekim poreikis, Savivert ir Kontrols lokusas) taipogi ir rinkin ini charakteristik (bij, Kij, ir Eij) kiekvienam uduoi ini tipui apibrtam sistemoje. i charakteristik reikms yra naudojamos kaip pradiniai duomenys, reikalingi PNM ir HM modeliuose, imitatoriui skaiiuojant agent naum ir kitas veiklos bei ieigos reikmes.

9.1.2. Projekto vadovo agentasImitatorius naudoja projekto vadovo agent, kurio tikslas yra paruoti darb iskaidymo

struktr (WBS) remiantis pradine pirmos fazs reikalavim specifikacija. Sekaniose fazse projekto vadovas konvertuoja praeitos fazs ieigos artefakt veikl rinkin, kur reiks atlikti dabartinje fazje. Vadovas taip pat yra atsakingas u darb paskirstym tam, kad tinkamos kompetencijos agentas atlikt teisingas veiklas. Pavyzdiui, jei pagal proces reikia, kad testuotojai, o ne P krjai paruot testavimo atvejus tam tikroje fazje. Tokiu atveju vadovas utikrina, kad tik agentai, kuri 42

rol yra testuotojas gaus veikl paruoti testavimo atvejus. Vienas agentas gali atstovauti kelet roli, jei tik taip yra nurodyta prie pradedant imitacij. Projekto vadovo agentas nra btinas skmingam imitatoriaus gyvendinimui. P krjai galt patys tiesiogiai bendrauti su artefaktais esaniais j aplinkoje ir patys galt nusprsti, kurias veiklas reikia atlikti. Taiau tam, kad nebt sulauyta realaus pasaulio metafora, buvo vestas projekto vadovo agentas. I esms is agentas yra atsakingas u darb eils sudarym ir teising uduoi paskirstym kitiems agentams, pagal j rol. Taikant judrij metodik, kur nra formalaus projekto vadovo, poir, is agentas bt darb krvos metafora.

9.2. Agent sprendimo primimo algoritmasAgent sprendimo primimo mechanizmas pavaizduotas emiau pateiktoje lentelje. 3 lentel. Veiksm taisykls, apibrianios agento sprendim primimo proces. Nr. 1 2 3 4 5 6 7 8 9 Slyga Data vents Data Savaitgalis Laikas Paprastos valandos Laikas Darbo valandos Laikas Virvalandiai Laikas Pertrauka Laikmatis nepaleistas Laikmatis paleistas Neparinkta jokia veikla Jei tenkinama Pereiti 2 slyg Pereiti 3 slyg Pereiti 4 slyg Pereiti 6 slyg Pereiti 6 slyg Pereiti 7 slyg Paleisti laikmat Pereiti 9 slyg Pareikalauti veiklos Jei netenkinama Sustabdyti Sustabdyti Pereiti 5 slyg Pereiti 5 slyg Sustabdyti Sustabdyti Pereiti 7 slyg Atlikti veikl

Parykintas tekstas tai primityvs veiksmai. Laikmatis padeda imitatoriui matuoti kiekvieno P krjo darbo indl.

43

9.3. Imitatoriaus struktros savybsiame poskyryje apraysime aktualias iam darbui imitatoriaus savybes. Pirmame io poskyrio punkte aptarsime imitatoriaus fizin struktr, kuri pavaizduota UML klasi diagrama (3 pav.). Antrame punkte aptarsime imitatoriaus pradini duomen struktras.

9.3.1. Imitatoriaus struktraioje diagramoje (3 pav.) pateikta imitatoriaus fizins struktros UML klasi diagrama.

3 pav. Imitatoriaus struktros UML klasi diagrama. Imitatoriaus struktra sudaryta i keltos su iniomis susijusi klasi (pvz.: tipas ar primityvas, gebjimas ir uduotis), ios klass tuomet yra ipleiamos kelet artefakto klasi, kurios yra 44

dalomos tarp klasi susijusi su programins rangos krimo procesu. Individo klas apibria individo charakteristikas, tokias kaip pasiekim poreikis, savivert, kontrols lokusas, taipogi ini gebjimus, tokius kaip: ini lygis, potencialus prieaugis ir didiausias sudtingumas, nustatytas kiekvienam ini tipui, kur ino individas. i klas yra iplsta pat programins rangos krj, kuris naudojamas imitacijose.

9.3.2. Imitatoriaus pradini duomen struktra ir valdymasTam, kad galima bt lengvai konfigruoti imitatoriaus pradinius kintamuosius, buvo panaudotos konfigracijos duomen struktros. Jos veikia kaip lentels duomen bazje. emiau pateikiama konfigracijos duomen struktra (medis): Resursai |--DB | |--projektas | | |-- | | |-- (reikalavim specifikacija) | | |-- | | | |-- | |--ZB | |-- | |-- | |--procesas | |--fazes | | |-- | | |-- | | |-- ... | | |-- | | | |-- | |--nustatymai |--

9.3.2.1. Proceso apibrimasImitacijai atlikti vis pirma reikia apibrti programins rangos krimo proces, kuris bus imituojamas. Imitatoriaus naudotojas privalo proces apibrti tokia tvarka: Procesas skaidomas fazes, kaip apibrta 9.3.2 punkte. 45

Kiekviena faz apibriama taip, kaip nurodyta 9.3.2.2 papunktyje (Fazs apibrimas). Apibriamos rols, kurios egzistuoja procese. 4 lentel. Roli pavyzdysRols ID 1 2 3 Sutrumpinimas Apibdinimas PV PR TE Projekto vadovas P ininierius, programuotojas Testuotojas

Fazi katalogo pavyzdys: Fazes |-- |-- |-- |-- |--

9.3.2.2. Fazs apibrimasKiekviena proceso faz yra apibrta fazs aprae pavadintame pagal tai, kokia tai faz. Ten ivardinamos veiklos, kurios turi bti atliktos toje fazje ir kokia turi bti agento, kuris atliks tas veiklas, rol ir kvalifikacija. Svarbu paminti, kad agentas gali atstovauti kelias roles. 5 lentel. Fazs apraas apibdinantis projektavimo faz.Nr. 1 2 Veikla P projektavimas Testavimo atvej projektavimas Reikalingas ini lygis (%) 80 85 Dalyvi rols PR, TE TE

9.3.2.3. Projekto apibdinimasAnkstesniuose proceso ir fazs aprauose procesas ir fazs veiklos apibdinami bendrais bruoais, taiau projekto kataloge apraomas konkretus vykdomo projekto procesas. Jame yra projekto reikalavim specifikacija, imitacijos nustatymai, taiau svarbiausia detalus fazi apraas, toks kaip parodytas etoje lentelje (6 lentel). ia apraoma, kokia eils tvarka vykdomos fazs, kas jose dalyvauja ir kokia pabaigos ym naudojama kiekvienai fazei ubaigti. 6 lentel. Projekto fazs apibdinimo pavyzdys. 46

Eils tvarka 1 2

Faz (pagal pavadinim) P projektavimas Testavimo projektavimas

Dalyviai (id:rol) 01:PR; 02:PR; 03:TE

Pabaigos ym Q=96% //kokyb F=97% //funkcionalumas

atvej 01:TE; 03:TE

iuo metu palaikomi pabaigos kriterijai yra aprayti sekanioje lentelje (7 lentel). 7 lentel. iuo metu palaikomi fazs pabaigos kriterijai.Kriterijus Pasiekta kokyb Ubaigtumo lygis (funkcionalumo) Terminas (kaip konkreti data) Terminas (valandos nuo projekto pradios) Sintaks Q=X F=X Apibdinimas Baigti, kai ieigos artefakto kokyb pasiekia X% Baigti, kai X% ieigos artefakto yra ubaigta D=YYYYMMDD Baigti tam tikr dien T=X Baigti po X valand nuo projekto pradios Terminas (valandos nuo dabartins fazs H=X pradios) Baigti po X valand nuo fazs pradios

47

9.4. Pagrindinis imitacijos algoritmasiame poskyryje aptarsime kaip imitatorius matuoja laik, kaip atlieka imitacij (algoritmas) ir kokius rezultatus pateikia atliks imitacij.

9.4.1. Laiko matavimas imitatoriujeLaikui matuoti imitatoriuje yra apibrta statin kalendoriaus klas (r. 3 pav. 9.3.1 punkte). Kadangi imitavimo algoritmas yra ingsninis, o ne tolydus, tai kiekvienos iteracijos ciklo pabaigoje ikvieiamas kalendoriaus klass (Calendar) metodas (Increment), kuris padidina laik nustatytu ingsniu. Laiko ingsnis yra konfigruojamas ir gali bti pvz.: minut ar valanda. ingsn reikt pasirinkti pagal imituojam situacij ir dominant detalumo lyg, kadangi po kiekvienos iteracijos isaugomi tarpiniai iteracijos duomenys (grafik braiymui), todl rezultato duomen kiekis gali stipriai iaugti, jei imituojama situacija trunka labai ilgai, o ingsnis nustatytas labai maas. I esms, laiko ingsnis nustato pjvio dyd, kiek dali pasidalins visas imitacijos laikas ir kiek reiks iteracij visai imitacijai atlikti, todl nuo jo priklauso ir imitacijos rezultat tikslumas (pvz.: jei laiko ingsnis bt didesnis nei valanda, piet pertraukos tapt ilgesns arba jas visai perokt, taipogi egzistuoja darbo valand perdirbimo tikimyb). Imitacijos vyksta ne realiu laiku, o menamu. Kalendoriui galima nustatyti dat, nuo kurios is pradt skaiiuoti laik. Datos ir laiko formatas Metai.mnuo.diena Valanda:minut. Atskirai, kiekvienas agentas turi laikmat, kuris matuoja kiek laiko i viso is dirbo.

9.4.2. Imitacijos vykdymas ir algoritmasiame punkte apraysime kaip vykdomos imitacijos naudojant imitatori. Pagrindiniai ingsniai: 1. Inicializacija vis pirma, prie pradedant imitacij reikia aprayti vesties duomenis imitatoriui. vesties duomen struktra aprayta 9.3.2 punkte. Apraomas procesas, projektas, dalyviai, dalyvi savybs ir j inios. 2. Imitacija paleidiamas imitatorius. Pagrindins savybs ir ingsniai: a. Sukuriami objektai su savybmis, kurios apraytos vesties duomenyse. b. Pradedamas projekto ciklas. 48

c. Pradedamas fazs ciklas. d. Ikvieiami agentai, jie atlieka vidinius skaiiavimus (produktyvumo nustatymas, ini lygio atnaujinimas), sveikauja su projekto vadovo agentu ir fazje kuriamu artefaktu. e. Kalendoriaus laikas padidinamas nustatytu dydiu. f. Isaugomi tarpiniai rezultatai. g. Patikrinama ar gyvendintas fazs ir projekto pabaigos kriterijus. Jei ne, vl kartojamas fazs ciklas. h. Jei fazs kriterijus patenkinamas, tuomet faz keiiama sekani ir kartojamas fazs ciklas. i. Jei gyvendintas projekto pabaigos kriterijus tuomet baigiamas ciklas. j. Isaugomi galutiniai rezultatai ir ivedami ekran. k. Tarpiniai rezultatai ivedami rezultat byl. 3. Rezultat analiz jei galutiniai rezultatai nepakankamai detals (rodomi ekrane suminiai fazi rezultatai), tuomet rezultat byla importuojama elektronins skaiiuokls program ir ten toliau analizuojami.

9.5. Imitacijos rezultatai ir j atvaizdavimas 9.5.1. vesties kintamiejiPradiniai duomenys imitatoriui pateikiami konfigracijos duomen struktroje apibrtoje 9.3.2 punkte. Jei atlikus imitacij ir vertinus gaut rezultat, kyla noras perleisti imitacij su kitokiais vesties duomenimis, pavyzdiui, iekant optimalios trukms, tai tok veiksm galima atlikti tik rankiniu bdu. iuo metu imitatoriaus prototipe yra numatyta tik galimyb atlikti vien imitacij su i anksto apibrtais vesties parametrais.

9.5.2. Rezultat kintamiejiemiau esanioje lentelje (8 lentel) surayti imitatoriaus generuojami rezultat kintamieji. Treiame stulpelyje trumpai apibdinta koki informacij suteikia io kintamojo reikm. 49

8 lentel. Rezultat kintamj reikmi lentel. Nr. Pavadinimas 1. 2. 3. Trukm (fazs, projekto) Agento darbo laikas ini lygis Reikm Kiek laiko truko vykdyti faz (projekt). Kiek laiko agentas dirbo viso projekto metu. gyt ini lygis. Kiek imoko atlikdamas naujas uduotis. gytos patirties matas. 4. Produktyvumas Prasmingas sudarant produktyvumo kreiv. Tuomet reikia vis tarpini reikmi. 5. 6. Artefakto ubaigtumo lygis Artefakto kokyb Kiek procent artefakto gyvendinta. Fazs ar projekto pabaigoje sukurto artefakto kokyb.

9.5.3. Rezultat atvaizdavimasSukurtas imitatorius yra prototipas, skirtas daugiaagenio PKP imitacijos modelio gyvendinamumui ir validumui rodyti, todl jame nra gyvendintas grafinis rezultat atvaizdavimas ar animuotas imitavimo veiklos atvaizdavimas. Taiau imitatorius turi funkcionalum, leidiant eksportuoti gautus rezultatus kaip CSV byl (Comma Separated Values), kuri vliau galima importuoti skaiiuokls program, toki kaip Microsoft Excel, ir su rezultatais toliau atlikti statistin analiz ar kurti grafikus vaizdiai parodanius kintamj kitim laike.

50

10. IMITATORIAUS MODELIO VERIFIKACIJA IR VALIDACIJAVerifikacija tai procesas, utikrinantis, kad udavinys sprendiamas teisingai. Ms atveju, tai reikt, kad imitacijos modelis yra teisingai realizuotas, t.y. nepalikta joki klaid imitatoriaus kode, dl ko is veikt nekorektikai. Verifikacijos rezultatai pristatyti pirmame poskyryje. Validacija tai procesas, utikrinantis, kad sprendiamas teisingas udavinys. iuo atveju, validacija bt susijusi su modelio, kur realizuoja imitatorius, korektikumo nustatymu, t.y. imitatoriaus rezultatai yra artimi realiam pasauliui, kur bando imituoti. io skyriaus poskyriuose apvelgsime metodus (10.2 poskyris), kuriais bus validuojamas imitatoriaus modelis ir atliktos validacijos rezultatus (10.3 poskyris).

10.1. VerifikacijaImitatoriaus verifikacija io darbo kontekste reikia programinio kodo korektikumo utikrinim, taiau i veikl sunku dokumentuoti, todl pateiksime tik taikytus metodus. Programinio kodo korektikumui utikrinti buvo taikyti ie ingsniai: Kodo trasavimas ir derinimas tarpini rezultat ivedimas tam, kad matytsi programos eiga ir tarpiniai rezultatai (pvz.: masyvo turinys, kintamojo reikm). eigos ir ieigos testavimas (I/O testing) manipuliacijos su eigos kintamaisiais ir ieigos kintamj analiz. Skaiiavim verifikacija pirma rezultatas suskaiiuojamas ant popieriaus, o tada palyginama su imitatoriaus gautu rezultatu. Sudting sistem verifikavimas negali bti isamus, todl nepaisant vis i metod taikymo ir klaid, kurias jie aptiko, itaisymo, nemanoma garantuoti realizacijos korektikumo. Geriausiu atveju autorius sumaino defekt kiek ir klaid pasitaikymo rizik.

10.2. Validavimo metodaiiame poskyryje apvelgsime taikytus validacijos metodus iorin ir modelio su modeliu validavim.

51

10.2.1. Iorinis validavimasImitaciniame modeliavime pirmutinis tikslas imitacijos modeliuotojui yra sukonstruoti tok model, kuris iorikai atrodo pagrstas modelio naudotojams ir kitiems, kurie supranta apie reali imituojam sistem [Wik04]. Jei ekspertams atrodo, kad modelis yra adekvatus, tuomet sakoma, kad modelis yra iorikai validus. Atliekant iorin validacij, paprastai modelio ieigos rezultatai pateikiami domeno ekspertams animacij arba grafik ir lenteli pavidalu. Tuomet ekspertai vertina ieigos rezultat pagrstum ir pateikia savo subjektyvi nuomon apie rezultat kokyb. vertins savo objektyvias galimybes, autorius nusprend pats atlikti iorin modelio validacij. Tam pasirinko kelet paprast atvej, kuri pagrstumas bt akivaizdus ne tik ekspertui.

10.2.2. Modelio su modeliu validavimasAtliekant imitacinio modelio validacij, labai gerai yra turti kit egzistuojant ir validuot model ar imitatori su kuriuo bt galima palyginti savo naujai kuriam model. Toks validavimo metodas vadinamas Modelio su modeliu validacija. iame darbe buvo panaudotas Hanakawa ir bendraautori [HMT99] dokumentuotas, j sudaryto modelio, trij testavimo atvej rezultatas. Kadangi iame darbe sukurtas imitatorius gali pateikti tokio pat tipo ieigos kintamuosius, kaip ir [HMT99] modelis (pvz.: trukm ir gautos inios), todl autorius atliko kelet imitacij panaudodamas eigos reikmes apraytas [HMT99] ir palygino gautus rezultatus (10.3.2 punkte).

10.3. Validavimo rezultataiiame poskyryje apvelgsime validacijos metu gautus rezultatus.

10.3.1. Imitatoriaus iorinis validumasIorinio validumo vertinimui atliksime kelet paprast test, kuri rezultatas yra nesunkiai nuspjamas nenaudojant imitatoriaus.

10.3.1.1. P krjas dirbantis be pertraukPradiniai duomenys: Artefakto dydis = 100 darbo valand, produktyvumas = 100%. Rezultatas: Projekto trukm = 100 kalendorini valand. Kaip ir galima tiktis, imitatorius teisingai suskaiiavo, kad P krjas dirbdamas be pertrauk pilnu pajgumu darbus atlieka per tok 52

laik, koks yra eigos artefakto dydis (matuojamas darbo valandomis). Tarpini rezultat kreiv tiesi linija.

10.3.1.2. P krjas dirbantis tik darbo dienomisPradiniai duomenys: Artefakto dydis = 100 darbo valand, produktyvumas = 100%. Rezultatas: Projekto trukm = 148 kalendorins valandos. Kaip ir tiktasi, projekto trukm pailgjo 48 valandomis dl to, kad P krjas nedirba savaitgaliais. Tarpini rezultat kreiv su vienu laipteliu.

10.3.1.3. P krjas dirbantis tik darbo valandomis (8 - 17)Pradiniai duomenys: Artefakto dydis = 100 darbo valand, produktyvumas = 100%. Rezultatas: Projekto trukm = 361 kalendorin valanda. Kaip ir tiktasi, projekto trukm rykiai pailgjo dl to, kad P krjas dirba tik darbo laiku nuo 8:00 iki 17:00. Tarpini rezultat kreiv laiptuota, su dviem ilgesniais laipteliais ( projekto trukm papuola du savaitgaliai).

10.3.1.4. P krjas dirbantis su piet pertraukomis (12 13)Pradiniai duomenys: Artefakto dydis = 100 darbo valand, produktyvumas = 100%. Rezultatas: Projekto trukm = 388 kalendorins valandos. Kaip ir tiktasi, projekto trukm pailgjo 27 valandomis nuo ankstesnio testo dl to, kad P krjas nedirba piet pertraukos metu. Tarpini rezultat kreiv panai ankstesnio testo, tik su smulkiais laipteliais, atsiradusiais dl piet pertraukos.

10.3.2. Imitatoriaus modelio palyginimas su HMAtkreipiame dmes, kad io punkto papunki grafikuose X ais vaizduoja laik, praleist dirbant ties uduotimi, o Y ais apibrta kiekvieno grafiko aprae. Taipogi, projektas (faz) prasideda 2011-05-16 8:00, kas yra pirmadienis. Sekantys program krimo proceso imitacijos eksperimentai atlikti su imitatoriaus prototipu demonstruoja, kaip HM modelio dalis ms imitatoriuje reaguoja ini pokyius per laik. P krjo ini charakteristikos (K), naudojamos ms modelyje yra: Esamas ini lygis (bij), 53

Laikas reikalingas gyti reikiam ini lyg (Kij-ekvivalentas), Sudtingumo lygis (Eij-ekvivalentas) dl kurio P krjas neatlikt uduoties (t.y. didiausias galimas sudtingumo lygis). Galime urayti taip: K = { bij, Kij-ekvivalentas, Eij-ekvivalentas }. Ekvivalenti reikm yra supaprastintas matas vestas Hanakawa ir bendraautori [HMT02], kuris naudojamas skaiiuojant maau intuityvi galutin dominanio kintamojo reikm. Jie pasil formules atsakym paprastus klausimus (pvz.: Kij-ekvivalentas) konvertavimui modelio kintamuosius (pvz.: Kij). iame darbe tos formuls nedomina, kadangi svarbu tik validuoti realizuot imitatoriaus prototip. Tam tikslui pradins reikms imamos i Hanakawa darbo [HMT02] ir visai nesvarbu, kok ini lyg ar gebjimus tos reikms atspindi originaliame darbe. Taikant imitatori praktikoje, galutiniam imitatoriaus naudotojui, vis tiek reikt susikurti savo poreikius atitinkani metodik ini lygiui vertinti ir konvertuoti reikmes naudojamas imitacijai atlikti. Sekaniuose papunkiuose palyginsime trij imitacijos atvej rezultatus i Hanakawa ir bendraautori [HMT02] darbo, su iame darbe sukurto imitatoriaus rezultatais, naudojant panaias K reikmes kaip ir Hanakawa darbe.

10.3.2.1. Imitacijos atvejis Nr. 1Pirmasis imitacijos atvejis susijs su paengusiu programuotoju, kurio C programavimo kalbos inios vertintos 100%. iame atvejyje nesitikima, kad programuotojas gis koki nors ini, todl darbo naumas turt bti pastovus. Hanakawa ir bendraautori darbe [HMT02] numatoma, kad tokioje situacijoje programuotojas, darbui atlikti, turt utrukti 1154 valandas. Pradiniai duomenys: Uduoties dydis = 10000 LOC (angl. Lines Of Code kodo eilui), Maksimalus produktyvumas = 1500 LOC / mn., K = { 100%, 100, 30% }. Rezultatas: Produktyvumas = 96%, Trukm = 5070 kalendorins valandos (6,95 mn.), 1213 darbo valandos. 54

Darbo pradia 2011-05-16 8:00, pabaiga 2011-12-13 14:00. Skirtumas lyginant su [HMT02] 46 valandos (3,8%).

4 pav. Pirmojo imitacijos atvejo rezultatas. Y ais atliktas darbas procentais.

10.3.2.2. Imitacijos atvejis Nr. 2Antrasis imitacijos atvejis P krjas yra visikai nesusipains su uduotimi (ini lygis bij = 0). Hanakawa imitacijos rezultatas numato, kad P krjas dirbs 1636 valandas. Pradiniai duomenys: Uduoties dydis = 10000 LOC, Maksimalus produktyvumas = 3000 LOC / mn., K = { 0%, 100, 30% }. Rezultatas: Trukm = 6895 kalendorins valandos (9,46 mn.), 1646 darbo valandos. Darbo pradia 2011-05-16 8:00, pabaiga 2012-02-27 14:00. Skirtumas lyginant su [HMT02] 10 valand (0,6%).