Dio 1 – Proces, AS-IS i TO-BE
Dio 2 – Dijagram toka i BPMN
Dio 3 – Kontekstni dijagram i DFD
Praksa – BPMN u draw.io; tok u Mermaidu
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 4 (Sedmica 4, 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 |
Početkom dvadesetog vijeka automobil je bio igračka bogatih. U fabrici Henryja Forda u Highland Parku, kraj Detroita, jedan automobil Model T sklapala je grupa radnika na jednom mjestu: šasija je stajala, a ljudi su oko nje donosili dijelove. Jedan automobil trajao je oko dvanaest i po sati. Ford i njegovi inženjeri nisu izmislili novi motor ni novi materijal. Uradili su nešto što danas zovemo modelovanje procesa: rastavili su posao na male korake, poredali ih i zapitali se gdje se gubi vrijeme. Zaključak je bio da radnici više hodaju i čekaju nego što rade. Godine 1913. okrenuli su logiku: umjesto da ljudi idu do automobila, automobil je na pokretnoj traci išao od radnika do radnika, a svaki je radio jedan korak. Prema muzeju The Henry Ford, novi način sklapao je Model T za oko 93 minute. Automobil je postao jeftiniji, a fabrike širom svijeta počele su crtati svoje procese. Ista ideja, da se posao prvo nacrta pa onda popravlja, i danas je prvi korak svakog informacionog sistema.
U poglavlju 3 zapisali smo šta zainteresovane strane traže od DeliveryApp, kao korisničke priče. Priče su korisne, ali svaka opisuje jedan komad posla. Ne vidi se redoslijed: šta se dešava prvo, ko čeka koga, gdje se posao grana i gdje se gubi vrijeme. To pokazuje model procesa. U ovom poglavlju prvo opisujemo kako narudžba teče danas, telefonom, i mjerimo gdje se gubi vrijeme. Zatim crtamo dijagram toka i proces u standardnom jeziku BPMN, s plivačkim stazama za kupca, DeliveryApp, restoran i dostavljača. Na kraju crtamo kako podaci teku kroz sistem (DFD). Na praktičnoj nastavi crtamo BPMN u draw.io i dijagram toka u Mermaidu.
Nakon poglavlja možete:
definisati poslovni proces i navesti njegov ulaz, aktivnosti, izlaz i vlasnika; opisati AS-IS proces narudžbe telefonom i označiti probleme; izračunati efikasnost toka procesa prije i poslije DeliveryApp; nacrtati dijagram toka s odlukama za obračun dostave; prepoznati i nacrtati osnovne elemente BPMN-a (događaj, aktivnost, kapija, tok, bazen i staza); razlikovati ekskluzivnu i paralelnu kapiju; nacrtati BPMN proces narudžbe DeliveryApp sa četiri staze; nacrtati kontekstni dijagram i DFD prvog nivoa; prepoznati grešku „crna rupa” i „čudo” u DFD-u; iz aktivnosti procesa izvesti korisničke priče.
| Čas | Sadržaj | Na času |
|---|---|---|
| Teorija 1 | 4.1–4.3 Proces, AS-IS i TO-BE, mjerenje | Narudžba telefonom: 50 minuta, efikasnost 54 % |
| Teorija 2 | 4.4–4.6 Dijagram toka i BPMN | Odluka o dostavi; četiri staze narudžbe |
| Teorija 3 | 4.7–4.9 Kontekstni dijagram, DFD, od procesa do zahtjeva | Gdje miruje narudžba? |
| Praksa 1–3 | draw.io BPMN; Mermaid dijagram toka; DFD | Proces narudžbe DeliveryApp |
Poslovni proces je niz aktivnosti kojim organizacija od nekog ulaza dođe do rezultata koji nekome ima vrijednost. Svaki proces ima pet stvari:
Slika iz života: proces je kao recept. Ima sastojke (ulaz), korake redom (aktivnosti), kuhara (učesnik) i jelo na kraju (rezultat). Ali za razliku od recepta, poslovni proces često ima više kuhara koji jedan drugom dodaju posao, i baš na tim „dodavanjima” se posao najčešće zaglavi.
Zašto informacioni sistem počinje od procesa? Zato što sistem nije cilj sam po sebi. Cilj je da proces radi bolje: brže, s manje grešaka, jeftinije. Ako ne znamo kako proces teče danas, ne znamo ni šta sistem treba da popravi. Sjetite se Forda: prvo su nacrtali posao, pa tek onda izmislili traku.
Analitičar uvijek crta dvije verzije procesa. AS-IS (engleski „kako jeste”) je proces kakav se danas zaista radi, sa svim prečicama, papirićima i problemima. TO-BE („kako će biti”) je proces kakav želimo s novim sistemom.
AS-IS se crta po posmatranju i intervjuima (poglavlje 3), a ne po tome kako bi proces „trebao” izgledati. Ako vlasnik kaže „konobar uvijek ponovi narudžbu kupcu”, a posmatranje pokaže da to radi rijetko, u AS-IS ide ono što je posmatranje pokazalo.
Evo AS-IS procesa narudžbe telefonom u Piceriji R-1, kako ga je analitičar zapisao jednog podneva:
| Korak | Ko | Šta radi | Problem koji je uočen |
|---|---|---|---|
| 1 | kupac | zove restoran | zauzeta linija u vrijeme ručka |
| 2 | konobar | zapisuje narudžbu i adresu na papir | pogrešno čuje broj kuće |
| 3 | konobar | računa cijenu „od oka” | dostava različita za istu ulicu |
| 4 | konobar | nosi papir u kuhinju | papir se zaturi među druge |
| 5 | kuhar | priprema jela | ne zna koja narudžba je prva |
| 6 | konobar | zove dostavljača | dostavljač je na drugoj vožnji |
| 7 | dostavljač | traži adresu | zove kupca s puta |
| 8 | dostavljač | naplaćuje gotovinom | nema sitnog novca |
TO-BE s DeliveryApp mijenja skoro svaki korak: kupac sam bira jela i vidi tačnu cijenu (koraci 1–3 nestaju za konobara), narudžba se pojavi na ekranu kuhinje redom (koraci 4–5), DeliveryApp sam nudi narudžbu slobodnom dostavljaču s adresom na mapi (koraci 6–7), a plaćanje je karticom unaprijed (korak 8).
„Novi sistem treba samo ubrzati stari proces.” Ako se loš proces samo kompjuterizuje, dobija se brži loš proces. Ford nije napravio brža kolica za radnike, nego je promijenio ko se kreće. Zato se TO-BE crta tek kad je AS-IS shvaćen, i pita se koji koraci uopšte trebaju postojati.
Da bismo znali je li TO-BE zaista bolji, proces treba izmjeriti. Najkorisnija mjera je trajanje, podijeljeno na dva dijela:
Analitičar je u Piceriji R-1 izmjerio prosječnu narudžbu telefonom:
| Korak | AS-IS (min) | TO-BE (min) | Vrsta |
|---|---|---|---|
| prijem narudžbe | 3 | 1 (restoran prihvati na ekranu) | čekanje |
| prepisivanje i računanje | 2 | 0 | čekanje |
| čekanje da kuhar počne | 10 | 3 | čekanje |
| priprema | 15 | 15 | rad |
| čekanje dostavljača | 8 | 4 | čekanje |
| vožnja | 12 | 12 | rad |
| ukupno | 50 | 35 |
Vrijeme rada je u oba slučaja isto: 15 + 12 = 27 minuta. DeliveryApp ne peče pizzu brže i ne vozi brže. Smanjuje samo čekanje: s 3 + 2 + 10 + 8 = 23 na 1 + 0 + 3 + 4 = 8 minuta.
Udio rada u ukupnom vremenu zove se efikasnost toka:
Čemu služi. Efikasnost toka pokazuje koliki dio vremena kupčeve narudžbe je zaista posvećen njoj. Za AS-IS: E = 27 / 50 × 100 % = 54 %. Za TO-BE: E = 27 / 35 × 100 % ≈ 77 %. Kupac dobija hranu 15 minuta ranije, a da niko u kuhinji nije morao raditi brže. U mnogim stvarnim procesima (odobrenje kredita, prijem u bolnicu) efikasnost toka je ispod 10 %: dokument devet dana čeka, a jedan dan se na njemu radi.

Odgovori: tipka R ili klik na zamućeno polje.
Dijagram toka (engleski flowchart) je najstariji i najjednostavniji način da se nacrta postupak. Koristi četiri simbola:
| Simbol | Oblik | Značenje |
|---|---|---|
| početak / kraj | oval | gdje postupak počinje i završava |
| radnja | pravougaonik | jedan korak („izračunaj artikle”) |
| odluka | romb | pitanje s odgovorima da/ne („iznos ≥ 30 €?”) |
| tok | strelica | šta slijedi poslije čega |
Dijagram toka je idealan za jedno pravilo s odlukama, kao što je obračun dostave DeliveryApp. Evo pravila PP-1 do PP-4 kao Mermaid dijagram:
flowchart TD
S(["Početak"]) --> A["Saberi artikle"]
A --> B{"Iznos < 5,00 €?"}
B -- da --> X1(["Odbij: manje od najmanje narudžbe"])
B -- ne --> C{"Udaljenost > 10 km?"}
C -- da --> X2(["Odbij: izvan zone"])
C -- ne --> D{"Iznos ≥ 30,00 €?"}
D -- da --> F["Dostava = 0,00 €"]
D -- ne --> E["Dostava = 2,00 € + 0,50 € × započeti km preko 3"]
F --> K(["Prikaži ukupno"])
E --> KPročitajmo dijagram kao rečenicu za N-1001: saberi artikle (21,50 €); je li manje od 5,00 €? Ne. Je li udaljenost veća od 10 km? Ne (4,2 km). Je li iznos 30,00 € ili više? Ne. Dostava je 2,00 + 0,50 × 2 = 3,00 €; prikaži ukupno 24,50 €.
Primijetite da dijagram natjera da odlučimo redoslijed provjera. Ako je narudžba 4,50 € na 11 km, koju poruku kupac vidi? Po ovom dijagramu „manje od najmanje narudžbe”, jer se iznos provjerava prvi. To je projektna odluka koju treba dogovoriti s vlasnicima, a dijagram ju je izbacio na vidjelo.

Dijagram toka nema dogovoren način da pokaže ko radi koji korak, šta se dešava istovremeno i kako učesnici razmjenjuju poruke. Za to je napravljen BPMN (Business Process Model and Notation), međunarodni standard koji održava organizacija OMG. Verzija 2.0 objavljena je 2011. godine i od tada je najrašireniji jezik za poslovne procese: crtaju ga i analitičari i ljudi iz posla, a neki programi ga mogu i izvršavati.
BPMN ima mnogo simbola, ali za devet desetina dijagrama dovoljno je pet grupa:
| Grupa | Oblik | Primjeri |
|---|---|---|
| Događaj | krug: tanak = početni, dvostruk = srednji, debeo = završni | „kupac otvorio aplikaciju”, „prošlo 10 minuta”, „narudžba isporučena” |
| Aktivnost | zaobljen pravougaonik | „pripremi jela”, „naplati karticom” |
| Kapija | romb: s X = ekskluzivna, s + = paralelna | „prihvata li restoran?”, „istovremeno: kuhinja i traženje dostavljača” |
| Tok | puna strelica = redoslijed u istoj organizaciji; isprekidana = poruka između organizacija | |
| Bazen i staza | veliki pravougaonik (bazen) podijeljen na pojaseve (staze) | bazen „DeliveryApp” sa stazama „Aplikacija”, „Restoran”, „Dostavljač” |
Kapije zbunjuju početnike, pa ih razdvojimo:
Slika iz života: ekskluzivna kapija je raskrsnica na kojoj vozač bira jedan put. Paralelna kapija je porodica koja se na ulazu u tržni centar razdvoji: jedni idu po hranu, drugi po odjeću, i svi se nađu na izlazu prije nego što krenu kući.
Bazen (pool) predstavlja jednog samostalnog učesnika, obično organizaciju: DeliveryApp, sistem plaćanja. Staze (lanes) dijele bazen po ulogama unutar te organizacije. Ime dolazi od plivačkog bazena podijeljenog na staze: svaki plivač ostaje u svojoj stazi, a tok preko staza pokazuje kako se posao predaje.
Važno pravilo: puna strelica (tok redoslijeda) ne prelazi granicu bazena. Između bazena idu samo poruke (isprekidane strelice), jer jedna organizacija ne može drugoj narediti redoslijed rada; može joj samo poslati poruku.

Spojimo sve u jedan TO-BE proces. U bazenu DeliveryApp su četiri staze: Kupac (koristi aplikaciju), Aplikacija DeliveryApp (sistem), Restoran i Dostavljač. Sistem plaćanja je poseban bazen, jer je to druga firma.
Proces, rečenicu po rečenicu:
U BPMN-u ovaj proces crtamo u alatu draw.io (praktična nastava), koji ima sve BPMN simbole. Mermaid nema BPMN simbole, ali staze i tok možemo približno pokazati njegovim dijagramom toka s grupama (subgraph); slika 4.4 je nacrtana tako.

Gdje u ovom procesu može doći do čekanja koje kupca nervira? Šta bi aplikacija mogla uraditi ako restoran ne odgovori na narudžbu ni nakon 5 minuta? (Jedna mogućnost: srednji događaj „prošlo 5 minuta” automatski odbije narudžbu i vrati novac. To je novi zahtjev za backlog.)
Odgovori: tipka R ili klik na zamućeno polje.
BPMN pokazuje ko šta radi i kojim redom. Ali ne pokazuje dobro koji podaci putuju i gdje se čuvaju. Za to postoji dijagram toka podataka, skraćeno DFD (data flow diagram). DFD je stariji od UML-a i BPMN-a (nastao je sedamdesetih godina dvadesetog vijeka), ali je i danas koristan, jer na jednoj slici pokaže gdje podaci ulaze u sistem, gdje se mijenjaju i gdje miruju.
DFD ima četiri simbola:
| Simbol | Oblik | Značenje | Primjer |
|---|---|---|---|
| vanjski entitet | pravougaonik | ko daje ili prima podatke, a nije dio sistema | Kupac, Restoran |
| proces | krug ili zaobljen pravougaonik | ono što podatke mijenja | „Izračunaj cijenu” |
| skladište podataka | dvije paralelne linije ili otvoren pravougaonik | gdje podaci miruju | D1 Narudžbe |
| tok podataka | strelica s nazivom podatka | koji podatak putuje | „stavke i adresa” |
Najviši nivo DFD-a zove se kontekstni dijagram (ili DFD nivoa 0). Na njemu je cijeli sistem jedan krug, a oko njega su vanjski entiteti i podaci koje razmjenjuju sa sistemom. Kontekstni dijagram odgovara na pitanje: gdje su granice sistema? Šta je unutra (što mi pravimo), a šta je vani (s čim samo razgovaramo)?
Za DeliveryApp su vani: Kupac, Restoran, Dostavljač, Sistem plaćanja i Servis mapa. Ovaj dijagram smo zapravo nacrtali još u poglavlju 1 (slika 1.4), samo sada svaku strelicu imenujemo podatkom.

Kad je granica jasna, krug „DeliveryApp” otvaramo i gledamo unutra. DFD prvog nivoa dijeli sistem na glavne procese i pokazuje skladišta podataka:
Skladišta: D1 Narudžbe, D2 Jelovnik, D3 Kupci (adresa i telefon).
Brojevi procesa (1.0, 2.0…) nisu redoslijed, nego oznake, da bi se proces 2.0 kasnije mogao otvoriti u još detaljniji dijagram s procesima 2.1, 2.2…

Treće pravilo: podaci ne idu direktno iz jednog skladišta u drugo, niti od vanjskog entiteta u skladište. Uvijek ih neki proces premjesti. Tako se zna ko je odgovoran za promjenu.
Model procesa nije sam sebi cilj. Iz njega se provjeravaju i dopunjuju zahtjevi iz poglavlja 3. Pravilo je jednostavno: svaka aktivnost u stazi „Aplikacija DeliveryApp” i svaki proces u DFD-u mora imati bar jednu korisničku priču, a svaka kapija i svaki događaj mogu otkriti novu.
| Element modela | Postojeća priča? | Nova priča ili pitanje |
|---|---|---|
| aktivnost „izračunaj ukupnu cijenu” | da (kupac vidi cijenu dostave) | – |
| kapija „restoran prihvata?” | da (restoran prihvata ili odbija) | Šta kupac vidi dok čeka odgovor? |
| događaj „prošlo 5 minuta bez odgovora” | ne | Kao kupac, želim da mi se novac automatski vrati ako restoran ne odgovori za 5 minuta. |
| paralelna kapija „kuhinja i dostavljač” | ne | Kao dostavljač, želim dobiti ponudu dok se jela još pripremaju, da ne bih čekao. |
| skladište „D3 Kupci” | ne | Kao kupac, želim sačuvati adresu, da je ne kucam svaki put (uz NZ-5 o brisanju). |
Ovako model i backlog rastu zajedno. Ako postoji priča koja se ne vidi ni u jednom modelu, i to je signal: ili model nije potpun, ili priča ne pripada ovom sistemu.
Odgovori: tipka R ili klik na zamućeno polje.
Cilj je nacrtati proces narudžbe DeliveryApp na tri načina (dijagram toka, BPMN, DFD) i izmjeriti AS-IS i TO-BE. Svi fajlovi idu u repozitorij deliveryapp-projekat, u novi folder modeli/.
modeli/dostava.md prepišite Mermaid dijagram iz 4.4 (prvi red bloka mora biti mermaid).<, ≥ i zagradama.modeli/narudzba.drawio).modeli/narudzba.png.modeli/dfd.md nacrtajte kontekstni dijagram kao Mermaid flowchart LR: DeliveryApp kao krug (( )), pet vanjskih entiteta kao pravougaonici, svaka strelica s nazivom podatka.[("D1 Narudžbe")] (cilindar).U modeli/proces.md napravite tabelu koraka iz 4.3 i izračunajte efikasnost toka za AS-IS i TO-BE. Zatim zamislite da restoran ne prihvata narudžbu odmah, nego prosječno za 4 minute umjesto 1: kolika je tada TO-BE efikasnost?
Za svaki događaj i kapiju u svom BPMN dijagramu provjerite postoji li korisnička priča u GitHub Issues. Dodajte bar dvije nove priče koje je crtanje otkrilo, s kriterijima Dato–Kada–Tada.
Dajte AI asistentu tekstualni opis procesa iz 4.6 i svoj Mermaid DFD, i zatražite: „Nađi procese bez ulaza ili izlaza i tokove koji idu direktno između skladišta.” Svaku prijavljenu grešku provjerite sami na dijagramu prije nego što je ispravite.
Rezultat koji se predaje: folder modeli/ s dijagramom toka (dostava.md), BPMN dijagramom (narudzba.drawio i narudzba.png), DFD-om (dfd.md) i tabelom mjerenja (proces.md), te bar dvije nove korisničke priče.
Rješenja su sakrivena – tipka R ili klik na okvir.
Za proces „upis na fakultet” navedite okidač, tri aktivnosti, učesnike, rezultat i vlasnika.
Okidač: kandidat preda prijavu. Aktivnosti: provjera dokumenata, prijemni ispit, objava rang-liste (i upis). Učesnici: kandidat, studentska služba, komisija za prijemni. Rezultat: upisan student s indeksom. Vlasnik: prodekan za nastavu ili sekretar fakulteta (zavisno od organizacije). Prihvatljivi su i drugi tačni primjeri.
U Roštilju R-2 narudžba telefonom traje: prijem 4 min, prepisivanje 2, čekanje roštilja 6, pečenje 12, pakovanje 2, čekanje dostavljača 10, vožnja 8. Pečenje, pakovanje i vožnja su vrijeme rada. Izračunajte efikasnost toka. Šta bi se desilo kad bi DeliveryApp smanjio prijem na 1 minutu, prepisivanje na 0 i čekanje dostavljača na 3?
Ukupno 4 + 2 + 6 + 12 + 2 + 10 + 8 = 44 min. Rad 12 + 2 + 8 = 22 min. E = 22 / 44 = 50 %. Sa DeliveryApp: 1 + 0 + 6 + 12 + 2 + 3 + 8 = 32 min, E = 22 / 32 ≈ 69 %.
Ekskluzivna ili paralelna? a) „Plaćanje odobreno?” b) „Poslije isporuke: pošalji kupcu račun mailom i zatraži ocjenu restorana.” c) „Je li adresa dalje od 10 km?”
a) ekskluzivna (ili da, ili ne); b) paralelna (oba se rade, nezavisno jedno od drugog); c) ekskluzivna.
U DFD-u postoje tokovi: „Kupac → D3 Kupci: adresa” i „4.0 Proslijedi restoranu → Restoran: narudžba”, a proces 4.0 nema nijedan ulaz. Koje su dvije greške i kako ih ispraviti?
Prva greška: vanjski entitet piše direktno u skladište; ispravka je da adresu primi proces (npr. 1.0 Primi narudžbu) i on je upiše u D3. Druga greška: proces 4.0 je „čudo” (daje narudžbu, a ništa ne prima); ispravka je dodati ulaz, npr. „D1 Narudžbe → 4.0: plaćena narudžba” ili tok od 3.0 Naplati.
Nacrtajte (na papiru ili u Mermaidu) dijagram toka pravila PP-6: kupac traži otkazivanje; ako je narudžba u stanju NOVA ili PRIHVAĆENA, otkazuje se i novac vraća; inače kupac vidi poruku. Pratite dijagram za narudžbu u stanju U_PRIPREMI.
Početak → „Kupac traži otkazivanje” → romb „Stanje je NOVA ili PRIHVAĆENA?” → da: „Postavi stanje OTKAZANA” → „Vrati novac” → kraj; ne: „Prikaži: priprema je počela, otkazivanje nije moguće” → kraj. Za U_PRIPREMI odgovor na romb je „ne”, pa kupac vidi poruku i narudžba ostaje u pripremi.