Veljo Otsason
ProtsessimudelidVäledad metoodikad
Veljo Otsason
Tarkvaraarenduse metoodika
• Metoodika on süstemaatiline viis millegi tegemiseks (nt. tarkvara arendamiseks)
• Mõned metoodika omadused:– Detailsus (rangus, täpsus, ...) – kui rangelt
tegevust kirjeldatakse– Skoop – kui suurt ulatust kogu protsessist,
rollidest, tegevustest metoodika katab– Elemendid, mida kirjeldatakse (nt. rollid,
tehnikad, protsess, tehised, ...)
Veljo Otsason
Mis on väle arendus?
• Väle (agile) lähenemine tähendab:– Kergekaalulist arendusprotsessi– Muutustega kohandumist– Inimestele orienteeritust
• Üks võimalik viis, kuidas tarkvara luua. Sobib paremini teatud projektide korral
• Olemas mitmed erinevad väledad metoodikad
• License to hack?
Veljo Otsason
Väle vs. plaan-juhitudVäle arendus• Paindlikud, taibukad, tihedalt
koos töötavad arendajad• Pühendunud, taibukad,
volitatud kliendid, kes töötavad koos arendajatega
• Toetub vaikivale teadmisele
• Kiirelt muutuvad ja arenevad nõuded
• Arvestatakse ainult hetke nõudmisi
• Koodi muutmine (rekodeerimine) odav
• Väikesed tiimid ja projektid• Kiire tulemus prioriteetseim
Plaan-juhitud arendus• Plaan-orienteeritud arendajad
kindlate oskustega• Kliendid, kes tunnevad kindlaid
valdkondi
• Toetub dokumenteeritud ja detailsele teadmisele
• Nõuded täpselt ette teada ning ei muutu
• Arvestatakse hetke ja tuleviku nõudmisi
• Koodi muutmine (rekodeerimine) kallis
• Suured tiimid, projektid• Stabiilsus ja kindlus
prioriteetsemad- Barry Boehm, USC
Veljo Otsason
Tänased teemad
• Erinevad väledad metoodikad luubi all• Nende kasutatavus maailmas• Arendusprotsess ning rakendatavad
tehnikad iga metoodika järgi• Väledate metoodikate sarnasused ja
erinevused
Veljo Otsason
Väledad metoodikad
• Rationali unifitseeritud protsess (RUP)• Ekstreemprogrammeerimine (XP)• Erisus-juhitud arendus (FDD)• Adaptiivne tarkvaraarendus (ASD)• Dünaamiline süsteemiarendusmeetod (DSDM)• Crystal Clear• Kulusäästlik arendus (LD)• Scrum
Veljo Otsason
Metoodikate kasutatavus – Cutter
• Cutter Consortium uuris kasutatavust 2001 a.• Uuringus osalejad
– 200 IS/IT juhti– Üle maailma (s.h. 33% Põhja-Ameerikast, 20% Euroopast)– Nii tarkvarafirmadest (39%) kui ka muudest firmadest, kes
tarkvara oma tarbeks arendavad– Erinevate aastakäivetega: nt. 37% alla $5M, 13% üle miljardi
dollari.• Ühe metoodika kasutamine ei välistanud teist• Kahjuks pole selge, mida mõeldi kasutamise all• Lisaks väledatele metoodikale uuriti ka CMM (27%) ja
ISO 9000 (26%) järgimist tarkvara loomisel• Enim oli kasutatud oma metoodikat, mis kooskõlas
väleda arenduse põhimõtetega (54%)
Veljo Otsason
Cutter Consortium’i uuring51%
38%
23% 22%19%
8% 7%3%
0%
10%
20%
30%
40%
50%
60%
osak
aal v
asta
nute
st
RUP XP
FDD
ASD
DSDMCrys
tal C
lear LD
Scrum
54% oli kasutanud omaleiutatud väledat metoodikat9% oli kasutanud mõnda muud väledat metoodikat
Veljo Otsason
Metoodikate kasutatavus – Evans
• Evans Data Corporation uuris kasutatavust 2003 a.
• Uuringus küsitleti üle 600 Põhja-Ameerika ettevõtte
• Küsiti eelistatuimat metoodikat arenduseks• Enim kasutati oma metoodikat (40%)• 15% ei kasutanudki mingit metoodikat(?)
Veljo Otsason
Evans Data Corp. uuring
40% kasutas omaleiutatud metoodikat15% väitis et ei kasutanudki mingit metoodikat
16%
9%
7%6% 5%
2%1% 0% 0%
0%
2%
4%
6%
8%
10%
12%
14%
16%
18%
osak
aal v
asta
nute
st
RAD XP
muuvä
le pro
g.
RUP
JAD
Scrum
DSDM
SASD
Veljo Otsason
Kasutatavus Eestis
• Uuringut tehtud pole• Teada on, et on kasutatud:
– RUP– XP– RAD
• Enamusel oma metoodika, mis tihti koskmudeli modifikatsioon
Veljo Otsason
Väledad metoodikad
• Rationali unifitseeritud protsess (RUP)• Ekstreemprogrammeerimine (XP)• Erisus-juhitud arendus (FDD)• Adaptiivne tarkvaraarendus (ASD)• Dünaamiline süsteemiarendusmeetod (DSDM)• Crystal Clear• Kulusäästlik arendus (LD)• Scrum
Veljo Otsason
RUP
• Rational Unified Process (RUP) on:– iteratiivne ja inkrementaalne,– katab suurt osa arendusprotsessist,– konfigureeritav eri olukordade ja
organisatsioonide jaoks,– keskendub mudelite loomisele ja haldamisele.
• Spetsiaalsed arendusvahendid (nt. Rational Rose)
• Modelleerimiseks kasutatakse UML-i
Veljo Otsason
RUP – protsessifaasid• Algatusfaas
– Defineeritakse projekti ulatus• Detailimisfaas
– Planeeritakse projekt– Spetsifitseeritakse erisused (features)– Luuakse arhitektuur
• Konstrueerimisfaas– Valmistatakse toode
• Siirdefaas– Kantakse toode lõppkasutajani
Veljo Otsason
RUP – protsess
• Igas faasis läbitakse mitu iteratsiooni• Igas iteratsioonis erinev rõhuasetus
erinevatel töövoogudel:– Nõuete tuvastamine– Analüüs– Projekteerimine– Teostus– Testimine– ...
Veljo Otsason
RUP – protsess
Algatus Detailimine Konstrueerimine Siire
Faasid Põhivood
Iter. #n
Iter. #n-1
Iter. #2
Iter. #1
... ... ... ... ...
Nõuded
Analüüs
Teostus
Projekteerimine
Testimine
Detailimisfaasi iteratsioon
Veljo Otsason
RUP – praktikad
• Iteratiivne tarkvara arendus• Nõuete haldamine• Komponendipõhise arhitektuuri
kasutamine• Tarkvara visuaalne modelleerimine• Pidev tarkvara kvaliteedi kontroll• Tarkvara muudatuste juhtimine
Veljo Otsason
RUP – infoallikad
• Arvutiklassis olemas RUP täisdokumentatsioon
• Raamatud:– I. Jacobson et al., “The Unified Software
Development Process”, 1999– P. Kruchten, “The Rational Unified Process-
An Introduction”, 2000• www.ibm.com/developerworks/rational/
Veljo Otsason
Väledad metoodikad
• Rationali unifitseeritud protsess (RUP)• Ekstreemprogrammeerimine (XP)• Erisus-juhitud arendus (FDD)• Adaptiivne tarkvaraarendus (ASD)• Dünaamiline süsteemiarendusmeetod (DSDM)• Crystal Clear• Kulusäästlik arendus (LD)• Scrum
Veljo Otsason
XP
• eXtreme Programming (XP)• Põhiväärtused:
suhtlemine, lihtsus, tagasiside, julgus• Detailsed praktikad• Iteratiivne protsess
Veljo Otsason
XP – praktikad
• Plaanimismäng• Väikesed
redaktsioonid• Metafoor• Lihtne disain• Testimine• Rekodeerimine
• Paaris-programmeerimine
• Kollektiivne omand• Pidev integreerimine• 40-tunnised nädalad• Kasutaja tiimis• Ühtne
kodeerimisstandard
Veljo Otsason
Veljo Otsason
Veljo Otsason
Veljo Otsason
XP – infoallikad
• Raamatud:– K. Beck, “Extreme Programming Explained:
Embrace Change”, 1999– K. Beck et al., “Planning Extreme
Programming”, 2000– R. Jeffries et al., “Extreme Programming
Installed”, 2000• www.extremeprogramming.org• www.xprogramming.com
Veljo Otsason
Väledad metoodikad
• Rationali unifitseeritud protsess (RUP)• Ekstreemprogrammeerimine (XP)• Erisus-juhitud arendus (FDD)• Adaptiivne tarkvaraarendus (ASD)• Dünaamiline süsteemiarendusmeetod (DSDM)• Crystal Clear• Kulusäästlik arendus (LD)• Scrum
Veljo Otsason
Erisus-juhitud arendus
• Feature Driven Development (FDD)• Iteratiivne ja tulemustele orienteeritud• Kirjeldab analüüsi, projekteerimise ja
teostuse faase• Baseerub samuti UML-il• Keskne mõiste – erisus (feature)• Erisusi arendavad erisusmeeskonnad, mis
komplekteeritakse klasside järgi (igal klassil on omanik)
Veljo Otsason
FDD – Mis on erisus?
• Loodava süsteemi üks funktsionaalne nõue e. omadus
• Mingi tegevus, mida süsteem peab tegema
• Kliendile arusaadav ja vajalik• Ühe erisuse arendus kestab tavaliselt
tunnid kuni päevad (max 2 nädalat)• Sellega tagatakse arenduse jälgitavus
kliendile
Veljo Otsason
FDD – protsessifaasid
• Üldmudeli loomine• Erisuste nimekirja koostamine• Erisuste planeerimine• Erisuse projekteerimine• Erisuse teostamine (kodeerimine)
Viimased kaks faasi korduvad igas iteratsioonis ning paralleelselt võib käia mitme erisuse arendus
Veljo Otsason
FDD – protsess
Looüldmudel
Koostaerisustenimekiri
Planeerierisused
Disainierisus
Teostaerisus
Veljo Otsason
FDD – praktikad
• Valdkonna modelleerimine• Erisushaaval arendamine• Individuaalne omand• Erisusmeeskonnad• Ülevaatused• Regulaarsed translatsioonid• Konfiguratsioonihaldus• Tulemuste jälgitavus ja aruanded
Veljo Otsason
FDD – infoallikad
• Raamatud:– S. Palmer et al., “A Practical Guide to
Feature-Driven Development”, 2002– P. Coad et al., “Java Modeling In Color With
UML: Enterprise Components and Process”, 1999
• www.featuredrivendevelopment.com
Veljo Otsason
Väledad metoodikad
• Rationali unifitseeritud protsess (RUP)• Ekstreemprogrammeerimine (XP)• Erisus-juhitud arendus (FDD)• Adaptiivne tarkvaraarendus (ASD)• Dünaamiline süsteemiarendusmeetod (DSDM)• Crystal Clear• Kulusäästlik arendus (LD)• Scrum
Veljo Otsason
Adaptiivne tarkvaraarendus
• Adaptive Software Development (ASD)• Aluseks pidev muutumine• Arendustsükkel: Oleta – Osale – Õpi• Mitte eriti detailne metoodika• Alates 2001 koos Crystal metoodikatega
Veljo Otsason
ASD – arendustsükkel
Oleta
Õpi
Osale
Veljo Otsason
ASD – protsess
Tsükliplaneeri-
mine
Projektialgatamine
Paralleelnekomponentide
arendus
Kvaliteediülevaatus
Väljas-tamine
Õppimistsükkel
Oleta Osale Õpi
Veljo Otsason
ASD – printsiibid
• Missioon-juhitud• Komponendipõhine• Iteratiivne• Ajalahterdatud• Muutusi salliv• Risk-juhitud
Veljo Otsason
ASD – infoallikad
• Raamat:– J. Highsmith, “Adaptive Software
Development: A Collaborative Approach to Managing Complex Systems”, 2000
• www.adaptivesd.com
Veljo Otsason
Väledad metoodikad• Rationali unifitseeritud protsess (RUP)• Ekstreemprogrammeerimine (XP)• Erisus-juhitud arendus (FDD)• Adaptiivne tarkvaraarendus (ASD)• Dünaamiline süsteemiarendusmeetod
(DSDM)• Crystal Clear• Kulusäästlik arendus (LD)• Scrum
Veljo Otsason
DSDM
• Dynamic Systems Development Method(DSDM)
• Põhineb RAD lähenemisel• Metoodikat haldab DSDM konsortsium,
millel üle 400 liikme üle maailma– Populaarsem Euroopas, eriti UK-s– Konsortsiumisse kuuluvad suurimad briti
firmad (13% IT-firmadest, kelle käive >£100M)– Koolituse läbinud üle 20 000 spetsialisti
Veljo Otsason
DSDM – tarkvara kolmnurk
Tavaline
Funktsionaalsus
Aeg Ressursid
DSDM
Funktsionaalsus
RessursidAegfikseeritud
muutuv
Veljo Otsason
DSDM – millal ei sobi?
• Rakendamine raske, kui progress pole kasutajale jälgitav (nt. reaalajasüsteemid, protsessijuhtimine vms)
• Ülikriitilise tarkvara korral, kuna puuduvad ülitäpsed kontrollimehhanismid
Veljo Otsason
DSDM – tiimid
• Arendustiimis 2..6 inimest, projektis võib olla mitu tiimi (soovitavalt max 6)
• Igas tiimis vähemalt üks kasutaja esindaja• Kandvad rollid projektis:
– Projektijuht– Tehniline koordinaator– Visionäär
Veljo Otsason
DSDM – põhimõtted• Kasutajate aktiivne osalus• Tiim on volitatud otsustama• Sagedased väljalasked• Ärieesmärkide saavutamine on esmatähtis• Iteratiivne ja inkrementaalne arendus• Kõik muutused on tagasivõetavad• Määratakse üldised nõuded• Testimine kogu projekti jooksul• Kõigi osapoolte vaheline koostöö
Veljo Otsason
DSDM – protsessifaasid
• Projektieelne faas• Teostuvusuuring• Talitlusuuring• Funktsionaalse mudeli faas (iter.)• Projekteerimine ja teostuse faas (iter.)• Juurutamise faas (iter.)• Projektijärgne faas
Veljo Otsason
DSDM – protsess
Funktsionaalsemudeli faas
Projekteerimiseja teostuse
faas
Juurutamisefaas
iteratsioon iteratsioon
iteratsioon
inkrement
Talitlusuuring
Teostuvus-uuring
Veljo Otsason
DSDM – infoallikad
• Raamat:– J. Stapleton, “DSDM – Business Focused
Development”, 2003• www.dsdm.org
Veljo Otsason
Väledad metoodikad
• Rationali unifitseeritud protsess (RUP)• Ekstreemprogrammeerimine (XP)• Erisus-juhitud arendus (FDD)• Adaptiivne tarkvaraarendus (ASD)• Dünaamiline süsteemiarendusmeetod (DSDM)• Crystal Clear• Kulusäästlik arendus (LD)• Scrum
Veljo Otsason
Crystal metoodikad
• Terve perekond metoodikaid• Praegu kirjeldatud Clear ja Orange• Eriline rõhk inimestel ja nendevahelisel
suhtlemisel. Mida efektiivsem suhtlus, seda vähem vaja vahepealseid tehiseid!
• Oluline on metoodika kohaldamine (baasmetoodikad)
Veljo Otsason
Crystal metoodikad
• Projektid jaotatakse tiimi suuruse ja kriitilisuse järgi
• Kriitilisus = kui suurt ohtu tarkvara vead kujutavad:– Mugavus (loss of Comfort)– Mõningane raha (loss of Discretionary money)– Oluline raha (loss of Essential money)– Elu (loss of Life)
Veljo Otsason
Crystal metoodikad
L6 L20 L40 L80
E6
D6
C6
E20 E40 E80
D20 D40 D80
C20 C40 C80
Clear Yellow Orange Red
Süsteemikriitilisus
Tiimisuurus
Veljo Otsason
Crystal Clear
• Väikestele tiimidele (4..6 in.) vähekriitilistes projektides
• Esmatähtis on time-to-market• Tiim töötab koos ühes ruumis• Tehnikaid ei määratleta – neid tuleks võtta
teistest metoodikatest
Veljo Otsason
Crystal Clear - praktikad
• Inkrementaalne arendus• Monitoorimine tarkvarast lähtuvalt• Kasutajate otsene seotus• Automaatsed regressioonitestid• Kasutajaülevaatused• Piisava stabiilsuse printsiip• Tagasivaateseminarid
Veljo Otsason
Väledad metoodikad
• Rationali unifitseeritud protsess (RUP)• Ekstreemprogrammeerimine (XP)• Erisus-juhitud arendus (FDD)• Adaptiivne tarkvaraarendus (ASD)• Dünaamiline süsteemiarendusmeetod (DSDM)• Crystal Clear• Kulusäästlik arendus (LD)• Scrum
Veljo Otsason
Kulusäästlik arendus
• Lean Development (LD)• Sai alguse 1980’ndate autotööstusest• Pigem üldised juhtnöörid arenduseks• Ei määratleta rolle, tehiseid, tööprotsesse
Veljo Otsason
LD – põhimõtted
• Kõige üleliigse eemaldamine• Õppimise kiirendamine ja võimendamine• Otsustamine nii hilja kui võimalik• Evitamine nii kiiresti kui võimalik• Tiim on volitatud otsustama• Terviklikkust silmas pidav arendamine• Asjatu optimeerimise vältimine
Veljo Otsason
LD – infoallikad
• Raamat:– M. Poppendieck, “Lean Software
Development: An Agile Toolkit for Software Development Managers”, 2003
• www.poppendieck.com
Veljo Otsason
Väledad metoodikad
• Rationali unifitseeritud protsess (RUP)• Ekstreemprogrammeerimine (XP)• Erisus-juhitud arendus (FDD)• Adaptiivne tarkvaraarendus (ASD)• Dünaamiline süsteemiarendusmeetod (DSDM)• Crystal Clear• Kulusäästlik arendus (LD)• Scrum
Veljo Otsason
Scrum
• Keskendub arendusprotsessi juhtimisele ja kontrollimisele. Ei kirjelda konkreetseid tehnikad arenduseks
• Väikestele tiimidele (5..8 liiget)• Protsess jaguneb sprintideks, mis on 2..6
nädala pikkused iteratsioonid• Nõuded alguses toote nõuete nimekirjas
ning hiljem iga sprindi nimekirjas.• Kiirkoosolekud iga päeva alguses
Veljo Otsason
Scrum – protsess
Veljo Otsason
Scrum – infoallikad
• Raamat:– K. Schwaber et al., “Agile Software
Development with SCRUM”, 2001• www.controlchaos.com
Veljo Otsason
Võrdlus• Ulatus
– RUP, DSDM vs. Scrum, FDD• Detailsus
– XP, RUP vs. ASD, CrystalClear
• Rakendatavus– RUP ei piira, Crystal Clear
piirab• Iteratsioonid
– Igal pool olemas, kuid eri pikkustega (FDD, XP vs. RUP, Crystal Clear)
• Kliendi seotus– Eriti oluline XP ja DSDM korral
• Nõuded– kliendile mõistetavad osad
• Tiimi dünaamika– FDD muutuvad meeskonnad,
XP paarisprogrammeerimise partnerite vahetus
• Koodi omand– XP – kollektiivne, FDD -
individuaalne• Visuaalne modelleerimine
– RUP, FDD eeldavad UML-i• Metoodika arendus ja
haldamine– DSDM-i ja RUP-i arendavad
organisatsioonid• Mida on uuritud?
– XP ja RUP eelkõige
Veljo Otsason
Kuidas metoodikat rakendada?
• Kasutamisele peab eelnema analüüs• Vajadus kombineerida eri metoodikaid• Rakendamine samm-sammult
olemasolevat metoodikat muutes• Eesmärk pole metoodikat kasutada vaid
edukalt tarkvara arendada
Veljo Otsason
Vaatame tagasi
Veljo Otsason
Kokkuvõtteks
• Väledaid metoodikaid on palju, mõned on rohkem kasutatavad, mõned vähem
• Levinuimad on RUP ja XP• Väledad metoodikad on üldjoontes
sarnased, kuid esineb ka erinevusi
Veljo Otsason
Referaadi teema:
“Väledate tehnikate kasutamine omavalitud projekti näitel”