Dio 1 – Korisnik u centru, persone
Dio 2 – Wireframe i prototip
Dio 3 – Pristupačnost i test
Praksa – Papirni prototip; test s pet korisnika
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 11 (Sedmica 11, 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 subotu, 13. januara 2018. godine, u 8:07 ujutro, na mobitele stanovnika i turista na Havajima stigla je poruka: „PRIJETNJA BALISTIČKE RAKETE PREMA HAVAJIMA. ODMAH POTRAŽITE SKLONIŠTE. OVO NIJE VJEŽBA.” Ljudi su zvali porodice da se oproste, sakrivali se u kupatila hotela, a neki roditelji spuštali su djecu u šahtove kanalizacije. Rakete nije bilo. Poruku je poslao radnik državne agencije za vanredne situacije tokom smjene u kojoj se izvodila vježba. Savezna komisija za komunikacije (FCC) kasnije je utvrdila da je radnik pogrešno razumio poruku vježbe i povjerovao da je napad stvaran, ali i da sam sistem nije imao razumne zaštite: ekrani za vježbu i za pravu uzbunu koristili su iste upite, tekst je bio unaprijed pripremljen, pa se kroz postupak moglo proći klikom bez razmišljanja, a za slanje stvarne uzbune nije trebala potvrda druge osobe. Najgore je bilo što ni za ispravku nije postojao spreman postupak: zvanična ispravka kroz isti sistem uzbunjivanja stigla je tek 38 minuta kasnije. Poslije toga uvedeno je pravilo da stvarnu uzbunu mora potvrditi drugi čovjek. Pouka je da se korisnički interfejs ne projektuje samo da bude lijep, nego da čovjek koji je umoran, uplašen ili zbunjen teško napravi tešku grešku, i da je lako ispravi.
U poglavljima 3 do 10 projektovali smo šta DeliveryApp radi, šta zna, od čega je napravljen i kako dijelovi razgovaraju. Sve to korisnik nikad ne vidi. Vidi samo ekran: jelovnik, korpu, dugme „Naruči”. Ako je ekran zbunjujući, ni najbolja arhitektura neće spasiti DeliveryApp, jer kupci će nazvati restoran telefonom, kao prije. Ovo poglavlje uči kako se projektuje ono što korisnik vidi i osjeća. Prvo upoznajemo korisnike kroz persone i putanju kroz aplikaciju. Zatim pravimo skice i prototipe i ocjenjujemo ih poznatim heuristikama. Na kraju učimo pristupačnost, za ljude koji slabije vide ili se teže kreću, i kako se ekran provjerava s pet stvarnih korisnika. Na praktičnoj nastavi crtamo papirni prototip, prenosimo ga u Figmu i testiramo ga.
Nakon poglavlja možete:
razlikovati UI i UX; napisati personu i putanju korisnika za DeliveryApp; nacrtati skicu ekrana i objasniti razliku između skice, makete i prototipa; napraviti papirni i klikabilan prototip; ocijeniti ekran pomoću deset heuristika upotrebljivosti; navesti pravila za mobilni ekran (veličina dugmeta, jedna glavna radnja); izračunati omjer kontrasta i reći da li zadovoljava WCAG; objasniti četiri principa pristupačnosti; organizovati test upotrebljivosti s pet korisnika i izračunati koliki dio problema otkriva; projektovati opasne radnje tako da se greška teško napravi, a lako ispravi; prepoznati mračne obrasce.
| Čas | Sadržaj | Na času |
|---|---|---|
| Teorija 1 | 11.1–11.3 UI i UX; persone; putanja korisnika | Tri persone DeliveryApp; 3 minute do narudžbe |
| Teorija 2 | 11.4–11.6 Skice i prototipi; heuristike; mobilni ekran | Ocjena ekrana korpe |
| Teorija 3 | 11.7–11.9 Pristupačnost; test s pet korisnika; opasne radnje | 4,5 : 1; 84 %; Havaji 2018 |
| Praksa 1–3 | Papirni prototip; Figma; test upotrebljivosti | Četiri ekrana i izvještaj o testu |
Dvije skraćenice se često miješaju.
Korisnički interfejs (UI, user interface) je ono što korisnik vidi i dodiruje: raspored ekrana, dugmad, tekst, boje, ikone. Korisničko iskustvo (UX, user experience) je ono što korisnik doživi: da li je uspio naručiti, koliko je trajalo, da li se osjećao sigurno ili zbunjeno, da li će sutra opet otvoriti aplikaciju.
Slika iz života: kvaka na vratima. UI je izgled kvake: oblik, boja, materijal. UX je da li znate, bez razmišljanja, treba li vrata gurnuti ili povući. Lijepa kvaka na vratima koja se otvaraju na pogrešnu stranu je dobar UI i loš UX. Svi smo bar jednom gurali vrata na kojima piše „vuci”.
UX nije samo ekran. UX DeliveryApp uključuje i to da li je hrana stigla topla, da li je cijena bila ista kao na ekranu i da li je dostavljač našao ulaz. Ali ekran je mjesto gdje projektant najviše može pomoći, ili odmoći.
Za DeliveryApp već imamo jedan UX zahtjev iz poglavlja 3: NZ-4: novi kupac završi prvu narudžbu za najviše 3 minute bez pomoći; kontrast teksta najmanje 4,5 : 1. Ovo poglavlje pokazuje kako se do toga dolazi i kako se provjerava.
Projektant nije korisnik. Student informatike koji projektuje DeliveryApp zna šta je korpa, prevlačenje prstom i ikonica s tri crtice. Kupci DeliveryApp to ne moraju znati. Zato UX počinje upoznavanjem korisnika: intervjuima i posmatranjem iz poglavlja 3. Ono što se sazna sažima se u persone.
Persona je opis izmišljenog, ali tipičnog korisnika, napravljen od stvarnih podataka iz intervjua. Ima godine, situaciju, cilj, uređaj i ono što je nervira. Persona pomaže timu da na sastanku ne kaže „korisnik bi htio…”, nego „da li bi P-2 ovo razumio?”.
Tri persone DeliveryApp:
| P-1 Studentica | P-2 Penzioner | P-3 Kuhar u R-2 | |
|---|---|---|---|
| Godine | 21 | 68 | 45 |
| Situacija | naručuje između predavanja, često s drugaricama | živi sam, slabije vidi, naručuje kad ne može izaći | radi s masnim rukama, u buci |
| Uređaj | novi telefon, uvijek pri ruci | stariji telefon s velikim slovima | tablet na zidu kuhinje |
| Cilj | brzo i jeftino (kod STUDENT10) | sigurno, bez greške, da zna kada stiže | da vidi sljedeću narudžbu bez dodirivanja |
| Nervira je/ga | dugi obrasci, sporo učitavanje | sitna slova, dugmad koja se ne vide, engleske riječi | zvuk koji se ne čuje, sitan tekst, previše dodira |
| Rečenica | „Ako traje duže od minute, zovem telefonom.” | „Bojim se da ću pritisnuti nešto pogrešno.” | „Ruke su mi uvijek zauzete.” |
Primijetite da su persone različite. Ekran koji odgovara P-1 (gusto, brzo, puno opcija) može biti nemoguć za P-2. Dobar dizajn radi za sve tri, a ako se mora birati, bira se za onoga kome je najteže. Ono što je lako za P-2 obično je lako i za P-1, ali ne i obrnuto.
„Persona je marketinški izmišljotina.” Loša persona jeste: izmišljena za stolom, bez ijednog intervjua. Dobra persona je sažetak stvarnih razgovora i mijenja se kad se sazna nešto novo. Ako tim ne može reći iz kojeg intervjua dolazi rečenica persone, persona nije dobra.
Putanja korisnika (user journey) je niz koraka kroz koje korisnik prolazi od namjere („gladan sam”) do cilja („jedem”), uz ono što misli i osjeća na svakom koraku. Ona pokazuje gdje korisnik zastane, sumnja ili odustane.
Putanja P-2 (penzioner) pri prvoj narudžbi:
| Korak | Šta radi | Šta misli | Osjećaj | Prilika za dizajn |
|---|---|---|---|---|
| 1. Otvara aplikaciju | traži Piceriju | „Gdje je meni?” | zbunjen | restorani odmah na početnom ekranu, velikim slovima |
| 2. Bira jela | dodaje Margaritu | „Je li dodano?” | nesiguran | jasna potvrda: „Dodano u korpu (1)” |
| 3. Unosi adresu | kuca ulicu | „Koliko će koštati dostava?” | zabrinut | cijena dostave odmah poslije adrese |
| 4. Pregled | vidi ukupno | „24,50 €, u redu.” | smiren | velik i jasan zbir, bez skrivenih troškova |
| 5. Plaća | unosi karticu | „Je li sigurno?” | nervozan | poznati znak sigurnog plaćanja, jasan tekst |
| 6. Čeka | gleda status | „Kad stiže?” | strpljiv | stanje narudžbe riječima i procijenjeno vrijeme |
Putanja se mjeri. NZ-4 traži da novi kupac završi narudžbu za najviše 3 minute (180 sekundi). Ako na testu (11.8) P-2 potroši 60 sekundi samo na korak 1, jasno je gdje dizajn treba popraviti.
Svaki red putanje je povezan s modelima iz ranijih poglavlja: koraci su glavni tok UC-01 (poglavlje 5), poruka „Je li dodano?” je pitanje stanja korpe, a „Kad stiže?” je stanje narudžbe iz poglavlja 7, koje ekran mora pokazati riječima koje P-2 razumije („Restoran priprema vašu hranu”), a ne U_PRIPREMI.

Odgovori: tipka R ili klik na zamućeno polje.
Ekran se ne pravi odmah u konačnom obliku. Ide se u koracima, od jeftinog ka skupom, da bi se greške našle dok su jeftine (sjetite se slike 1.3):
Slika iz života: arhitekt kuće prvo nacrta tlocrt na salveti (skica), zatim napravi lijep crtež fasade (maketa), pa trodimenzionalni model kroz koji se može „prošetati” (prototip). Tek onda se zida.
Papirni prototip zvuči djetinjasto, ali je jedan od najkorisnijih alata u UX-u. Pravi se za sat vremena, ljudi se ne ustručavaju kritikovati papir (dok im se uglađen ekran „ne da kvariti”), i odmah se vidi gdje korisnik zastane.
Za prvu verziju DeliveryApp dovoljno je četiri ekrana: jelovnik restorana, korpa, pregled i plaćanje, praćenje narudžbe.

Kako ocijeniti ekran prije nego što ga vide korisnici? Danski stručnjak za upotrebljivost Jakob Nielsen objavio je sredinom devedesetih deset heuristika: iskustvenih pravila po kojima stručnjak pregleda ekran i traži probleme. I danas se koriste svuda.
| Heuristika | Šta znači | Na ekranu DeliveryApp |
|---|---|---|
| 1. Vidljivo stanje sistema | korisnik uvijek zna šta se dešava | „Dodano u korpu (2)”; traka „Restoran priprema” |
| 2. Jezik korisnika | riječi i pojmovi koje korisnik zna | „Dostava”, a ne „logistička naknada”; nikad U_PRIPREMI |
| 3. Kontrola i sloboda | lako se vratiti i poništiti | „Ukloni” uz svaku stavku; „Nazad” na svakom ekranu |
| 4. Dosljednost | isto izgleda i radi isto svuda | dugme za glavnu radnju uvijek iste boje i na istom mjestu |
| 5. Sprečavanje grešaka | bolje spriječiti nego poslije javiti | izvan zone: dugme „Plati” nije aktivno, uz objašnjenje |
| 6. Prepoznavanje, ne pamćenje | ne tjerati korisnika da pamti | sačuvana adresa; slike jela uz nazive |
| 7. Fleksibilnost | prečice za iskusne | „Ponovi posljednju narudžbu” za P-1 |
| 8. Jednostavnost | samo ono što treba | na ekranu korpe nema reklama ni nepotrebnih opcija |
| 9. Pomoć pri greški | poruka kaže šta nije u redu i šta raditi | „Najmanja narudžba je 5,00 €. Dodajte još 0,50 €.” |
| 10. Pomoć i dokumentacija | kratka pomoć kad zatreba | „Kako se računa dostava?” uz cijenu dostave |
Primijetite heuristiku 9 na primjeru N-1003 (voćna salata za 4,50 €). Loša poruka je „Greška 422”. Bolja je „Narudžba nije ispravna”. Najbolja kaže šta nije u redu i šta uraditi: „Najmanja narudžba je 5,00 €. Dodajte još 0,50 €.” Server vraća 422 (poglavlje 10), a aplikacija ga prevodi na jezik korisnika.
Heuristička procjena radi se tako da dva ili tri člana tima, svaki sam, prođu kroz prototip s listom heuristika i zapišu svaki problem, uz ozbiljnost od 0 (nije problem) do 4 (katastrofa, mora se popraviti prije puštanja). Zatim se spiskovi spoje. Više ocjenjivača nađe više problema, jer svako primijeti nešto drugo.
Kupci DeliveryApp naručuju uglavnom s mobitela, često jednom rukom, u hodu, na suncu. Nekoliko pravila iz prakse:
Uzmite telefon i otvorite bilo koju aplikaciju za naručivanje ili kupovinu. Možete li glavnu radnju na ekranu korpe pritisnuti palcem ruke kojom držite telefon? Šta je najsitnije dugme koje vidite i koliko je široko u odnosu na vaš prst?
Odgovori: tipka R ili klik na zamućeno polje.
Pristupačnost znači da sistem mogu koristiti i ljudi koji slabije vide, ne vide, slabije čuju, teže pomjeraju ruke ili se teže koncentrišu. To nije mala grupa: tu su stariji ljudi (kao P-2), ljudi s trajnim oštećenjem, ali i svi mi u nekim trenucima, na primjer s telefonom na jakom suncu ili s jednom rukom zauzetom (kao P-3 u kuhinji).
Međunarodne smjernice za pristupačnost weba zovu se WCAG (Web Content Accessibility Guidelines), a važeća verzija je 2.2, iz 2023. godine. U Evropskoj uniji Evropski akt o pristupačnosti od juna 2025. traži pristupačnost za mnoge digitalne usluge, uključujući e-trgovinu, pa je to za aplikaciju kao što je DeliveryApp i zakonska, a ne samo dobra praksa.
WCAG ima četiri principa, čija početna slova na engleskom daju riječ POUR:
| Princip | Pitanje | Primjer u DeliveryApp |
|---|---|---|
| Opažljivo (Perceivable) | Može li se sadržaj vidjeti ili čuti? | slike jela imaju opis za čitač ekrana; tekst se može povećati |
| Upravljivo (Operable) | Može li se koristiti bez miša, s malo pokreta? | sve radi i tastaturom; dugmad dovoljno velika |
| Razumljivo (Understandable) | Je li jasno šta se dešava? | jednostavan jezik; poruke o greški kažu šta uraditi |
| Robusno (Robust) | Radi li s pomoćnim tehnologijama? | ispravno označena dugmad koja čitač ekrana pročita |
Najčešći i najlakše provjerljiv zahtjev je kontrast: koliko se tekst razlikuje od pozadine. WCAG definiše omjer kontrasta:
Čemu služi. L₁ je relativna svjetlina svjetlije boje, a L₂ tamnije; svjetlina je broj od 0 (crno) do 1 (bijelo), koji se računa iz crvene, zelene i plave komponente boje (alati to računaju sami). Omjer ide od 1 : 1 (ista boja) do 21 : 1 (crno na bijelom). Za običan tekst WCAG traži najmanje 4,5 : 1, a za veliki tekst (oko 24 piksela i više, ili podebljan od oko 19 piksela) najmanje 3 : 1. DeliveryApp je to već upisao u NZ-4.
Provjereni primjeri boja koje bi tim mogao izabrati:
| Tekst / pozadina | Omjer | Običan tekst (≥ 4,5) | Veliki tekst (≥ 3) |
|---|---|---|---|
| crno na bijelom | 21 : 1 | da | da |
| tamnoplava (#1B2A41) na bijelom | 14,4 : 1 | da | da |
| bijelo na plavom dugmetu (#1F5FA8) | 6,4 : 1 | da | da |
| bijelo na crvenom (#C0392B) | 5,4 : 1 | da | da |
| siva (#767676) na bijelom | 4,5 : 1 | da (tačno na granici) | da |
| siva (#7F8C8D) na bijelom | 3,5 : 1 | ne | da |
| bijelo na narandžastom (#E67E22) | 2,9 : 1 | ne | ne |
Lijepa narandžasta boja DeliveryApp s bijelim tekstom ne prolazi ni za veliki tekst. Rješenje nije odbaciti boju, nego staviti tamni tekst na narandžasto, ili narandžastu koristiti samo za ukras, a dugme napraviti tamnijim.
Još tri pravila koja se lako zaborave:

Heuristike pomažu, ali ništa ne zamjenjuje posmatranje stvarnog čovjeka dok koristi prototip. To je test upotrebljivosti. Postupak je jednostavan:
Koliko korisnika treba? Nielsen i Landauer su devedesetih pokazali da jedan korisnik, u prosjeku, otkrije oko 31 % problema upotrebljivosti jednog interfejsa. Ako svaki korisnik nezavisno otkrije 31 %, dio problema koji otkrije n korisnika je:
Čemu služi. Formula pokazuje kako se korist testa smanjuje sa svakim novim korisnikom. Za n = 3: 1 − 0,69³ ≈ 0,67, dakle oko 67 %. Za n = 5: 1 − 0,69⁵ ≈ 0,84, oko 84 %. Za n = 10: oko 98 %. Prvih pet korisnika otkrije većinu problema; dalji korisnici uglavnom ponavljaju iste. Zato je preporuka: testirati s pet korisnika, popraviti, pa ponovo testirati s pet, umjesto jednog velikog testa s petnaest. Broj 31 % je prosjek iz istraživanja i u konkretnom projektu može biti drugačiji, ali smjer zaključka vrijedi.

Priča s Havaja pokazuje da je najvažnija UX odluka često ona o opasnim radnjama: radnjama koje se teško ili nikako ne mogu poništiti. U DeliveryApp to su plaćanje, otkazivanje i, za restoran, odbijanje narudžbe. Pravila:
Na drugoj strani su mračni obrasci (dark patterns): dizajn koji namjerno navodi korisnika na nešto što ne želi. Primjeri: unaprijed označeno „Dodaj napojnicu 15 %”; skriveni trošak koji se pojavi tek na posljednjem ekranu; dugme „Ne, ne želim uštedjeti” umjesto običnog „Ne, hvala”; otkazivanje pretplate skriveno u pet nivoa menija. Mračni obrasci mogu kratkoročno donijeti novac, ali uništavaju povjerenje, a u Evropskoj uniji mnogi su i zabranjeni propisima o zaštiti potrošača. DeliveryApp je u viziji (poglavlje 1) obećao „bez skrivenih troškova”: cijena dostave vidi se prije plaćanja, i to je i UX i etička odluka.
Odgovori: tipka R ili klik na zamućeno polje.
Cilj je napraviti prototip četiri ekrana DeliveryApp, ocijeniti ga heuristikama, provjeriti kontrast i testirati ga s korisnicima. Rezultati idu u folder ux/ repozitorija deliveryapp-projekat.
ux/persone.md prepišite tri persone iz 11.2 i dodajte jednu svoju, na osnovu intervjua iz poglavlja 3 (npr. dostavljač).ux/papir/.ux/README.md.Za svaki par boje teksta i pozadine u svom prototipu izmjerite omjer kontrasta (Figma dodatak Contrast, ili stranica WebAIM Contrast Checker) i upišite u tabelu: par boja, omjer, prolazi li za običan i za veliki tekst. Popravite svaki par koji ne prolazi 4,5 : 1 za običan tekst.
Dvoje studenata (ne autor prototipa) odvojeno pregleda prototip po deset heuristika iz 11.5 i zapiše svaki problem: ekran, heuristika, opis, ozbiljnost 0–4. Spiskove spojite u ux/heuristike.md.
ux/test.md napišite izvještaj: tabela rezultata, tri najozbiljnija problema s prijedlogom popravke, i odgovor na pitanje da li prvi zadatak staje u 180 sekundi (NZ-4).Opišite AI asistentu svoj ekran korpe riječima (ili mu, ako alat to dozvoljava, pokažite sliku prototipa, bez ičijih ličnih podataka) i zatražite: „Ocijeni ovaj ekran po Nielsenovih deset heuristika i predloži tri popravke.” Uporedite s nalazima heurističke procjene i testa. Koji problem je AI primijetio, a ljudi nisu, i obrnuto? Primijetite da AI ne može zamijeniti test sa stvarnim ljudima: ne zna gdje će P-2 zastati.
Rezultat koji se predaje: folder ux/ sa personama i putanjom, slikama papirnog prototipa, linkom na Figma prototip, tabelom kontrasta, heurističkom procjenom i izvještajem o testu s pet korisnika.
Rješenja su sakrivena – tipka R ili klik na okvir.
Koji problem je pretežno UI, a koji UX? a) dugme „Naruči” je svijetlosivo na bijelom; b) kupac ne zna da li je narudžba primljena dok ne stigne hrana; c) ikonice jela su različitih veličina; d) cijena na ekranu se razlikuje od iznosa na računu.
a) pretežno UI (izgled), ali s posljedicom na UX i pristupačnost; b) UX (nema vidljivog stanja sistema, heuristika 1); c) UI (dosljednost izgleda); d) UX (povjerenje i ispravnost, i greška u sistemu, ne samo u dizajnu).
Prepišite poruke po heuristici 9: a) „Greška: invalid distance”; b) „Neuspjelo”; c) „Kod nije validan”.
a) „Ova adresa je 11 km od restorana. Dostavljamo do 10 km. Izaberite drugu adresu ili restoran bliže vama.” b) „Plaćanje nije uspjelo. Novac nije skinut s kartice. Pokušajte ponovo ili izaberite drugu karticu.” c) „Kod STUDNT10 ne postoji. Provjerite da li ste ga dobro upisali, npr. STUDENT10.”
Relativna svjetlina bijele je 1, a tamnoplave #1F5FA8 oko 0,113. Izračunajte omjer kontrasta bijelog teksta na tom dugmetu i recite da li prolazi za običan tekst.
K = (1 + 0,05) / (0,113 + 0,05) = 1,05 / 0,163 ≈ 6,4. To je više od 4,5, pa prolazi i za običan i za veliki tekst.
Koliki dio problema, po formuli iz 11.8, otkriju 2 korisnika, a koliki 4? Koliko korisnika treba da se otkrije bar 90 % problema?
P(2) = 1 − 0,69² = 1 − 0,4761 ≈ 52 %. P(4) = 1 − 0,69⁴ ≈ 1 − 0,2267 ≈ 77 %. P(6) = 1 − 0,69⁶ ≈ 1 − 0,1079 ≈ 89 %; P(7) = 1 − 0,69⁷ ≈ 1 − 0,0745 ≈ 93 %. Za bar 90 % treba 7 korisnika.
Na ekranu pregleda DeliveryApp neko predloži: kućica „Doniraj 1,00 € za lokalni sport” unaprijed označena, a ukupni iznos se prikazuje tek na sljedećem ekranu. Šta nije u redu i kako popraviti?
To su dva mračna obrasca: unaprijed označena dodatna stavka (korisnik plaća nešto što nije izabrao) i skriveni trošak (ukupno se vidi tek kasnije), što krši i obećanje iz vizije „bez skrivenih troškova”. Popravka: kućica neoznačena, uz jasan tekst; ukupni iznos, s donacijom ili bez nje, vidljiv na istom ekranu prije plaćanja.