RPA 9. Lekcija - 2. dio Flashcards
Studying
Modeli ponovnog korištenja
▰ Model je razvoja softver temeljen na planiranoj ponovnoj integraciji postojećih komponenti softvera u novi softverski proizvod
▰ Prednosti:
▻ Skraćuje vrijeme i trošak razvoja
▻ Smanjuje se mogućnost grešaka u pojedinim funkcionalnostima sustava
▰ Nedostaci:
▻ Ponekada nisu dostupne sve potrebne komponente
▻ Ukoliko se razvijaju vlastite komponente gube se prednosti ovog modela, a ako se zamjene komponente postojećima, konačni proizvod odstupa od planiranih specifikacija
RAD
▰ Prva metodologija koja pokušava ubrzati razvoj softverskog proizvoda
▻ Rapid Application Developement
▰ Razvija ga J. Martin 1980ih godina, a IBM
formalizira metodu 1991.
▰ Metoda omogućuje ubrzanje procesa razvoja i povećanje kvalitete konačnog softverskog proizvoda
▰ Intenzivno koristi prototipiranje, mock-upove i sl.
▰ Nije prilagođena svim vrstama softvera
Agilne metodologije
▰Ubrzavanje procesa razvoja
zahtjeva potpuno nov pristup softverskom procesu
▻Vodopadni model – razvojni ciklus oko 1 godine
▻Spiralni model – razvojni ciklus oko 4 mjeseca
▻Agilni razvoj – razvojni ciklus 2 tjedna
▰ Agilni razvoj softvera predstavlja skup principa razvoja softverau kojem rješenja evoluiraju kroz suradnju samoorganizirajućih, unakrsno-funkcionalnih timova.
▻ Samoorganizirajući timovi – operativno (ili mikro) upravljanje radom u timu nije predmetom upravljanja menadžmenta organizacije već je prepušteno svakom timu
▻ Unakrsno-funkcionalni timovi – svi članovi tima iako imaju različite interese i očekivanja od svoje uloge u projektu usmjereni su na isti cilj
▰ Agilni razvoj softvera usvaja pristup adaptivnogplaniranja koje je uobičajeno u praksi (plan se prilagođava novim okolnostima tijekom razvoja). Agilni razvoj softvera usvaja i pristup kontinuiranog usavršavanja čime se softverski proizvod brže nadograđuje manjim funkcionalnostima te se brže otklanjaju uočene greške u softveru
▰ Metode razvoja softvera navedenih karakteristika razvijaju se već krajem 1980ih i tijekom 1990ih godina iz puke potrebe za efikasnošću
▰ Sustavni razvoj i poticaj ovakvih metoda počinje izdavanjem Manifesta agilnog razvoja softvera 2001.
▰ Agile Alliance – neprofitna organizacija koja promovira agilni pristup razvoju softvera kroz 12 principa objavljenih u manifestu
▰ Agilne vrijednosti
▻ Pojedinci i interakcije nego procesi i alati
▻ Programska podrška koja radi nego sveobuhvatna dokumentacija
▻ Suradnja s klijentima nego pregovaranje oko ugovora
▻ Odgovor na promjene nego slijeđenje plana
▰ Iako je dokazana vrijednost stvari sa desne strane, agilni pristup pridaje veću vrijednost stvarima s lijeve strane
Vrste Agilnih metodologija
▰ eXtreme Programming
▰ Scrum
▰ Lean start-up
▰ Dynamic System Developement
▰ Open Source Software Developement
▰ Adaptive Software Developement
▰ Feature Driven Developement
eXtreme Programming
▰ Vrlo konkretna metodologija razvoja
softvera koja se fokusira na isporuku visoko
kvalitetnog koda u malim inkrementima
(vremenskim razmacima)
▰ Najbolje funkcionira u malim timovima
(do 12 članova)
▰ Primjerena za projekte gdje zadaci nisu
jasni i podložni su čestim promjenama jer se
metoda adaptira svim promjenama
▰ Metodu je osmislio Kent Beck 1990te
▰ Metafore
▻ Zajednički sustav naziva i opisa karakteristika i elemenata projekta
– jezik izražavanja
-> KARAKTERISTIKE
▰ Mala i česta izdanja
▻ Korisnici mogu vidjeti kako aplikacija radi i dati primjedbe
▻ Razvoj se prekida kada to naručitelj odluči
▰ Jednostavan dizajn
▻ Apstrahirati ono što se mora ne napraviti
▻ Aplikacija se oblikuje kroz samu implementatciju
▰ Testiranje
▻ Provodi se kontinuirano
▻ Prvo se temeljem specifikacije stvaraju testovi, a zatim piše programski kod
▰ Refaktoriranje
▻ Refaktoriranje i pisanje koda ne provodi se istovremeno
▻ Provodi se prije ili poslije implementacije neke funkcionalnosti
▰ Programiranje u paru
▻ Dva programera, jedno računalo
▻ tzv. Watson-Holmes Pairing gdje postoje uloge:
▻ Driver – programer koji unosi programski kod tipkovnicom,
▻ Navigator – programer koji provjerava napisano i razmišlja o slijedećem koraku
▻ Produktivnost para veća od produktivnosti svakog programera zasebno
▻ Prednosti: detaljno poznavanje onog što se radi, pregledavanje koda barem od jednog
programera, zamjena parova širi znanje u timu
▰ Zajedničko dijeljenje koda
▻ Svi članovi tima odgovorni su za kod
▻ Svaki programer može promijeniti bilo koji dio koda
▰ Kontinuirana integracija
▻ Kod se integrira i pohranjuje u repozitorij nekoliko puta dnevno, kao i nakon
programskih testova
▰ 40 satni radni tjedan
▻ Ne zamarati se administracijom
▻ Osigurati okolinu bez stresa
▰ Uključenost kupca (naručitelja)
▻ Stvara korisničke priče koje su podloga razvoju
▻ Validira izdanja softvera kroz naručiteljeve testove
▰ Standardi pisanja koda
▻ Stil pisanja koda potrebno je prethodno dogovoriti ili prihvatiti standard
neutralne organizacije
Scrum
▰ Naziv okvira je pojam preuzet iz
ragbija koji označava unakrsno-funkcionalan tim koji se kreće u jednom (istome) pravcu
▰ Autori su Ken Schwaber i JeffSutherland, početkom 1990ih
▰ Sastoji se od tri faze:
▻ Prije igre
▻ Razvoj
▻ Poslije igre
▰ Faza prije igre ima dvije
podfaze:
▻ Planiranje
▻ Dizajn/arhitektura na visokoj razini
▰ Faza prije igre
- PLANIRANJE
▻ definiranje sustava koji će se razvijati
▻ Zahtjevi formiraju listu “Product Backlog”
▻ Dodjela prioriteta, procjena napora za realizaciju
▻ Nadopunjavanje liste zahtjeva je kontinuirano
▻ Određuje se projektni tim, potrebni alati, procjena rizika, edukacija
▻ Dodjela zaduženja
▰ Faza prije igre
– DIZAJN NA VISOKOJ RAZINI ▻ Provodi se na temelju podataka iz “Product Backlog” liste
▻ Poboljšavanje postojećeg sustava
▻ Uočavanje promjena i problema
▻ Pregledom dizajna formiraju se prijedlozi za implementaciju
▰ Faza poslije igre
Završetak izdanja sustava
▻ Nema novih zahtjeva
▻ Sustav spreman za izdavanje
▻ Priprema izdavanja: testiranje,integracija i dokumentiranje
▰ Faza razvoja
▻ Agilni dio Scrum pristupa
▻ Crna kutija – moguća nepredvidivo ponašanje
▻ Sastoji se od Sprintova
▻ iterativni ciklusi, razvijanje novih funkcionalnosti, poboljšavanje postojećih,
stvaranje nove verzije
SCRUM - Sprint
▰ SPRINT ▻ Dnevni sastanci održavaju se na
početku svakog radnog dana tzv. Daily Scrum ili „stand-up” ceremonija
▻ Sprint završava ceremonijom retrospektive gdje članovi tima
raspravljaju o provedenom sprintu i mogućnostima poboljšanja
▻ Sprint počinje inicijalnim sastankom
članova tima i formiranjem liste ciljeva za taj sprint „Sprint backlog”
▻ Tijekom svakog sprinta provode se
aktivnosti analiza, dizajn, razvoj i isporuke
▻ Jedan sprint obično traje od jednog
tjedna do mjesec dana
▻ Za gotov softverski proizvod obično
je potrebno tri do osam sprintova
SCRUM - Uloge
▻ Scrum Master – upravljačka uloga, osigurava da se projekt izvodi prema pravilima, vrijednostima i postupcima Scruma; surađuje s projektnim timom; osigurava maksimalnu produktivnost
▻ Vlasnik proizvoda – odgovoran za projekt, izabiru ga Scrum Master, klijent i uprava,
donosi odluke o zadacima iz Product Backlog liste
▻ Scrum tim – odlučuje o aktivnostima potrebnim za ostvarivanje ciljeva iz svakog
Sprinta; uključen u procjenu napora, stvaranje Sprint Backloga, pregledava Product Backlog liste
▻ Naručitelj (klijent) – sudjeluje u zadacima iz Product Backlog liste
▻ Korisnik – Uključen je kontinuirano u rad tima radi povratnih informacija
▻ Uprava – odgovorna za donošenje konačnih odluka, praćenje donesenihstandarda, odluka, postavlja ciljeve i zahtjeve
Lean start-up
▰ Metodologija koja podržava
kontinuiranu inovaciju
▰ Koncepti agilnog razvoja primijenjeni
na poduzetništvo s ciljem otkrivanja
korisnikovih želja i potreba, kako bi
se izbjegao razvoj softverskog proizvoda i funkcionalnosti koje nisu
nikome potrebne
Open Source Software Developement
▰ Metodologija je razvoja softvera koja se
temelji na javnoj dostupnosti izvornoga koda
▰ Pokret otvorenoga koda je inicijativa koja
podržava korištenje licenci koje stavljaju na
raspolaganje i omogućuju korisnicima pristup
izvornom kodu softvera, planovima i nacrtima
koje je moguće naknadno mijenjati i prilagođavati
▰ Faze u razvoju softvera
1. Inicijalizacija
-za kreiranje novog softvera potrebno je
utvrditi opis problema, organizirati tim
dobrovoljaca i identificirati rješenje
2. Razvoj
3. Publiciranje
-upravljanje verzijama
▰ OSSD ima karakteristike agilnog razvoja softvera no u fazi razvoja je moguće primijeniti i neki drugi model razvojnog procesa
▰ Neki od poznatijih softvera razvijenih korištenjem ove metode uključuju cijeli niz distribucija operativnog sustava Linux (poput Debiana, Ubuntu), kao i Internetski preglednici Mozilla Firefox, Google
Chromium, mobilni operativni sustav Android i njegove različite distribucije, kao i aplikativni softveri poput uredskog softvera LibreOffice, reproduktora VLC Media Player ili platforme za elektroničko učenje Moodle.
▰ OSSD odigrao je i značajnu ulogu u razvoju samog World Wide Weba