1. L朝va teinberga
2012. gada 29. oktobr朝
Lekcija LU Datorikas fakulttes kursa
Kvalifikcijas darbs I ietvaros
is darbs izstrdts ar Eiropas Socil fonda atbalstu projekt
束Atbalsts doktora studijm Latvijas Universitt損.
2. Kvalifikcijas darbam jsatur paskaidrojo邸s
teksts, kur atspogu勅ota konkrt
programmat笛ras projekta organizcija,
kvalittes nodro邸in邸ana, konfigurciju
prvald朝ba un dots darbietilp朝bas novrtjums
saska ar izplat朝tm metodm.
3. Kvalifikcijas darba ietvaros izstrdt
programmat笛ras produkta apjomam jatbilst
vismaz 3 personmne邸u darbietilp朝bai.
4. }盾 Kas ir darbietilp朝ba?
}盾 Kpc t jprognoz?
}盾 Kdas prognoz邸anas metodes eksist?
}盾 Piemri
6. }盾 Darbietilp朝bas novrt邸ana ir process, kur
prognoz programmat笛ras produkta izstrdei
nepiecie邸amo darba apjomu.
}盾 Novrtjumi ir vajadz朝gi vis izstrdes laik
Pirms projekta uzsk邸anas, lai izvrttu vai iecere ir
realizjama, piedal朝tos piedvjumu konkursos un plnotu
bud転etu
Periodiski prvrtjumi vajadz朝gi, lai nepiecie邸am朝bas
gad朝jum projekta realizcijas laik prdal朝tu resursus
8. }盾 Programmat笛ra nav taustma
}盾 Programmat笛ru izstrd cilvki
}盾 Programmat笛ras izstrde ir rado邸s process
nevis tikai mehniska darb朝ba
}盾 Katrs projekts ir unikls
}盾 Tehnolo庁ijas strauji mains
}盾 Maz informcijas par l朝dz朝gu projektu
pieredzi
9. }盾 Parkinsona likums: Lai cik maz darba b笛tu, tas
aizems visu tam atvlto laiku.
Work expands to fill the time available [Parkinson]
}盾 Br笛ka likums: Ja aizkavta darba izpild piesaista
vairk (papildus) cilvku, tad darbs aizkavsies vl
ilgk.
Putting more people on a late job makes it later. [Brook]
}盾 Price to win: Pietiekami zema cena, lai uzvartu
piedvjumu konkurs
Price to win : figure sufficiently low to win contract
10. Darbietilp朝bas novrtjumi bie転i ir neprec朝zi vai
nemaz netiek veikti.
Statistikas dati:
}盾 Vidji projektiem paredztais bud転ets tika
prtrts par 90%, bet paredztais laiks par
120% [Standish Group pt朝jums par 8380
projektiem 1994. gad]
11. }盾 International Software Benchmarking Standards
Group repozitorijos glabto vairk k 400 projektu
datu anal朝zes rezultti 2005. gad:
Darbietilp朝ba prec朝zi apr跳inta ~25% no visiem
projektiem. Vidji rel darbietilp朝ba bijusi 2 reizes lielka
par skotnji prognozto.
Apmram 60% projektu darbietilp朝ba novrtta vismaz
par 10% mazka nek rel darbietilp朝ba.
Novrotas nopietnas k勅笛das, piemram, rel
darbietilp朝ba bijusi 20 reizes lielka par prognozto.
12. Paredzot nkotni ir daudz nezinm
Pras朝bas ir neprec朝zas un main朝gas
Projektjums var tikt main朝ts laika gait
Izstrde atkar朝ba no programm邸anas valodas un
izstrdes vides
Test邸ana nepiecie邸amais apjoms da転dm sistmm
var b笛tiski at邸跳irties (piem., dz朝v朝bai kritiskas sistmas,
elementras sples)
Ievie邸ana da転di lietotja akcepta kritriji
Personls pieredze un kompetence
Tehnolo庁ijas viena vai vairkas platformas u.c.
14. }盾 Bottom-up (Dekompoz朝cija)
Darbu sadala neliels aktivitts (uzdevumos)
Veic darbietilp朝bas novrtjumu katrai aktivittei
Sasumm ieg笛tos novrtjumus
Lieto, kad nav pieejami dati par agrk izstrdtiem
projektiem
}盾 Top-down
Novrt visu produkta izstrdei nepiecie邸amo darbu
Zemka l朝mea uzdevumu veik邸anai nepiecie邸amo darbu
apr跳ina k da勅u no kopjs darbietilp朝bas
17. 2. Ja zinms programmat笛ras apjoms/ izmrs
un darbinieku produktivitte, var izr跳int cik
darba cilvk-stundu / dienu / mne邸u vajadzs,
lai darbu paveiktu jeb kda ir projekta
darbietilp朝ba.
18. Iedomto produktivitti apr跳ina pc
viendojuma
izmantojot datus par l朝dz朝giem agrk
izstrdtiem projektiem sav uzmum vai
citos uzmumos (benchmark productivity data)
19. Bie転k lietots mrvien朝bas programmat笛ras
apjoma / izmra noteik邸anai:
}盾 pirmkoda rindiu skaits (LOC jeb SLOC)
source lines of code
}盾 funkcijpunkti
function points
20. Raksturojums
}盾 Tradicionla metode programmat笛ras fizisk
izmra / apjoma prognoz邸anai
}盾 Apraksta programmat笛ras apjomu no
programmtja skatu punkta
}盾 Koda kvalitte netiek emta vr
}盾 Tiek lietots daudzs darbietilp朝bas novrt邸anas
metods
21. }盾 Priek邸roc朝bas
Vienkr邸i un automtiski mrms lielums
Tie邸a saist朝ba ar gala produktu
Tie邸a saist朝ba ar programm邸anai patrto laiku
}盾 Tr笛kumi
Vji defints mrs (Piemram, vai jskaita ar朝 komentru
rindas?)
Atkar朝gs no programm邸anas valodas
Atkar朝gs no izstrdtja prasmm
Nav zinms plno邸anas fz
22. Nav ieteicams lietot darbietilp朝bas
noteik邸anai
Measuring programming progress by
lines of code is like measuring aircraft
building progress by weight [Bill Gates]
23. Raksturojums
}盾 Apraksta programmat笛ras nodro邸ints
funkcionalittes apjomu
}盾 Apr跳inms pc programmat笛ras pras朝bu
specifikcij iek勅autajm pras朝bm
}盾 Apraksta programmat笛ras apjomu no lietotja
skatu punkta
}盾 Neatkar朝gi no programm邸anas valodas
24. }盾 Skaita plnots sistmas atrib笛tus, piem.,
lietojot IFPUG metodi jskaita:
Ievadi
Izvadi
Vaicjumi
Izmantotie iek邸jie jeb lo庁ikas faili
rjo saskaru faili
25. Nepiecie邸amo darba apjomu var ietekmt
da転di izmaksu faktori:
}盾 cilvku skaits komand
}盾 programm邸anas valoda
}盾 organizcijas tips
}盾 uzmjdarb朝bas sfra
}盾 lietotnes tips
}盾 izstrdes platforma u.c.
28. }盾 Algoritmiski mode勅i
Apr跳inos izmanto formulas
Izmanto citu l朝dz朝gu un pabeigtu projektu datus
COSMIC, IFPUG, MARK II, NESMA, FISMA, COCOMO,
COCOMO II
}盾 Ekspertu vrtjums
DELPHI, PERT, Plno邸anas pokers, Vienas personas
vrtjums
}盾 Analo庁iju bzti vrtjumi
Vrtjumus veic balstoties uz 勅oti l朝dz朝gu projektu datiem
29. Algoritmiski mode勅i Ekspertu vrtjumi Analo庁iju bzti
vrtjumi
Pieeja B笛v statistisku modeli Atkar朝ba no
ekspertu viedok勅a
Mra l朝dz朝bas un
pielgo
Vajadz朝ba pc
datiem
Ir Nav Ir
Priek邸roc朝bas Objekt朝vi, atkrtojami,
analizjamas formulas
Relat朝vi lti
Prec朝zi, ja
ekspertiem ir
pieredze ar
l朝dz朝giem
projektiem
Bzta uz relu
projektu pieredzi
Tr笛kumi Nepiemrota
specilgad朝jumiem
Kalibrta uz pagtnes
datiem nevis nkotnes
datiem
Rezultti stipri
akgar朝gi no
vrttjiem
Nepiecie邸ama
detalizta
informcija par
daudziem
projektiem
31. }盾 Atbilst starptautiski atz朝tam standartam
ISO/IEC 19761: 2003
}盾 1999. gad to publicja Common Software
Measurement International Consortium
(COSMIC), pdj versija 3.0.1 publicta 2009.
gad
35. }盾 1 CFP (COSMIC funkcijpunkts) ir defints k
viena datu pl笛sma
}盾 Katra datu pl笛smas instance (Ievads, Izvads,
Las朝邸ana, Rakst朝邸ana), kad dati tiek pievienoti,
main朝ti vai izdzsti ir 1 CFP izmr
36. }盾 Lietotjs - jebkas, kas darbojas ar ar mrmo
programmat笛ru
}盾 Funkcionlais lietotjs - lietotja tips, kas
funkcionlajs lietotja pras朝bs, var s笛t朝t un var
saemt datus no programmat笛ras
Dar朝jumlietotns cilvki un citas lietotnes, ar kurm ts
sadarbojas
Rela laika lietotns ier朝ces vai cita programmat笛ra
37. }盾 Funkcionls lietotju pras朝bas sastv no
funkcionliem procesiem
}盾 Funkcionlais process tiek izsaukts, kad
programmat笛ras lietotjs atpaz朝st notikumu
(trigeri) un s笛ta ziu, lai sktu procesu
}盾 Process ir pabeigts, kad programmat笛ra ir
paveikusi visu kas pras朝ts
38. Trigeri un tiem atbilsto邸ie funkcionlie procesi
}盾 Dar朝jumlietotns:
Ir saemts pas笛t朝jums Ievad朝t pas笛t朝jumu sistm
Darbinieks ir apprcjies Atjaunint via personas
datus
Ir mne邸a beigas Apr跳int algas
}盾 Rela laika lietotns
Pilota komanda Pievilkt lidma邸朝nas ratus un
pacelties gais
Zia par sastd朝tu telefona numuru Izveidot
savienojumu
39. }盾 4 tipu datu pl笛smu tipi:
Ievads (Entry) kontroles vai biznesa informcija, kas nk no
lietotja un 邸跳rso lietotnes robe転u (lietotja ievaddati,
sensoru informcija)
Izvads (Exit) apstrdti dati, kas tiek virz朝ti r no lietotnes
(grafiki, atskaites) lietotjam, kas tos piepras朝jis
Las朝邸ana (Read) prvieto datus no atmias procesam, kas
tos piepras朝jis
Rakst朝邸ana (Write) prvieto datus no procesa uz atmiu
42. }盾 Pas笛t朝jumu apstrdes lietotne glab datus par
klientiem klienta ID, vrds, uzvrds, adrese,
telefona numurs, kred朝ta limits, klienta tipa kods
}盾 Ar klientu informciju darbojas pas笛t朝jumu
apstrdes operatori
}盾 Process Jauna klienta izveide sistm ietver
1 Ievads (saist朝ts ar klienta objektu)
1 Rakst朝邸ana (saist朝ts ar klienta objektu)
1 Izvads (apstiprinjums vai k勅笛das paziojums)
}盾 Procesa izmrs: 3 CFP (COSMIC Function Point)
44. }盾 The International Software Benchmarking
Standards Group uztur divus repozitorijus ar
vsturiskiem projektu datiem
}盾 Pa邸laik pieejama informcija par ~5600
projektiem
}盾 Projektu dati pieejami par maksu
45. CFP Planning (h) Analysis (h) Building (h) Testing (h) Deploying (h)
44 9 7 88 50 52
CFP Planning (h) Analysis (h) Building (h) Testing (h) Deploying(h)
37 7 6 74 42 44
Benchmarking jeb industrijas dati par projektu ar
l朝dz朝gu CFP skaitu:
Apr跳ina darbietilp朝bu savam projektam:
Tlk, emot vr projekta uniklitti un izmaksu
faktorus, preciz darbietilp朝bu. Piemram, par 20%
palielina izstrdes (building) darbu, jo darbinieki ir
iescji darb ar konkrto programm邸anas valodu.
46. }盾 The COSMIC Functional Size Measurement
Method Version 3.0.1 Measurement Manual
(The COSMIC Implementation Guide for ISO/
IEC 19761: 2003), May 2009
VAI
}盾 The COSMIC Functional Size Measurement
Method Version 3.0 Method Overview,
September 2007
48. }盾 Spja (agile) pieeja darbietilp朝bas plno邸anai
}盾 Darbietilp朝bas novrtjuma mrvien朝ba
sare転庁朝t朝bas punkts
}盾 Izmanto krtis uz kurm rakst朝ts punktu
skaits
}盾 Bie転k lietots skalas:
Fibonai skait勅i - 0, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89
0, 遜, 1, 2, 3, 5, 8, 13, 20, 40, 100
49. }盾 Komandas biedri sapulcjas un balso par
katras funkcionls pras朝bas izteiktas
lietotju ststa (user story) form relat朝vo
sare転庁朝t朝bas pakpi, izmantojot krtis
}盾 Katrs balso individuli (izvlas krti), bet
visi balso vienlaic朝gi (atklj krti). Ja
vrtjumi at邸跳iras, tad diskut un vienojas
vai prbalso
50. trums
(velocity)
=
vien
itercij
realizto
punktu
skaits
Darbietilp朝ba
lietotju
ststam
=
vidj
sare転g朝t朝bas
punkta
darbietilp朝ba
*
punktu
skaits