Dio 1 – Zainteresovane strane
Dio 2 – Funkcionalni i nefunkcionalni
Dio 3 – Priče, prihvatanje, MoSCoW
Praksa – Intervju; 12 korisničkih priča
Materijale priredio Erkan Islamović
erkan.islamovic@eubd.edu.ba · erkan.islamovic@gmail.com
Petnaest sedmica, svaka s tri časa teorije i tri časa prakse. Danas: poglavlje 3 (Sedmica 3, označeno). Isti primjer kroz knjigu: DeliveryApp, narudžba N-1001 (24,50 €).
| Sed. | Poglavlje | Sed. | Poglavlje |
|---|---|---|---|
| 1 | P1 Zašto projektujemo | 9 | P9 Arhitektura |
| 2 | P2 Životni ciklus | 10 | P10 Integracija i API |
| 3 | P3 Zahtjevi | 11 | P11 Korisnički interfejs |
| 4 | P4 Poslovni procesi | 12 | P12 Sigurnost i privatnost |
| 5 | P5 UML i slučajevi korištenja | 13 | P13 Realno vrijeme i IoT |
| 6 | P6 Klase i objekti | 14 | P14 Kvalitet i isporuka |
| 7 | P7 Sekvence i stanja | 15 | P15 AI i završni projekat |
| 8 | P8 Baza podataka |
U ponedjeljak, 26. oktobra 1992. godine, Hitna pomoć grada Londona pustila je u rad novi računarski sistem za upućivanje vozila. Do tada su dispečeri primali poziv, zapisivali adresu na papir, a papir je putovao do kolege koji je na velikoj karti tražio najbliže slobodno vozilo. Novi sistem trebao je to raditi sam: primiti adresu, izračunati koje je vozilo najbliže i poslati ga. Već prvog dana sistem se zagušio. Sistem je pretpostavljao da uvijek tačno zna gdje je koje vozilo i šta posada radi, a posade nisu uvijek pritiskale dugmad onim redom koji je sistem očekivao. Vozila su slata pogrešno, pozivi su se gubili, a ljudi su na hitnu pomoć čekali i satima. Istražna komisija u izvještaju iz februara 1993. zaključila je da sistem nije bio spreman: softver je bio nedovršen i nedovoljno testiran, a dispečeri i posade nisu imali povjerenja u njega. Direktor službe je podnio ostavku. Najdublji uzrok nije bio u kodu, nego u zahtjevima: sistem je projektovan za svijet kakav je trebao biti, a ne za svijet kakav jeste.
U poglavlju 2 odabrali smo za DeliveryApp Scrum i napravili backlog od dvanaestak stavki. Stavke su za sada samo naslovi, kao „izračunati dostavu”. Ovo poglavlje uči kako se od naslova dođe do zahtjeva: rečenice koja tačno kaže šta sistem mora raditi i kako ćemo provjeriti da to radi. Prvo vidimo ko sve ima pravo da traži nešto od sistema i kako ih pitamo. Zatim razlikujemo vrste zahtjeva i učimo šta čini zahtjev dobrim. Na kraju pišemo korisničke priče s kriterijima prihvatanja i slažemo ih po važnosti. Na praktičnoj nastavi vodimo intervju s „vlasnikom restorana” i pišemo dvanaest korisničkih priča za DeliveryApp.
Nakon poglavlja možete:
nabrojati zainteresovane strane DeliveryApp i smjestiti ih u matricu uticaja i interesa; izabrati tehniku prikupljanja zahtjeva i voditi kratak intervju s otvorenim pitanjima; razlikovati šta korisnik traži od onoga što mu treba; razlikovati poslovne, korisničke i sistemske, te funkcionalne i nefunkcionalne zahtjeve; prepoznati loš zahtjev i prepraviti ga u provjerljiv; izračunati koliko zastoja dozvoljava dostupnost od 99,5 %; napisati korisničku priču koja zadovoljava INVEST; napisati kriterije prihvatanja u obliku Dato–Kada–Tada; složiti zahtjeve po MoSCoW i napraviti matricu sljedivosti; opisati kako se upravlja promjenom zahtjeva.
| Čas | Sadržaj | Na času |
|---|---|---|
| Teorija 1 | 3.1–3.3 Zainteresovane strane, tehnike, šta treba | Matrica uticaja i interesa; „pet puta zašto” |
| Teorija 2 | 3.4–3.6 Vrste zahtjeva i dobar zahtjev | „Sistem mora biti brz” → NZ-1; 99,5 % = 3,6 h |
| Teorija 3 | 3.7–3.10 Korisničke priče, kriteriji, MoSCoW, promjene | Priča za dostavu s tri kriterija |
| Praksa 1–3 | Intervju u paru; 12 priča na GitHubu; matrica sljedivosti | Priče s oznakama MoSCoW |
Prvo pitanje nije „šta sistem treba raditi”, nego „koga treba pitati”. Zainteresovana strana (engleski stakeholder) je svako koga se sistem tiče: ko ga plaća, ko ga koristi, ko ga održava, ko mora odobriti da radi, pa i ko samo trpi njegove posljedice. Ako neku stranu zaboravimo, njen zahtjev otkrićemo tek kad sistem radi, a tada je skupo.
Za DeliveryApp spisak izgleda ovako:
| Zainteresovana strana | Šta joj je najvažnije |
|---|---|
| Udruženje ugostitelja (naručilac) | da se uloženi novac vrati; da svi restorani budu zadovoljni |
| Vlasnik restorana | manje izgubljenih narudžbi; izvještaj na kraju mjeseca |
| Konobar i kuhar | da narudžbu vide jasno, bez prepisivanja |
| Kupac | brzo naručivanje, tačna cijena, da zna kada stiže hrana |
| Dostavljač | tačna adresa, pametan redoslijed vožnje, da zna koliko je zaradio |
| Administrator DeliveryApp | da lako doda restoran i riješi žalbu |
| Firma za plaćanje karticom | da se poštuju njena pravila sigurnosti |
| Poreska uprava | ispravni fiskalni računi |
| Agencija za zaštitu ličnih podataka | da se adrese i telefoni kupaca čuvaju po zakonu |
| Komšije restorana | da dostavljači ne parkiraju skutere na trotoaru |
Posljednji red nije šala. Zainteresovana strana može biti i neko ko sistem nikad neće koristiti, a ipak može zaustaviti projekat (npr. opština koja zabrani parkiranje).
Nemaju sve strane jednaku težinu. Korisna je podjela po dvije osobine: koliki uticaj strana ima na projekat (može li ga zaustaviti, promijeniti, finansirati) i koliki je njen interes (koliko je se sistem tiče u svakodnevici).
| Mali interes | Veliki interes | |
|---|---|---|
| Veliki uticaj | držati zadovoljnim (poreska uprava, agencija za podatke) | blisko sarađivati (udruženje, vlasnici restorana) |
| Mali uticaj | pratiti (komšije) | redovno informisati (kupci, dostavljači, kuhari) |
Strane u gornjem desnom polju pitamo često i detaljno. Strane u gornjem lijevom ne zovemo na svaki sastanak, ali njihove propise moramo znati od prvog dana.

Ko je u priči o Hitnoj pomoći Londona bio zainteresovana strana, a možda nije dovoljno pitan? (Dispečeri i posade vozila, koji su znali kako se posao zaista radi na terenu.)
Zahtjevi ne leže negdje gotovi da ih pokupimo. Ljudi često ne znaju reći šta im treba, ili kažu rješenje umjesto problema. Zato analitičar koristi više tehnika, a svaka otkriva nešto drugo.
| Tehnika | Kako izgleda | Dobra za | Pazi na |
|---|---|---|---|
| Intervju | razgovor jedan na jedan, 30–60 minuta | detalje, razloge, osjetljive teme | ljudi kažu ono što misle da želite čuti |
| Upitnik | ista pitanja za mnogo ljudi | brojke („koliko često naručujete?”) | ne otkriva „zašto” |
| Posmatranje | analitičar provede smjenu uz konobara | stvarni posao, prečice, probleme koje niko ne pominje | ljudi rade drugačije kad ih neko gleda |
| Radionica | svi važni ljudi u jednoj sobi, sa slikama i papirićima | dogovor, sukobe između strana | glasni ljudi preglasaju tihe |
| Analiza dokumenata | čitanje jelovnika, računa, zakona, starih papirića narudžbi | pravila, polja koja moraju postojati | dokument može biti zastario |
| Prototip | grubi crtež ili klikabilan ekran koji ljudi probaju | reakciju na „ovako bi izgledalo” | ljudi misle da je sistem gotov |
Za DeliveryApp bi dobar plan bio: intervju s vlasnikom svakog restorana, jedno podne posmatranja u kuhinji Picerije R-1, kratak upitnik za 50 stalnih kupaca, i radionica s vlasnicima kad imamo prve crteže ekrana.
Intervju je najčešća tehnika i najlakše se pokvari. Nekoliko pravila:
Vlasnik Picerije R-1 na intervjuu kaže: „Hoću da mi aplikacija štampa svaku narudžbu na papir, kao fiskalna kasa.” To je zahtjev? Ne baš. To je rješenje koje je vlasnik smislio za problem koji nije rekao. Analitičar zato pita dalje, tehnikom koja se zove pet puta zašto (svaki odgovor dobije novo „zašto”, dok se ne dođe do uzroka):
Prava potreba je: kuhar mora vidjeti narudžbe redom, jasno, bez dodirivanja uređaja masnim rukama i bez prepisivanja. Slika 3.2 pokazuje taj put od traženog rješenja do potrebe. Štampač je jedno rješenje. Drugo je veliki ekran na zidu kuhinje na kojem se narudžbe redaju same, a kuhar ih označava gotovim laktom ili pedalom. Oba rješenja ispunjavaju potrebu; izbor je stvar cijene i navike. Da je analitičar samo zapisao „štampati narudžbu”, drugo rješenje se nikad ne bi razmotrilo.

„Korisnik zna šta želi, mi samo zapišemo.” Korisnik zna svoj problem bolje od bilo koga. Ali rješenje koje predloži ograničeno je onim što je već vidio. Posao analitičara je da razumije problem i da zajedno s korisnikom izabere rješenje.
Odgovori: tipka R ili klik na zamućeno polje.
Zahtjeve dijelimo na dva načina: po nivou (ko ih postavlja) i po vrsti (šta opisuju).
Po nivou:
Po vrsti:
Razlika se lako pamti na automobilu. Funkcionalni zahtjevi su: vozi, koči, skreće. Nefunkcionalni: od 0 do 100 km/h za 9 sekundi, troši 5 litara na 100 km, ima pet zvjezdica na testu sigurnosti. Auto koji vozi, ali koči za 200 metara, ispunjava funkcionalni, a pada na nefunkcionalnom zahtjevu.
Nefunkcionalne zahtjeve je lako zaboraviti, jer ih korisnik rijetko izgovori: niko ne kaže „hoću da sistem ne pada”, jer to podrazumijeva. Zato postoji međunarodni standard ISO/IEC 25010, koji navodi karakteristike kvaliteta softvera kao podsjetnik. Najvažnije za DeliveryApp:
| Karakteristika | Pitanje | Zahtjev DeliveryApp |
|---|---|---|
| Performanse | Koliko brzo i za koliko korisnika? | NZ-1: 95 % odgovora ≤ 2 s pri 200 korisnika |
| Pouzdanost (dostupnost) | Koliko vremena sistem radi? | NZ-2: 99,5 % mjesečno |
| Sigurnost | Ko smije šta? Šta ako neko napadne? | NZ-3: lozinka samo kao heš; restoran dvofaktorski |
| Upotrebljivost | Može li ga koristiti novi korisnik? | NZ-4: prva narudžba za ≤ 3 min; kontrast ≥ 4,5 : 1 |
| Održivost | Koliko je lako mijenjati ga? | kod ima automatske testove; dokumentovan API |
| Prenosivost | Radi li na različitim uređajima? | Android, iOS i preglednik |
Uz to idu i zakonski zahtjevi, kao NZ-5 o privatnosti: adresa i telefon kupca brišu se 12 mjeseci nakon posljednje narudžbe.
Dostupnost od 99,5 % zvuči skoro savršeno. Koliko je to u satima? Mjesec od 30 dana ima 30 × 24 = 720 sati. Dozvoljeno je da sistem ne radi 0,5 % tog vremena:
Čemu služi. Ovaj račun pretvara procenat u nešto što svako razumije: DeliveryApp smije mjesečno biti nedostupan najviše 3,6 sati, odnosno 3 sata i 36 minuta. Ako se to desi baš u petak u 13 sati, restorani gube ručak. Zato zahtjev često dodaje i kada je dostupnost najvažnija („između 11 i 15 sati najviše 15 minuta zastoja mjesečno”).
Uporedimo dva zahtjeva:
Prvi je nemoguće provjeriti: brz za koga, koliko, kada? Drugi se može izmjeriti testom opterećenja i reći „prošao” ili „pao”. Dobar zahtjev ima ove osobine:
| Osobina | Pitanje | Loš primjer | Popravljeno |
|---|---|---|---|
| Jasan | Razumiju li ga svi isto? | „Dostava se plaća po kilometru.” | „0,50 € za svaki započeti kilometar preko 3 km.” |
| Provjerljiv | Može li se napisati test? | „Aplikacija je jednostavna.” | „Novi kupac završi prvu narudžbu za najviše 3 minute.” |
| Jedan | Govori li o jednoj stvari? | „Kupac plaća karticom i dobija račun mailom i SMS-om.” | tri odvojena zahtjeva |
| Izvodiv | Može li se napraviti u roku i budžetu? | „Dostava za 5 minuta na svaku adresu.” | „Kupac vidi procijenjeno vrijeme dostave.” |
| Potreban | Postoji li neko kome treba? | „Tamna tema za restorane.” | (ako niko nije tražio, ide u „možda kasnije”) |
| Bez rješenja | Kaže li šta, a ne kako? | „Narudžbe se čuvaju u MySQL bazi.” | „Narudžbe se čuvaju najmanje 5 godina.” |
Posebno pazite na riječi koje zvuče jasno, a nisu: brzo, jednostavno, korisnički orijentisano, moderno, sigurno, po potrebi, itd., i/ili. Svaka od njih je znak da zahtjev treba prepraviti.
Ustalio se i dogovor o glagolima: „mora” znači obavezno, „trebalo bi” znači poželjno, „može” znači dozvoljeno. Ako se u istom dokumentu miješaju „treba”, „mora” i „bilo bi dobro”, niko ne zna šta je obavezno.
Prepravite u provjerljiv zahtjev: „Restoran mora brzo saznati za novu narudžbu.” (Jedan dobar odgovor: „Restoran vidi novu narudžbu na ekranu i čuje zvučni signal najkasnije 10 sekundi nakon što je kupac plati.”)
Pored zahtjeva, specifikacija bilježi još dvije stvari koje se lako zaborave.
Ograničenje je uslov koji tim ne bira, nego ga mora poštovati: zakon o zaštiti ličnih podataka, pravila firme za kartice, budžet od X eura, rok „prije turističke sezone”, obaveza da radi s postojećom fiskalnom kasom restorana. Ograničenja sužavaju izbor rješenja.
Pretpostavka je nešto što tim smatra tačnim, a nije provjerio: „svaki dostavljač ima pametni telefon s GPS-om”, „restorani imaju stabilan internet”, „kupci znaju svoju tačnu adresu”. Pretpostavke se zapisuju da bi se mogle provjeriti, jer neprovjerena pretpostavka je skriveni rizik.
Upravo je pretpostavka srušila sistem Hitne pomoći Londona iz priče: sistem je pretpostavljao da uvijek tačno zna gdje je vozilo i šta posada radi. Da je ta pretpostavka bila zapisana, neko bi pitao: „A šta ako posada zaboravi pritisnuti dugme?”
| Oznaka | Pretpostavka DeliveryApp | Kako je provjeravamo |
|---|---|---|
| P-1 | Svaki dostavljač ima telefon s GPS-om | pitati sva četiri dostavljača |
| P-2 | Restorani imaju internet i u podne | posmatranje u podne, test brzine |
| P-3 | Servis mapa računa udaljenost tačno na 0,1 km | probati 20 poznatih adresa |
Odgovori: tipka R ili klik na zamućeno polje.
U agilnim timovima zahtjevi se najčešće pišu kao korisničke priče (user stories). Korisnička priča je kratka rečenica iz ugla korisnika, u obliku:
Kao 〈uloga〉, želim 〈nešto uraditi〉, da bih 〈korist〉.
Primjeri za DeliveryApp:
Svaki dio priče ima svrhu. Uloga podsjeća za koga radimo. Želja kaže šta. Korist kaže zašto, i to je najvažniji dio, jer omogućava drugačije rješenje ako se prvo pokaže skupim.
Priča nije cijeli zahtjev. To je podsjetnik na razgovor: kartica koja kaže „o ovome treba razgovarati”, a detalji se dogovore kad priča dođe na red. Ali kad priča uđe u sprint, mora imati kriterije prihvatanja (3.8).
Dobra priča zadovoljava šest osobina, čija početna slova daju englesku riječ INVEST:
| Slovo | Osobina | Pitanje |
|---|---|---|
| I | Nezavisna (Independent) | Može li se napraviti bez čekanja druge priče? |
| N | Pregovaračka (Negotiable) | Ostavlja li prostor za razgovor o rješenju? |
| V | Vrijedna (Valuable) | Donosi li nekome korist? |
| E | Procjenjiva (Estimable) | Može li tim procijeniti njenu veličinu? |
| S | Mala (Small) | Može li stati u jedan sprint? |
| T | Provjerljiva (Testable) | Možemo li napisati test? |
Priča „Kao kupac, želim koristiti DeliveryApp” pada na skoro svim slovima: prevelika je, nije procjenjiva ni provjerljiva. Takva velika priča zove se epika i dijeli se na manje priče.
Kriterij prihvatanja je provjerljiv uslov koji kaže kada je priča ispunjena. Najjasniji oblik je Dato–Kada–Tada (engleski Given–When–Then):
Za priču „Kao kupac, želim vidjeti cijenu dostave prije nego što platim” kriteriji su:
Kriterij 1 – plaćena dostava
Dato: u korpi su 2 × Pizza Margarita i 1 × Sok (21,50 €), adresa je 4,2 km od R-1
Kada: kupac otvori pregled narudžbe
Tada: vidi dostavu 3,00 € i ukupno 24,50 €
Kriterij 2 – besplatna dostava
Dato: u korpi su artikli za tačno 30,00 €, adresa je 5 km od restorana
Kada: kupac otvori pregled narudžbe
Tada: vidi dostavu 0,00 € i poruku „Dostava je besplatna”
Kriterij 3 – izvan zone
Dato: adresa je 11 km od restorana
Kada: kupac pokuša otvoriti pregled narudžbe
Tada: vidi poruku „Ova adresa je izvan zone dostave (najviše 10 km)” i ne može platiti
Primijetite tri stvari. Prvo, svaki kriterij ima konkretne brojeve, ne „neka cijena”. Drugo, kriteriji pokrivaju i granice (tačno 30,00 €) i neuspjeh (11 km), ne samo srećan put. Treće, ovakav tekst tester može direktno pretvoriti u automatski test; u predmetu Testiranje softvera isti oblik se zove BDD i piše u jeziku Gherkin.
Kriteriji prihvatanja su najjeftiniji test koji postoji. Pišu se za nekoliko minuta, a otkrivaju nejasnoće dok ih ispravka košta samo jednu rečenicu. Upravo pitanje „a šta je s tačno 30,00 €?” natjeralo je vlasnike da u PP-4 napišu „od 30,00 € i više”.
Backlog DeliveryApp ubrzo će imati pedeset priča, a novca i vremena ima za dvadeset. Vlasnik proizvoda mora odlučiti šta je važnije. Jednostavna i popularna metoda je MoSCoW (velika slova su početna slova četiri grupe na engleskom):
| Grupa | Značenje | Primjer u DeliveryApp |
|---|---|---|
| M – mora (Must have) | bez ovoga sistem nema smisla | jelovnik, korpa, obračun dostave, prijem narudžbe u restoranu |
| S – trebalo bi (Should have) | važno, ali može sačekati drugo izdanje | plaćanje karticom, otkazivanje |
| C – moglo bi (Could have) | lijepo je imati | praćenje dostavljača na mapi, ocjene restorana |
| W – neće ovaj put (Won't have this time) | dogovoreno da nije u ovoj verziji | program vjernosti, narudžba za sutra |
Grupa W je jednako važna kao M: zapisano „neće” sprečava da se ista želja vraća na svaki sastanak, kao kod FBI-ja.
Sljedivost znači da se za svaki zahtjev vidi odakle je došao i šta ga provjerava. Najjednostavniji alat je tabela:
| Poslovni cilj | Pravilo / zahtjev | Korisnička priča | Kriterij / test |
|---|---|---|---|
| Ista cijena za istu adresu | PP-2, PP-3, PP-4 | Kao kupac, želim vidjeti cijenu dostave… | Kriteriji 1–3 iz 3.8 |
| Manje izgubljenih narudžbi | „Restoran vidi narudžbu za ≤ 10 s” | Kao kuhar, želim vidjeti nove narudžbe… | narudžba plaćena u 12:00:00 vidi se do 12:00:10 |
| Zakonita obrada podataka | NZ-5 | – (sistemski zadatak) | adresa kupca bez narudžbe 12 mjeseci je obrisana |
Kad se jedno pravilo promijeni (npr. dostava poskupi na 2,50 €), tabela odmah pokazuje koje priče i testovi se moraju mijenjati.
Zahtjevi će se mijenjati. To nije greška tima, nego znak da korisnici uče šta im treba. Greška je kad se mijenjaju bez reda. Zato tim dogovori jednostavan put za svaku promjenu:
promjena.U Scrumu je pravilo jednostavno: unutar sprinta se ne mijenja cilj sprinta, a između sprintova backlog se slobodno preslaguje. Tako tim ima dvije mirne sedmice za rad, a korisnik ne čeka godinu na promjenu.
Vlasnik Roštilja R-2 sredinom sprinta traži da DeliveryApp prima i narudžbe „za poslije 18 sati”. Šta radi tim? (Zapiše zahtjev za promjenu, vlasnik proizvoda ga procijeni i stavi u backlog za neki od sljedećih sprintova; tekući sprint se ne mijenja.)
Odgovori: tipka R ili klik na zamućeno polje.
Cilj je da svaki student vodi pravi intervju, iz njega izvuče potrebe i napiše dvanaest korisničkih priča za DeliveryApp s kriterijima prihvatanja i prioritetom. Radi se u parovima i u repozitoriju deliveryapp-projekat.
U fajl zahtjevi.md upišite tabelu zainteresovanih strana DeliveryApp (najmanje osam) i matricu uticaja i interesa. Matricu možete nacrtati i kao Mermaid dijagram tipa quadrantChart:
quadrantChart
title Zainteresovane strane DeliveryApp
x-axis "Mali interes" --> "Veliki interes"
y-axis "Mali uticaj" --> "Veliki uticaj"
quadrant-1 "Blisko sarađivati"
quadrant-2 "Držati zadovoljnim"
quadrant-3 "Pratiti"
quadrant-4 "Informisati"
"Udruženje": [0.85, 0.9]
"Vlasnik restorana": [0.9, 0.75]
"Poreska uprava": [0.2, 0.8]
"Kupac": [0.8, 0.3]
"Komšije": [0.15, 0.15]M, S, C, W. Najmanje jedna priča mora biti W.U zahtjevi.md dodajte:
Napravite tabelu sa četiri kolone (poslovni cilj, zahtjev, priča, kriterij) za najmanje pet redova. Svaka priča iz koraka 3 s oznakom M mora biti u tabeli.
Zalijepite svoje priče u AI asistenta i zatražite: „Za svaku priču reci koje slovo INVEST-a ne zadovoljava i predloži bolju verziju.” Prihvatite samo prijedloge s kojima se slažete i zapišite u commit poruci šta ste promijenili. AI ne zna pravila DeliveryApp ako mu ih ne date; provjerite da nije izmislio nijedan broj.
Rezultat koji se predaje: zahtjevi.md (zainteresovane strane, nefunkcionalni zahtjevi, pretpostavke, matrica sljedivosti) i dvanaest GitHub Issues s kriterijima prihvatanja i oznakama MoSCoW.
Rješenja su sakrivena – tipka R ili klik na okvir.
Razvrstajte: a) „Kupac može otkazati narudžbu dok je u stanju PRIHVAĆENA.” b) „Aplikacija radi na Androidu od verzije 10.” c) „Lozinka se čuva samo kao heš.” d) „Restoran može označiti jelo kao privremeno nedostupno.” e) „Stranica s jelovnikom učitava se za najviše 1,5 s na 4G mreži.”
a) funkcionalni; b) nefunkcionalni (prenosivost); c) nefunkcionalni (sigurnost); d) funkcionalni; e) nefunkcionalni (performanse).
Prepravite u provjerljive zahtjeve: a) „Aplikacija mora biti dostupna skoro uvijek.” b) „Dostavljač treba brzo dobiti obavještenje.” c) „Sistem je siguran.”
Primjeri: a) „DeliveryApp je dostupan najmanje 99,5 % vremena u svakom kalendarskom mjesecu (najviše 3,6 h zastoja u 30 dana).” b) „Dostavljač dobija obavještenje na telefon najkasnije 15 sekundi nakon što restoran označi narudžbu spremnom.” c) Rastaviti na više provjerljivih: „Lozinke se čuvaju samo kao heš”, „Nakon 5 pogrešnih prijava nalog se zaključava na 15 minuta”, „Restoran se prijavljuje dvofaktorski.”
Koliko je minuta zastoja mjesečno (30 dana) dozvoljeno za dostupnost od 99,9 %? A godišnje (365 dana) za 99,5 %?
Mjesečno: 0,001 × 720 h = 0,72 h = 0,72 × 60 = 43,2 minute. Godišnje: 0,005 × 365 × 24 h = 0,005 × 8760 h = 43,8 sati.
Napišite dva kriterija Dato–Kada–Tada za priču „Kao kupac, želim koristiti kod STUDENT10, da bih platio manje.” Jedan neka bude za N-1001, a drugi za granicu popusta.
Kriterij 1: Dato su artikli 21,50 € i adresa 4,2 km; Kada kupac upiše STUDENT10; Tada vidi popust 2,15 € i ukupno 22,35 €. Kriterij 2: Dato su artikli 80,00 € (dostava besplatna); Kada kupac upiše STUDENT10; Tada vidi popust 5,00 € (ne 8,00 €, jer je to gornja granica) i ukupno 75,00 €.
Ocijenite priču po INVEST-u i popravite je: „Kao korisnik, želim da aplikacija bude dobra, da bih bio zadovoljan.”
Uloga je preopšta (koji korisnik?), želja nije provjerljiva ni procjenjiva, a priča je prevelika (nije mala); pada na E, S i T, a vrijednost je nejasna. Treba je rastaviti na konkretne priče, npr. „Kao kupac, želim sačuvati adresu, da je ne bih kucao pri svakoj narudžbi”, s kriterijem: Dato je sačuvana adresa; Kada kupac pravi novu narudžbu; Tada je adresa već upisana.