1 / 34

Asmeninis programų kūrimo procesas

Asmeninis programų kūrimo procesas. 2 paskaita 2012-02-24 Andrius Adamonis. Turinys. Kas yra procesas ir kas yra apibrėžtas procesas Kas yra asmeninis procesas Bazinis PSP procesas Baziniai matavimai PSP0.1 procesas. Kas yra procesas?.

jolie
Download Presentation

Asmeninis programų kūrimo procesas

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Asmeninis programų kūrimo procesas 2 paskaita 2012-02-24 Andrius Adamonis

  2. Turinys • Kas yra procesas ir kas yra apibrėžtas procesas • Kas yra asmeninis procesas • Bazinis PSP procesas • Baziniai matavimai • PSP0.1 procesas

  3. Kas yra procesas? • Procesas – seka veiksmų, reikalingų rezultatui pasiekti • Proceso apibrėžimas = proceso aprašymas • Proceso apibrėžimas nusako vaidmenis, užduotis, matavimus, pateikia pagrindinių žingsnių įėjimo ir išėjimo kriterijus

  4. Apibrėžtas procesas • Apibrėžtas procesas – dokumentuota seka veiksmų, reikalingų atlikti specifinę užduotį • Padeda atskirti rutininius darbus nuo sudėtingų veiklų • Nustato kiekvieno proceso žingsnio pradžios ir pabaigos kriterijus • Sustiprina proceso supratimą ir suteikia pagrindą automatizuoti proceso žingsnius

  5. Apibrėžtas procesas apima matavimus • Matavimai padeda: • suprasti savo efektyvumą • valdyti savo ir komandos darbus • planuoti ir valdyti darbo rezultatų kokybę • „Jeigu nori pakeisti procesą (elgesį), pirmiausia nustatyk metriką“

  6. Pvz: • Metrika – kodo apimtis KLOC • Rezultatas: • Procedure • A; • (* • bla • bla • bla • *) • var • // • I: Integer; • J: Integer; • begin • ... • I := I + 0; • // • end;

  7. Pvz: • Metrika – ištaisytų defektų skaičius • http://dilbert.com/strips/comic/1995-11-13/

  8. Apibrėžtas procesas padeda valdyti projektus • Leidžia pasidaryti detalų projekto planą ir tiksliai matuoti ir raportuoti būseną • Leidžia vertinti vertinimų bei planų tikslumą • Leidžia tiksliai komunikuoti apie darbą su naudotojais, užsakovais, kitais programuotojais, vadovais

  9. Asmeninis procesas • Asmeninis procesas – apibrėžta veiksmų seka, kuri nurodo asmeniui, kaip atlikti asmeninę užduotį • Pagrįstas asmenine patirtimi • Gali būti susikurtas paties • Gali būti nusikopijuotas iš pavyzdžio ir priderintas pagal savo poreikius

  10. Asmeninis programuotojo procesas • 1. Planavimas • 2. Reikalavimų išsiaiškinimas, algoritmas • 3. Kalbos, įrankio pasirinkimas • 4. Projektavimas • Dizaino sprendimų, kodo pakartotinis panaudojimas • Dizaino šablonai • 5. Programavimas • Kodavimo standartas • 6. (Kompiliavimas, surinkimas) • 7. Testavimas (unit testing) • 8. Derinimas, klaidų taisymas • Dažniausia daromos klaidos, optimizacijos

  11. Bazinis PSP procesas (PSP0)

  12. PSP0 procesas • PSP0 = Bazinis procesas + baziniai matavimai • Bazinio proceso paskirtis – suteikti pagrindus, leidžiančius parašyti savo pirmąją programą pagal PSP ir pradėti rinkti duomenis apie savo darbą • Paranki darbus aprašanti struktūra smulkių užduočių atlikimui • Pagrindiniai matavimai • Suteikia pagrindą proceso gerinimui

  13. Kaip apibrėšime procesą? • Skriptas – procedūra • Įėjimo kriterijai • Veiksmai • Pabaigimo kriterijai • Darbo rezultatai • Forma / čeklistas • Standartai

  14. PSP0 procesas • Paskirtis: Suteikti paaiškinimus, kaip kurti programų modulius • Įeitys (Input criteria): • Uždavinio aprašymas • PSP0 projekto plano šablonas (PSP0 Project Plan Summary) • LFF ir DFF • Defektų standartas • Laikrodis (gali ir nebūti) • Veiklos: • 1. Planning – Planavimas • 2. Development – Kūrimas • 3. Postmortem – Užbaigimas • Rezultatai (Output criteria): • Ištestuota programa • Užpildyta projekto plano forma (PPS) • Užpildyti LFF ir DFF

  15. PSP0 procesas – Planavimas • Paskirtis: PSP0 planavimas • Įeitys: • Uždavinio aprašymas • PSP0 projekto plano šablonas (PSP0 Project Plan Summary) • LFF • Veiklos: • 1. Programos reikalavimai – reikalavimų „išgavimas“, neprieštaringumo užtikrinimas, klausimai/atsakymai • 2. Resursų įvertinimas – nustatyti numatomą programavimui reikalingą laiką (PPS) • Rezultatai: • Dokumentuoti reikalavimai • Numatomas laikas PPS formoje • Planavimui sugaištas laikas LFF

  16. PSP0 procesas – Kūrimas • Paskirtis: programos sukūrimas • Įeitys: • Dokumentuoti reikalavimai • Numatomas laikas PPS formoje • LFF, DFF • Defektų standartas • Veiklos: • 1. Projektas – projekto parengimas • 2. Kodavimas – programos kodo pagal projektą parašymas • 3. Kompiliavimas – programos kompiliavimas, kol nelieka kompiliavimo klaidų • 4. Testavimas – programos testų vykdymas, kol nelieka klaidų testuose • Rezultatai: • Ištestuota programa • Užpildyti LFF ir DFF

  17. PSP0 procesas – Užbaigimas • Paskirtis: užbaigti užduotį • Įeitys: • Uždavinio aprašymas • Dokumentuoti reikalavimai • Užpildytos LFF ir DFF • Ištestuota programa • Veiklos: • 1. Defektų aprašymas • 2. Defektų duomenų patikrinimas • 3. Laiko apskaita – perkelti suminius iš LFF į PSS • Rezultatai: • Ištestuota programa • Užpildyta projekto plano forma (PPS) • Užpildyti LFF ir DFF

  18. PSP0 matavimai • Laikas • Praktika: Laiko fiksavimas • Defektai • Praktika: Defektų fiksavimas • Suvestinė: PPS • Kompiliavimo laiko matavimas • Iteratyvus programavimas

  19. Programų dydžio matavimas • Kaip matuoti atlikto darbo dydį • Pvz. perskaitytų puslapių skaičius? • Koreliacija

  20. Koreliacija

  21. Programų dydžio matavimas • Matuojami dalykai: • Duomenų bazės elementai • Programos išeities teksto dydis

  22. Programų dydžio matavimas • Skaičiuojamos programos teksto eilutės: • Bazė • Naujos • Pakeistos • Ištrintos • Perpanaudotos • Naujos arba pakeistos • Naujos perpanaudojamos • Viso

  23. Programų dydžio matavimas • Dydžio duomenų panaudojimas: • Planavimui • Programos kokybės matavimui • Defektų tankis • Produktyvumo skaičiavimui

  24. Programų dydžio matavimas • Fizinis eilučių skaičius (LOC) • Loginis eilučių skaičius • Elementų skaičiavimas • Kodavimo standartas

  25. Eilučių skaičiaus pavyzdys --------------- · /* 2 autorius pataisyta */ for i = 1 to PALUKANU_SKAICIAVIMO_BAZE_360 //bazė do: assign x = x * y. // ... end. · --------------- Failo eilučių skaičius: 8 Kodo eilučių skaičius: 4 Komentarų: 4

  26. Kodavimo standartas • Apibrėžia vieningą programos rašymo stilių • Net jei ir nenaudojate kodavimo standarto, pagrindinė taisyklė, kurios privalu laikytis – nuoseklumas, t.y. nuosekliai naudojamas tas pats stilius vienos programos išeities tekstuose

  27. Skirtingų stilių pavyzdžiai // sūku ciklą ir skaicioju repeat i = 1 to 12 do: assign paluk_suma = paluk_suma + x. end. /* suku cikla ir skaiciuoju */ REPEAT iMen = 1 TO 12 DO: fPalukSuma = fPalukSuma + fX. // f - float END. /*** suskaičiuoti bendrą palūkanų sumą ***/ REPEAT menesio-nr = 1 TO 12 DO: ASSIGN palukanu-suma = palukanu-suma + x. END.

  28. Kodavimo standarto struktūra • 1) Komentarai: ▪failų antraštės, ▪įterpti komentarai, ▪„JavaDoc“ tipo komentarai, ▪seno kodo fragmentai • 2) Vardai: • Daryba (veiksmažodžiai, daiktavardžiai), skirtukai, prefiksai • Tipai: ▪konstantos, ▪kintamieji, ▪funkcijos, ▪struktūros, ▪klasės ir klasių atributai • 3) Sintaksė • 4) Blokiniai sakiniai ir blokai: • Skliaustai; pastūmimai; trikiai (exceptions); • 5) Struktūros ir klasės • 6) Konstrukcijos: ▪ konstantų naudojimas, ▪ enum naudojimas, ▪ klaidų apdorojimas, ▪ makro naudojimas

  29. Kodavimo standartų pavyzdžiai • C++: http://www.possibility.com/Cpp/CppCodingStandard.html • C#: http://www.idesign.net/idesign/download/IDesign%20CSharp%20Coding%20Standard.zip • Pascal: http://edn.embarcadero.com/article/10280 • Php: http://www.dagbladet.no/development/phpcodingstandard/ • Python: http://www.voidspace.org.uk/python/articles/python_style_guide.shtml

  30. PSP0.1 procesas • Paskirtis: Suteikti paaiškinimus, kaip kurti programų modulius • Įeitys (Input criteria): • Uždavinio aprašymas • PSP0.1 projekto plano suvestinė (PPS) • LFF ir DFF • Defektų standartas ir Kodavimo standartas • Laikrodis (gali ir nebūti) • Veiklos: • 1. Planning – Planavimas • 2. Development – Kūrimas • 3. Postmortem – Užbaigimas • Rezultatai (Output criteria): • Ištestuota programa, griežtai atitinkanti Kodavimo standartą • Užpildyta projekto suvestinė forma (PPS) • Užpildyti LFF ir DFF

  31. PSP0.1 procesas – Planavimas • Paskirtis: PSP0 planavimas • Įeitys: • Uždavinio aprašymas • PSP0.1 projekto plano suvestinė (PPS) • LFF • Veiklos: • 1. Programos reikalavimai – reikalavimų „išgavimas“, neprieštaringumo užtikrinimas, klausimai/atsakymai • 2. Dydžio įvertinimas – kaip įmanoma geriau numatyti, kokia bus programos papildymo ir modifikavimo apimtis (LOC) • 3. Resursų įvertinimas – nustatyti numatomą programavimui reikalingą laiką (PPS); vadovaujantis PPS „Iki šiol %“ duomenimis, paskirstyti planuojamą laiką į projekto fazes • Rezultatai: • Dokumentuoti reikalavimai • Numatomas laikas PPS formoje • Planavimui sugaištas laikas LFF

  32. PSP0.1 procesas – Kūrimas • Paskirtis: programos sukūrimas • Įeitys: • Dokumentuoti reikalavimai • Numatomas laikas (paskirstytas per fazes)ir dydis PPS formoje • LFF, DFF • Defektų standartas ir Kodavimo standartas • Veiklos: • 1. Projektas – projekto parengimas • 2. Kodavimas – programos kodo pagal projektą parašymas, vadovaujantis Kodavimo standartu • 3. Kompiliavimas – programos kompiliavimas, kol nelieka kompiliavimo klaidų • 4. Testavimas – programos testų vykdymas, kol nelieka klaidų testuose • Rezultatai: • Ištestuota programa, griežtai atitinkanti Kodavimo standartą • Užpildyti LFF ir DFF

  33. PSP0.1 procesas – Užbaigimas • Paskirtis: užbaigti užduotį • Įeitys: • Uždavinio aprašymas • Dokumentuoti reikalavimai • Užpildytos LFF ir DFF • Ištestuota programa • Veiklos: • 1. Defektų aprašymas • 2. Defektų duomenų patikrinimas • 3. Dydžio apskaita – suskaičiuoti ir įrašyti programos dydžius į PPS • 4. Laiko apskaita – perkelti suminius iš LFF į PPS • Rezultatai: • Ištestuota programa, griežtai atitinkanti Kodavimo standartą • Užpildyta projekto plano forma (PPS) • Užpildyti LFF ir DFF • Užpildyta Proceso gerinimo pasiūlymo (PGP) forma, įvardinanti proceso trūkumus, pagerinimo pasiūlymus, išmoktas pamokas

  34. Namų darbai • Kitai paskaitai būti perskaičius: • [Hum00] W.Humphrey “The PSP” – iki 5 skyriaus imtinai • [PCC09] “The PSP BOK 2.0”, kokių žinių reikia Competency Area 1–3, t.y. 1–38 lapai • [Rag06] S.Ragaišis: Asmeninis programų kūrimo procesas, 2006. • Peržiūrėti: • [PspMa] PSP Materials, iki PSP0.1 imtinai

More Related