Agiilsete tarkvaraarenduse metoodikate võrdlus (0)
Agiilsete tarkvaraarenduse
metoodikate võrdlus
Esimest korda kuulsime Agile arendusest (või terminist Agile) 2001. aastal, kui arendajate
kogukond, kes oli väsinud rasketeks peetud arendusmeetodite kasutamisest - nimelt juga
mudel(waterfall) - otsustas koostada manifesti: Agile manifest. Sellel väga olulisel
dokumendil oli nii suur mõju, et see on olnud Agile arengu piibliks ka tänaseni, pannes paika
kõik põhimõtted ja head tavad.
Vastavalt Agile manifestile ja mõnele selle 12 põhimõttest:
● Klientide rahulolu on prioriteet, mida demonstreerivad pidevad tarned ja
lisandväärtus.
● Klient ja arendusmeeskond peaksid igapäevaselt koostööd tegema.
● Arendusmeeskondadele on vaja pakkuda head keskkonda ja head tuge. Ainult nii on
võimalik neid motiveerida.
● Agiilsed protsessid soodustavad säästvat arengut nende pideva rütmi ja tehnilise
tipptaseme tõttu, mis parandab tootlikkust.
● Retrospektiivsed hetked meeskonnas on hädavajalikud, võimaldades tal teha
vajalikke kohandusi ja edendada tõhusust.
Scrum
Scrum on kergekaaluline agiilne projektijuhtimise raamistik, mida saab kasutada igat liiki
iteratiivsete ja inkrementaalsete projektide haldamiseks. Scrumis töötav toote omanik on tihedas
koostöös oma meeskonnaga, et tuvastada ja seada prioriteedid süsteemi funktsionaalsusele,
luues toote backlog'i. Toote backlog koosneb sellest, mida tuleb teha, et edukalt toimivat
tarkvarasüsteemi realiseerida. Kogu arendustegevus on jaotatud sprint'ideks, mille kestus võib
olla sõltuvalt 1–2 nädalat.
HALB:
● Projekti segmenteerimine ja arenduse väleduse otsimine võivad mõnikord viia
meeskonna projekti kui terviku jälgimisele, keskendudes ainult ühele osale;
● Iga arendaja roll ei pruugi olla täpselt määratletud, mistõttu meeskonnaliikmed võivad
segadust tekitada.
Lean & Kanban
Kanban on visuaalne töövoo juhtimise meetod, mis on Lean meeskondade hulgas populaarne.
Tegelikult 83% Leani kasutavatest meeskondadest kasutab Kanbani, et visualiseerida ja
aktiivselt hallata toodete loomist rõhuasetusega pidevale tarnimisele. Nagu Scrum, on ka Kanban
protsess, mille eesmärk on aidata meeskondadel tõhusamalt koos töötada.
HALB:
● Meeskonna liikmetel on võimalik Kanbani juhatuses olevat infosaadet valesti tõlgendada,
eriti kui see ilmneb vananenuna;
● Kuna Kanbanis pole ajakavasid, võite iga etapiga seista silmitsi ajaga seotud
probleemidega, näiteks viivitustega.
Lean arendus kõrvaldab raiskamine (inglise keeles Waste), paludes kasutajatel valida süsteemi
jaoks tõeliselt väärtuslikud funktsioonid, seada need funktsioonid esikohale ja seejärel töötada
väikeste osade kaupa nende edastamiseks. See metoodika tugineb kiirele ja usaldusväärsele
tagasisidele programmeerijate ja klientide vahel, rõhutades arendustöövoogude kiirust ja
tõhusust.
Lean seitse peamist printsiibi, mis tuleks selle kasutamisel rakendada:
1. Eemalda rämps (Eliminate Waste)
a. ebavajalik kood ja funktsionaalsus;
b. alustades rohkemaga, millega saaks hakkama, lisab ebavajalikku keerulisust
süsteemile;
c. arenduse venimine;
d. hägused ja pidevalt muutuses olevad nõuded;
e. bürokraatia;
f. aeglane ja mitte tõhus suhtlus meeskonna vahel;
g. osaliselt tehtud töö;
h. ülesannete vahetamine töötajate vahel.
2. Kvaliteedile keskendumine
a. kahele arendajale sama ülesande andmine, et nad saaksid teineteist abistada
ja toodet muuta kvaliteetsemaks;
b. pidev töövoog ja tagasiside;
c. ooteaegade minimaliseerimine;
d. automatiseerimine.
3. Teadlikuse suurendamine
a. koos programmeerimine;
b. koodi ülevaatamine;
c. dokumentatsioon;
d. wiki;
e. põhjalikult kommenteeritud kood
f. harjutamine;
g. töövahendite kasutamine, et hoida silma peal vajaminevate ülesannete ellu
viimisel.
4. Liigse pühendumise vähendamine;
a. asju ei tohiks planeerida mitmeid kuid detailselt ette ja tuleks hoida pigem
pead avatuna ideedele ja tagasisidele.
5. Kiire arendus;
6. Inimeste austamine;
7. Optimeerimine.
HALB:
● See sõltub väga palju arendusmeeskonna võimekusest ja Lean'i põhimõtete
järgimisest, mis tähendab, et vaja on äärmiselt pühendunud ja andekaid arendajaid;
● Fookuse kaotamine on lihtsam, kuna erinevad ülesanded on jagatud mitmeks
elemendiks;
● See nõuab mõningaid dokumente, eriti töö objektiks oleva ettevõtte omaduste kohta.
Vastasel juhul on oht, et arendus võidakse teha valesti ja see võib sisaldada vigu.
Extreme Programming
Extreme Programming (XP), mida algselt kirjeldas Kent Beck, on kujunenud üheks kõige
populaarsemaks agiilseks metoodikaks. XP on distsiplineeritud lähenemine kvaliteetse tarkvara
kiirele ja pidevale tarnimisele. Selle eesmärk on parandada tarkvara kvaliteeti ja
reageerimisvõimet klientide muutuvatele vajadustele. See soodustab klientide suurt kaasamist,
kiiret tagasisidet, pidevat testimist, pidevat planeerimist ja tihedat meeskonnatööd.
HALB:
● Äärmine keskendumine koodile võib põhjustada disaini vähem tähtsust, mistõttu on vaja
sellele küsimusele erilist tähelepanu pöörata;
● See raamistik ei pruugi töötada parimal võimalikul viisil, kui kõik meeskonnaliikmed ei
tööta samas geograafilises piirkonnas;
● XP projektides ei peeta võimalike vigade registrit alati ja seire puudumine võib tulevikus
põhjustada sarnaseid vigu.
Crystal
Crystali metoodika on üks kõige kergekaalulisemaid, kohandatavamaid lähenemisviise tarkvara
arendamisele. Crystal koosneb tegelikult agiilsete meetodite perekonnast, sealhulgas Crystal
Clear, Crystal Yellow, Crystal Orange ja teised. Iga üks omab unikaalseid tunnusjooni, mida
juhivad mitmed tegurid nagu meeskonna suurus, süsteemi kriitilisus ja projekti prioriteedid.
Crystali perekond annab mõista, et iga projekti puhul võib vaja minna veidi kohandatud
poliitikate, tavade ja protsesside kogumit, et vastata toote ainulaadsetele omadustele.
HALB:
● Asjaolu, et metoodikaperekonnas on teisendeid, tähendab, et põhimõtted võivad
varieeruda sõltuvalt meeskonna suurusest ja projekti suurusest, mille tulemuseks on
projektid, mis ei pruugi olla nii otsesed;
● See ei pruugi töötada erinevates piirkondades hajutatud meeskondades, kuna pidev
vajadus suhelda ja reflekteerida;
● Planeerimine ja arendamine ei sõltu nõuetest.
DSDM
DSDM põhineb kaheksal põhiprintsiibil, mis juhivad meeskonda ja loovad mõtteviisi, mis
võimaldaksid ette nähtud aja ja eelarvega tarnida. Need põhimõtted keerlevad peamiselt
ettevõtte vajaduste ja väärtuste, aktiivse kasutajate kaasamise, sagedase tarnimise, integreeritud
testimise ja sidusrühmade koostöö ümber.
FDD
Feature Driven Development on mudelitel põhinev lühiajaline iteratsiooniprotsess, mis oli üles
ehitatud tarkvaratehnika parimate tavade, nagu domeeni objektide modelleerimine, funktsioonide
arendamine ja koodide omandiline kuuluvus järgi.
Esimest korda kuulsime Agile arendusest (või terminist Agile) 2001. aastal, kui arendajate kogukond, kes oli väsinud rasketeks peetud arendusmeetodite kasutamisest - nimelt juga mudel(waterfall) - otsustas koostada manifesti: Agile manifest. Sellel väga olulisel dokumendil oli nii suur mõju, et see on olnud Agile arengu piibliks ka tänaseni, pannes paika kõik põhimõtted ja head tavad.
Sarnased õppematerjalid
9
docx
Tarkvaraarenduse meetodid
1. Tarkvara arenduse meetodid
1.1 Struktuurprojekteerimine
Terve arendatav programm/tarkvara valmib struktuurprojekteerimise korral korraga.
Projekteerimise etapid (analüüs, disain, arendus jne) on selgelt piiritletud ja järgmine
etapp ei käivitu enne kui eelnev on lõppenud.
Sellisel projekteerimisel on ka tõsised puudused, näiteks kui tehakse disaini käigus, siis
need vead ilmnevad tihti alles arenduse lõppfaasis, mis omakorda raskendab ja
pikendab projekti valmimist. Lahenduste korduvkasutus on komplitseeritud, lahendused
koosnevad harva moodulitest ning funktsionaalsuse lisamine muutub aina
keerulisemaks.
Eelnevalt mainitud puuduste kõrvaldamiseks kasutatakse tihti meetodit nimega
prototüüpimine, kus lahendustele tehakse kiiranalüüs. Prototüüpimine kujutab endas
piiratud funktsionaalsusega prototüübi valmistamist, mida testitakse tellija juures ja
Funktsionaalne programmeerimine
24
docx
Tarkvaratehnika konspekt ja kordamisküsumused 2016-2017
6. Kuidas liigitada nõudeid? eksam
7. Nõude 3 põhiomadust.
8. Nõuete valideerimise tehnikad.
9. Komponentidel põhinev arhitektuur
10.Kihiline arhitektuur eksam
11.Objektorienteeritud arhitektuur
12.Teenusorienteeritud arhitektuur
13.Lihtsa koodi disaini 4 elementi
14.Miks peab nõudeid haldama?
15.Milleks kasutatakse versioonihaldust? eksam
16.Funktsionaalne nõue eksam
17.Mittefunktionaalne nõue eksam
18.Tarkvara elutsükkel
19.Millest koosneb tarkvara?
20.Mis on testimine?
21.Staatiline testimine eksam
22.Dünaamiline testimine eksam
23.Valge kasti testimine
24.Musta kasti testimine
25.Testimise tasemed
26.Re-testmine ja regressioonitestimine
27.eXtreme programmingu alustalad
28.Kirjelda lühidalt XP-d
29.Mis on mudel? eksam
30.Mis on UML? Miks on seda vaja?
31.Tarkvaratehnika 3 vaadet.
32.Tarkvara protsessi etapid.
33.Tabel disaini ja analüüsi abstraktsioonitasemete kohta
34
72
docx
Tarkvaratehnika
Tarkvaratehnika
1. Loeng
Kvaliteetse tarkvara atribuudid:
1. Teostab ettenähtud funktsionaalsust
2. Hooldatav Tarkvara peab arenema, et vastata muutuvatele vajadustele.
3. Usaldusväärne Töökindlus ja turvalisus.
4. Vastuvõetav Kasutajad on aktsepteerinud selle. Tarkvara on neile
arusaadav, kasutatav ja ühilduv teiste süsteemidega.
Mis on tarkvaratehnika?
Tarkvaratehnika on tiimide poolt rakendatav distsipliin tootmaks
kõrgekvaliteedilist, suuremastaabilist ja hinnaefektiivset tarkvara, mis rahuldab
kasutajate nõudmisi ja mida saab hooldada teatud ajaperioodi vältel.
Tarkvaratehnika on süstemaatilise, distsiplineeritud ja mõõdetava
lähenemisviisi rakendamine tarkvara arendamisele, käitamisele ja hooldamisele,
62
pdf
Tarkvaratehnika konspekt eksamiks
Tarkvaratehnika konspekt.
Tarkvaratehnika
Tarkvaratehnika e. tarkvara inseneeria on professionaalsele tarkvaraarendusele suunatud distsipliin, mis
tegeleb sellega, kuidas organiseerida tarkvaraarendust, arvestades organisatsiooniliste ja rahaliste
piirangutega. Tarkvaratooted koosnevad valjatöötatud programmidest ja nende dokumentatsioonist.
Tarkvaratehnika eesmärgiks on kuluefektiivne tarkvaraarendus kogu tarkvara elukaare ulatuses.
Tarkvaratehnika on süstemaatilise, distsiplineeritud ja mõõdetava lähehemisviisi rakendamine tarkvara
arendamisele, käitamisele ja hooldamisele, see tähendab, inseneriteaduste rakendamine tarkvarale.
Tarkvaratehnika „point“: Tarkvaratehnika on suunatud professionaalsele tarkvaraarendusele.
Tarkvaratehnika ei tegele tarkvaraarenduse endaga vaid sellega, kuidas organiseerida tarkvaraarendust.
Tarkvaratehnika vajadus - kõrgenenud nõudmised: suuremad süsteemid, keerulisemad süsteemid,
kiiremini arendatavad süsteemid. Insener suuda
138
docx
Tarkvaratehnika 2016/2017 eksami materjal
Tarkvaratehnika:
Loeng 1:
Taust:
o Tarkvara iseloom
o Kõrgenenud nõudmised:
Suuremad süsteemid
Keerulisemad süsteemid
Kiiremini
Erinevad näited vigadest mis on tehtud:
o Ariane Crash 1996 kosmosesüstiku alla kukkumine, tuli välja et selle
alla kukkumise põhjuseks oli tarkvarasüsteemis viga ilmus
trajektoori osas.
o Therac-25 kiiritusravi andmises tehti viga kasutaja liideses, kus
42
docx
Süsteemiarenduse elutsükkel
..........................................................................................3
2.Koskmudel.........................................................................................................................5
Kokkuvõte:.......................................................................................................................7
3.Inkrementaalne arendusmudel...........................................................................................8
Inkrementaalse arenduse eelised:...................................................................................11
Inkrementaalse arendused probleemid:..........................................................................11
4.Agiilsed arendusmeetodid...............................................................................................12
5.Spiraalmudel....................................................................................................................14
6.Prototüüpimine...............
210
pdf
Tarkvaratehnika kordamisküsimused
TARKVARATEHNIKA KORDAMISKÜSIMUSED
1. Mis on tarkvaratehnika?
Software engineering
! “Engineers Australia” definitsioon:
Tarkvaratehnika on tiimide poolt rakendatav distsipliin
tootmaks kõrgekvaliteedilist, suuremastaabilist ja hinnaefektiivset tarkvara mis rahuldab
kasutajate nõudmisi ja mida saab hooldada teatud ajaperioodi vältel.
IEEE definitsioon: Tarkvaratehnika on süstemaatilise, distsiplineeritud ja mõõdetava
lähehemisviisi rakendamine tarkvara arendamisele, käitamisele ja hooldamisele, see
tähendab, inseneriteaduste rakendamine tarkvarale.
Tarkvaraarendus on nõrgem termin, kus tingimata ei kasutata protsesse, tööriistu,
standardeid, jne. Tarkvaraarendus on progemine + konfigursatsiooni haldus.
Tarkvaratehnika ei ole ainult programmi kirjutamine, vaid teemad hõlmavad ka kvaliteeti,
ajakavasid,
21
docx
Tarkvara kvaliteet ja standardid
1. Tarkvaratoode mis siia kuulub?
Tarkvara arenduse tulem (toode, teenus) hõlmab mitmesuguseid komponente, mis kõik võivad
olla kvaliteedihalduse objektid, näiteks
arenduse käigus hangitud infotehnoloogiavahendid: riistvara, standardtarkvara,
sideseadmed
arenduse käigus tehtud töö: täitja arendatud tarkvara (sealhulgas lähtekood, objektkood,
täitmiskood jm); installatsioonid, kohandamised, muudatused; andmehõive
muudatused tellija organisatsioonis, protsessides, töökorralduses...
projektdokumentatsioon kasutamise kohta (kasutajajuhendid); objektsüsteemi kohta;
loodavate objektide kohta (programmi/testimise dokumentatsioon); installeerimise ja
seadistamise kohta; arenduse (sh testimise) kohta
metoodika: tulemuste kasutamine; tulemuste edasiarendamine; uute arenduste tegemine
Tarkvara kvaliteet ja standardid
Meedia
Kommentaarid (0)
Kõik kommentaarid