Projektovanje informacionih sistema
Udžbenik i vodič za predavanja – od zahtjeva do sistema koji radi
Uvod: kako je materijal organizovan

Materijale je priredio Erkan Islamović. Kontakt: erkan.islamovic@eubd.edu.ba, erkan.islamovic@gmail.com.
Predmet je Projektovanje informacionih sistema, na studijskom programu Informacione tehnologije (osnovne akademske studije). Predmet je obavezan i nosi 7 ECTS bodova. Nastava traje petnaest sedmica: svake sedmice imamo tri časa teorije i tri časa praktične nastave u računarskoj učionici, ukupno 45 + 45 časova. Petnaest poglavlja knjige je petnaest sedmica. Svako poglavlje ima tri dijela teorije (po jedan čas) i dio „Praktična nastava”, u kojem isti primjer uradimo u alatu.
Zašto ovaj predmet
Skoro svaki program koji koristite (bankarska aplikacija, e-indeks, dostava hrane, red vožnje) neko je prvo projektovao: zapisao šta treba da radi, nacrtao od kojih dijelova se sastoji, odlučio gdje se čuvaju podaci i kako dijelovi razgovaraju. Kad se taj posao preskoči, sistemi kasne godinama, koštaju milione i ne rade ono što su ljudi trebali. Prvo poglavlje počinje s pet istinitih priča o tome, a svako sljedeće poglavlje s jednom.
Dobra vijest je da se projektovanje može naučiti. Ne traži genijalnost, nego naviku da se postave prava pitanja, da se odgovori zapišu i nacrtaju tako da ih razumije i naručilac i programer, i da se svaka odluka provjeri prije nego što postane skupa.
Priča na kojoj vježbamo
Kroz cijelu knjigu projektujemo jedan izmišljeni sistem: DeliveryApp (aplikacija za dostavu), aplikaciju za naručivanje hrane u jednom malom gradu.
Do sada su tri restorana primala narudžbe telefonom. Konobar zapiše narudžbu na papir, kuhar je pročita, a dostavljač traži adresu po sjećanju. Narudžbe se gube, cijene dostave se računaju „od oka”, a niko ne zna koliko je narudžbi bilo prošlog mjeseca. Grad je odlučio da napravi jednu aplikaciju za sve.
U DeliveryApp učestvuju:
- kupci (u primjerima K-01 do K-05), koji biraju jela i plaćaju;
- tri restorana: R-1 Picerija, R-2 Roštilj i R-3 Salatarnica;
- četiri dostavljača (D-1 do D-4) na biciklima i skuterima;
- administrator firme DeliveryApp;
- dva vanjska sistema: sistem plaćanja karticom i servis mapa, koji računa udaljenost.
Prvu narudžbu treba zapamtiti odmah, jer se vraća u svakom poglavlju. Narudžba N-1001: kupac K-01 naručuje iz Picerije R-1 dvije pizze Margarita po 9,50 € i jedan sok od 2,50 €. Artikli koštaju 21,50 €. Adresa je 4,2 km od restorana, pa je dostava 3,00 €, a ukupno 24,50 €. Kako se tačno računa dostava, piše u pravilima DeliveryApp u poglavlju 1 (odjeljak 1.8).
Ljudi, restorani i narudžbe u knjizi ne postoje. Stvarni su samo događaji u pričama na početku poglavlja i u okvirima „Iz stvarnog svijeta”.
Cilj predmeta
Cilj predmeta je da studenti upoznaju probleme projektovanja računarskih i informacionih sistema i usvoje tehnike i alate za njihovo efikasno projektovanje: od prikupljanja zahtjeva korisnika, preko modelovanja procesa, podataka i ponašanja, do arhitekture, sigurnosti, isporuke i održavanja. Studenti uče da rade u agilnom timu i da projektuju sistem koji u cjelini zadovoljava zahtjeve korisnika, uključujući i sisteme koji moraju reagovati u realnom vremenu.
Ishod predmeta
Nakon predmeta student može:
- objasniti od čega se sastoji informacioni sistem i zašto se projektuje prije programiranja;
- izabrati i obrazložiti metodologiju razvoja (vodopad, Scrum, Kanban) i voditi backlog na GitHubu;
- prikupiti zahtjeve i zapisati ih kao provjerljive korisničke priče s kriterijima prihvatanja;
- nacrtati poslovni proces (BPMN), slučajeve korištenja, klasni, sekvencijalni i dijagram stanja u UML-u;
- projektovati relacionu bazu do treće normalne forme i napisati osnovne SQL naredbe;
- predložiti arhitekturu sistema, opisati je C4 dijagramom i zapisati arhitektonsku odluku;
- opisati API u OpenAPI obliku i napraviti mali REST server;
- napraviti prototip ekrana i provjeriti ga s korisnicima;
- prepoznati prijetnje (STRIDE, OWASP) i ugraditi privatnost u dizajn;
- objasniti zahtjeve sistema u realnom vremenu i ulogu redundancije;
- postaviti automatsku provjeru i isporuku (CI/CD, Docker) i odgovorno koristiti AI asistente u svakoj fazi.
Raspored sedmica
| Sedmica | Poglavlje | Teorija (3 časa) | Praktična nastava (3 časa) |
|---|---|---|---|
| 1 | 1 – Zašto projektujemo IS | Uvodne priče; šta je IS; vrste i uloge; DeliveryApp | VS Code, Markdown, GitHub; vizija.md |
| 2 | 2 – Životni ciklus i metodologije | Faze, vodopad, V-model; agilno, Scrum; Kanban, DevOps | GitHub Projects: backlog i sprint |
| 3 | 3 – Zahtjevi | Zainteresovane strane; funkcionalni i nefunkcionalni; korisničke priče | Intervju u paru; 12 korisničkih priča |
| 4 | 4 – Poslovni procesi | AS-IS i TO-BE; dijagram toka i BPMN; DFD | BPMN u draw.io; Mermaid dijagram toka |
| 5 | 5 – UML i slučajevi korištenja | UML; use case dijagram; specifikacija i aktivnosti | Use case „Naruči hranu” |
| 6 | 6 – Klase i objekti | Objekat i klasa; veze; domenski model | classDiagram; klase u Pythonu |
| 7 | 7 – Sekvence i stanja | Sekvencijalni dijagram; dijagram stanja; usklađenost | Mašina stanja u Pythonu |
| 8 | 8 – Baza podataka | ER i tabele; normalizacija; SQL i transakcije | SQLite baza DeliveryApp |
| 9 | 9 – Arhitektura | Slojevi; monolit i mikroservisi, oblak; C4 i ADR | C4 dijagrami, ADR |
| 10 | 10 – Integracija i API | HTTP i REST; JSON i OpenAPI; događaji | FastAPI server, HTTPie |
| 11 | 11 – Korisnički interfejs | Persone; wireframe, prototip, heuristike; pristupačnost | Prototip i test s pet korisnika |
| 12 | 12 – Sigurnost i privatnost | CIA, prijava i uloge; OWASP, STRIDE; GDPR | STRIDE tabela, heš lozinke |
| 13 | 13 – Realno vrijeme i IoT | Rokovi; upravljačka petlja, RTOS; redundancija, IoT | Simulacija rasporeda i alarma |
| 14 | 14 – Kvalitet i isporuka | Verifikacija i validacija; CI/CD, Docker; nadzor | GitHub Actions, Dockerfile |
| 15 | 15 – AI i završni projekat | AI u svakoj fazi; AI u sistemu, rizici; dokumentacija | Odbrana projekta |
Detaljan plan sa sekcijama i fiksnim brojevima je u SADRZAJ.md.
Kako koristiti ovaj materijal
Svako poglavlje ima isti raspored:
- Priča za početak – istinit događaj koji pokazuje zašto je tema važna.
- Riječi ovog poglavlja – kratak rječnik prije čitanja. U ovoj knjizi se ništa ne podrazumijeva.
- Ciljevi i plan poglavlja – šta ćete znati i šta se radi na kojem času.
- Dio 1, Dio 2, Dio 3 – teorija, uvijek na primjeru DeliveryApp.
- Praktična nastava – koraci u alatu i rezultat koji predajete.
- Vježbe za studenta – s rješenjem odmah ispod, da sami ocijenite rezultat.
- Sažetak u pet rečenica, pitanja za ponavljanje i odgovori na njih.
Istaknuti okviri:
- Priča za početak. – istinit događaj s godinom i brojevima.
- Na času. – pitanje ili zadatak koji čitaju svi, i student i predavač.
- Ukratko. – tri do pet teza na kraju svake numerisane sekcije.
- Iz stvarnog svijeta. – još jedan istinit događaj uz temu.
- Broj za pamćenje. – jedan broj koji vrijedi zapamtiti.
- Česta zabluda. – rečenica koja zvuči tačno, a nije, i zašto.
- Za radoznale. – dodatak za one koji hoće više. Nije obavezan za ispit.
- Provjeri se. – tri brza pitanja s odgovorima na kraju svakog dijela.
Na času. Koje ste aplikacije danas već koristili? Izaberite jednu i recite: ko je sve u njoj „učesnik” (vi, firma, banka, kurir…)? Upravo takvo pitanje postavlja projektant prvog dana.
Potrebni alati
- Visual Studio Code (VS Code) – code.visualstudio.com, uz ekstenziju za pregled Mermaid dijagrama u Markdownu. Ovdje pišemo zahtjeve, dijagrame i kod.
- Mermaid – jezik za dijagrame kao tekst; u VS Codeu ili na mermaid.live. Crta UML, ne računa.
- draw.io (diagrams.net) – crtanje mišem, za BPMN i slobodne skice.
- Git i GitHub – verzije dokumenata i koda; GitHub Projects kao tabla zadataka.
- Python 3 s bibliotekom FastAPI i SQLite (dolazi uz Python) – mali server i baza DeliveryApp.
- HTTPie ili Postman – slanje zahtjeva API-ju.
- Figma (besplatan plan) ili papir i olovka – prototip ekrana.
- Docker Desktop – pakovanje i pokretanje servera u kontejneru (poglavlje 14).
- AI asistent po izboru (ChatGPT, Claude, Gemini, Copilot…) – predlaže; mi provjeravamo. Lični podaci i lozinke ne idu u razgovor s AI-jem.
Literatura
Osnovna literatura predmeta:
- B. Popović, K. Kuk: Informacioni sistemi, Kriminalističko-policijski univerzitet, Beograd, 2017.
- J. S. Valacich, J. F. George: Modern Systems Analysis and Design, 9th ed., Pearson, 2020.
- L. Jelenković: Sustavi za rad u stvarnom vremenu – skripta, Fakultet elektrotehnike i računarstva, Zagreb, 2015.
- D. Milićev: Programiranje u realnom vremenu – skripta, Beograd, 2002.
- V. Kovačević, M. Popović: Sistemska programska podrška u realnom vremenu 1: programski alati i paralelno programiranje, Fakultet tehničkih nauka, Novi Sad, 2013.
Dodatna literatura:
- E. Islamović: Projektovanje informacionih sistema – udžbenik (ovaj materijal), Evropski univerzitet Brčko distrikta, 2026.
- A. Tenić, H. Žigić: Menadžment informacionih sistema, EU BD, 2013.
- B. Lazarević, Z. Marjanović, N. Aničić, S. Babarogić: Baze podataka, Fakultet organizacionih nauka, Beograd, 2016.
- I. Sommerville: Software Engineering, 10th ed., Pearson, 2015.
- M. Fowler: UML Distilled, 3rd ed., Addison-Wesley, 2003.
- Zvanična dokumentacija: Mermaid, BPMN (OMG), UML (OMG), SQLite, FastAPI, OpenAPI, OWASP, C4 model.
- Materijali s predavanja i vježbi; preporučeni internet izvori.
Jedna rečenica predmeta
Prije nego što napišemo prvi red koda za DeliveryApp, zapisaćemo ko ga koristi i šta mu treba, nacrtaćemo kako narudžba putuje od mobitela do vrata, i provjeriti da 24,50 € izlazi isto na papiru, u bazi i na ekranu.