Projektovanje informacionih sistema

Udžbenik i vodič za predavanja – od zahtjeva do sistema koji radi

Author

Erkan Islamović

Published

2026 M01 1

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:

  1. Priča za početak – istinit događaj koji pokazuje zašto je tema važna.
  2. Riječi ovog poglavlja – kratak rječnik prije čitanja. U ovoj knjizi se ništa ne podrazumijeva.
  3. Ciljevi i plan poglavlja – šta ćete znati i šta se radi na kojem času.
  4. Dio 1, Dio 2, Dio 3 – teorija, uvijek na primjeru DeliveryApp.
  5. Praktična nastava – koraci u alatu i rezultat koji predajete.
  6. Vježbe za studenta – s rješenjem odmah ispod, da sami ocijenite rezultat.
  7. 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:

  1. B. Popović, K. Kuk: Informacioni sistemi, Kriminalističko-policijski univerzitet, Beograd, 2017.
  2. J. S. Valacich, J. F. George: Modern Systems Analysis and Design, 9th ed., Pearson, 2020.
  3. L. Jelenković: Sustavi za rad u stvarnom vremenu – skripta, Fakultet elektrotehnike i računarstva, Zagreb, 2015.
  4. D. Milićev: Programiranje u realnom vremenu – skripta, Beograd, 2002.
  5. 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:

  1. E. Islamović: Projektovanje informacionih sistema – udžbenik (ovaj materijal), Evropski univerzitet Brčko distrikta, 2026.
  2. A. Tenić, H. Žigić: Menadžment informacionih sistema, EU BD, 2013.
  3. B. Lazarević, Z. Marjanović, N. Aničić, S. Babarogić: Baze podataka, Fakultet organizacionih nauka, Beograd, 2016.
  4. I. Sommerville: Software Engineering, 10th ed., Pearson, 2015.
  5. M. Fowler: UML Distilled, 3rd ed., Addison-Wesley, 2003.
  6. Zvanična dokumentacija: Mermaid, BPMN (OMG), UML (OMG), SQLite, FastAPI, OpenAPI, OWASP, C4 model.
  7. 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.