12.08.2013 Views

Tarkvaratehnika: tarkvaraprojekti juhtimine (loeng II)

Tarkvaratehnika: tarkvaraprojekti juhtimine (loeng II)

Tarkvaratehnika: tarkvaraprojekti juhtimine (loeng II)

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Tarkvaratehnika</strong>:<br />

<strong>Tarkvaratehnika</strong><br />

<strong>tarkvaraprojekti</strong> <strong>juhtimine</strong><br />

(<strong>loeng</strong> <strong>loeng</strong> <strong>II</strong>)<br />

Asko Seeba<br />

<strong>Tarkvaratehnika</strong>: <strong>tarkvaraprojekti</strong> <strong>juhtimine</strong> (<strong>loeng</strong> <strong>II</strong>)<br />

1<br />

10/24/2001


Teemad<br />

Loeng I – sissejuhatus<br />

Loeng <strong>II</strong> – <strong>tarkvaraprojekti</strong> juhtimise<br />

kontseptsioonid<br />

Loeng <strong>II</strong>I – <strong>tarkvaraprojekti</strong> juhtimise<br />

töövoog<br />

Loeng IV – tarkvaraarendusprotsessi<br />

rakendamine<br />

<strong>Tarkvaratehnika</strong>: <strong>tarkvaraprojekti</strong> <strong>juhtimine</strong> (<strong>loeng</strong> <strong>II</strong>)<br />

2<br />

10/24/2001


Hind<br />

Tarkvara kvaliteedi pidev<br />

kontrollimine<br />

<strong>Tarkvaratehnika</strong>: <strong>tarkvaraprojekti</strong> <strong>juhtimine</strong> (<strong>loeng</strong> <strong>II</strong>)<br />

Tarkvaraprobleemide leidmine<br />

ja parandamine on peale evitust<br />

100 kuni 1000 korda kallim<br />

Tarkvara parandamise hind<br />

Möödalastud võimaluste hind<br />

Kaotatud klientide hind<br />

Algatus Detailimine Konstrueerimine Siire<br />

3<br />

10/24/2001


Kõik koos<br />

Põhivood<br />

Nõuded<br />

Analüüs<br />

Projekteerimine<br />

Teostus<br />

Testimine<br />

Algatus Detailimine Konstrueerimine Siire<br />

Iter.<br />

#1<br />

Iter.<br />

#2<br />

<strong>Tarkvaratehnika</strong>: <strong>tarkvaraprojekti</strong> <strong>juhtimine</strong> (<strong>loeng</strong> <strong>II</strong>)<br />

...<br />

Faasid<br />

... ... ... ...<br />

Detailimisfaasi iteratsioon<br />

Iter.<br />

#n-1<br />

Iter.<br />

#n<br />

4<br />

10/24/2001


Tarkvaraprojekti <strong>juhtimine</strong><br />

Kunst – raske ülesanne<br />

– kompromissid konkureerivate eesmärkide vahel<br />

– riskide haldamine<br />

– takistuste ületamine<br />

Edu retsepti pole<br />

Tarkvaraprojekti juhtimiseks on vaja<br />

– raamistikku<br />

– praktilisi juhendeid plaanimiseks, personali<br />

valimiseks, täitmiseks, seireks, riskihalduseks.<br />

<strong>Tarkvaratehnika</strong>: <strong>tarkvaraprojekti</strong> <strong>juhtimine</strong> (<strong>loeng</strong> <strong>II</strong>)<br />

5<br />

10/24/2001


Teemad, mida käsitleme<br />

Ei kata kõike projektijuhtimisega seonduvat<br />

– Personali <strong>juhtimine</strong>: palkamine, koolitamine<br />

– Eelarve <strong>juhtimine</strong>: hindamine, paigutamine<br />

– Lepingute haldus tarnijate ja klientidega<br />

Keskendume iteratiivse protsessi jaoks olulistele<br />

asjadele<br />

– Riskihaldus<br />

– Nii terve tsükli, kui üksiku iteratsiooni plaanimine<br />

– Iteratiivse projekti seire, mõõdustik<br />

<strong>Tarkvaratehnika</strong>: <strong>tarkvaraprojekti</strong> <strong>juhtimine</strong> (<strong>loeng</strong> <strong>II</strong>)<br />

6<br />

10/24/2001


Organisatsiooni kontekst (I)<br />

Tarkvaratehniline protsessiorgan (SEPA)<br />

– Defineerib ja juhib protsessi<br />

– Vahendab projektide vahel protsessialast<br />

informatsiooni<br />

– Hindab perioodiliselt projektide protsesse<br />

– Peab olema autoriteet, kompetentne ja tugev<br />

<strong>Tarkvaratehnika</strong>: <strong>tarkvaraprojekti</strong> <strong>juhtimine</strong> (<strong>loeng</strong> <strong>II</strong>)<br />

7<br />

10/24/2001


Organisatsiooni kontekst (<strong>II</strong>)<br />

Projekti läbivaatusorgan (PRA)<br />

– Tagab, et projekt vastab kehtestatud<br />

poliitikale, praktikale ja standarditele<br />

– Projektijuht on vastutav PRA ees<br />

– Jälgib projekti vastavust lepingulistele<br />

kohustustele, finantsnäitajaid jms. riske<br />

– Peaks olema üks isik<br />

<strong>Tarkvaratehnika</strong>: <strong>tarkvaraprojekti</strong> <strong>juhtimine</strong> (<strong>loeng</strong> <strong>II</strong>)<br />

8<br />

10/24/2001


Organisatsiooni kontekst (<strong>II</strong>I)<br />

Tarkvaratehniline keskkonnaorgan (SEEA)<br />

– Automatiseerib protsessi<br />

– Peab ülal organisatsioonisiseseid standardeid<br />

– Korraldab keskkonnaalast koolitust<br />

– Peab ülal korduvkasutatavaid komponente<br />

– Vajalik investeeringu tasuvuse efektiivseks<br />

saavutamiseks<br />

<strong>Tarkvaratehnika</strong>: <strong>tarkvaraprojekti</strong> <strong>juhtimine</strong> (<strong>loeng</strong> <strong>II</strong>)<br />

9<br />

10/24/2001


Itereerimine – miks itereerida (I)<br />

Traditsiooniline projekt läbib kõik töövood järjekorras ühe korra.<br />

Talitluse<br />

modelleerimine<br />

Aeg<br />

Nõuded Analüüs ja<br />

projekteerimine<br />

<strong>Tarkvaratehnika</strong>: <strong>tarkvaraprojekti</strong> <strong>juhtimine</strong> (<strong>loeng</strong> <strong>II</strong>)<br />

Teostamine Testimine Evitus<br />

10<br />

10/24/2001


Itereerimine – miks itereerida<br />

(<strong>II</strong>)<br />

Paindlikum ja vähem riskantsem<br />

Talitluse<br />

modelleerimine<br />

Talitluse<br />

modelleerimine<br />

Talitluse<br />

modelleerimine<br />

Nõuded Analüüs ja<br />

projekteerimine<br />

Nõuded Analüüs ja<br />

projekteerimine<br />

Nõuded Analüüs ja<br />

projekteerimine<br />

<strong>Tarkvaratehnika</strong>: <strong>tarkvaraprojekti</strong> <strong>juhtimine</strong> (<strong>loeng</strong> <strong>II</strong>)<br />

Teostamine Testimine Evitus<br />

Teostamine Testimine Evitus<br />

Teostamine Testimine Evitus<br />

11<br />

10/24/2001


Itereerimine – miks itereerida<br />

(<strong>II</strong>I)<br />

Algatus<br />

Konstrueerimine<br />

Detailimine<br />

Siire<br />

<strong>Tarkvaratehnika</strong>: <strong>tarkvaraprojekti</strong> <strong>juhtimine</strong> (<strong>loeng</strong> <strong>II</strong>)<br />

Talitluse modelleerimine<br />

Nõuded<br />

Analüüs ja projekteerimine<br />

Teostus<br />

Testimine<br />

Evitus<br />

Projekti<strong>juhtimine</strong><br />

Konfiguratsioonihaldus<br />

Keskkond<br />

12<br />

10/24/2001


Mis on iteratsioon?<br />

Arendustegevus, mis lõppeb demonstreeritava<br />

redaktsiooniga<br />

Läbib vähemalt järgmised töövood<br />

– Nõuded<br />

– Analüüs ja projekteerimine<br />

–Teostus<br />

–Testimine<br />

Iteratsiooni plaan → hindamiskriteeriumid<br />

Redaktsioon: seesmine või väline (saadus)<br />

<strong>Tarkvaratehnika</strong>: <strong>tarkvaraprojekti</strong> <strong>juhtimine</strong> (<strong>loeng</strong> <strong>II</strong>)<br />

13<br />

10/24/2001


Iteratsiooni mallid –<br />

inkrementaalne tsükkel<br />

Algatus<br />

Esialgne<br />

iteratsioon<br />

Detailimine<br />

#1<br />

Kontseptuaalne prototüüp<br />

Konstrueerimine<br />

Arhitektuuri arendusalus<br />

<strong>Tarkvaratehnika</strong>: <strong>tarkvaraprojekti</strong> <strong>juhtimine</strong> (<strong>loeng</strong> <strong>II</strong>)<br />

Siire<br />

#2 #3 #... #n #n+1 #n+2 Iter. nr.<br />

Redaktsioon<br />

Saadus<br />

14<br />

10/24/2001


Arenemistsükkel<br />

Algatus<br />

Esialgne<br />

iteratsioon<br />

Detailimine<br />

#1<br />

Kontseptuaalne prototüüp<br />

<strong>Tarkvaratehnika</strong>: <strong>tarkvaraprojekti</strong> <strong>juhtimine</strong> (<strong>loeng</strong> <strong>II</strong>)<br />

Konstrueerimine<br />

Arhitektuuri arendusalus<br />

Siire<br />

#2 #... #n #n+1 #n+2 #n+3 Iter. nr.<br />

Redaktsioon<br />

Saadus<br />

15<br />

10/24/2001


Inkrementaalse saaduse<br />

tsükkel<br />

Algatus<br />

Esialgne<br />

iteratsioon<br />

Detailimine<br />

#1<br />

Kontseptuaalne prototüüp<br />

Konstrueerimine<br />

Arhitektuuri arendusalus<br />

Siire<br />

<strong>Tarkvaratehnika</strong>: <strong>tarkvaraprojekti</strong> <strong>juhtimine</strong> (<strong>loeng</strong> <strong>II</strong>)<br />

#2 #3 #4 #... #... #n Iter. nr.<br />

Redaktsioon<br />

Saadus<br />

16<br />

10/24/2001


Millise tsükliga on tegu?<br />

Algatus<br />

Esialgne<br />

iteratsioon<br />

Detailimine<br />

Kontseptuaalne prototüüp<br />

Konstrueerimine<br />

#1<br />

Arhitektuuri arendusalus<br />

<strong>Tarkvaratehnika</strong>: <strong>tarkvaraprojekti</strong> <strong>juhtimine</strong> (<strong>loeng</strong> <strong>II</strong>)<br />

Siire<br />

#2<br />

Redaktsioon<br />

#3<br />

#...<br />

Saadus<br />

Iter. nr.<br />

17<br />

10/24/2001


Hübriidstrateegiad<br />

Praktikas järgitakse harva ainult ühte<br />

Keerukas või tundmatu probleemi valdkonnas<br />

– suurendada detailimise pikkust ja iteratsioonide arvu.<br />

Keerukate tehniliste probleemide korral<br />

– suurendada konstrueerimise pikkust ja iteratsioonide<br />

arvu<br />

Tarkvara inkrementaalseks väljalaskmiseks<br />

– suurendada siirde pikkust ja iteratsioonide arvu<br />

<strong>Tarkvaratehnika</strong>: <strong>tarkvaraprojekti</strong> <strong>juhtimine</strong> (<strong>loeng</strong> <strong>II</strong>)<br />

18<br />

10/24/2001


Risk<br />

Juhuslik sündmus, mis seab ohtu või ellimineerib<br />

projekti edu<br />

Projekti edu tähendab projektile seatud<br />

kitsenduste raames kõikide kokkulepitud nõuete<br />

rahuldamist.<br />

Otsene risk – projekt saab seda juhtida<br />

Kaudne risk – projekt ei saa seda juhtida<br />

Riski atribuudid (riski suurus)<br />

– esinemise tõenäosus<br />

– mõju projektile (tõsidus)<br />

<strong>Tarkvaratehnika</strong>: <strong>tarkvaraprojekti</strong> <strong>juhtimine</strong> (<strong>loeng</strong> <strong>II</strong>)<br />

19<br />

10/24/2001


Riskide <strong>juhtimine</strong><br />

Riski ärahoidmine<br />

Riski üleandmine<br />

Riskiga leppimine<br />

– Riski tõenäosuse vähendamine<br />

– “Plaan B”<br />

– Riski sümptomite seire<br />

<strong>Tarkvaratehnika</strong>: <strong>tarkvaraprojekti</strong> <strong>juhtimine</strong> (<strong>loeng</strong> <strong>II</strong>)<br />

20<br />

10/24/2001


Mõõdustik<br />

Miks mõõta?<br />

– Aitab projekti kontrolli all hoida<br />

– Kogemus uute projektide hindamiseks<br />

– Saame teada enda oskuste paranemisest<br />

Lisab kulutusi – vaja täpseid eesmärke<br />

– Mõõtmine teadmise eesmärgid<br />

– Mõõtmine muutmise eesmärgid<br />

<strong>Tarkvaratehnika</strong>: <strong>tarkvaraprojekti</strong> <strong>juhtimine</strong> (<strong>loeng</strong> <strong>II</strong>)<br />

21<br />

10/24/2001


Näited eesmärkidest<br />

Tegelikkuse plaanile vastavuse seire<br />

Kliendi rahulolu parandamine<br />

Produktiivsuse tõstmine<br />

Ennustatavuse tõstmine<br />

Korduvkasutatavuse tõstmine<br />

<strong>Tarkvaratehnika</strong>: <strong>tarkvaraprojekti</strong> <strong>juhtimine</strong> (<strong>loeng</strong> <strong>II</strong>)<br />

22<br />

10/24/2001


Organisatsiooni infovajadused<br />

(I)<br />

Hind<br />

– Koodirida, funktsioonpunkt, kasutusmall<br />

Konstrueerimisaeg (ka kiirendamisvõime)<br />

– Koodirida, funktsioonpunkt<br />

Defektide sagedus saaduses<br />

– Koodireal, funktsioonpunktis<br />

Subjektiivne kvaliteet<br />

– Kasutatavus, kliendi rahulolu<br />

Ülalpeetavus<br />

– hind koodirea/funktsioonpunkti kohta aastas<br />

<strong>Tarkvaratehnika</strong>: <strong>tarkvaraprojekti</strong> <strong>juhtimine</strong> (<strong>loeng</strong> <strong>II</strong>)<br />

23<br />

10/24/2001


Organisatsiooni infovajadused<br />

(<strong>II</strong>)<br />

Oskused, kogemused<br />

– Inimressursi andmebaas<br />

Tehnoloogiline suutlikkus<br />

– Töövahendid, protsessi küpsus,<br />

valdkonnasuutlikkus<br />

Protsessi arengu näitajad<br />

– Protsessile pühendatud aeg ja tööpanus;<br />

defektide, paranduste ja ümbertegemiste määr;<br />

muud statistilised näitajad<br />

<strong>Tarkvaratehnika</strong>: <strong>tarkvaraprojekti</strong> <strong>juhtimine</strong> (<strong>loeng</strong> <strong>II</strong>)<br />

24<br />

10/24/2001


Projekti infovajadused (I)<br />

Projekti tööpanused ja eelarve<br />

– vastavus plaanile<br />

Projekti graafik<br />

– tähtpunktide täitmine<br />

Paigaldused kasutaja juures<br />

– eeldatud ülalpidamiskulude ja oskuste sobivus<br />

Kasutamine<br />

– eeldatud oskuste sobivus<br />

<strong>Tarkvaratehnika</strong>: <strong>tarkvaraprojekti</strong> <strong>juhtimine</strong> (<strong>loeng</strong> <strong>II</strong>)<br />

25<br />

10/24/2001


Projekti infovajadused (<strong>II</strong>)<br />

Funktsionaalsed nõuded<br />

– Nõuete arusaadavus, iteratsioonis käsitletavad nõuded,<br />

käsitluse vastavus plaanile<br />

Mittefunktsionaalsed nõuded<br />

– Suutvus, jõudlus, töökindlus, kasutatavus, turvalisus,<br />

keskkonnasäästlikkus, juriidilised regulatsioonid,<br />

ressursivajadus, ühildatavus, korduvkasutatavus,<br />

standarditele vastavus, vastavus nõutud arhitektuuri<br />

stiilile, algoritmidele jms.<br />

<strong>Tarkvaratehnika</strong>: <strong>tarkvaraprojekti</strong> <strong>juhtimine</strong> (<strong>loeng</strong> <strong>II</strong>)<br />

26<br />

10/24/2001


Tehnilise info vajadus (I)<br />

Nõuete headus<br />

– muutlikkus, õigsus, täielikkus, korrektsus,<br />

selgus<br />

Projekteerimise headus<br />

– elementide omavaheline seotus, komponentide<br />

sidusus, primitiivsus, täielikkus, muutlikkus<br />

Teostuse headus<br />

– suurus, keerukus, täielikkus<br />

<strong>Tarkvaratehnika</strong>: <strong>tarkvaraprojekti</strong> <strong>juhtimine</strong> (<strong>loeng</strong> <strong>II</strong>)<br />

27<br />

10/24/2001


Tehnilise info vajadus (<strong>II</strong>)<br />

Testide headus<br />

– kaetus, õigsus<br />

Protsessi headus<br />

– defektide määr ja põhjused, tööpanused ja<br />

kestvused, produktiivsus, tehiste headus<br />

Protsessi/vahendite muutmise efektiivsus<br />

– sama, mis protsessi headus, ainult, et<br />

absoluutväärtuste asemel suhteline muutus<br />

<strong>Tarkvaratehnika</strong>: <strong>tarkvaraprojekti</strong> <strong>juhtimine</strong> (<strong>loeng</strong> <strong>II</strong>)<br />

28<br />

10/24/2001


Mõõdu mõiste<br />

Mõõt – mõõdetav atribuut või olem<br />

– nt. projekti tööpanus on projekti suuruse mõõduks<br />

(summa üksikute tööülesannete tööpanustest)<br />

Mõõduelement – mõõdu arvutamiseks kasutatava<br />

andmete jada element<br />

– nt. üksiku tööülesande tööpanus<br />

Iga mõõt koosneb ühest või mitmest mõõdust<br />

Iga mõõduelemendi kogumisprotseduur peab<br />

olema selgelt defineeritud<br />

<strong>Tarkvaratehnika</strong>: <strong>tarkvaraprojekti</strong> <strong>juhtimine</strong> (<strong>loeng</strong> <strong>II</strong>)<br />

29<br />

10/24/2001


Mõõdu mall<br />

Nimi (ja teadaolevad sünonüümid)<br />

Definitsioon<br />

– atribuudid, arvutusreeglid, mõõduelemendid<br />

Eesmärgid<br />

Analüüsiprotseduur<br />

– kuidas kasutatakse, eeltingimused (kehtivuspiirkonnad<br />

jms.), soovitud muutused, kasutatavad mudelid ja<br />

vahendid<br />

Vastutused<br />

– Kes korjab andmed, valmistab aruanded ja analüüsib?<br />

<strong>Tarkvaratehnika</strong>: <strong>tarkvaraprojekti</strong> <strong>juhtimine</strong> (<strong>loeng</strong> <strong>II</strong>)<br />

30<br />

10/24/2001


Mõõduelemendi mall<br />

Nimi<br />

Definitsioon<br />

– projekti keskkonna terminites üheseltmõistetav<br />

kirjeldus<br />

Kogumisprotseduur<br />

– kirjeldus, vahendid, vorm, aeg,<br />

kontrollimisprotseduur, täpsus<br />

Vastutused<br />

– kes kogub ja kes kontrollib?<br />

<strong>Tarkvaratehnika</strong>: <strong>tarkvaraprojekti</strong> <strong>juhtimine</strong> (<strong>loeng</strong> <strong>II</strong>)<br />

31<br />

10/24/2001


Mõõdustikuga seotud<br />

tegevused<br />

Mõõtmisplaani koostamine<br />

– sooritatakse algatusfaasis koos muu plaaniga<br />

– Võidakse hiljem parandada<br />

Mõõtmisandmete kogumine<br />

– vähemalt kord iteratsiooni jooksul<br />

– seisu hinnangu dokumendi osa<br />

<strong>Tarkvaratehnika</strong>: <strong>tarkvaraprojekti</strong> <strong>juhtimine</strong> (<strong>loeng</strong> <strong>II</strong>)<br />

32<br />

10/24/2001


Mõõdustiku kasutamine (I)<br />

Plaanimine<br />

– Nt. teada tööjõu ressurss ja nõuded; tuvastada<br />

eelarve ja ajagraafik<br />

– Nt. teada ressurss ja graafik; tuvastada, mida<br />

on võimalik teha<br />

<strong>Tarkvaratehnika</strong>: <strong>tarkvaraprojekti</strong> <strong>juhtimine</strong> (<strong>loeng</strong> <strong>II</strong>)<br />

33<br />

10/24/2001


Mõõdustiku kasutamine (<strong>II</strong>)<br />

Ennustamine (sarnane plaanimisele)<br />

– Nt. mingite jõudlusandmete põhjal aimata, kuidas<br />

süsteem käitub teistes tingimustes<br />

– Nt. defektide määra muutumise põhjal leida, millal<br />

saavutab süstem teatava töökindluse<br />

– Nt. leida plaanitud tegevuse täitmise kestvus ja<br />

tööpanused<br />

Hindamine<br />

– Jooksva olukorra võrdlemine minevikuga, trendide<br />

tuvastamine<br />

<strong>Tarkvaratehnika</strong>: <strong>tarkvaraprojekti</strong> <strong>juhtimine</strong> (<strong>loeng</strong> <strong>II</strong>)<br />

34<br />

10/24/2001


Kuidas kasutada prototüüpe<br />

Kasutatakse riskide vähendamiseks:<br />

– toote majanduslik otstarbekus<br />

– tehnoloogia stabiilsus ja suutvus<br />

– veenmine ja finantseerimine<br />

– nõuetest arusaamine<br />

– kasutatavus<br />

<strong>Tarkvaratehnika</strong>: <strong>tarkvaraprojekti</strong> <strong>juhtimine</strong> (<strong>loeng</strong> <strong>II</strong>)<br />

35<br />

10/24/2001


Prototüüpide liigitamise viisid<br />

Mida nad uurivad?<br />

– käitumislikud – süsteemi teatav käitumine<br />

– struktuursed – arhitektuurilised või<br />

tehnoloogilised kaalutlused<br />

Kuidas nad arenevad?<br />

– uurimisprototüübid – visatakse minema<br />

– arenevad prototüübid – areneb<br />

valmissüsteemiks<br />

<strong>Tarkvaratehnika</strong>: <strong>tarkvaraprojekti</strong> <strong>juhtimine</strong> (<strong>loeng</strong> <strong>II</strong>)<br />

36<br />

10/24/2001


Tähtpunktid ja seisu<br />

hindamised<br />

Iga faasi ja iteratsiooni lõpus hinnatakse<br />

seisu, et<br />

– demonstreerida nõuete rahuldatust<br />

– sünkroniseerida nägemusi<br />

– sünkroniseerida tehised arendusalusega<br />

– tuvastada riske<br />

<strong>Tarkvaratehnika</strong>: <strong>tarkvaraprojekti</strong> <strong>juhtimine</strong> (<strong>loeng</strong> <strong>II</strong>)<br />

37<br />

10/24/2001


Tehiste hindamise taktikad<br />

Läbivaatus (Review) – formaalne koosolek<br />

kasutajatega, klientidega või teiste huvitatud<br />

osapooltega<br />

Inspection – formaalne hindamise tehnika,<br />

detailne uuring vigade, vastuolude jms.<br />

avastamiseks<br />

Walkthrough – tehise autor käib pealtvaatajate<br />

ees läbi mingi segmendi oma tehisest<br />

eesmärgiga, et teised küsivad/kommenteerivad<br />

tehnikat, stiili, potentisaalseid vigu, vastuolusid,<br />

standardeid ja teisi probleeme<br />

<strong>Tarkvaratehnika</strong>: <strong>tarkvaraprojekti</strong> <strong>juhtimine</strong> (<strong>loeng</strong> <strong>II</strong>)<br />

38<br />

10/24/2001

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!