You are on page 1of 32

Softverski inženjering

Modelovanje procesa i životnog ciklusa


Značenje termina "proces"
• Uređeni skup zadataka - proces
• Niz koraka
– aktivnosti
– ograničenja
– resursi
– željeni cilj
• Proces uključuje skup alata i tehnika
Karakteristike procesa
• Proces opisuje sve glavne aktivnosti
• Proces koristi resurse, koji podležu skupu
ograničenja i rezultira međuproizvodima i finalnim
proizvodima
• Proces može da se sastoji od međusobno
povezanih potprocesa. Hijerarhija potprocesa
• Svaka aktivnost u okviru procesa poseduje uslove
za pokretanje i terminiranje
• Aktivnosti su organizovane u sekvence
• Skup uputstava objašnjava ciljeve svake aktivnosti
• Ograničenja mogu da se odnose na aktivnosti,
resurse ili proizvod
Karakteristike procesa
• Životni ciklus softvera
• Dobar zidar može svoj posao da opiše tako da
svako može da ga izvrši
• Proces razvoja softvera se može opisati tako da
omogući korišćenje proizvoljnih alata i tehnika
• Proces može da sugeriše izbor postupaka
Struktura procesa
• Struktura procesa upravlja akcijama i omogućava:
– ispitivanje
– razumevanje
– kontrolu
– poboljšanje aktivnosti
Kolač sa čokoladnim prelivom
• Proces sadrži više postupaka
– kupovina sastojaka, ..., pronalaženje odgovarajućeg posuđa
• Recept opisuje postupak za mešenje i pečenje kolača
– Aktivnosti: ulupati jaje pre mešanja sa ostalim sastojcima
– Ograničenja: pre mešanja sa šećerom čokolada mora biti ugrejana do
tačke topljenja
– Resurse: šećer, brašno, jaja i čokolada
• Preslatko? Smanjiti količinu šećera u receptu.
• Nema dovoljno čokolade? Dodati kakao.
• Bez recepta (dokumentacije) kuvar ne bi znao kako da napravi
izmene i proceni njihove efekte
• Prenošenje iskustva
Faze u razvoju softvera
• Faza predstavlja proces ili skup procesa
• Svaki proces je skup aktivnosti
• Aktivnost uključuje ograničenja, izlaze i resurse
• Primer: Analiza i definisanje zahteva
Modeli procesa izrade softvera
• Recepti za sprovođenje procesa razvoja softvera
• Opis načina na koji se razvoj stvarno odvija
• Opis procesa postaje zajedničko shvatanje
• Pomaže u pronalaženju nedoslednosti, viškova,
nedostataka... Proces postaje efikasniji
• Model treba da odražava ciljeve razvoja
• Model treba da bude skrojen prema situaciji u
kojoj se primenjuje
Model vodopada
Proces razvoja softvera u stvarnosti
Model vodopada sa prototipom
V model
Prototipski model
Fazni razvoj: Inkrementi i iteracije
Fazni razvoj: Inkrementi i iteracije
Spiralni model
Agilne metode
Agilni manifest

Pojedinci
Pojedinci ii saradnja
saradnja umesto Procesi
Procesi ii alata
alata

Sadržajna
Sadržajna
Softver
Softver koji
koji radi
radi umesto
dokumentacija
dokumentacija

Saradnja
Saradnja sa
sa naručiocem
naručiocem umesto Pregovori
Pregovori oo ugovorima
ugovorima

Odgovaranje
Odgovaranje na
na promene
promene umesto Praćenje
Praćenje plana
plana

• Ekstremno programiranje
• Scrum
Ekstremno programiranje - XP
• Komunikacija. Neprestana razmena
informacija između naručioca i projektnog
tima.
• Jednostavnost. Ohrabruje projektni tim da
odabere najjednostavniji dizajn ili
implementaciju.
• Odvažnost. Posvećenost blagovremenim i
čestim isporukama funkcija.
• Povratne sprege tokom procesa razvoja.
12 faktora XP-a
• Igra planiranja
• Male verzije
• Metafora
• Jednostavan dizajn
• Pisanje testova pre kodiranja
• Refaktorisanje
• Programiranje u paru
• Kolektivna svojina
• Neprekidna integracija
• Održiv korak (40h/w)
• Naručilac raspoloživ na terenu
• Standardi kodiranja
Scrum
• Omogućava da se fokusiramo na to da se isporuči što
kvalitetniji proizvod u što kraćem vremenu.
• Omogućava da periodično i brzo ispitamo stvarni softver
koji radi (svake dve sedmice do jednog meseca).
• Posao zadaje prioritete. Timovi se samoorganizuju da
odrede najbolji način da isporuče funkcionalnosti najvišeg
prioriteta.
• Svake dve sedmice do jednog meseca svako može videti
stvarni softver koji radi i da odluči da li da ga isporuči tako
kakav je ili da ga poboljšava tokom još jednog sprinta.
• Zahtevi su dati u vidu Product backlog-a.
• Progres se prave tokom sprint-a.
• Timovi sarađuju sa Product owner-om.
Scrum
Product backlog

• Sadrži sve potencijalne funkcionalnosti, sortirane prema


poslovnoj vrednosti.
• To praktično znači „ŠTA“ će biti napravljeno, sortirano po
važnosti.
• Sadrži grubu procenu o poslovnoj vrednosti i potrebnom
naporu da se razvije.
• Pomaže Product owner-u da prati vreme izrade i određuje
prioritete.
Scrum
Product owner

• Poseduje viziju o konačnom proizvodu.


• Predstavlja glas naručioca.
• Kreira početni Product backlog.
• Pomaže da se odrede pravci razvoja.
• Odgovoran da timovi isporučuju poslovnu vrednost.
• Odgovoran za:
– Product backlog
– Prioritete
Scrum
Timovi

• Ljudi koji prave proizvod i vrše procene.


• Preporučena veličina tima je 5-9 članova.
• Timovi su višefunkcionalni.
– Programeri
– Testeri
– Dizajneri
– ...
• Članovi bi trebalo da budu sa punim radnim vremenom.
• Samoorganizujući.
• Bez titula.
• Članstvo može da se menja samo između sprintova.
Scrum
Scrum Master

• Kombinacija trenera, terapeuta i golmana.


• Vodi računa da projekat teče glatko.
• Da svaki član tima ima sve što je potrebno da bi odradio
posao.
• Organizuje sastanke.
• Prati u kojoj meri je posao završen.
• Planira isporuku (release).
• Štiti tim i drži ih fokusirane na zadatke koji se trenutno
rade.
• Sluga i vođa.
Scrum
Release backlog

• Počinje od stavki iz Product backlog-a.


• Određuje koje će funkcionalnosti biti ubačene u release
(verzija za isporuku).
• Tim određuje prioritete pojedinih funkcionalnosti.
Scrum
Sprint

• Jedna iteracija.
• Može imati 1 dan planiranja, 4 dana rada i 1 dan za
retrospektivu.
• Kratkoročni ciljevi.
• Može trajati od nekoliko dana do 30 dana.
Scrum
Sprint backlog

• Razbija Release backlog u nekoliko zadataka.


• Svaki sprint mora da isporuči potpuno istestiran proizvod
sa potpuno završenim svim funkcionalnostima koje
propisuje taj Sprint backlog.
• Kašnjenje u završetku sprinta je snažan indikator da
projekat ne teče prema planu.
Scrum
Ceremonije

• Planiranje sprinta.
– Odlučivanje kako postići ciljeve (design).
– Kreiranje Sprint backlog-a (tasks) iz Product backlog stavki.
– Procena Sprint backlog-a u satima.
• Pregled sprinta.
• Retrospektiva sprinta.
• Dnevni sastanci (scrum meeting).
Scrum
Dnevni sastanci

• Parametri
– Dnevni.
– Traju 15 minuta
– Stojeći.
• Ne služe rešavanju problema
– Otvoreni su za sve.
– Samo članovi tima, Scrum master i Product owner mogu da govore.
• Svako odgovara na tri pitanja
– Šta si radio juče?
– Šta ćeš raditi danas?
– Da li imaš nekih prepreka?
• Nije „raport“ Scrum masteru, već pokazivanje
privrženosti.
Scrum
Pregled sprinta (Sprint review)

• Tim prezentuje šta je postignuto tokom sprinta.


• Obično je u formi demonstracije novih funkcionalnosti ili
pozadinske arhitekture.
• Neformalno
– Pravilo „priprema za 2 sata“
– Bez slajdova
• Učestvuje ceo tim.
• Svi ostali su dobrodošli.
Scrum
Retrospektiva sprinta

• Periodično se razmatra šta radi, a šta ne.


• Obično 15-30 minuta.
• Obavlja se posle svakog sprinta.
• Učestvuje ceo tim
– Scrum master
– Product owner
– Tim
– Po mogućstvu naručioci i ostali
Scrum
Burndown dijagram

You might also like