väle tarkvaraarendus - kodu.ut.eekodu.ut.ee/~kiho/tvtkonspekt/votsasonagile/votsasonagile.pdf ·...

Post on 28-Sep-2018

220 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

Väle tarkvaraarendusVäledad metoodikad

Veljo Otsason

Loengute kava

1. Sissejuhatus teemasse– Mis on väle arendus ja miks see hea on?

2. Väledad metoodikad– RUP, XP, DSDM, Scrum jne. Nende

sarnasused ja erinevused.3. Ekstreemprogrammeerimine

– Põhimõtted, arendusprotsess, praktikad jne.

2

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, ...)

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?

3

Väleda arenduse manifest

• Eelistatakse:– isikuid ja suhtlust

protsessile ja vahenditele– töötavat tarkvara

kõikehaaravale dokumentatsioonile– kliendiga suhtlust

lepinguläbirääkimistele– muutustele vastamist

plaani järgimisele

- agilemanifesto.org

Väle vs. plaan-juhitud

Täielik“häkkerlus” XP

Täielikult etteplaneeritud

tegevus

Väledad metoodikad

CMMI

- Barry Boehm, USC

4

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

Planeerimise riskid

Aeg kulutatud planeerimisele

Risk

Kallim muutustetegemine

Plaan-juhitud arenduse optimum

Olukord, kus on parem rakendada plaan-juhitud metoodikaid

- Barry Boehm, USC

5

Planeerimise riskid

Aeg kulutatud planeerimisele

RiskOdavam

muutuste tegemine

Väle optimum

Olukord, kus on parem rakendada väledaid metoodikaid

- Barry Boehm, USC

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

6

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

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%)

7

Cutter Consortium’i uuring

51%

38%

23% 22%19%

8% 7%3%

0%

10%

20%

30%

40%

50%

60%os

akaa

l vas

tanu

test

RUP XPFDD

ASDDSDM

Crystal

Clea

r LDScru

m

Lisaks:54% oli kasutanud omaleiutatud väledat metoodikat9% oli kasutanud mõnda muud väledat metoodikat

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(?)

8

Evans Data Corp. uuring

Lisaks: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 XPmuu

väle

prog.

RUPJA

DScru

mDSDM

SASD

Kasutatavus Eestis

• Uuringut tehtud pole• Teada on, et on kasutatud:

– RUP– XP– RAD

• Enamusel oma metoodika, mis tihti koskmudeli modifikatsioon

9

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

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

10

RUP – protsessifaasid• Algatusfaas

– Defineeritakse projekti ulatus• Detailimisfaas

– Planeeritakse projekt– Spetsifitseeritakse erisused (features)– Luuakse arhitektuur

• Konstrueerimisfaas– Valmistatakse toode

• Siirdefaas– Kantakse toode lõppkasutajani

RUP – protsess

• Igas faasis läbitakse mitu iteratsiooni• Igas iteratsioonis erinev rõhuasetus

erinevatel töövoogudel:– Nõuete tuvastamine– Analüüs– Projekteerimine– Teostus– Testimine– ...

11

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

RUP – praktikad

• Iteratiivne tarkvara arendus• Nõuete haldamine• Komponendipõhise arhitektuuri

kasutamine• Tarkvara visuaalne modelleerimine• Pidev tarkvara kvaliteedi kontroll• Tarkvara muudatuste juhtimine

12

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.rational.com/rup• www.therationaledge.com

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

13

XP

• eXtreme Programming (XP)• Põhiväärtused:

suhtlemine, lihtsus, tagasiside, julgus• Detailsed praktikad• Iteratiivne protsess• Lähemalt järgmises loengus...

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

14

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)

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

15

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

FDD – protsess

Looüldmudel

Koostaerisustenimekiri

Planeerierisused

Disainierisus

Teostaerisus

16

FDD – praktikad

• Valdkonna modelleerimine• Erisushaaval arendamine• Individuaalne omand• Erisusmeeskonnad• Ülevaatused• Regulaarsed translatsioonid• Konfiguratsioonihaldus• Tulemuste jälgitavus ja aruanded

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

17

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

Adaptiivne tarkvaraarendus

• Adaptive Software Development (ASD)• Aluseks pidev muutumine• Arendustsükkel: Oleta – Osale – Õpi• Mitte eriti detailne metoodika• Alates 2001 koos Crystal metoodikatega

18

ASD – arendustsükkel

Oleta

Õpi

Osale

ASD – protsess

Tsükliplaneeri-

mine

Projektialgatamine

Paralleelnekomponentide

arendus

Kvaliteediülevaatus

Väljas-tamine

Õppimistsükkel

Oleta Osale Õpi

19

ASD – printsiibid

• Missioon-juhitud• Komponendipõhine• Iteratiivne• Ajalahterdatud• Muutusi salliv• Risk-juhitud

ASD – infoallikad

• Raamat:– J. Highsmith, “Adaptive Software

Development: A Collaborative Approach to Managing Complex Systems”, 2000

• www.adaptivesd.com

20

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

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

21

DSDM – tarkvara kolmnurk

Tavaline

Funktsionaalsus

Aeg Ressursid

DSDM

Funktsionaalsus

RessursidAegfikseeritud

muutuv

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

22

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

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öö

23

DSDM – protsessifaasid• Projektieelne faas

– Ressursside olemasolu? Planeerimine järgmisteks faasideks. Koolitus vajadusel

• Teostuvusuuring– Kas DSDM rakendamine on mõttekas? Põhiprobleem? Esialgne

hinnang ressursikulule.• Talitlusuuring

– Talitluse nõuded? Äriprotsesside analüüs. Koostatakse prioriteeritudnõuete nimekiri. Kõigi kasutajagruppide kaasamine.

• Funktsionaalse mudeli faas (iter.)– Realiseeritakse põhilised funktsionaalsed nõuded. Luuakse

funktsionaalne mudel• Projekteerimine ja teostuse faas (iter.)

– Valmistatakse kvaliteetne süsteem, mis vastab ka mittefunktsionaalsetele nõuetele. Testitud süsteem kasutajatele.

• Juurutamise faas (iter.)– Arenduskeskkonnast töökeskkonda, võib-olla mitmes etapis.

• Projektijärgne faas– Opereerimine ja hooldus.

DSDM – protsess

Funktsionaalsemudeli faas

Projekteerimiseja teostuse

faas

Juurutamisefaas

iteratsioon iteratsioon

iteratsioon

inkrement

Talitlusuuring

Teostuvus-uuring

24

DSDM – infoallikad

• Raamat:– J. Stapleton, “DSDM – Business Focused

Development”, 2003• www.dsdm.org

– Siit saab ka metoodika käsiraamatu tutvumisversiooni

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

25

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)

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)

26

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

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

27

Crystal Clear - praktikad

• Inkrementaalne arendus• Monitoorimine tarkvarast lähtuvalt• Kasutajate otsene seotus• Automaatsed regressioonitestid• Kasutajaülevaatused• Piisava stabiilsuse printsiip• Tagasivaateseminarid

Crystal – infoallikad

• Raamat:– A. Cockburn, “Crystal Clear: A human-

powered software development methodology for small teams”, 2003, draft: members.aol.com/humansandt/crystal/clear/

• www.crystalmethodologies.com

28

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

Kulusäästlik arendus

• Lean Development (LD)• Sai alguse 1980’ndate autotööstusest• Pigem üldised juhtnöörid arenduseks• Ei määratleta rolle, tehiseid, tööprotsesse

29

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

LD – infoallikad

• Raamat:– M. Poppendieck, “Lean Software

Development: An Agile Toolkit for Software Development Managers”, 2003

• www.poppendieck.com

30

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

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

31

Scrum – protsess

Scrum – infoallikad

• Raamat:– K. Schwaber et al., “Agile Software

Development with SCRUM”, 2001• www.controlchaos.com

32

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

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

33

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

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 üldiselt sarnased,

kuid esineb ka erinevusi

34

Järgmine kord

• Ekstreemprogrammeerimine detailsemalt• Väärtused. Põhimõtted. Arendusprotsess.• Tosin praktikat (paarisprogrammeerimine

ja muud)

top related