Professional Documents
Culture Documents
Predmet Se410-Analiza Zahteva Za Softver
Predmet Se410-Analiza Zahteva Za Softver
AUTOR
Aleksandar MIljković 1456
Student Master studija : Bezbednost Informacija
aleksandar.miljkovic.1456@metropolitan.ac.rs.rs
Mentor:
Prof. dr Svetlana Cvetanović
SE410-ANALIZA ZAHTEVA ZA SOFTVER 2013
Sadržaj
Sadržaj....................................................................................................................................................2
1.Uvod....................................................................................................................................................3
5.Pojam Zahteva.....................................................................................................................................7
5.1.Prikupljanje zahteva.....................................................................................................................7
5.3.1Sprovedene ankete.................................................................................................................9
5.4.Pisanje Zahteva...........................................................................................................................11
7.Zaključak............................................................................................................................................15
Literatura..............................................................................................................................................17
Page 2 of 16
SE410-ANALIZA ZAHTEVA ZA SOFTVER 2013
1.Uvod
Pri razvoju bilo kog složenijeg softverskog projekta, neophodno je definisati precizno sve faze
životnog ciklusa softvera. Ovde je poseban značaj dat prvoj fazi razvoja, prikupljanju zahteva od
naručioca, jer od njega zavise i ostale faze.
Ukoliko u ovoj fazi nastanu propusti i greške, one će se provlačiti i kroz ostale faze i negativno
uticati na realizovanje softvera. Zbog toga je neophodno precizno definisati zahteve od naručioca, te
zahteve ako je moguće zapisati i u tom obliku analizirati zajedno sa naručiocom, kako bi bili sigurni da
su zahtevi precizno definisani. Ukoliko dođe do grešaka, povećaće se vreme potrebno za njihovo
otkrivanje u narednim fazama životnog ciklusa, a samim tim i troškovi se višestruko uvećavaju.
Specifikacija zahteva je značajna za svakoga ko ima bilo kakve veze sa projektom koji se radi.
Projektanti znaju šta treba da projektuju, oni koji testiraju, kakav je izlaz koji očekuju. Najviše koristi
imaju korisnici jer znaju šta će dobiti kao rezultat na kraju. Obično razvoj softverskog proizvoda
počinje kada naručioc utvrdi da su zahtevi dobro prikupljeni. Npr. ako naručioc želi da na sajt o
kupovini uključi listu želja, on će analizirati zahteve i tražiti da se doda lista želja, ako već ne postoji.
Na taj način, sa povećanjem uloge korisnika u kreiranju zahteva, utiče se na dalje faze razvoja.
Ako se radi o manjim projektima, jedna osoba može raditi na svim fazama životnog ciklusa
softvera, odnosno sama realizovati projekat. Međutim, ako je projekat veći, mora raditi veći broj ljudi
na njemu, a samim tim mora se vršiti i analiza zahteva projekta kao prva i najvažnija faza životnog
ciklusa softvera.
Proces otkrivanja zahteva korisnika predstavlja prvi korak u razumevanju problema koji
softver treba da reši. Prevashodno ljudska aktivnost, prepoznavanje stakeholdera i uspostavljanje
veze između razvojnog tima i kupca čine najvažnije faktore u procesu prikupljanja, obrade i validacije
zahteva.
Page 3 of 16
SE410-ANALIZA ZAHTEVA ZA SOFTVER 2013
Termin softversko inženjerstvo se prvi put pojavio 1968 godine na NATO konferenciji u
Nemačkoj. Poslednjih 30 godina, softversko inženjerstvo predstavlja metaforu za proces razvoja
softvera. Softversko inženjerstvo je danas prihvaćeno kao akademski pojam i koristiti se na velikom
broju univerziteta koji poseduju naučne oblasti tog tipa, ili pak predmete koji imaju ovo ime.
Pošto se softver koristi sve više i preuzima vitalne funkcije u organizacijama i društvu,
značajno je da bude što pouzdaniji, efikasniji i da postoji mogućnost izmene, dopune itd.
Jedan od uzroka nastanka softverskih greški je da se ne poštuje raspored izrade projekta, kao i
da je procena kompletnosti projekta loša. Proizvod softverskog inženjerstva je softverski sistem.
Softver koji se razvija mora zadovoljiti zahteve naručioca.
Gotovo da ne postoji softver bez greške. Za neke softvere, broj grešaka neće uticati na kvalitet
i rad samog softvera, dok u nekim slučajevima, greške mogu izazvati katastrofu. Zbog toga je
neophodno da se poštujući metodologiju razvoja softvera unapred precizno definišu faze razvoja
softvera, zatim, tim koji će razvijati softver, sa preciznom podelom posla, a pored ostalog potrebno je
utvrditi i vreme koje je potrebno da bi se razvio softver.
U oblasti softvera osnovni problem je bio u tome što je složnost problema za rašavanje rasla
brže od tehnologije za razvoj softvera. Cena softvera zavisila je više od rada nego od tehnologije, tako
da je ljudski rad potreban za razvoj softvera bio proporcionalan veličini (složenosti) softvera. Kako se
složenost softvera u toku godina povećavala, povećavao se i ljudski rad potreban za njegov razvoj.
Proces donošenja i revizije već donetih standarda je stalan i sve obuhvatniji. U svetu softvera
tako danas egzistira više od 1000 standarda, a u svetu softverskog inženjerstva ima ih više od 350
aktuelnih.
Standard je potvrđen uzorak u odnosu na koji drugi predmeti mogu da budu mereni ili
procenjeni.Standard je objavljen dokument koji sadrži tehničke specifikacije ili druge kriterijume
neophodne da osiguraju da će materijal ili metoda dosledno da zadovolji potrebe za koje je
predviđen.
Aleksandar Miljkovic 1456 Uticaj kvaliteta zahteva na kvalitet softverskog
proizvoda
Page 4 of 16
SE410-ANALIZA ZAHTEVA ZA SOFTVER 2013
Page 5 of 16
SE410-ANALIZA ZAHTEVA ZA SOFTVER 2013
Page 6 of 16
SE410-ANALIZA ZAHTEVA ZA SOFTVER 2013
5.Pojam Zahteva
Ako realizatori softvera razumeju šta softver treba da postigne za krajnjeg korisnika i kako da
postigne taj cilj, onda će brzo i efikasno odraditi projekat. Da bi se sve to razumelo, neophodno je da
se razume vrsta posla koju će obavljati softver za svog korisnika i kako će uticati na rad i postići
odgovarajući cilj.
Šta softver obavlja za korisnika i koja ograničenja mora zadovoljiti predstavljaju zahteve
softvera. Osnovno je da se razumeju zahtevi korisnika softvera bez obzira o kom se poslu radi, da li je
reč o softveru koji se koristi u nauci trgovini, bankarstvu, za obradu teksta itd.
Takođe nije bitno koji će se programski jezik ili razvojni alati koristiti za konstrukciju
softvera.Da bi se razumeli zahtevi ne bitno je da li se koristi agilno inženjerstvo, ekstremno
programiranje, prototipsko programiranje, modeliranje ili neka druga metodologija. Najbitnije je da se
ispravno definišu zahtevi i da naručioc to razume, ili softver neće biti od koristi, bez obzira što su
ostale faze u razvoju softvera perfektno određene.
5.1.Prikupljanje zahteva
Zbog toga se nastoji da se u ovoj fazi utvrde potrebe posla koji će softver obavljati, tako da se
ti zahtevi kasnije u fazi projektovanja konkretizuju u plan. U fazi projektovanja se određuju alati za
programiranje, uređaji koji se koriste i kako će biti konstruisani.
Pravilno prikupljeni zahtevi će uticati da se ostale faze minimalno kasnije dorađuju.Na slici je
prikazan proces prikupljanja zahteva kao deo životnog ciklusa razvoja softvera.
Page 7 of 16
SE410-ANALIZA ZAHTEVA ZA SOFTVER 2013
Slika 3.
Proces prikupljanja zahteva utvrđuju rad i određuje koji proizvodi najbolje pomažu u radu.
Kao izlaz iz ovog procesa, specifikacija zahteva obezbeđuje kompletan opis potrebnih funkcionalosti i
ponašanja proizvoda. Modeliranje sistema stvara radne modele funkcija i podataka neophodnih za
softver, kao i modele koji su neophodni za prikupljanje zahteva.
Kada se proizvod jednom kreira, on se koristi i odmah krene da se razvija. Softver mora imati
mogućnost proširenja u zavisnosti od novih zahteva korisnika u pogledu funkcionalnosti. Ako se koristi
proces gde je funkcionalnost značajna, takav proizvod će uticati na radnu praksu. Npr. ako su zahtevi
fleksibilni, to će uticati na promenu isporučivanja softvera.
Razvoj softvera i njegovih zahteva je proces koji se ne može kontrolisati ili odrediti, ali ga
moramo prihvatiti. Softverski zahtevi nisu definitivni u momentu kreiranja softvera. Oni se vremenom
menjaju, tako da svi zahtevi moraju biti fleksibilni.
Upoznavanje s radom softvera raste vremenom, tako da modeli postaju mnogo precizniji i
stvaraju značajne informacije koje se koriste pri prikupljanju zahteva. Jaz između prikupljanja zahteva i
modeliranja sistema varira u zavisnosti od procesa razvoja softverskog proizvoda. Na početku,
modeliranje je minimalno, dok se maksimalno radi na prikupljanju i ocenjivanju zahteva. Kako faze
razvoja softvera odmiču tako i aktivnost modeliranja raste. Modeli se mogu koristiti da opišu softver ili
Page 8 of 16
SE410-ANALIZA ZAHTEVA ZA SOFTVER 2013
princip njegovog rada. U skladu sa tim se koristi kao dnevnik podataka ili neophodan scenario ili
prikaz procesa, tako da je pogodna alternativa tekstualnoj specifikaciji.
Softverski proizvod može biti bilo kog tipa. Da bi se kreirao može se krenuti i od crteža, a
mogu se koristiti open source komponente ili neki drugi programski alati, što naravno zavisi od samog
softvera koji se kreira.
Neophodno je da se razumeju svih zahtevi pre nego se krene u fazu konstruisanja. Ispravni
zahtevi nastaju samo kada se dobro razume šta softver treba da radi. Samo kada su ispravno
prikupljeni zahtevi, pravilno će se projektovati i programirati softver, pa će samim tim i zadovoljiti
potrebe korisnika.
Na žalost zahtevi se često ne razumeju i to je čak prema nekim istraživanjima oko 60% grešaka
potiče iz faze prikupljanja zahteva. Tako da zaposleni u razvoju softvera imaju mogućnost da eliminišu
veliku količinu grešaka ako detaljno izvrše prikupljanje zahteva, a ne da brzo pređu u narednu fazu
razvoja. Kao rezultat, mnogo puta se desilo da je cena softvera bila mnogo veća, što je bilo posledica
lošeg prikupljanja i analize zahteva na početku razvoja softvera. Samim tim je i kvalitet lošiji.
Programiranje je konstruisanje rešavanja problema. Može se dobiti veći broj iteracija kao
rešenje. Bez razumevanja potreba korisnika i predstaviti im rešenje u radnom okruženju, samo
rešenje problema neće biti mnogo bolje od korisnikove percepcije za taj problem.
5.3.1.1.Grupa Standish
Grupa Standish [3]je 1994 god. ispitala ishode više od 8 000 softverskih projekata u preko 350
kompanija:
Page 9 of 16
SE410-ANALIZA ZAHTEVA ZA SOFTVER 2013
Najteži segment u izgradnji softvera jeste precizno odlučivanje šta da se razvija. Nijedan drugi
deo aktivnosti na konceptualnom nivou nije tako težak kao uspostavljanje detaljnih tehničkih zahteva.
Nijedan drugi deo aktivnosti ne može u tom stepenu učiniti lošim rezultujući sistem, kao loše
formulisani zahtevi. Grupa Standish (1995) je tražila od učesnika istraživanja da objasne uzroke
neuspeha projekata:
U gotovo svim razlozima uključen je i proces definisanja zahteva. Nijedan drugi deo nije toliko
teško naknadno ispravljati. Greške u zahtevima mogu da budu vrlo skupe ako nisu otkrivene i
ispravljene u ranim fazama procesa razvoja. Greške u zahtevima se propagiraju i kulminiraju
prolaskom kod ostale faze razvoja.
5.3.1.2.Boehm i Papaccio
Boehm i Papaccio (1988) izveštavaju da ako tokom procesa definisanja zahteva otkrivanje i
otklanjanje problema u zahtevima košta 1 dolar, odgovarajuća ispravka košta 5 dolara u fazi dizajna,
10 dolara tokom kodiranja, 20 dolara tokom pojedinačnog testiranja, a više od 200 dolara nakon
isporuke sistema.
Proces prikupljanja zahteva i specifikacija zahteva se mogu primeniti na skoro sve vrste
aplikacija u bilo kojoj vrsti razvojnog okruženja. Bez obzira da li se radi o kreiranju korisničkih sistema,
Page 10 of 16
SE410-ANALIZA ZAHTEVA ZA SOFTVER 2013
sistema iz povezanih delova, komercijalnih softvera, open source softvera ili izmena u već postojećem
softveru, neophodno je da se istražuje, razumeju i uvode zahtevi.
Pri opisu procesa neophodno je od samog početka koristititi prikupljanje zahteva. U ovoj fazi
će se pronaći mnogo značajnih stvari koji će biti realizovani u samom procesu, a koji će uticati na
produktivnost i tačnost. Hiljade organizacija već primenjuje ovaj proces u fazama razvoja.
Softverske firme i korisnici se salžu u jednoj stvari, a to je da ako želimo da kreiramo pravi
softverski proizvod, neophodno je da se koriste odgovarajući zahtevi. Da bi se pronašli i kompletirali
zahtevi neophodena je neka vrsta sistematskog procesa.
Slika 4.
Na slici je prikazan jedan takav proces koji je sveobuhvatan i koji prikazuje aktivnosti i njegove
isporuke. Ovde se koristi opis toka podataka na određeni način. Kada se posmatra ovaj dijagram,
treba imati u vidu da se proces ponavlja i razvija. Svaka aktivnost je predstavljena u pravougaoniku i
njegova isporuka (predstavljena dokumentom ili strelicom) je prikazana na slici.
5.4.Pisanje Zahteva
Page 11 of 16
SE410-ANALIZA ZAHTEVA ZA SOFTVER 2013
Na kraju, mora se razmatrati osnovni razlog zbog kogase zapisuju zahtevi. Zato je neophodno
da analitičar dobro razume zahteve, kako bi mogao da ih pravilno ispiše. Ako zahtevi nisu razumljivi, i
usklađeni sa onim što žele naručioci, onda i bilo kakav pokušaj pisanja zahteva predstavljaće ništavne
podatke, koji će biti brzo uočeni kada zahtevi dođu do procene kvaliteta.
Zapisivanjem zahteva se opisuje softverski proizvod sa poslovne tačke gledišta. Obično se taj
opis naziva specifikacija, i taj termin se koristi za bilo koji opis koji je zapisan ili ne. Ova aktivnost se
može smatrati formiranjem specifikacije, gde se zahtevi postupno obrađuju deo po deo.
Na slici je prikazan proces evidentiranja zahteva. Izvršilac tih zadataka je analitičar zahteva ili
analitičar sistema. Analitičar zahteva prvo radi sa naručiocima na izvodenju zahteva: postavlja pitanja,
ispituje aktuelno ponašanje ili demonstrira slične sisteme . Nakon toga zahtevi se evidentiraju u
sklopu modela ili prototipa. Kada se postigne dobro razumevanje zahteva, posao se nastavlja izradom
Aleksandar Miljkovic 1456 Uticaj kvaliteta zahteva na kvalitet softverskog
proizvoda
Page 12 of 16
SE410-ANALIZA ZAHTEVA ZA SOFTVER 2013
specifikacije, u kojoj se odlučuje koji će delovi zahtevanog ponašanja biti implementirani u softveru.
Analitičar zahteva čini most u komunikaciji izmedju svih zainteresovanih strana u projektu .
Tokom validacije, proverava se da li specifikacija odgovara onome što naručilac želi da vidi u
finalnom proizvodu. Aktivnosti analize i validacije mogu da otkriju probleme ili propuste u modelu ili
specifikaciji, što prouzrokuje ponovne posete naručiocu i revidiranje modela i specifikacije.
Slika 6.
Neki od relevantnih IEEE standarda su korišćeni da bi se „pokrila“ sva značajna mesta u toku
životnog ciklusa razvoja proizvoda i da bi se učinilo da preporučena dokumentacija za obezbeživanje
kvaliteta softvera bude što potpunja:
Page 13 of 16
SE410-ANALIZA ZAHTEVA ZA SOFTVER 2013
IEEE 730, Standard za planove obezbeđenja kvaliteta softvera, propisuje minimum od:
Specifikacije zahteve softvera , Opisa projekta softvera , Plana softverske verifikacije i validacije,
Izveštaja o softverskoj verifikaciji i validaciji Korisničke dokumentacije, Plana upravljanja softverskom
konfiguracijom
7.Zaključak
Page 14 of 16
SE410-ANALIZA ZAHTEVA ZA SOFTVER 2013
Studija koju je sprovela Jet Propulsion Laboratory (JPL) [9] pokazuje da cena detekcije i
uklanjanja grešaka raste po stopi od 10 puta kako se softverski proizvod kreće kroz svoj životniciklus
(definisanje zahteva, dizajn, implementacija,testiranje, puštanje u rad). Ova studija je pokazala da je
cena detektovanja i ispravljanja greške u softverskom proizvodu stoji u razmeri 1:10:100:1000 (zahtevi
: dizajn :implementacija/testiranje : eksploatacija).
Iz svega ovoga se vidi koliko detekcija i ispravljanje softverskih grečaka može biti skupa
aktivnost. Ako svemu ovome dodamo rastuće zahteve za kvalitetom i pouzdanošću softvera koje
potrošači postavljaju pred softversku industriju,jasno je da samo implementacija sistema kvaliteta i
obezbeđenje kvaliteta softvera može doneti pozitivne rezultate.
Page 15 of 16
SE410-ANALIZA ZAHTEVA ZA SOFTVER 2013
Literatura
[1] http://elearning.metropolitan.edu.rs
[2] http://sr.wikipedia.org/sr-el/ISO_9000
[3] http://blog.standishgroup.com/
[4] http://www.scribd.com/doc/27709712/42/SCM-plan
[5] http://www.scribd.com/doc/70843779/VaznostFazeDefinisanjaZahtevaPajic
[6] http://www.win.tue.nl/~aserebre/2IS55/2009-2010/2.pdf
[7] http://www.itvestak.org.rs/ziteh_04/radovi/ziteh-07.pdf
[8] http://www.its.edu.rs/cms/mestoZaUploadFajlove/tehnike
%20IStrategijeUnapredjenjaSoftverskogKodaCveticBranko%E2%80%A6.pdf
[9] http://en.wikipedia.org/wiki/Software_requirements_specification
[10] http://www.preduzetnickiservis.rs/sr/sertifikacija-standardizacija-i-standardi/iso-standardi/?
tmpl=print
Page 16 of 16