12.08.2013 Views

Tarkvaratehnika: tarkvaraprojekti juhtimine (loeng I)

Tarkvaratehnika: tarkvaraprojekti juhtimine (loeng I)

Tarkvaratehnika: tarkvaraprojekti juhtimine (loeng I)

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

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

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

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

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

Asko Seeba<br />

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

1<br />

10/24/2001


Teemad<br />

Loeng I – sissejuhatus<br />

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

kontseptsioonid<br />

Loeng III – <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> I)<br />

2<br />

10/24/2001


Juhtimise funktsioonid<br />

Planeerimine<br />

Organiseerimine<br />

Inimeste <strong>juhtimine</strong><br />

Kontroll<br />

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

3<br />

10/24/2001


Uuemad juhtimisteooriad –<br />

täielik kvaliteedi<strong>juhtimine</strong><br />

(TQM)<br />

Organisatsiooni juhtimise meetod<br />

Kvaliteedi kriteeriumiks kliendi nõudmine<br />

ISO 9001:2000<br />

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

4<br />

10/24/2001


ISO 9001:2000 (I)<br />

Tase A – kvaliteedikäsiraamat<br />

Tase B – kvaliteediprotseduurid<br />

Tase C – töödokumendid<br />

Tase D – kvaliteediandmestik<br />

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

5<br />

10/24/2001


ISO 9001:2000 (II)<br />

Tase D<br />

Tase C<br />

Tase B<br />

Tase A<br />

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

Miks?<br />

Kes, mida, kunas, kus?<br />

Kuidas?<br />

Tõendus<br />

6<br />

10/24/2001


Uuemad juhtimisteooriad –<br />

piirangute teooria (TOC)<br />

Eesmärk<br />

– Puhaskasum<br />

– Investeeringu tasuvus<br />

– Rahavoog<br />

Piirang e. pudelikael<br />

– Füüsiline<br />

–Turg<br />

– Ettevõtte poliitika<br />

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

7<br />

10/24/2001


Projekt<br />

Mingi ajutine, unikaalne püüdlus teatava<br />

eesmärgi saavutamiseks<br />

– Uue toote või teenuse väljatöötamine<br />

– Uue sõiduki projekteerimine<br />

– Poliitilise kampaania läbiviimine<br />

– Silla ehitamine<br />

– Marsile kulguri saatmine<br />

– Internetti e-kauplemise teenuse ülespanemine<br />

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

8<br />

10/24/2001


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

Projektipõhine organisatsioon<br />

– Sobib seal, kus turg ei lase tekkida<br />

monotoonsetel/rutiinsetel protsessidel.<br />

– Turu rahuldamine käib projektide kaudu<br />

– Kliendi muutuvate ja keerukate probleemide<br />

lahendamiseks paindlikum<br />

– Vähem inimesi teeb rohkem asju<br />

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

9<br />

10/24/2001


Projekti juhtimise probleemid<br />

Projekti <strong>juhtimine</strong> – mingile projektile esitatud<br />

nõuete täitmiseks vajalike teadmiste, oskuste,<br />

vahendite ja tehnika rakendamine vajalike<br />

tegevuste kaudu<br />

Projekti meeskond peab toime tulema<br />

– vastuoluliste tingimustega: projekti ulatus, aeg, hind,<br />

riskid ja kvaliteet<br />

– erinevate vajaduste ja ootustega osanike<br />

rahuldamisega<br />

– täitma tuvastatud nõudmised<br />

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

10<br />

10/24/2001


Tarkvara väljatöötamise<br />

probleemide sümptomid<br />

Kasutaja või talitluse vajadused on rahuldamata<br />

Nõudmised logisevad<br />

Moodulid ei integreeru<br />

Raskesti hallatav<br />

Puuduste hiline avastamine<br />

Kehv kvaliteet või puudulik lõppkasutaja<br />

kogemus<br />

Kehv töövõime koormuse all<br />

Koordineerimata meeskonnatöö<br />

Valmimisjärgsed redaktsioonid<br />

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

11<br />

10/24/2001


Sümptomite algpõhjused<br />

Sümptomid<br />

Rahuldamata vajadused<br />

Logisevad nõudmised<br />

Moodulid ei sobi<br />

Raskesti hallatav<br />

Hiline avastamine<br />

Kehv kvaliteet<br />

Meeskonna vastuolud<br />

Järelredaktsioonid<br />

Algpõhjused<br />

Ebapiisavad nõudmised<br />

Ebaselge suhtlemine<br />

Habras arhitektuur<br />

Liigne keerukus<br />

Avastamata vastuolud<br />

Puudulik testimine<br />

Subjektiivne hindamine<br />

Koskmudeli kasutamine<br />

Juhitamatud muutused<br />

Kehv automatiseeritus<br />

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

Parim tööpraktika<br />

Arenda iteratiivselt<br />

Halda nõudeid<br />

Kasuta komponentarhitektuuri<br />

Modelleeri visuaalselt (UML)<br />

Kontrolli pidevalt kvaliteeti<br />

Halda muudatusi<br />

12<br />

10/24/2001


Arenda iteratiivselt<br />

Arenda iteratiivselt<br />

Halda nõudeid<br />

Kasuta komponentarhitektuuri<br />

Modelleeri visuaalselt (UML)<br />

Kontrolli pidevalt kvaliteeti<br />

Halda muudatusi<br />

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

13<br />

10/24/2001


Klassikaline koskprotsess<br />

Koskprotsess<br />

Nõuete analüüs<br />

Projekteerimine<br />

Kodeerimine<br />

Integreerimine<br />

Testimine<br />

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

Kriitiliste riskide<br />

lahendamine viibib<br />

Hindab progressi töö<br />

tulemuste pealt, mis on<br />

edasiste ajahinnangute<br />

andmiseks kehvad<br />

Integreerimine ja<br />

testimine viibib<br />

Välistab varajase evituse<br />

Sageli lõppeb suurte<br />

plaanimatute<br />

iteratsioonidega<br />

14<br />

10/24/2001


Projekti tavaline areng<br />

100%<br />

Algab<br />

integreerimine<br />

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

Tähtaeg<br />

Hiline arhitektuuri<br />

ümbertegemine<br />

15<br />

10/24/2001


Iteratiivne väljatöötamine<br />

Esialgne<br />

plaanimine<br />

Plaanimine<br />

Hindamine<br />

Nõuded<br />

Iga iteratsiooni<br />

tulemuseks on käivitatav<br />

redaktsiooniga<br />

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

Analüüs ja<br />

projekteerimine<br />

Evitus<br />

Teostamine<br />

Testimine<br />

16<br />

10/24/2001


Risk<br />

Riskid vähenevad rutem<br />

Iteratiivne<br />

Aeg<br />

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

Riskide vähendamine<br />

Koskmudel<br />

17<br />

10/24/2001


Halda nõudeid<br />

Arenda iteratiivselt<br />

Halda nõudeid<br />

Kasuta komponentarhitektuuri<br />

Modelleeri visuaalselt (UML)<br />

Kontrolli pidevalt kvaliteeti<br />

Halda muudatusi<br />

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

18<br />

10/24/2001


Nõuetehaldus<br />

Tagab, et<br />

– lahendatakse õiget probleemi<br />

– ehitatakse õige süsteem<br />

kasutades süsteemi muutuvate nõuete<br />

süstematiseeritud<br />

– kogumist<br />

– organiseerimist<br />

– dokumenteerimist<br />

– ja haldamist.<br />

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

19<br />

10/24/2001


Nõuetehalduse tegevused<br />

Probleemi analüüsimine<br />

Kasutaja vajadustest arusaamine<br />

Süsteemi defineerimine<br />

Süsteemi ulatuse haldamine<br />

Süsteemi definitsiooni täpsustamine<br />

Õige süsteemi ehitamine<br />

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

20<br />

10/24/2001


Tegevuste kaardistus<br />

Vajadused<br />

Erisused<br />

Kasutusmallid ja<br />

tarkvaranõuded<br />

Testi protseduurid<br />

Jälitatavus<br />

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

Probleemid<br />

Arhitektuur<br />

Probleemide<br />

ala<br />

Lahenduste<br />

ala<br />

Ehitatav<br />

toode<br />

Kasutajadokumentatsioon<br />

21<br />

10/24/2001


Kasuta komponentarhitektuuri<br />

Arenda iteratiivselt<br />

Halda nõudeid<br />

Kasuta komponentarhitektuuri<br />

Modelleeri visuaalselt (UML)<br />

Kontrolli pidevalt kvaliteeti<br />

Halda muudatusi<br />

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

22<br />

10/24/2001


Paindlik, komponendipõhine<br />

arhitektuur<br />

Paindlik<br />

– Vastab jooksvatele ja tulevastele nõuetele<br />

– Parandab laiendatavust<br />

– Võimaldab korduvkasutust<br />

– Kapseldab süsteemi sõltuvused<br />

Komponendipõhine arhitektuur<br />

– Korduvkasutab või kohandab komponente<br />

– Kasutab kommertsiaalselt saadaolevaid komponente<br />

– Arendab olemasolevat tarkvara inkrementaalselt<br />

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

23<br />

10/24/2001


Komponendipõhise arhitektuuri<br />

otstarve<br />

Korduvkasutuse alus<br />

– Komponendi korduvkasutus<br />

– Arhitektuuri korduvkasutus<br />

Projektijuhtimise alus<br />

– Plaanimine<br />

– Personal<br />

– Üleandmine<br />

Intellektuaalne <strong>juhtimine</strong><br />

– keerukuse haldamine<br />

– kooskõlalisuse hoidmine<br />

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

Kihiline<br />

komponendipõhine<br />

arhitektuur<br />

Rakendusespetsiifiline<br />

Talitlusespetsiifiline<br />

Middleware<br />

Süsteemitarkvara<br />

24<br />

10/24/2001


Modelleeri visuaalselt (UML)<br />

Arenda iteratiivselt<br />

Halda nõudeid<br />

Kasuta komponentarhitektuuri<br />

Modelleeri visuaalselt (UML)<br />

Kontrolli pidevalt kvaliteeti<br />

Halda muudatusi<br />

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

25<br />

10/24/2001


Miks modelleerida visuaalselt?<br />

Aitab<br />

– kujutada süsteemi struktuuri ja käitumist<br />

– näidata, kuidas süsteemi elemendid kokku sobivad<br />

– hoida projekteerimine ja teostamine kooskõlas<br />

– vastavalt vajadusele varjata või tõsta esile detaile<br />

– suhelda üheseltmõistetavalt<br />

UML (Unified Modeling Language – unifitseeritud<br />

modelleerimise keel): üks keel kõigi osalejate jaoks<br />

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

26<br />

10/24/2001


Visuaalne modelleerimine UML<br />

abil<br />

Erinevad vaated<br />

Täpne süntaks ja<br />

semantika<br />

Koostööskeemid<br />

Olekuskeemid<br />

Dünaamika skeemid<br />

Järgnevusskeemid<br />

Tegevusskeemid<br />

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

Kasutusmalliskeemid<br />

Mudelid<br />

Klassiskeemid<br />

Evitusskeemid<br />

Objektiskeemid<br />

Komponendiskeemid<br />

Staatika skeemid<br />

27<br />

10/24/2001


Tegija A<br />

Skeemid visuaalsel<br />

modelleerimisel<br />

Kasutusmalliskeem<br />

Kasutus mal l1<br />

Kasutus mal l2<br />

Kasutusmall3<br />

Koostööskeem<br />

tegija<br />

Tegija B<br />

1: Mingi värk<br />

objekt1<br />

objekt2<br />

4: Neljas värk<br />

objekt3<br />

yksObjekt teineObjek t kolmasObjekt neljasObjekt viiesObjekt<br />

tegija : Tegija A<br />

sõnum1<br />

sõnum2<br />

sõnum3<br />

Juttu kah<br />

Veel pisut<br />

mingit<br />

juttu<br />

sõnum9<br />

sõnum4<br />

sõnum5<br />

sõnum6<br />

sõnum7<br />

sõnum8<br />

Kutt räägib<br />

iseendaga<br />

Järgnevusskeem<br />

2: Teine värk<br />

3: Kolmas värk<br />

5: Viies värk<br />

6: Kuues värk<br />

objekt4<br />

objekt5<br />

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

Klass<br />

operatsioon()<br />

teineOperatsioon()<br />

<br />

MingiKlass<br />

atribuut<br />

privaatOp()<br />

protOp()<br />

Klassiskeem<br />

JalleK lass<br />

teeSeda()<br />

teeToda()<br />

BaasKlass<br />

baasOp()<br />

KahKlass<br />

op()<br />

teineOp()<br />

Tuletatud<br />

uusOp()<br />

teineOp()<br />

kolmasOp()<br />

neljasOp()<br />

Komp2<br />

SuurKlass<br />

attr1<br />

attr2<br />

attr3<br />

tee()<br />

araTee()<br />

teeIkka()<br />

teeRaudselt()<br />

kontrolli()<br />

paranda()<br />

hinda()<br />

Komp1<br />

Suur klass,<br />

mis oskab<br />

asju teha<br />

Komp5<br />

Komp3<br />

Komp4<br />

Olekuskeem<br />

Olek1<br />

Komp6<br />

Komp7<br />

Komponendiskeem<br />

Olek3<br />

mingiSalakavalJura<br />

Syndmy s2<br />

Olek4<br />

Syndmus<br />

Olek2<br />

Syndmus3<br />

Evitusskeem<br />

NewPro<br />

cessor<br />

Mingi exe<br />

NewPro<br />

cessor4<br />

NewPro<br />

cessor3<br />

tei ne exe<br />

NewPro<br />

cessor2<br />

NewPro<br />

cessor8<br />

kolmas exe<br />

NewPro<br />

cessor6<br />

Pärikonstrueerimine<br />

ja pöördkonstrueerimine<br />

NewPro<br />

cessor5<br />

neljas exe<br />

NewPro<br />

cessor7<br />

Ehitatav<br />

süsteem<br />

28<br />

10/24/2001


Kontrolli pidevalt kvaliteeti<br />

Arenda iteratiivselt<br />

Halda nõudeid<br />

Kasuta komponentarhitektuuri<br />

Modelleeri visuaalselt (UML)<br />

Kontrolli pidevalt kvaliteeti<br />

Halda muudatusi<br />

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

29<br />

10/24/2001


Hind<br />

Tarkvara kvaliteedi pidev<br />

kontrollimine<br />

<strong>Tarkvaratehnika</strong>: <strong>tarkvaraprojekti</strong> <strong>juhtimine</strong> (<strong>loeng</strong> I)<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 />

30<br />

10/24/2001


Tarkvarakvaliteedi erinevad<br />

aspektid<br />

Kas mu<br />

rakendus teeb,<br />

mida vaja?<br />

Funktsionaalsus<br />

Iga kasutusstsenaariumi<br />

kontrollimine<br />

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

Töökindlus____<br />

Rakenduse töö<br />

katkematuse<br />

kontrollimine<br />

Kas mu<br />

rakendus töötab<br />

vigadeta<br />

Suutvus____<br />

Suutvuse testimine nii<br />

oodatava kui halvima<br />

juhu koormusega<br />

Kas süsteem<br />

tuleb<br />

koormusega<br />

toime<br />

31<br />

10/24/2001


Testi igas iteratsioonis<br />

UML mudel<br />

ja teostus<br />

Testid<br />

Iteratsioon 1<br />

KahKlass JalleKlass<br />

op() teeSeda()<br />

teineOp() teeToda()<br />

BaasKlass Tuletatud<br />

baasOp() uusOp()<br />

teineOp()<br />

kolmasOp()<br />

neljasOp()<br />

Testihulk 1 Testihulk 2 Testihulk 3 Testihulk 4<br />

X<br />

OKX OKX OK<br />

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

Iteratsioon 2 Iteratsioon 3 Iteratsioon 4<br />

KahKlass JalleKlass<br />

op() t eeSeda()<br />

teineOp() t eeToda()<br />

KahKlass JalleKlass<br />

op() teeSeda()<br />

teineOp() teeToda()<br />

BaasKlass Tuletatud<br />

baasOp() uusOp()<br />

teineOp()<br />

kolmasOp()<br />

neljasOp()<br />

BaasKlass Tuletatud<br />

baasOp() uusOp()<br />

teineOp()<br />

kolmasOp()<br />

neljasOp()<br />

X<br />

OKX<br />

X OKX<br />

OKX OK<br />

OKX<br />

OKX<br />

OK<br />

BaasKlass Tulet atud<br />

op() t eeSeda()<br />

teineOp() t eeToda()<br />

BaasKlass Tuletatud<br />

baasOp()<br />

baas Op()<br />

uusOp()<br />

uusOp()<br />

teineOp()<br />

teineOp()<br />

kolmasOp()<br />

kolmasOp()<br />

neljasOp()<br />

neljasOp()<br />

KahKlass JalleKlass<br />

KahKlass JalleKlass<br />

KahKlass JalleKlass<br />

BaasKlass Tuletatud<br />

op() teeSeda()<br />

op() teeSeda()<br />

baasOp() uusOp()<br />

teineOp() teeToda()<br />

teineOp() teeToda()<br />

teineOp()<br />

kolmasOp()<br />

neljasOp()<br />

X<br />

OKX<br />

X OKX<br />

OKX OK<br />

OKX<br />

X OKX<br />

OKX OK<br />

OKX<br />

OKX<br />

OK<br />

BaasKlass Tulet atud<br />

op() t eeSeda()<br />

teineOp() t eeToda()<br />

BaasKlass Tuletatud<br />

baasOp()<br />

baas Op()<br />

uusOp()<br />

uusOp()<br />

teineOp()<br />

teineOp()<br />

kolmasOp()<br />

kolmasOp()<br />

neljasOp()<br />

neljasOp()<br />

KahKlass JalleKlass<br />

KahKlass JalleKlas s<br />

KahKlass JalleKlass<br />

BaasKlass Tuletatud<br />

op() teeSeda()<br />

op() teeSeda()<br />

baasOp() uusOp()<br />

teineOp() teeToda()<br />

teineOp() teeToda()<br />

teineOp()<br />

kolmasOp()<br />

neljasOp()<br />

X<br />

OKX<br />

X<br />

OKX<br />

OKX<br />

OKX<br />

OK<br />

X<br />

OKX<br />

OKX<br />

OKX<br />

OK<br />

X<br />

OKX<br />

OKX<br />

OKX<br />

OK<br />

OKX<br />

OK<br />

32<br />

10/24/2001


Halda muudatusi<br />

Arenda iteratiivselt<br />

Halda nõudeid<br />

Kasuta komponentarhitektuuri<br />

Modelleeri visuaalselt (UML)<br />

Kontrolli pidevalt kvaliteeti<br />

Halda muudatusi<br />

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

33<br />

10/24/2001


Mida on vaja juhtida?<br />

Muudatusi, et itereerimine oleks võimalik<br />

Privaatne töökoopia iga arendaja jaoks<br />

Automatiseeritud teostuse/integreerimise<br />

haldus<br />

Paralleelne arendus<br />

Konfiguratsioonihaldus on rohkem, kui<br />

lihtsalt check-in ja check-out<br />

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

34<br />

10/24/2001


Konfiguratsioonihaldussüsteemi<br />

aspektid<br />

Muutmistaotluste (Change Request – CR)<br />

haldamine<br />

Konfiguratsiooni seisu hindamine<br />

Konfiguratsioonihaldus (CM)<br />

Muudatuste jälitamine<br />

Versiooni jälgimine<br />

Tarkvaraline keskkond<br />

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

35<br />

10/24/2001


Unifitseeritud muutmis<strong>juhtimine</strong><br />

(UCM)<br />

Kirjeldab, kuidas juhtida muutusi<br />

– nõuetes<br />

– projekteerimismudelites<br />

– dokumentatsioonis<br />

– komponentides<br />

– testjuhtumites<br />

– lähtekoodis<br />

Unifitseerib projekti plaanimise ning projekti<br />

arengu ja muutuvate tehiste jälgimise<br />

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

36<br />

10/24/2001


Parima tööpraktika osad<br />

võimendavad teineteist<br />

Parim tööpraktika<br />

Arenda iteratiivselt<br />

Halda nõudeid<br />

Kasuta komponentarhitektuuri<br />

Modelleeri visuaalselt (UML)<br />

Kontrolli pidevalt kvaliteeti<br />

Halda muudatusi<br />

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

Tagab kasutajate kaasamise<br />

ja nõuete arenemise<br />

Võimaldab varakult arhitektuuri<br />

otsuseid vastu võtta<br />

Võimaldab projekteerimise/teostamise<br />

keerukust inkrementaalselt lahata<br />

Kvaliteeti mõõdetakse varakult ja tihti<br />

Arendusalus areneb inkrementaalselt<br />

37<br />

10/24/2001


Unifitseeritud tarkvaraarenduse<br />

protsess<br />

Protsessi eesmärk<br />

– Koosneb juhenditest kvaliteetse tarkvara<br />

efektiivseks väljatöötamiseks<br />

– Vähendab riske ja suurendab ennustatavust<br />

– Soodustab üldise töökultuuri tekkimist<br />

Unifitseeritud tarkvaraarenduse protsess<br />

– Üldine objektorienteeritud tarkvara<br />

väljatöötamiseks<br />

– Rakendab parimat tööpraktikat<br />

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

38<br />

10/24/2001


Protsess üldises mõttes<br />

Protsess defineerib, kes teeb mida, millal ja<br />

kuidas, et saavutada teatavat eesmärki.<br />

Uued või muutunud<br />

nõudmised<br />

Tarkvara<br />

väljatööteprotsess<br />

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

Uus või muutunud<br />

süsteem<br />

39<br />

10/24/2001


Aeg<br />

UPi struktuur – faasid ja<br />

peamised tähtpunktid<br />

Algatus Detailimine Konstrueerimine Siire<br />

Elutsükli<br />

eesmärgi<br />

tähtpunkt<br />

Elutsükli<br />

arhitektuuri<br />

tähtpunkt<br />

UPis on neli faasi:<br />

– Algatus – defineerib projekti ulatuse<br />

– Detailimine – planeerib projekti, spetsifitseerib<br />

erisusi, loob arhitektuuri arendusaluse<br />

– Konstrueerimine – valmistab toote<br />

– Siire – kannab toote lõppkasutajateni<br />

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

Esialgse<br />

töövõime<br />

tähtpunkt<br />

Toote<br />

redaktsioon<br />

40<br />

10/24/2001


Iteratsioonid ja faasid<br />

Algatus Detailimine Konstrueerimine Siire<br />

Esialgne<br />

iter.<br />

Arhit.<br />

iter.<br />

Arhit.<br />

iter.<br />

Koodimisiter.<br />

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

Koodimisiter.<br />

Koodimisiter.<br />

Vahetähtpunktid: redaktsioonid<br />

Siirde<br />

iter.<br />

Siirde<br />

iter.<br />

Iteratsioon on kinnitatud plaani ja hindamiskriteeriumite järgi<br />

toimiv eristatav tegevuste jada, mille tulemuseks on<br />

demonstreeritav redaktsioon.<br />

41<br />

10/24/2001


Töövood<br />

Protsessi<br />

põhivood<br />

Mudelid<br />

Teostus<br />

Talitluse<br />

modelleeriminerimine<br />

Talitluse<br />

kasutusmalli<br />

mudel<br />

Nõuded Nõuded<br />

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

1: blalabla<br />

2: kamarajura<br />

3: teade<br />

Talitluse<br />

objektmudel<br />

Kasutusmalli<br />

mudel<br />

Automatiseerimine<br />

Analüüs ja ja<br />

projekteeriminerimine<br />

Teostus<br />

Projekteerimismudel<br />

Teostamine Testimine<br />

Teostus<br />

template class PtrHandle {<br />

public:<br />

PtrHandle(bool alloc_ptr = false);<br />

PtrHandle(size_t n);<br />

PtrHandle(const PtrHandle& handle);<br />

~PtrHandle();<br />

void init(size_t n);<br />

T* ptr() const;<br />

const PtrHandle& operator=(const PtrHandle&<br />

handle);<br />

private:<br />

T* _ptr;<br />

int* count;<br />

};<br />

Teostusmudel<br />

Kontroll<br />

OK<br />

OK<br />

Fail<br />

Testimismudel<br />

42<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> I)<br />

...<br />

Faasid<br />

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

Detailimisfaasi iteratsioon<br />

Iter.<br />

#n-1<br />

Iter.<br />

#n<br />

43<br />

10/24/2001

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

Saved successfully!

Ooh no, something went wrong!