際際滷

際際滷Share a Scribd company logo
Program 迭 in転inerija Programins 眺rangos k笛rimas
Turinys Bazins problemos, susijusios su P町 k笛rimu P町 k笛rimo valdymas P町 k笛rime taikomos priemons ir metodai Ekstremalus programavimas
Bazins problemos, susijusios su P町 k笛rimu
Pagrindins P町 k笛rimo problemos Sudtingumo ma転inimas Pakeitim迭 prognozavimas Sukurtos P町 patikrinimas P町 k笛rimo standartai
Sudtingumo ma転inimas Svarbiausias tikslas realizuojant P町 yra kuo labiau suma転inti jos sudtingum P町 kodo sudtingumo laipsnis 眺takoja: P町 testavim  P町 prie転i笛r ir palaikym P町 kodo sudtingum galima suma転inti laikantis P町 k笛rimo standart迭, taikant 眺vairias P町 k笛rimo priemones bei P町 k笛rimo kokyb u転tikrinanius metodus
Pakeitim迭 prognozavimas P町 keisis viso savo gyvavimo ciklo metu, todl labai svarbu jos k笛rimo fazje 眺vertinti 邸眺 fakt P町 yra labai priklausoma nuo savo veikimo aplinkos, kurios pokyiai gali labai 眺vairiai 眺takoti sukurt P町
Sukurtos P町 patikrinimas (1) P町 turi b笛ti kuriama taip, kad jos kode b笛t迭 galima nesunkiai aptikti klaidas, atlikti nepriklausom P町 testavim bei papildyti naujomis galimybmis atidavus j naudoti vartotojams
Sukurtos P町 patikrinimas (2) Lengvai patikrinam P町 padeda sukurti specialiai P町 kodavimui skirti standartai, kurie rekomenduoja: nuolat atlikti programos kodo per転i笛ras vienet迭 testavim kuo reiau naudoti sudtingas ir sunkiai suprantamas programavimo kalb迭 konstrukcijas
P町 k笛rimo standartai (1) P町 k笛rimo standartai apima: programavimo kalbas (pavyzd転iui, programavimo kalb迭, toki迭 kaip Java ar C++, standartai) komunikavimo metodus (pavyzd転iui, standartai, apibr転iantys dokumento format ir turin眺) platformas (pavyzd転iui, programavimo interfeis迭 standartai, apra邸antys operacins sistemos kreipinius) priemones (pavyzd転iui, objektinio projektavimo notacijos standartas UML)
P町 k笛rimo standartai (2) 町monje taikomi standartai gali b笛ti: i邸oriniai  (sukurti 眺vairi迭 u転 standartus atsaking迭 institucij迭, toki迭 kaip IEEE, OMG, ISO ir pan.)  vidiniai  (sukurti paios 眺mons darbuotoj迭)
P町 k笛rimo valdymas
Program迭 in転inerijos proceso modeliai ir P町 k笛rimas Egzistuoja nema転ai program迭 in転inerijos proceso modeli迭: vieni j迭 labiau akcentuoja P町 k笛rimo faz, kiti  ma転iau
Tiesiniai program迭 in転inerijos proceso modeliai Kai kurie modeliai yra labiau  tiesiniai  P町 k笛rimo at転vilgiu negu kiti: jie labiau akcentuoja etapus, einanius prie邸 P町 k笛rim ir yra link atskirti kiekvien 邸i迭 veikl迭 Pavyzd転iui, krioklio modelis traktuoja P町 k笛rim, kaip veikl, atliekam tik po kruop邸ios reikalavim迭 analizs, projektavimo ir planavimo Tiesiniuose program迭 in転inerijos proceso modeliuose P町 k笛rimo faz traktuojama kaip jos kodo ra邸ymas ( coding )
Iteraciniai program迭 in転inerijos proceso modeliai Kiti modeliai yra labiau  iteraciniai:  jiems priklauso evoliucinis modelis, ekstremalus programavimas ( extreme programming ) ir t.t.  ie modeliai link traktuoti P町 k笛rim kaip veikl, kuri vyksta lygiagreiai arba net persidengia su kitomis program迭 in転inerijos veiklomis, tokiomis kaip reikalavim迭 in転inerija, projektavimas, planavimas ir kt.  Iteraciniuose program迭 in転inerijos proceso modeliuose P町 k笛rimas traktuojamas kaip vis迭 邸i迭 veikl迭 kombinacija, plius programos kodo ra邸ymas
P町 k笛rimo planavimas (1) PI proceso modelio pasirinkimas nulemia vis tolimesn眺 P町 k笛rimo planavim Priklausomai nuo pasirinkto PI proceso modelio, reikia nustatyti prie邸-slygas ir nurodyti iki kokio lygio jos turi b笛ti patenkintos, kad b笛t迭 galima pradti P町 k笛rim Taip pat pasirinktas PI proceso modelis 眺takoja sudtingumo ma転inimo, pakeitim迭 prognozavimo ir sukurtos P町 patikrinimo tiksl迭 眺gyvendinim
P町 k笛rimo planavimas (2) Pasirinktas PI proceso modelis taip pat apibr転ia, kaip bus kuriami ir integruojami P町 komponentai, tikrinama sukurtos P町 kokyb bei paskirstomos u転duotys projekte dalyvaujantiems 転monms
P町 k笛rimo proceso rezultatai Daugelis P町 k笛rimo proceso rezultat迭 gali b笛ti i邸matuojami Jiems priklauso sukurtas kodas, modifikuotas kodas, pakartotinai panaudotas kodas, kodo per転i笛r迭 statistika, i邸taisyt迭 ir surast迭 klaid迭 koeficientas ir t.t.  P 町 k笛rimo proceso matavimai gali b笛ti naudingi u転tikrinant P町 kokyb, tobulinant k笛rimo proces ir kt. tikslams pasiekti
P町 k笛rime taikomos priemons ir metodai
P町 k笛rimo kalbos P町 k笛rimo kalbos apima bet kokias komunikavimo formas, kuri迭 pagalba 転mogus gali u転ra邸yti problemos sprendim, kur眺 turi 眺vykdyti kompiuteris
P町 k笛rimo kalb迭 tipai Konfig笛racijos kalbos  (configuration languages) Programuotojo paketai  (toolkits) Programavimo kalbos  (programming languages)
Konfig笛racijos kalbos J迭 pagalba P町 k笛rjai riboto pasirinkim迭 skaiiaus pagalba kuria nauj arba tipin P町 produkto instaliacij J 迭 pavyzd転iais gali b笛ti Windows arba Unix konfig笛raciniai failai
Programuotojo paketai Tai program迭, paprogrami迭, standartini迭 proced笛r迭 rinkiniai skirti programoms kurti
Programavimo kalbos (1) Tai lanksiausias P町 k笛rimo kalb迭 tipas Jose pateikiama ma転iausiai informacijos apie taikymo srit眺 ir k笛rimo proces, todl programavimo kalbos reikalauja gero pasiruo邸imo ir apmokym迭
Programavimo kalbos (2) Skiriamos trys programavimo kalbose naudojamos notacijos: lingvistin formali vizuali
Lingvistins notacijos Lingvistins notacijos atveju naudojami kasdiens kalbos 転od転iai, kurie grupuojami 眺 tam tikr form i forma pasi転ymi sintakse, labai pana邸ia 眺 paprasto sakinio
Formalios notacijos Formalios notacijos naudoja tikslius, nedviprasmi邸kus ir formalius (arba matematinius) u転ra邸us
Vizualios notacijos (1) Vizualios notacijos grind転iamos sistem sudarani迭 element迭 vizualiu atvaizdavimu Jos leid転ia i邸dlioti sistem sudaranius elementus kompiuterio ekrane ir da転niausiai naudojamos vartotojo ssajos programavime
Vizualios notacijos (2)
Da転niausiai u転duodami klausimai programuojant Kaip sukurti suprantam programos kod, naudojant prasmingus kintam迭j迭 vardus bei tvarkingai i邸dstant programos kod? Kaip valdyti programoje pasirodanias klaidas: tiek planuotas, tiek ne ( exceptions )? Kaip suskirstyti programos kod 眺 klases, paketus ar kitas pana邸ias strukt笛ras? Kaip dokumentuoti programos kod? Kaip atlikti programos kodo suderinim ( tuning )?
P町 k笛rimas ir testavimas P町 k笛rimo metu da転niausiai yra atliekamas dviej迭 r笛邸i迭 testavimas: vienet迭 testavimas integracijos testavimas Kartais testavimas yra atliekamas u転baigus ra邸yti programos kod, o kartais testavimo atvejai paruo邸iami dar prie邸 ra邸ant program
Pakartotinis panaudojimas (1) Kartais P町 yra kuriama panaudojant jau sukurtus komponentus i technologija yra vadinama pakartotiniu panaudojimu
Pakartotinis panaudojimas (2) Naudojant pakartotin眺 panaudojim P町 k笛rimo procese, reikia: Parinkti komponentus, duomen迭 bazes, testavimo proced笛ras bei duomenis, kuriuos galima panaudoti pakartotinai 町vertinti atrinkt迭 element迭 pakartotinio panaudojimo laipsn眺 Apra邸yti, kaip buvo panaudoti atrinkti elementai naujame programos kode, testavimo proced笛rose bei testavimo duomenyse
Programos kodo kokybs u転tikrinimas Sukurto programos kodo kokyb galima u転tikrinti naudojant 邸iuos metodus: vienet迭 ir integracijos testavim programos derinim ( debugging ) programos kodo per転i笛ras statin kodo analiz
Ekstremalus programavimas
Ekstremalaus programavimo strukt笛ra
Visa komanda (1) Visi projekte dalyvaujantys asmenys susirenka drauge ir sudaro komand 町 j b笛tinai turi 眺eiti verslo atstovas arba klientas  (Customer) , kuris pateikia reikalavimus, nustato prioritetus bei valdo projekt Taip pat 眺 komand 眺eina programuotojai ir testuotojai. Pastarieji turi padti klientui sudaryti programos primimo ( acceptance ) testus Komandai priklausantys analitikai padeda vartotojui suformuluoti reikalavimus sistemai
Visa komanda (2) Da転niausiai kiekviena komanda turi trener眺, kuris padeda komandai dirbti kartu ir valdo vis proces, bei vadybinink, teikiant眺 resursus, palaikant眺 ry邸ius su i邸ore bei koordinuojant眺 komandos veiksmus Geriausia kuomet komandoje nra ypating迭 specialist迭, o tik 転mons, turintys reikalingas 転inias bei 眺g笛d転ius
貼aidimo planavimas (1) 貼aidimo planavimas susideda i邸 dviej迭 dali迭:  numatyti, kas bus padaryta paskirtai datai numatyti, k reiks daryti toliau  Visas dmesys ekstremaliame programavime yra sukoncentruotas ties projekto valdymu, kur svarbiausia atsakyti 眺 du klausimus:  Kaip suplanuoti versijas? Kaip suplanuoti iteracijas?
貼aidimo planavimas (2) Kaip suplanuoti versijas?  iame etape klientas pateikia programuotojams savo pageidavimus, o 邸ie 眺vertina, ar sunku tuos pageidavimus realizuoti ir kiek tai kainuos Tuomet klientas pateikia projekto plan, kuriame yra pateikiamas preliminarus versij迭 sra邸as ir j迭 pristatymo datos
貼aidimo planavimas (3) Kaip suplanuoti iteracijas?  Da転niausiai komanda gauna nurodymus kas por savaii迭, todl kiekviena iteracija da転niausiai ir trunka dvi savaites Kiekvienos iteracijos pabaigoje yra pristatoma veikianti sistemos dalis. J 眺vertins, vartotojas pateikia pakoreguot projekto plan, o programuotojai, 眺vertin, kas buvo padaryta prie邸 tai, nusprend転ia, k jie padarys i邸 pateikto plano U転duotys vl i邸skaidomos 眺 smulkesnes, apskaiiuojamos snaudos ir t.t.
Nedidels versijos Programa pristatoma klientui nedideliais gabaliukais Klientas turi nusprsti, k daryti su gauta nauja sistemos versija. Pageidautina, kad jis j atiduot迭 naudoti galutiniams vartotojams Internetini迭 program迭 atveju naujos versijos galutiniams vartotojams gali b笛ti pateikiamos kas kelias dienas, o informacins sistemos  kas mnes眺 arba da転niau
Vartotojo testai Kiekvienos iteracijos rezultatui klientas pateikia primimo testus, kurie 眺rodyt迭, kad sukurta sistemos dalis funkcionuoja teisingai iuos testus naudoja ne tik klientas, vertindamas pristatom sistemos dal眺, bet ir komanda, kurdama program Jeigu testas duoda pageidaujamus rezultatus, laikoma, kad sistema funkcionuoja teisingai
Kodavimo standartai Visi projekte dalyvaujantys programuotojai turi prisilaikyti tam tikr迭 眺monje galiojani迭 programavimo standart迭, kad sukurtas kodas atrodyt迭 tarsi j眺 b笛t迭 programavs vienas asmuo
Nuolatin integracija (1) Kadangi kiekvienos iteracijos metu sistema yra papildoma vis naujomis funkcijomis, vyksta nuolatin sistemos komponent迭 integracija Da転nai visos sistemos veikimo klaidos atsiranda pradjus integracijos proces
Nuolatin integracija (2) Jeigu komponentai integruojami retai, tuomet padidja tikimyb, kad jie bus tarpusavyje nesuderinami, kadangi kiekvienas programuotojas yra 眺sigilins tik 眺 savo kodo gaball眺 ir dirbdamas visai negalvoja visos sistemos mastu Kadangi integracijos klaid迭 taisymas u転ima nema転ai laiko, visas projektas stoja, tuo paiu padidja rizika, kad konkurentai gali 眺mon aplenkti greiiau suk笛r pana邸aus funkcionalumo produkt
町 testavim orientuotas k笛rimas Kadangi kiekvienas klientui pateikiamas programos gabaliukas yra testuojamas, galima teigti, kad sistema yra i邸testuota beveik 100%
Paprastas projektavimas Ekstremalaus programavimo atveju, sistema projektuojama tik vienai iteracijai, t.y. projektuojama ne visa sistema, o tik jos dalis, kuri turi b笛ti realizuota einamosios iteracijos metu
Programavimas poromis Realizuoti kiekvienai sistemos funkcijai yra paskiriami du programuotojai, t.y. du programuotojai tarsi daro vieno programuotojo darb Taip yra u転tikrinama, kad programos kodas bus per転i笛rtas bent vieno programuotojo, kuris prie jo nedirbo, taip pat bus atliktas geresnis projektavimas ir testavimas Be to, programuotojai gali pasimokyti vienas i邸 kito, pasidalinti idjomis ir taip tobulinti savo profesinius 眺g笛d転ius

More Related Content

PI_12paskaita

  • 1. Program 迭 in転inerija Programins 眺rangos k笛rimas
  • 2. Turinys Bazins problemos, susijusios su P町 k笛rimu P町 k笛rimo valdymas P町 k笛rime taikomos priemons ir metodai Ekstremalus programavimas
  • 3. Bazins problemos, susijusios su P町 k笛rimu
  • 4. Pagrindins P町 k笛rimo problemos Sudtingumo ma転inimas Pakeitim迭 prognozavimas Sukurtos P町 patikrinimas P町 k笛rimo standartai
  • 5. Sudtingumo ma転inimas Svarbiausias tikslas realizuojant P町 yra kuo labiau suma転inti jos sudtingum P町 kodo sudtingumo laipsnis 眺takoja: P町 testavim P町 prie転i笛r ir palaikym P町 kodo sudtingum galima suma転inti laikantis P町 k笛rimo standart迭, taikant 眺vairias P町 k笛rimo priemones bei P町 k笛rimo kokyb u転tikrinanius metodus
  • 6. Pakeitim迭 prognozavimas P町 keisis viso savo gyvavimo ciklo metu, todl labai svarbu jos k笛rimo fazje 眺vertinti 邸眺 fakt P町 yra labai priklausoma nuo savo veikimo aplinkos, kurios pokyiai gali labai 眺vairiai 眺takoti sukurt P町
  • 7. Sukurtos P町 patikrinimas (1) P町 turi b笛ti kuriama taip, kad jos kode b笛t迭 galima nesunkiai aptikti klaidas, atlikti nepriklausom P町 testavim bei papildyti naujomis galimybmis atidavus j naudoti vartotojams
  • 8. Sukurtos P町 patikrinimas (2) Lengvai patikrinam P町 padeda sukurti specialiai P町 kodavimui skirti standartai, kurie rekomenduoja: nuolat atlikti programos kodo per転i笛ras vienet迭 testavim kuo reiau naudoti sudtingas ir sunkiai suprantamas programavimo kalb迭 konstrukcijas
  • 9. P町 k笛rimo standartai (1) P町 k笛rimo standartai apima: programavimo kalbas (pavyzd転iui, programavimo kalb迭, toki迭 kaip Java ar C++, standartai) komunikavimo metodus (pavyzd転iui, standartai, apibr転iantys dokumento format ir turin眺) platformas (pavyzd転iui, programavimo interfeis迭 standartai, apra邸antys operacins sistemos kreipinius) priemones (pavyzd転iui, objektinio projektavimo notacijos standartas UML)
  • 10. P町 k笛rimo standartai (2) 町monje taikomi standartai gali b笛ti: i邸oriniai (sukurti 眺vairi迭 u転 standartus atsaking迭 institucij迭, toki迭 kaip IEEE, OMG, ISO ir pan.) vidiniai (sukurti paios 眺mons darbuotoj迭)
  • 12. Program迭 in転inerijos proceso modeliai ir P町 k笛rimas Egzistuoja nema転ai program迭 in転inerijos proceso modeli迭: vieni j迭 labiau akcentuoja P町 k笛rimo faz, kiti ma転iau
  • 13. Tiesiniai program迭 in転inerijos proceso modeliai Kai kurie modeliai yra labiau tiesiniai P町 k笛rimo at転vilgiu negu kiti: jie labiau akcentuoja etapus, einanius prie邸 P町 k笛rim ir yra link atskirti kiekvien 邸i迭 veikl迭 Pavyzd転iui, krioklio modelis traktuoja P町 k笛rim, kaip veikl, atliekam tik po kruop邸ios reikalavim迭 analizs, projektavimo ir planavimo Tiesiniuose program迭 in転inerijos proceso modeliuose P町 k笛rimo faz traktuojama kaip jos kodo ra邸ymas ( coding )
  • 14. Iteraciniai program迭 in転inerijos proceso modeliai Kiti modeliai yra labiau iteraciniai: jiems priklauso evoliucinis modelis, ekstremalus programavimas ( extreme programming ) ir t.t. ie modeliai link traktuoti P町 k笛rim kaip veikl, kuri vyksta lygiagreiai arba net persidengia su kitomis program迭 in転inerijos veiklomis, tokiomis kaip reikalavim迭 in転inerija, projektavimas, planavimas ir kt. Iteraciniuose program迭 in転inerijos proceso modeliuose P町 k笛rimas traktuojamas kaip vis迭 邸i迭 veikl迭 kombinacija, plius programos kodo ra邸ymas
  • 15. P町 k笛rimo planavimas (1) PI proceso modelio pasirinkimas nulemia vis tolimesn眺 P町 k笛rimo planavim Priklausomai nuo pasirinkto PI proceso modelio, reikia nustatyti prie邸-slygas ir nurodyti iki kokio lygio jos turi b笛ti patenkintos, kad b笛t迭 galima pradti P町 k笛rim Taip pat pasirinktas PI proceso modelis 眺takoja sudtingumo ma転inimo, pakeitim迭 prognozavimo ir sukurtos P町 patikrinimo tiksl迭 眺gyvendinim
  • 16. P町 k笛rimo planavimas (2) Pasirinktas PI proceso modelis taip pat apibr転ia, kaip bus kuriami ir integruojami P町 komponentai, tikrinama sukurtos P町 kokyb bei paskirstomos u転duotys projekte dalyvaujantiems 転monms
  • 17. P町 k笛rimo proceso rezultatai Daugelis P町 k笛rimo proceso rezultat迭 gali b笛ti i邸matuojami Jiems priklauso sukurtas kodas, modifikuotas kodas, pakartotinai panaudotas kodas, kodo per転i笛r迭 statistika, i邸taisyt迭 ir surast迭 klaid迭 koeficientas ir t.t. P 町 k笛rimo proceso matavimai gali b笛ti naudingi u転tikrinant P町 kokyb, tobulinant k笛rimo proces ir kt. tikslams pasiekti
  • 18. P町 k笛rime taikomos priemons ir metodai
  • 19. P町 k笛rimo kalbos P町 k笛rimo kalbos apima bet kokias komunikavimo formas, kuri迭 pagalba 転mogus gali u転ra邸yti problemos sprendim, kur眺 turi 眺vykdyti kompiuteris
  • 20. P町 k笛rimo kalb迭 tipai Konfig笛racijos kalbos (configuration languages) Programuotojo paketai (toolkits) Programavimo kalbos (programming languages)
  • 21. Konfig笛racijos kalbos J迭 pagalba P町 k笛rjai riboto pasirinkim迭 skaiiaus pagalba kuria nauj arba tipin P町 produkto instaliacij J 迭 pavyzd転iais gali b笛ti Windows arba Unix konfig笛raciniai failai
  • 22. Programuotojo paketai Tai program迭, paprogrami迭, standartini迭 proced笛r迭 rinkiniai skirti programoms kurti
  • 23. Programavimo kalbos (1) Tai lanksiausias P町 k笛rimo kalb迭 tipas Jose pateikiama ma転iausiai informacijos apie taikymo srit眺 ir k笛rimo proces, todl programavimo kalbos reikalauja gero pasiruo邸imo ir apmokym迭
  • 24. Programavimo kalbos (2) Skiriamos trys programavimo kalbose naudojamos notacijos: lingvistin formali vizuali
  • 25. Lingvistins notacijos Lingvistins notacijos atveju naudojami kasdiens kalbos 転od転iai, kurie grupuojami 眺 tam tikr form i forma pasi転ymi sintakse, labai pana邸ia 眺 paprasto sakinio
  • 26. Formalios notacijos Formalios notacijos naudoja tikslius, nedviprasmi邸kus ir formalius (arba matematinius) u転ra邸us
  • 27. Vizualios notacijos (1) Vizualios notacijos grind転iamos sistem sudarani迭 element迭 vizualiu atvaizdavimu Jos leid転ia i邸dlioti sistem sudaranius elementus kompiuterio ekrane ir da転niausiai naudojamos vartotojo ssajos programavime
  • 29. Da転niausiai u転duodami klausimai programuojant Kaip sukurti suprantam programos kod, naudojant prasmingus kintam迭j迭 vardus bei tvarkingai i邸dstant programos kod? Kaip valdyti programoje pasirodanias klaidas: tiek planuotas, tiek ne ( exceptions )? Kaip suskirstyti programos kod 眺 klases, paketus ar kitas pana邸ias strukt笛ras? Kaip dokumentuoti programos kod? Kaip atlikti programos kodo suderinim ( tuning )?
  • 30. P町 k笛rimas ir testavimas P町 k笛rimo metu da転niausiai yra atliekamas dviej迭 r笛邸i迭 testavimas: vienet迭 testavimas integracijos testavimas Kartais testavimas yra atliekamas u転baigus ra邸yti programos kod, o kartais testavimo atvejai paruo邸iami dar prie邸 ra邸ant program
  • 31. Pakartotinis panaudojimas (1) Kartais P町 yra kuriama panaudojant jau sukurtus komponentus i technologija yra vadinama pakartotiniu panaudojimu
  • 32. Pakartotinis panaudojimas (2) Naudojant pakartotin眺 panaudojim P町 k笛rimo procese, reikia: Parinkti komponentus, duomen迭 bazes, testavimo proced笛ras bei duomenis, kuriuos galima panaudoti pakartotinai 町vertinti atrinkt迭 element迭 pakartotinio panaudojimo laipsn眺 Apra邸yti, kaip buvo panaudoti atrinkti elementai naujame programos kode, testavimo proced笛rose bei testavimo duomenyse
  • 33. Programos kodo kokybs u転tikrinimas Sukurto programos kodo kokyb galima u転tikrinti naudojant 邸iuos metodus: vienet迭 ir integracijos testavim programos derinim ( debugging ) programos kodo per転i笛ras statin kodo analiz
  • 36. Visa komanda (1) Visi projekte dalyvaujantys asmenys susirenka drauge ir sudaro komand 町 j b笛tinai turi 眺eiti verslo atstovas arba klientas (Customer) , kuris pateikia reikalavimus, nustato prioritetus bei valdo projekt Taip pat 眺 komand 眺eina programuotojai ir testuotojai. Pastarieji turi padti klientui sudaryti programos primimo ( acceptance ) testus Komandai priklausantys analitikai padeda vartotojui suformuluoti reikalavimus sistemai
  • 37. Visa komanda (2) Da転niausiai kiekviena komanda turi trener眺, kuris padeda komandai dirbti kartu ir valdo vis proces, bei vadybinink, teikiant眺 resursus, palaikant眺 ry邸ius su i邸ore bei koordinuojant眺 komandos veiksmus Geriausia kuomet komandoje nra ypating迭 specialist迭, o tik 転mons, turintys reikalingas 転inias bei 眺g笛d転ius
  • 38. 貼aidimo planavimas (1) 貼aidimo planavimas susideda i邸 dviej迭 dali迭: numatyti, kas bus padaryta paskirtai datai numatyti, k reiks daryti toliau Visas dmesys ekstremaliame programavime yra sukoncentruotas ties projekto valdymu, kur svarbiausia atsakyti 眺 du klausimus: Kaip suplanuoti versijas? Kaip suplanuoti iteracijas?
  • 39. 貼aidimo planavimas (2) Kaip suplanuoti versijas? iame etape klientas pateikia programuotojams savo pageidavimus, o 邸ie 眺vertina, ar sunku tuos pageidavimus realizuoti ir kiek tai kainuos Tuomet klientas pateikia projekto plan, kuriame yra pateikiamas preliminarus versij迭 sra邸as ir j迭 pristatymo datos
  • 40. 貼aidimo planavimas (3) Kaip suplanuoti iteracijas? Da転niausiai komanda gauna nurodymus kas por savaii迭, todl kiekviena iteracija da転niausiai ir trunka dvi savaites Kiekvienos iteracijos pabaigoje yra pristatoma veikianti sistemos dalis. J 眺vertins, vartotojas pateikia pakoreguot projekto plan, o programuotojai, 眺vertin, kas buvo padaryta prie邸 tai, nusprend転ia, k jie padarys i邸 pateikto plano U転duotys vl i邸skaidomos 眺 smulkesnes, apskaiiuojamos snaudos ir t.t.
  • 41. Nedidels versijos Programa pristatoma klientui nedideliais gabaliukais Klientas turi nusprsti, k daryti su gauta nauja sistemos versija. Pageidautina, kad jis j atiduot迭 naudoti galutiniams vartotojams Internetini迭 program迭 atveju naujos versijos galutiniams vartotojams gali b笛ti pateikiamos kas kelias dienas, o informacins sistemos kas mnes眺 arba da転niau
  • 42. Vartotojo testai Kiekvienos iteracijos rezultatui klientas pateikia primimo testus, kurie 眺rodyt迭, kad sukurta sistemos dalis funkcionuoja teisingai iuos testus naudoja ne tik klientas, vertindamas pristatom sistemos dal眺, bet ir komanda, kurdama program Jeigu testas duoda pageidaujamus rezultatus, laikoma, kad sistema funkcionuoja teisingai
  • 43. Kodavimo standartai Visi projekte dalyvaujantys programuotojai turi prisilaikyti tam tikr迭 眺monje galiojani迭 programavimo standart迭, kad sukurtas kodas atrodyt迭 tarsi j眺 b笛t迭 programavs vienas asmuo
  • 44. Nuolatin integracija (1) Kadangi kiekvienos iteracijos metu sistema yra papildoma vis naujomis funkcijomis, vyksta nuolatin sistemos komponent迭 integracija Da転nai visos sistemos veikimo klaidos atsiranda pradjus integracijos proces
  • 45. Nuolatin integracija (2) Jeigu komponentai integruojami retai, tuomet padidja tikimyb, kad jie bus tarpusavyje nesuderinami, kadangi kiekvienas programuotojas yra 眺sigilins tik 眺 savo kodo gaball眺 ir dirbdamas visai negalvoja visos sistemos mastu Kadangi integracijos klaid迭 taisymas u転ima nema転ai laiko, visas projektas stoja, tuo paiu padidja rizika, kad konkurentai gali 眺mon aplenkti greiiau suk笛r pana邸aus funkcionalumo produkt
  • 46. 町 testavim orientuotas k笛rimas Kadangi kiekvienas klientui pateikiamas programos gabaliukas yra testuojamas, galima teigti, kad sistema yra i邸testuota beveik 100%
  • 47. Paprastas projektavimas Ekstremalaus programavimo atveju, sistema projektuojama tik vienai iteracijai, t.y. projektuojama ne visa sistema, o tik jos dalis, kuri turi b笛ti realizuota einamosios iteracijos metu
  • 48. Programavimas poromis Realizuoti kiekvienai sistemos funkcijai yra paskiriami du programuotojai, t.y. du programuotojai tarsi daro vieno programuotojo darb Taip yra u転tikrinama, kad programos kodas bus per転i笛rtas bent vieno programuotojo, kuris prie jo nedirbo, taip pat bus atliktas geresnis projektavimas ir testavimas Be to, programuotojai gali pasimokyti vienas i邸 kito, pasidalinti idjomis ir taip tobulinti savo profesinius 眺g笛d転ius