Professional Documents
Culture Documents
ROBERT VRBI
TRAVNIK, 2012.
SVEUILITE/UNIVERZITET VITEZ U TRAVNIKU
FAKULTET POSLOVNE INFORMATIKE U TRAVNIKU
Mentor
Student
1. UVOD ......................................................................................................................................... 5
2. SOFTVERSKI ZAHTJEV I NJEGOVI ELEMENTI................................................................. 7
2.1. Funkcionalni elementi zahtjeva ......................................................................................................... 7
2.2. Nefunkcionalni elementi zahtjeva ...................................................................................................... 8
2.3. Korisniki zahtjevi (zahtjevi krajnjeg korisnika) ............................................................................... 8
2.4. Sistemski zahtjevi .............................................................................................................................. 9
2.5. Zahtjevi usmjereni ka suelju (interfejsu) sustava ........................................................................... 10
3. INENJERSTVO ZAHTJEVA ................................................................................................ 11
3.1. Studija izvedivosti ............................................................................................................................ 12
3.2. Izluivanje i analiza zahtjeva ........................................................................................................... 15
3.2.1. Intervjuiranje ............................................................................................................................. 17
3.2.2. Radni sastanci ........................................................................................................................... 19
3.2.3. Izrada prototipa (prototyping) ................................................................................................... 20
3.2.4. Storyboarding ............................................................................................................................ 20
3.2.5. Scenariji .................................................................................................................................... 21
3.2.6. Sluajevi koritenja ................................................................................................................... 22
3.2.7. Etnografija u inenjerstvu zahtjeva ........................................................................................... 26
3.3. Validacija zahtjeva ........................................................................................................................... 27
3.4. Upravljanje zahtjevima ili upravljanje promjenama ........................................................................ 28
3.4.1. Planiranje upravljanja zahtjevima ............................................................................................. 29
3.4.2. Upravljanje promjenama zahtjeva............................................................................................. 30
3.5. Dokumentiranje zahtjeva ................................................................................................................. 30
4. RIZICI LOEG PLANIRANJA .............................................................................................. 34
5. ZAKLJUAK ........................................................................................................................... 37
LITERATURA ............................................................................................................................. 39
1. UVOD
5
Iako kontraverzni [16] ti izvjetaji ipak nude pokazatelje koji daju jednu opu sliku stanja
u oblasti razvoja softverskih projekata. Iz tabele je vidljivo da se stanje u ovoj oblasti, generalno
gledajui, popravlja. 1994. godine je vie od polovine projekata (53%) zavravalo potpunim
neuspjehom, a svega 16% je bilo uspjenih projekata (zavrili u planiranom roku, u okviru
planiranog budeta i na zadovoljstvo korisnika). 2009. godine, pak, svega je etvrtina propalih
projekata, skoro treina projekata je u potpunosti uspjeno realizirana (32%) i gotovo polovina
(44%) je projekata koji su privedeni kraju ali uz probijanje planiranih rokova, viestruko vee
trokove od planiranih i smanjen opseg funkcionalnosti softvera. Daleko od idealnog!
Razloga za ovakvo stanje je mnogo, a veina njih je vezana za poetne aktivnosti razvoja
softvera, tj. za proces inenjerstva zahtjeva. Inenjerstvo zahtjeva, kao poetna faza procesa
softverskog inenjerstva, ima kljunu ulogu u definiranju temeljnih pretpostavki razvoja
softverskog sustava. Greke nainjene u ovoj fazi reflektiraju se na cjelokupan proces razvoja i u
pravilu dovode do neeljenih posljedica (izgradnja neadekvatnog proizvoda, probijanje rokova,
ogromni trokovi razvoja koji viestruko premauju planirane, stalne promjene (redizajn),
nezadovoljstvo i frustracija korisnika ) .
U prvom dijelu ovog rada definiran je pojam softverskog zahtjeva i njegovi elementi,
odnosno vrste zahtjeva koje se postavljaju pred budui sustav, a zajedniki ih definiramo kao
softverski Zahtjev.
U drugom, glavnom, dijelu se govori o procesu inenjerstva zahtjeva, detaljno se (koliko
to opseg ovog rada doputa) opisuju aktivnosti koje ine ovu prvu (i najznaajniju) fazu ireg
proces, procesa programskog inenjerstva. Prezentirane su razliite metode i tehnike koje
inenjerima stoje na raspolaganju prilikom provoenja aktivnosti prikupljanja, analize,
specificiranja, validacije, dokumentiranja i upravljanja zahtjevima.
Trei dio rada je posveen mnogobrojnim rizicima koji se javljaju tokom izvoenja
aktivnosti inenjerstava zahtjeva. Navedeni su neki od rizika, kojih trebaju biti svjesni, u manjoj
ili veoj mjeri, svi zainteresirani akteri tako sloenog projekta kakav je projekt razvoja
softverskog proizvoda.
6
2. SOFTVERSKI ZAHTJEV I NJEGOVI ELEMENTI
Pod pojmom softverski zahtjev podrazumijeva se opis usluga (servisa), manje i/ili vie
detaljan, koje sustav treba pruiti, kao i opis definiranih operativnih ogranienja. Softverski
zahtjev reflektira potrebe kupca za sustavom koji e rijeiti neki njegov problem, zbog kojeg se
razvija novi sustav ili modificira postojei.
IEEE standard definira zahtjev kao:
1. Uvjet ili sposobnost koju korisnik treba da bi rijeio problem ili ostvario cilj.
2. Uvjet ili sposobnost koju mora posjedovati sustav ili komponenta sustava da bi
zadovoljila ugovor, standard, specifikacije ili neki drugi ugovoreni element.
3. Dokumentiranu reprezentaciju uvjeta ili mogunosti definiranih pod (1) i (2) [7].
Softverski zahtjev nije jednostavno definirati, naprotiv. Svaki softverski zahtjev ima vie
elemenata, odnosno sainjavaju ga razliite vrste zahtjeva iz razliitih izvora (stakeholders
interesne strane). Najea podjela je na funkcionalne i nefunkcionalne elemente softverskog
zahtjeva. Takoer razlikujemo korisnike elemente zahtjeva, sistemske elemente (zahtjeve), i
elemente softverskog zahtjeva usmjerene ka suelju (interfejsu) sustava.
7
2.2. Nefunkcionalni elementi zahtjeva
Korisniki zahtjevi trebaju pruiti opise zadataka koje krajnji korisnik softverskog
proizvoda mora moi obaviti sluei se njime. Oni trebaju sadravati funkcionalne i
nefunkcionalne elemente zahtjeva na softver i to u takvom obliku da su razumljivi i korisnicima
koji nemaju tehnika znanja. Korisniki zahtjevi trebaju specificirati vanjsko ponaanje
sustava, bez opisivanja detaljnih karakteristika dizajna i naina implementacije softverskog
proizvoda. Korisniki zahtjevi ne trebaju sadravati tehnike specifikacije. U njihovom pisanju
se preporuuje koritenje standardnog, prirodnog naina opisa. Naravno, to sa sobom nosi i
odreene negativnosti koje proistiu iz same prirode takvog pristupa. Naime, koritenjem takvog
8
naina notacije generiraju se odreene nejasnoe, nedovoljno precizni zahtjevi, nepotpuni
zahtjevi, suvie opi (generalni) zahtjevi
Upravo zbog takvih problema potrebno je, kad god je to mogue, uz korisniki zahtjev
navesti i odgovarajue obrazloenje. To e u poetku zahtijevati neto vie vremena, meutim
takav pristup e se isplatiti u kasnijim fazama razvoja softverskog proizvoda. Naime, neprecizno
definirani i nepotpuni zahtjevi, naroito funkcionalni, su glavni razlog neuspjenog razvoja
softvera i/ili probijanja rokova njegovog razvoja. Takoer, dobra je praksa usvojiti i pridravati
se odreenih (standardnih) smjernica tokom evidentiranja korisnikih zahtjeva, npr. uz svaki
korisniki zahtjev navoditi (u standardiziranom obliku) tko je predloio zahtjev (izvor zahtjeva),
razlikovati i drugaije oznaavati obvezne od poeljnih funkcija, naznaiti meusobne ovisnosti
zahtjeva, posebno isticati kljune elemente zahtjeva, izbjegavati previe usko-strunih opisa i
termina
Neki autori (Robertsons, 1999.) istiu potrebu da se svaki korisniki zahtjev evidentira na
posebnoj kartici, koja sadri tono definirana polja: obrazloenje zahtjeva, ovisnosti o drugim
zahtjevima, izvor zahtjeva itd..[1]
9
2.5. Zahtjevi usmjereni ka suelju (interfejsu) sustava
10
3. INENJERSTVO ZAHTJEVA
Studija Izluivanje i
izvedivosti analiza zahtjeva
Specifikacija
Izvjetaj zahtjeva
studije
izvedivosti
Validacija
zahtjeva
Modeli
sustava
Korisniki i
sistemski
zahtjevi
Specifikacija
softverskog
zahtjeva (SRS)
11
Specificiranje SPECIFICIRANJE
sistemskih zahtjeva ZAHTJEVA
Specificiranje
korisnikih zahtjeva
Specificiranje poslovnih
zahtjeva
Otkrivanje
sistemskih Studija
Otkrivanje
zahtjeva izvedivosti
korisnikih
zahtjeva
Izrada
prototipa
IZLUIVANJE
ZAHTJEVA Recenzije VALIDACIJA
(engl. rviews) ZAHTJEVA
Specifikacija softverskog
zahtjeva (SRS)
Za sve nove sustave poetak procesa inenjerstva zahtjeva treba biti provoenje studije
izvedivosti, iji rezultat je izvjetaj koji sadri preporuku o daljnjem razvoju sustava ili
12
odustajanju od projekta, odnosno da li je predloeni sustav isplativ ili ne. Ulazna informacija za
studiju izvedivosti je preliminaran skup poslovnih zahtjeva.
Studija izvedivosti treba biti realizirana kao kratka, fokusirana studija koja za cilj ima
pruanje odgovora na nekoliko bitnih pitanja, na primjer:
- Da li sustav doprinosi ciljevima organizacije u koju se uvodi ?
- Da li se sustav moe izvesti postojeom tehnologijom i predvienim sredstvima ?
- Da li se predloeni sustav moe integrirati s postojeim sustavima organizacije u
koju se uvodi ?
Temeljno pitanje ovdje je doprinosi li sustav ostvarivanju ciljeva organizacije ili ne. Ako
predloeni sustav ne doprinosi osnovnim ciljevima organizacije, dakle nema pozitivan utjecaj na
ostvarivanje poslovnih rezultata, nema ga smisla implementirati. Iako je ovo oigledan i vie
nego logian zakljuak, u praksi se vrlo esto dogaa da organizacije razvijaju upravo takve
sustave, koji ne doprinose ostvarivanju ciljeva organizacije, naprotiv. Razlozi za takve
nerazumne odluke mogu biti posljedica unutar-organizacijskih slabosti i/ili vanjskih (npr.
politikih) utjecaja.
Provedba studije izvedivosti temelji se na odreivanju koje informacije su potrebne za
studiju, prikupljanju tih informacija i pisanju izvjetaja. U provedbi studije izvedivosti
neophodno je konsultirati razliite izvore informacija: strunjake koji imaju iskustva u radu sa
predloenim sustavom, ili slinim sustavima, softverske inenjere koji su upoznati sa tehnikim
karakteristikama i performansama sustava, rukovodioce odjela gdje e sustav biti implementiran
i, naravno, krajnje korisnike. Studija treba biti vie-aspektna. Ne smije biti koncentrirana samo
na tehniko-tehnoloki aspekt izvedivosti, nego treba ukljuiti i analizu operativne izvedivosti,
vremenske i, naravno, analizu ekonomske izvedivosti predloenog rjeenja.
Preporueno trajanje ove aktivnosti ne bi smjelo biti due od 21 dan. U konanom
izvjetaju mogu biti predloene i odgovarajue izmjene do kojih se dolo tokom izvoenja
studije, a odnose se na postavljene ciljeve, planirani budet, dodatne zahtjeve i sl.. Rezultat
studije mora sadravati jasnu i nedvosmislenu preporuku o nastavku ili odbijanju razvoja i
implementacije predloenog sustava.
13
- ORGANIZACIJSKO-OPERATIVNA IZVEDIVOST
o Procjena hitnosti rjeavanja problema
o Procjena prihvatljivosti rjeenja
- VRIJEDI LI RJEAVATI PROBLEM? DA LI PREDLOENO RJEENJE
RJEAVA PROBLEM?
o Performanse protonost i odziv sustava
OPERATIVNA
IZVEDIVOST
o Izobrazba
- Troak primjene sustava
o Relativan iznos, ovisan o upotrebi
o Reije (struja, telefon, )
o Odravanje
o Obnova licenci
- Analiza i usporedba ukupnih trokova-koristi (cost-benefit analysis)
o Trokovi i korist - analiza mjerljivih (cijena opreme, iznos plaa,
prihod) i nemjerljivih faktora(reference, zadovoljstvo korisnika)
Tabela 2: Dimenzije studije izvedivosti
14
3.2. Izluivanje i analiza zahtjeva
15
Klasificiranje i Odreivanje
organiziranje prioriteta i
zahtjeva pregovaranje
16
U procesu otkrivanja i analize zahtjeva koristi se nekoliko tehnika, koje se meusobno ne
iskljuuju. Njihovim paljivim i usmjerenim kombiniranjem mogue je razotkriti veinu
zahtjeva. Najee koritene tehnike su:
- Intervjui (engl interviews),
- Upitnici i ankete
- Radni sastanci, sjednice, radionice (engl. workshops),
- Storyboarding
- Scenariji
- Obrasci upotrebe (engl. use cases)
- Dijagrami interekcije
- Prototipiranje (engl. prototyping)
U nastavku e biti opisane neke, od gore navedenih tehnika, one koje su najee
koritene u procesu izluivanja i analize zahtjeva.
3.2.1. Intervjuiranje
Intervju je jednostavna tehnika, direktna i interaktivna, koja moe imati formalni ili
neformalni karakter. Intervju sa zainteresiranim stranama (stejkholderima) je dio veine procesa
inenjerstva zahtjeva, preciznije, procesa prikupljanja i otkrivanja zahtjeva. Tim zaduen za
inenjerstvo zahtjeva paljivo priprema pitanja o postojeem sustavu, ali i o novom sustavu koji
se razvija. Iz odgovora stejkholdera na ova pitanja izvode se odgovarajui zahtjevi.
Dva su osnovna tipa intervjua:
- Zatvoreni zainteresiranim stranama se predoava skupina unaprijed definiranih
pitanja i
- Otvoreni intervju ne postoje unaprijed pripremljena pitanja, ve tim zaduen za
inenjerstvo zahtjeva otvara niz pitanja o kojima se raspravlja sa zainteresiranim
stranama s ciljem ostvarivanja boljeg razumijevanja njihovih potreba i, naravno,
otkrivanja i definiranja zahtjeva.
U praksi se intervjui sa zainteresiranim stranama organiziraju i odvijaju po obrascu koji
bi se mogao definirati kao mjeavina dva prethodno navedena oblika intervjuiranja. Naime,
odgovori na odreena (pripremljena) pitanja, mogu otvoriti neka nova (ne planirana) pitanja koja
se, potom, raspravljaju na manje strukturiran nain. Potpuno otvorena, ne strukturirana diskusija
17
tokom intervjuiranja nije dobro rjeenje, stoga se za intervju definira neki okvirni set pitanja koji
e osigurati da se tokom intervjua ne izgubi fokus.
Intervjui se mogu organizirati kao individualni i kao grupni. Individualni intervjui se
provode sa jednim osobom ili sa manjim brojem osoba koji rade isti posao. Grupni intervju
podrazumijeva intervjuiranje vie osoba iz razliitih podruja.
Intervju je dobra tehnika za dobivanje generalne, uopene slike o aktivnostima
stejkholdera, slike o njihovom poslu, koji predstavlja podruje od interesa budueg sustava.
Intervju moe pruiti jasnu predodbu o tome kako razliite zainteresirane strane vide budui
sustav, to im nedostaje kod postojeeg sustava, to stvara najvee potekoe i to oekuju od
novog sustava.
Intervju nije idealna tehnika za otkrivanje i analizu zahtjeva, naprotiv. Intervju ima niz
nedostataka, ne rijetko se dogaa da sugovornici ne govore istim jezikom. Softverski inenjeri
koriste informatiki argon koji krajnjim korisnicima nije uvijek jasan. Korisnici, s druge strane,
nisu dovoljno precizni niti su u stanju artikulirati svoje zahtjeve na adekvatan nain. Potekoe
se javljaju i u razgovorima sa ekspertima, koji, u pravilu, ne mogu shvatiti kako nekome tako
jednostavne stvari nisu jasne.
Informacije dobivene intervjuiranjem nisu same za sebe dovoljne, potrebno ih je dopuniti
informacijama prikupljenim koritenjem drugih tehnika kako bi se jasno mogli definirati
zahtjevi.
Neke preporuke za pripremanje i voenje intervjua:
- Intervju treba biti dobro pripremljen i osmiljen, s jasno definiranim ciljem.
- Pripremiti kvalitetna pitanja koja e ponuditi to jasnije odgovore, odnosno
osigurati utvrivanje informacija koje se ele saznati.
- Prouiti prethodne nalaze i raspoloivu dokumentaciju prije intervjua.
- Nita nije razumljivo i samo po sebi svima jasno.
- Ne pretpostavljati.
- Izbjegavati sugestivna pitanja.
- Ne nametati zakljuke.
- Iskrenost i nepristranost (cilj je osigurati korisniku najkvalitenije rjeenje, a ne
gurati odreena programska rjeenja).
- Provjeriti odgovore razliitih sugovornika na ista pitanja.
18
- Analizirati injenice koje se ne poklapaju.
- Razluiti injenice od miljenja ili stavova.
- Izbjegavati grupno intervjuiranje (iznimno provesti u situacijama kada se eli
utvrditi odreeni zajedniki interes ili razrijeiti neka konfliktna situacija ili
proturjeje).
- Samostalno voditi zapisnik (tko ne razumije, ne moe biljeiti).
- Zapisnik intervjua mora sadravati ono to je reeno i slijediti tok razgovora.
- Zapisnik se alje sugovorniku/sugovornicima na uvid i potvrdu vjerodostojnosti.
- Intervju ne bi trebao trajati due od 2 sata.
- Na poetku intervjua predstaviti sve sudionike i upoznati ih sa svrhom razgovora.
- Intervju zavriti 5-10 min. prije isteka planiranog vremena.
- Provjeriti postoji li neto to je sugovornik htio rei, a nije bilo pitano.
- Dogovoriti eventualni nastavak intervjua (intervju je otvorio neka nova pitanja).
- Zahvaliti sugovorniku/sugovonicima [3].
19
- Sjednice bi trebale trajati vie dana, meutim to je u praksi vrlo teko ostvariti
zbog obaveza sudionika.
Uz radionice je usko vezana tehnika brainstorming, koja sudionike potie na aktivno i
kreativno sudjelovanje. Primjenjuje se tako da se od svakog sudionika zatrai da definira, po
njemu, idealno rjeenje konkretnog problema. Svaki sudionik iznosi sve to mu padne na
pamet u vezi s problemom koji se rjeava, ime se dopunjuju ve ponuena rjeenja ili
generiraju nova. Na kraju brainstorming sesije odabire se najbolje rjeenje. Ova tehnika je
uinkovita u sluajevima kada su sudionici dobri poznavatelji problemskog podruja.
Prototip kao koncept budueg sustava dugo je vremena smatran zdravim pristupom za
dobro definiranje zahtjeva. Prototip prua korisniku stvarnu sliku onoga to bi softversko
rjeenje trebalo predstavljati. Prototip doprinosi pozitivnom stavu korisnika prema buduem
softverskom proizvodu jer mu pomae da shvati mogunosti ponuenog rjeenja. Meutim, taj
korisnikov entuzijazam moe predstavlja i problem, jer se panja posveuje mnogim nebitnim
detaljima na unosnim formama (smjetaj i veliina polja i dugmadi, boja slova i pozadine i sl.).
O samoj funkcionalnosti gotovo da se i ne razmilja. Problem je i to korisnik prototip smatra
skoro gotovim proizvodom te ne razumije zato treba jo tako puno vremena da se to isto
rjeenje zavri i stavi u upotrebu. Zbog toga, a i zbog lanog osjeaja sigurnosti proizalog iz
zadovoljstva korisnika, programeri na vrat na nos iz prototipa izrauju gotov softverski
proizvod. Preporuka je da se prototip ne koristi u analizi i prikupljanju zahtjeva.
Kao model rane verzije sustava daje teite na korisniko suelje, ne rijetko
zanemarujui sve to se dogaa unutar sustava. Upravo zbog toga treba biti paljiv u koritenju
prototipa kao tehnike za izluivanje i analizu zahtjeva. Tehnika prototipiranja se koristi kada
korisnik ne moe tono definirati svoje informacijske potrebe prije nego to se izgradi sustav.
Izrada prototipa pogodna je u onim okruenjima gdje je teko definirati konkretni model sustava
te u okruenjima gdje se informacijske potrebe korisnika mijenjaju ili razvijaju.
3.2.4. Storyboarding
Svrha storyboard tehnike je stei ranu reakciju korisnika na predloeni koncept. Ova
tehnika je uinkovita u razrjeavanju "Da, ali " sindroma. Storyboarding je iznimno jeftina
20
tehnika koja se koristi za izluivanje i analizu zahtjeva, informativna je, zanimljiva je, ne
zahtjevna, lagano se kreira i modificira. Moe biti realizirana kao:
- Pasivna tehnika korisniku (stejkholderu) se opisuje problemsko podruje kroz
niz skica, slika, ekranskih isjeaka (engl. screen shoots), primjera aplikacijakih
izlaza i sl. i to sve uz objanjenja tipa kada uradite to dogodit e se ovo;
- Aktivna tehnika podrazumijeva da se izradi i predstavi operativni scenarij,
prezentacija koja e sadravati opis i ponaanje sustava u tipinom, korisnikom
okruju;
- Interaktivna tehnika izraditi takvu prezentaciju koja e korisniku omoguiti da
upozna sustav, na realan i praktian nain. Zahtijeva aktivno sudjelovanje
korisnika.
Cilj storyboarding tehnike nije samo prianje prie o predloenom rjeenju, ve se, uz
predstavljanje rjeenja, nastoje otkriti i mnogi skriveni zahtjevi.
3.2.5. Scenariji
Scenariji su esto koritena tehnika izluivanja zahtjeva, jer je ljudima znatno lake
razumjeti, vizualizirati i, naposljetku, prihvatiti odreena objanjenja koja su realizirana kroz
opise iz stvarnog ivota, nego one opise koji su i suvie apstraktni. Scenariji su upravo takva
tehnika koja se bazira na realnim primjerima naina koritenja i funkcioniranja sustava. Tokom
prezentiranja scenarija se diskutira i kritizira ponueni scenarij, to omoguava otkrivanje i
formuliranje zahtjeva. Ova tehnika definiranja i formuliranja zahtjeva je integralni dio agilnih
metoda (poput eksteremnog programiranja).
Svaki scenarij treba biti realiziran kao opis neke konkretne interakcije korisnika sa
sustavom i trebao bi sadravati:
- Opis poetne situacije;
- Opis normalnog (standardnog) toka dogaaja;
- Opis svega to moe poi po zlu i naina oporavka;
- Informacije o paralelnim aktivnostima;
- Opis stanja sustava u trenutku kada konkretni scenarij zavrava.
Primjer scenarija fakultetskog knjininog sustava koji omoguuje naruivanje knjiga i
dokumenata iz drugih knjinica (sustav LIBSYS, opisan u [1]):
21
Poetno stanje:
Korisnik je pristupio (logirao se) u sustav i locirao asopis u kojem se nalazi eljeni lanak.
Normalan rad:
a) Korisnik nije ispravno popunio formular o pravima na kopiranje. U tom sluaju formular
se mora ponovo dati korisniku na ispravak. Ako je ponovljeni formular krivo ispunjen,
zahtjev korisnika se odbacuje.
b) Sustav moe odbaciti i nain plaanja. Korisnikov zahtjev se odbacuje.
c) Prijenos lanka na korisnikovo raunalo nije ispravno izveden. Treba ponavljati dok
prijenos ne bude uspjean ili dok korisnik ne prekine transakciju.
d) lanak nije mogue ispisati. Ako lanak nije tipa samo za ispis dri ga se u radnom
prostoru sustava, u suprotnom lanak se brie i korisnika se kreditira u visini cijene
lanka.
Paralelne aktivnosti:
Zavrno stanje:
Korisnik je i dalje u sustavu. Skinuti lanak je obrisan ako je oznaen atributom samo za
ispis.
Sluajevi koritenja ili obrasci upotrebe (engl. use cases) je tehnika izluivanja zahtjeva
bazirana na scenarijima. Svoje porijeklo ima u objektno- orijentiranom (OO) pristupu razvoja.
Radi se o naizgled jednostavnoj tehnici koja prikazuje meusobnu povezanost sustava i okoline
opisujui to ulazi u sustav i to iz sustava izlazi. Sluaj koritenja je relativno jednostavne
22
strukture, ali vrlo je zahtjevno ispravno ga napraviti. Sluaj koritenja je jedan od dijagrama
objektno orijentirane metode za modeliranje - UML (Unified Modeling Language). Sluaj
koritenja se crta prije svih ostalih dijagrama i osnova je za ostale dijagrame. Sluajevi koritenja
i dijagrami sluajeva koritenja su dokumenti koji trebaju biti razumljivi korisniku, osmiljeni su
i napisani jezikom korisnika, izbjegavajui strune (informatike) izraze i detalje vezane za
implementaciju. Sluaj koritenja je pogodan za otkrivanje zahtjeva, ali i za kompletan ciklus
razvoja softverskog proizvoda.
Sluaj koritenja (use case) je skup scenarija povezanih jednim ciljem korisnika. U
terminologiji sluajeva koritenja korisnici predstavljaju sudionike ili aktore (engl. actors).
Sudionik je uloga korisnika u odnosu na sustav. U svakom sluaju koritenja postoji glavni
(engl. primary) sudionik koji je najee i inicijator (pokreta) sluaja koritenja. Sudionici su
vanjski dijelovi sustava te su njihove odgovornosti takoer van sustava. Dobro bi bilo svakog
sudionika tretirati kao pretpostavku. Sudionik e vjerojatno biti analiziran i kada analitiar
pone izgraivati objektni model. Sudionici e imati utjecaj na izradu klasa, najee sudionici i
postaju klase podataka, stoga je vano od poetka prepoznati i selektirati sudionike sluaja
koritenja.
Sluaj koritenja se dokumentira sa tekstualnim dokumentom i odgovarajuim
dijagramom sluaja koritenja.
Dijagram sluaja koritenja ima svoje simbole i pravila konstruiranja. Dijagram sluaja
koritenja je prikaz veze izmeu dva sluaja koritenja ili izmeu sluaja koritenja i sudionika.
Sudionicima se na dijagramima sluajeva koritenja dodjeljuju odgovarajua imena, pri emu je
vrlo vano pravilno odabrati ta imena. Aktori su na dijagramima predstavljeni sljedeim
simbolom
Sudionik
Izdavanje rauna
23
Sudionici s sluajevima koritenja u kojima sudjeluju komuniciraju putem niza poruka.
Niz poruka izmeu sudionika i SK se ne prikazuje na dijagramima sluaja koritenja, ali se
moe prikazati na drugim UML - dijagramima poput sekvencijskog ili komunikacijskog
dijagrama. U UC dijagramima postoji nekoliko vrsta veza koje se mogu ostvariti izmeu
sudionika (aktora) i sluajeva koritenja. Pregled i kratki opis svih vrsta veza prikazan je u
sljedeoj tablici:
24
Slika 4: Primjer dijagrama sluaja koritenja za rezerviranje smjetaja
U obrascu (tekstualnom opisu) sluaja koritenja se, izmeu ostalog, opisuje scenarij tj. tok
dogaaja (koraka) od kojih se sastoji konkretni sluaj koritenja. Opis svakog koraka mora biti
jednostavan i mora jasno pokazivati tko je zaduen za njegovo izvravanje.
Obrazac sluaja koritenja moe imati sljedeu formu:
Autor:
Datum
Naziv sluaja koritenja:
Sudionik:
Opis:
Normalni tok:
Alternativni tok:
Pretpostavke:
Tabela 4: Elementi obrasca sluaja koritenja
25
- svaki dio obrasca treba imati jednak znaaj (svi dijelovi trebaju biti jednako
vani);
- koristiti minimum odlomaka za definiranje posla. Iako analitiar ima potrebu to
vie
- toga napisati, stalno treba imati na umu da korisnik preferira obrasce koje moe
brzo pregledati;
- za svaki sluaj koritenja e vjerojatno trebati jedna ili vie stranica teksta. Na
obrascu treba ostaviti dovoljno prostora za upis.
Da bi osigurali kvalitetu prikupljenih i analiziranih zahtjeva strunjaci iz ove oblasti
predlau iterativni pristup izrade sluajeva koritenja, pri emu istiu najmanje sljedee tri
iteracije:
1. Izgradnja - kao skup sluajeva koritenja opisanih na visokom nivou,
2. Punjenje - proirenje i produbljenje na vie detaljnijih sluajeva koritenja,
3. Fokusiranje - usredotoenje i ogranienje na ono to je cilj aplikacije.
UC kao tehnika procesa otkrivanja i analize zahtjeva ima niz prednosti u odnosu na druge
tehnike:
- poboljava komunikaciju,
- zbog tekstualnog opisa i dijagrama razumljivija je svim stejkholderima,
- pomae u identificiranju granica sustava,
- pomae u izbjegavanju preranog dizajna sustava,
- fokus je na onome TO sustav treba raditi, a ne KAKO,
- ne koriste specifian jezik,
- omoguavaju relativno lako praenje korisnikih zahtjeva tokom ivotnog ciklusa
sustava.
Softverski sustavi nisu izolirani, oni su dio ireg socijalnog i organizacijskog okvira, koji
utjee i na mnoge zahtjeve prema sustavu i definira njegove granice, a (ne)ispunjenje tih zahtjeva
je esto kljuno za uspjeh i prihvaanje sustava. Jedan od razloga zbog kojih se mnogi
isporueni softverski sustavi nikada nisu koristili je upravo nedovoljno poznavanje i vrednovanje
takvih zahtjeva [1][2].
26
Etnografija je opisni (deskriptivni) dio etnologije, znanost koja opisuje i prouava
materijalnu, drutvenu i duhovnu kulturu (ivot, obiaje, vjerovanja i dr.). Etnografija se odnosi
na kvalitativni opis pojava ljudskog drutva utemeljen na terenskom radu. Etnografija je metoda
holistikog istraivanja zasnovana na ideji da se svojstva sustava ne mogu nuno razumjeti na
pouzdan nain neovisno jedna o drugima. [9]
Etnografija se, dakle, u RE procesu moe koristiti kao opservacijska tehnika, tehnika
promatranja kako ljudi stvarno rade. Etnografske studije pokazuju da je rad obino dinaminiji i
kompleksniji nego to to sugeriraju (jednostavni) modeli sustava.
Etnografija se koristi za otkrivanje dva tipa zahtjeva:
- Zahtjeva koji proizlaze iz naina na koji ljudi stvarno rade, a ne kako proces
definira da bi ljudi trebali raditi i
- Zahtjeva koji proizlaze iz suradnje i drugih ljudskih aktivnosti.
Ova tehnika omoguava otkrivanje nekih kritinih, specifinih detalja u nainu
obavljanja poslovnih procesa, koji esto promaknu u procesu prikupljanja i analize zahtjeva
drugim tehnikama.
Etnografija je prvenstveno fokusirana na zahtjeve krajnjeg korisnika i kao takva ne moe
se smatrati cjelovitom metodom ili tehnikom za otkrivanje zahtjeva. Uobiajeno je kombiniranje
rezultata etnografskih studija sa tehnikama prototipa i/ili sluajevima koritenja.
Validacija zahtjeva je faza procesa inenjerstva zahtjeva koja za cilj ima utvrditi da
prikupljeni (i otkriveni) zahtjevi zaista definiraju sustav kakav naruitelj eli.
Validacija zahtjeva podrazumijeva provjeru:
- valjanosti zahtjeva,
- konzistencija zahtjeva ,
- kompletnost zahtjeva,
- realnost zahtjeva,
- provjerljivost zahtjeva,
- razumljivost zahtjeva,
- adaptabilnost.
Osnovne tehnike validacije zahtjeva su:
27
- recenzija zahtjeva - sistematska analiza zahtjeva od strane strunog tima,
- izrada prototipa - provjera zahtjeva na izvedenom sustavu koji se demonstrira
krajnjim korisnicima i naruiteljima,
- generiranje ispitnih sluaja - razvoj ispitnih sekvenci za provjeru zahtjeva.
Validacija je vrlo bitan proces jer naknadno ispravljanje pogreaka u zahtjevima generira
viestruko vee trokove od ispravljanja pogreaka tokom poetnih faza razvoja.
Poetno Promijenjeno
razumijevanje razumijevanje
problema problema
Promijenjeni
Poetni zahtjevi zahtjevi
Vrijeme
28
Zahtjeve, obzirom na njihovu evoluciju tokom vremena, moemo svrstati u dvije
kategorije:
- trajni zahtjevi relativno su stabilni jer proistiu iz potreba poslovne aktivnosti
organizacije, npr. u knjinici e uvijek postojati zahtjevi za evidentiranjem knjiga,
lanova i izdavanja;
- nestalni (hlapivi) zahtjevi postoji velika mogunost da e se takvi zahtjevi
mijenjati ve u fazi razvoja ili nakon to se sustav implementira u korisniko
okruenje, npr. zahtjevi vezani za obraun kamata.
Upravljanje zahtjevima je, u stvari, proces razumijevanja i kontroliranja promjena koje se
odnose na zahtjeve prema sustavu, a prisutne su konstantno. Promjene se ne mogu zaustaviti, ali
se moe pripremiti za njih na nain da se njima moe to efikasnije upravljati kada se one pojave.
Promjena je prirodni faktor svakog procesa i ona e zasigurno nastati, stoga je neophodno
osigurati odreeni plan, odnosno proces upravljanja promjenama.
Planiranje je bitan, prvi korak, procesa upravljanja zahtjevima. Sam proces upravljanja
zahtjevima je vrlo skup. Za svaki projekt u fazi planiranja se utvruje odgovarajua razina
upravljanja promjenama. U procesu upravljanja zahtjevima treba uoiti sljedee aktivnosti:
- Identifikacija zahtjeva svaki zahtjev mora biti na jedinstven nain odreen
(identificiran);
- Proces upravljanja promjenama (u uem smislu) skup aktivnosti kojima se
procjenjuje utjecaj, znaaj i troak promjene;
- Izbor odgovarajueg CASE alata za potporu aktivnostima upravljanja zahtjevima.
S obzirom na koliinu podataka, brojnost veza i njihovu kompleksnost
neophodno je koristiti neki od alata koji e taj posao uiniti efikasnijim;
- Slijednost (engl. traceability, praenje traga) - definiraju se veze izmeu
zahtjeva, veze izmeu zahtjeva i stejkholdera i veze izmeu zahtjeva i pojedinih
modula. Ove veze se moraju sustavno zapisivati i odravati. Najee se za to
koriste odgovarajue matrice, poput one na narednoj stranici:
29
ID 1.1 1.2 1.3 2.1 2.2 2.3
1.1 D R R
1.2 R
1.3 R D
2.1 R D D
2.2
2.3 R R D
Tabela 5: Traceability matrica (D postoji ovisnost, R postoji slabija veza)
30
koji opisuje to razvijai sustava ili developeri ( od engl. developers) trebaju implementirati.
Svrha ovog dokumenta je komunikacija rezultata faze inernjerstva zahtjeva svim
zainteresiranim stranama (stejkholderima). U pravilu ukljuuje:
- opise korisnikih zahtjeva na sustav i
- detaljne specifikacije zahtjeva.
U sluajevima kada postoji veliki broj zahtjeva, detaljne specifikacije zahtjeva se mogu
prezentirati u zasebnom dokumentu.
Informacije koje sadri SRS su namijenjene razliitim kategorijama stejkholdera, poevi
od naruitelja, krajnjih korisnika, sistemskih inenjera, do inenjera koji su zadueni za razvoj i
implementiranje sustava. Upravo zbog te raznovrsnosti potencijalnih korisnika (itaa) SRS
treba biti realiziran (kao kompromis razliitih pristupa) tako da prui potrebne i adekvatne opise
zahtjeva naruiteljima i korisnicima, dodatno definira detalje zahtjeva za razvojne inenjere i
testere i da ukljui informacije o moguoj evoluciji sustava u budunosti. Te informacije o
moguim i/ili oekivanim promjenama mogu biti vrlo znaajne za sistemske dizajnere u smislu
planiranja fleksibilnog dizajna sustava, odnosno izbjegavanja restriktivnih dizajnerskih odluka i
rjeenja.
SRS
- Menaderi (rukovodioci)
Korisniki - Krajnji korisnici
zahtjevi - Inenjeri (u organizaciji)
- Sistemski dizajneri
- Krajnji korisnici
Korisniki - Inenjeri (u organizaciji)
zahtjevi - Sistemski dizajneri
- Razvojni inenjeri (developeri)
Mnogi veliki organizacijski sustavi, poput amerikog Ministarstva obrane ili IEEE, imaju
definirane vlastite standarde za izradu dokumenta softverskog zahtjeva. Najire je rasprostranjen
upravo standard IEEE/ANSI 830 1998., koji propisuje okvirnu, generalnu, strukturu
31
specifikacije softverskog zahtjeva. Osnovna poglavlja Specifikacije prema navedenom standardu
su:
UVOD
Sadri:
Opis svrhe dokumenta i kome je dokument namijenjen
Okvir ili opseg programskog proizvoda (prijedlog opeg imena programskog
proizvoda , kratki opis osnovne funkcije programskog proizvoda, opis mogue
primjene programskog proizvoda, opis koristi od primjene, osnovnih zadaa i
ciljeva primjene
Opis definicija, akronima i kratica
Reference
Opis strukture dokumenta (kratki pregled sadraja poglavlja dokumenta
OPI OPIS SUSTAVA
Sadri:
Opis programskog proizvoda iz perspektive njegova djelovanja i njegove
interakcije s drugim proizvodima. Trebaju se identificirati svi uvjeta rada sa
sustavom: korisniko suelje, hardversko suelje, softversko suelje,
komunikacijsko suelje, memorijski zahtjevi, naini i uvjeti izvoenja
Kratki opis svih funkcija koje programski sustav treba izvoditi
Opis nunih karakteristika korisnika za rukovanje sustavom
Opis ogranienja u razvoju softverskog proizvoda, npr. razne regulative,
ogranienja hardvera, suelja prema drugim funkcijama, mogunost
paralelnog rada, funkcije i kontrole, pouzdanost, sigurnost, i druga mogua
ogranienja
Opis pretpostavki i zavisnosti izvoenja softverskog proizvoda o drugim
elementima s kojima je u interakciji. Za razliku od ogranienja na dizajn ovdje
se navode mogua ogranienja na izvoenje programskog proizvoda (npr.
odreena platforma)
Lista moguih zahtjeva u buduim revizijama
SPECIFIKACIJA ZAHTJEVA SUSTAVA
Ovo je glavni i najznaajniji dio Specifikacije, ujedno i najdue poglavlje u
dokumentu. U realizaciji ovog poglavlja treba biti posebno paljiv, svi zahtjevi
moraju biti dobro specificirani, meusobno referencirani (gdje je potrebno) i
organizirani.
Sadri:
Detaljne specifikacije svih zahtjeva (funkcionalnih i nefunkcionalnih).
DODATCI
INDEKS
32
Ovaj predloeni okvir (engl. framework) je i suvie openit i moe se prekrajati tako da
odgovara potrebama konkretne organizacije.
33
4. RIZICI LOEG PLANIRANJA I IZVOENJA PROCESA
INENJERSTVA ZAHTJEVA
Gotovo je nemogue kreirati softverski proizvod koji udovoljava svim zahtjevima svih
zainteresiranih strana, i to iz prve. To je vrlo teko postii i nakon pete ili este revizije
programskog proizvoda. Razloga za to je mnogo, a jedan od najznaajnijih je taj to se okruenje
u kojem ivimo i radimo stalno mijenja, tako da je nemogue sagledati sve aspekte (zahtjeve)
nekog problemskog podruja. Novi zahtjevi se pojavljuju tokom samog razvoja softvera,
mijenjaju se kako interni tako i eksterni faktori koji utjeu na definiranje zahtjeva na sustav.
Mijenjaju se propisi, mijenja se trite, organizacijska politika, stejkholderi u procesu definiranja
zahtjeva otkrivaju nove (dodatne) zahtjeve, novi zahtjevi se pojavljuju i kao rezultat boljeg
upoznavanja sa problemskim podrujem, primjenom programa se takoer otkrivaju novi zahtjevi
ili definiraju prijedlozi za promjenama zahtjeva Dakle, nuno je biti svjestan injenice da
proizvod koji se izrauje nije idealno rjeenje, da e se sigurno mijenjati, unaprjeivati,
prilagoavati i poboljavati kako bi zadovoljio (nove i narasle) zahtjeve. Zato je to nuno?
Nuno je iz nekoliko razloga. Svijest o potrebi prilagoavanja i mijenjanja zahtjeva namee
projektantima zadau da razvijaju softver ija e arhitektura omoguiti provoenje promjena i
definiranje novih zahtjeva bez potrebe za sutinskim re-dizajnom softverskog proizvoda. Dobro
je biti svjestan promjenljivosti (nekih) zahtjeva jer to vodi ozbiljnijem pristupu samom procesu
izluivanja i analize zahtjeva, definiranju vrstih zahtjeva i onih manje vrstih za koje se oekuje
da e se mijenjati (koje treba posebno evidentirati).
Samo upoznavanje moguih rizika vodi do smanjivanja njihovih efekata. Spoznaje o
rizicima omoguavaju da ih se svede na minimum, ako ih ve nije mogue u potpunosti izbjei.
U kontekstu RE procesa to znai da je potrebno tako planirati i voditi aktivnosti inenjerstva
zahtjeva kako bi se u poetku to bolje definirali zahtjevi na sustav (kako funkcionalni tako i
nefunkcionalni) i da se uspostavi takav sustav upravljanja zahtjevima, koji e osigurati efikasnu
kontrolu i provoenje promjena, koje su, kako je ve ranije istaknuto, neizbjene. Koji su to,
onda, najei rizici koje treba poznavati (i pokuati izbjei ili minimizirati njihove uinke) a
vezani su za RE proces?
Jedan od najeih je nedovoljna i neadekvatna ukljuenost zainteresiranih strana . Bez
adekvatnog identificiranja i ukljuivanja stejkholdera nije mogue uspjeno definirati zahtjeve.
34
Nedovoljna ukljuenost, naroito kljunih, stejkholdera u konanici vodi razvoju neprihvatljivog
proizvoda, probijanju utvrenih rokova, estim promjenama, viestrukom poveanju trokova. i,
najee, odustajanju od daljnjeg razvoja, to predstavlja najgori scenarij i za naruitelja i za
izvoaa.
Drugi est rizik je neprecizno i nejasno definiranje vizije projekta, odnosno onoga to
sustav treba i mora pruati, a to ne treba. Greke u definiranju granica sustava vode lutanju,
gubljenju fokusa, bavljenju marginalnim aspektima problema i sl..
Nejasni, dvosmisleni i, ne rijetko, udni zahtjevi su takoer, na alost, esti pratioci RE
procesa. Korisnici nisu (uvijek) sposobni na pravi nain artikulirati i prezentirati ono to ele i
to oekuju od sustava. U procesu otkrivanja i definiranja zahtjeva treba pomoi korisnicima
da se doe do jasno i precizno definiranih zahtjeva.
(Ne)definiranje kljunih, prioritetnih zahtjeva neminovno vodi neuspjehu projekta,
produenju rokova i, u konanici, frustraciji i nezadovoljstvu korisnika.
Zanemarivanje potreba (zahtjeva) odreenih, naroito kljunih, korisnika (stejkholdera)
je neto to moe stvoriti opoziciju projektu, a to moe imati samo negativne posljedice.
(Ne)provjeravanje zahtjeva je takoer jedan od eih rizinih faktora. Sustavno
provjeravanje (inspekcija) zahtjeva, i to u to je mogue ranijoj fazi, je najefikasniji nain
identificiranja nejasnoa, nedovoljno utvrenih pretpostavki, konfliktnih zahtjeva i drugih
nedostataka,. Otkrivanje i otklanjanje (ako je to uope vie mogue) nedostataka kada je softver
ve instaliran u korisniko okruenje uzrokuje viestruko vee trokove.
Nedovoljno precizno i nepotpuno definiranje veza izmeu zahtjeva vodi neminovno
problemima u odravanju softvera. Promjene pojedinih zahtjeva se vrlo esto reflektiraju na
druge zahtjeve programskog proizvoda .
(Ne)definiranje vitalnih nefunkcionalnih zahtjeva takoer ima bitnu ulogu u realizaciji i
samom prihvaanju softverskog proizvoda .
(Ne)realno postavljeni rokovi takoer mogu biti veliki problem. Nerijetko se dogaa da
je naruitelj, obzirom na hitnost nekog posla, postavio uvjet da se projekt realizira za svega par
nedjelja. Naravno, prihvaanje takvih uvjeta, bez upoznavanja sa zadatkom i raspoloivim
resursima, vodi u probijanje nerealno postavljenog roka i/ili u realizaciju projekta, ijom
kvalitetom i mogunostima nije zadovoljan niti naruilac, niti sam izvoa.
35
Komunikacijski problemi se javljaju kada se ne uspostavi zajedniki jezik izmeu
naruioca i izvoaa. Inenjeri esto ne razumiju u potpunosti strunu terminologiju
problemskog podruja, a korisnici, s druge strane, nemaju dostatno tehniko znanje da bi
razumjeli jezik sistemskih dizajnera i inenjera. Vrlo je bitno, dakle, da se uspostavi zajedniki
jezik koji e pomoi da se izbjegne komunikacijski jaz i mogui nesporazumi, a sve s ciljem to
jasnijeg i preciznijeg definiranja zahtjeva na sustav.
Ovdje su navedeni samo neki od rizika ili problema koji se mogu javiti u procesu
inenjerstva zahtjeva, a kojih trebaju biti svjesne, ili barem trebaju biti upoznate s njima, sve
zainteresirane strane od kojih ovisi (ne)uspjeh projekta razvoja softverskog proizvoda.
Otklanjanje ili minimiziranje ovih i mnogih drugih rizika koji se mogu javiti tokom ove poetne
faze procesa izgradnje softverskog sustava direktno utjee na uspjeh cjelokupnog projekta, jer se
u fazi inenjerstva zahtjeva postavljaju temelji razvoja softvera.
36
5. ZAKLJUAK
Sve bri razvoj informacijskih tehnologija i sve ira primjena IT rjeenja nije, na alost,
utjecao u pozitivnom smislu na statistiku kojom se prikazuje uspjenost projekata razvoja
softverskih rjeenja.
Meu najslabijim, najkritinijim tokama razvojnog ciklusa i dalje vodee mjesto
zauzimaju propusti i greke koje se naprave u ranim fazama razvoja softverskog proizvoda.
Propusti u definiranju zahtjeva, koji su najee nepotpuni, kontradiktorni i dvosmisleni, uzrok
su problema u razvoju koji se oituju kroz probijanje planiranih rokova, viestruko poveanje
trokova i, ne rijetko, odustajanje (prekid) razvoja.
U tom smislu, inenjerstvo zahtjeva (RE), kao poetna faza softverskog inenjerstva, ima
poseban znaaj. RE aktivnosti imaju kljunu ulogu za rezultat cjelokupnog procesa razvoja, jer je
bez jasno definiranih zahtjeva nemogue razviti programski proizvod koji e zadovoljiti svojim
mogunostima i performansama sve zainteresirane strane. Ma kako dobro planirali i vodili
preostale aktivnosti programskog inenjerstva, ukoliko zahtjevi nisu dobro prikupljeni, projekat
se moe smatrati promaenim.
Krajnji cilj RE procesa je da usmjeri razvoj u smjeru koji e rezultirati dobrim,
kvalitetnim i prihvatljivim softverskim rjeenjem. Nemogue je dobiti dobar konaan proizvod
bez kvalitetno provedenih aktivnosti procesa inenjerstva zahtjeva, odnosno bez dobro
definiranih zahtjeva na sustav.
to znai dobro definiran zahtjev? Dobro definiran zahtjev je, u prvom redu, cjelovit, u
potpunosti definiran i bez nedostataka, konzistentan je i korektan, to znai da nije u konfliktu
ni sa jednim drugim zahtjevom i u potpunosti udovoljava zahtjevima korisnika. Dobro definiran
zahtjev je nedvosmislen, jasno iskazan i provjerljiv.
Ostvariti takve zahtjeve nije uvijek lako, naprotiv. Tokom svih aktivnosti RE procesa
javljaju se mnogi problemi, odnosno rizici, koje je potrebno, sustavnim i cjelovitim pristupom,
minimizirati, ukoliko ih ve nije mogue u potpunosti izbjei (a nije!). Da bi se to ostvarilo i da
bi se stvorila osnova za kvalitetno oblikovanje budueg sustava, potrebno se pridravati
smjernica inenjerstva zahtjeva te primjenjivati najadekvatnije metode i tehnike koje e poluiti
najbolje rezultate u konkretnom projektu.
37
Krajnji rezultat RE procesa, Specifikacija softverskog zahtjeva (SRS), mora pruiti
dovoljno kvalitetnih informacija za naredne faze razvoja softverskog proizvoda, jer bez dobro
definiranih i opisanih zahtjeva nije mogue uspjeno privesti kraju tako kompleksan projekt kao
to je, u pravilu, projekt razvoja softverskog proizvoda.
38
LITERATURA
[2] Bjrner, D.: Software Engineering 3 (Domains, Requirements, and Software Design),
Springer, 2006.
[3] Yeates, D., Wakeeld T.: Systems Analysis and Design, Prentice Hall, 2. Izdanje, 2004.
[4] Manger, R.: Softversko inenjerstvo (skripta), Sveuilite u Zagrebu, 2005.
[6] Kandt, R.K.: Software Requirements Engineering: Practices and Techniques, JPL Document
D-24994 SQI Report R-3, California Institute of Technology, 2003.
[7] IEEE: IEEE Std 830-1998 (Revision of IEEE Std 830-1993), IEEE Recommended Practice
for Software Requirements Specifications, 1998.
Internet izvori:
[13] http://www.ehow.com/how_4804549_software-requirements-specifications-srs-
document.html, (2.2.1012.)
[24] http://scarpedia.com/general/common-problems-during-requirement-engineering-practices/,
(6.2.2012)
40