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