Kurs verifikacija softvera je izborni kurs na master studijama za studente R i I smera. U okviru kursa proučavaju se različite tehnike verifikacije softvera, počevši od dinamičkih pristupa verifikaciji do naprednih tehnika statičke analize. Kurs je, u okviru vežbi, praktično orijentisan na savladavanje upotrebe različitih alata za verifikaciju softvera, a na predavanjima se prelaze osnovni koncepti i teorijske osnove oblasti. Neke od tema na kursu:
Obaveze studenata uključuju predispitne (praktične) obaveze i završni (teorijski) ispit. Predispitne obaveze se mogu ispuniti u formi praktičnog seminarskog rada. Praktični seminarski rad može, po izboru, biti samostalni ili grupni. Da bi se uspesno položio ispit, neophodno je ispuniti prag na predispitnim obavezama i ispitu. Više detalja u nastavku.
U prvoj kolokvijumskoj nedelji se može položiti prva polovina ispita (prva dva teorijska pitanja u terminu predavanja i prvi deo praktičnog seminarskog rada u terminu vežbi). Slično, u drugoj kolokvijumskoj nedelji se može položiti druga polovina ispita.
Učešće u aktivnostima na predavanjima i/ili vežbama može doneti dodatne poene i/ili oslobađanje dela ispita.
Predispitne obaveze se sastoje od obaveznog praktičnog seminarskog rada (samostalnog ili grupnog). Praktični seminarski rad je neophodno prijaviti u toku semestra. Pratiti obaveštenja radi blagovremenog izbora teme. Da bi se položio ispit minimalni broj poena na predispitnim obavezama je 20.
Rok za izradu seminarskog rada je 1. septembar. Praktični seminarski radovi se brane uz prisustvo nastavnika u terminu ispita sa prethodnom prijavom koja se obično objavljuje nedelju dana pred ispit. Očekuje se da student dođe pripremljen za prezentovanje seminarskog rada u svom okruženju (npr. tako što će doneti laptop), predstaviti projekat i odgovoriti na pitanja. Pitanja mogu uključiti i pokretanje alata korišćenih za izradu seminarskog rada ili korišćenih na vežbama, kao i pisanje dodatnih testova tokom odbrane ukoliko su testovi deo seminarskog rada. Praktični seminarski radovi se moraju raditi u repozitorijumima u okviru GitHub organizacije za kurs.
Praktični seminarski rad može biti:
Izrada podrazumeva pokretanje alata za verifikaciju softvera ili pisanje testova nad jednim projektom otvorenog koda. Prilikom odabira projekta, uveriti se da je projekat u dobrom stanju za analizu (prevodi se, kod je citljiv i modularan itd.). Konsultovati FAQ repozitorijum prilikom odabira projekta, kao i za upoznavanje sa čestim problemima tokom analize. Nakon isteka roka za odabir projekta, biće kreirani repozitorijumi za izradu seminarskih radova.
Odbrana je praktična, uz reprodukciju delova seminarskog rada. Neophodno je da sve što se nalazi u repozitorijumu student ume da objasni i reprodukuje na odbrani. Upotreba AI alata je dozvoljena, ali ukoliko student ne ume da objasni bilo koji deo skripti, izveštaja, i drugih artifakata unutar repozitorijuma, mora iznova da radi analizu nad drugim projektom, pri čemu je onda maksimalni broj osvojivih poena umanjen za 10 poena. Zbog toga, vodite računa da unutar repozitorijuma ne ubacite bilo šta što niste dobro proučili i razumeli.
Ciljevi i uslovi izrade praktičnog seminarskog rada:
U okviru repozitorijuma za izradu seminarskog rada, potrebno je da bude napisan README fajl koji sadrži:
Pored README fajla, potrebno je da postoji i (markdown ili PDF) fajl ProjectAnalysisReport koji sadrži detaljan opis analize projekta i zaključcima koji su napravljeni. Referencu na projekat koji se analizira dodati kao git submodul. Svaki alat koji je korišćen treba da ima poseban direktorijum u kome se nalaze rezultati rada alata kao i opcione skripte za pokretanje.
Primer korektne organizacije repozitorijuma se može naći u okviru FAQ repozitorijuma. repozitorijumi koji ne prate navedeni šablon ili nemaju tražene informacije u README fajlu neće biti prihvaćeni! Svi repozitorijumi moraju imati instaliranu CI konfiguraciju.
Forma za prijavu samostalnih seminarskih radova se može naći na sledećem linku (odabrati opciju
Većeg obima, istraživačkog tipa. Teme za projekat su dostupne unapred. Izuzetno, ukoliko imate neku ideju možete da je predložite. Izrada podrazumeva kreiranje novih ili nadograđivanje postojećih alata za verifikaciju softvera, kao i njihovu verifikaciju koristeći barem alate pomenute na vežbama. Nakon odabira projekta, i odgovarajućeg odobrenja od strane nastavnika, biće kreirani repozitorijumi za izradu seminarskih radova. Odbrana je usmena, uz prikaz rada. Nakon odbrane istraživačkog seminarskog rada biće sa profesorkom dogovoren termin za prezentovanje rada.
Spisak predviđenih tema se može naći ovde.
U okviru repozitorijuma za izradu seminarskog rada, potrebno je da bude napisan detaljan README fajl koji sadrži:
Pored README fajla, potrebno je da postoji i fajl SystemDescription (PDF ili markdown fajl) koji sadrži:
Forma za prijavu istraživačkih seminarskih radova se može naći na sledećem linku (ignorisati pitanja vezana za seminarske radove koji se bave analizom projekata otvorenog koda). Nakon završetka izrade, odbrana se dogovara putem maila.
Polaže se pismeno, izvlače se četiri ispitna pitanja sa spiska ispitnih pitanja.
Da bi se položio ispit, neophodno je imati 51 poen, pri čemu je neophodno ostvariti bar 20 poena na teoriji na završnom ispitu i bar 20 poena na predispitnim (praktičnim) obavezama. Od poena na teoriji, neophodno je imati bar 3 poena po pitanju (tj. nije dozvoljeno preskakati oblasti).
U terminu ispitnog roka možete polagati sve delove ispita ili samo jedan deo. Pred izlazak na ispit potrebno je preko forme u okviru strane kursa prijaviti namere (odbrana seminarskog rada, teorijski ispit ili oba). Odbrana praktičnog seminarskog rada može i ne mora da prethodi izlasku na teorijski ispit.
Za sve potencijalne nejasnoće, javite se mejlom!
Anketa za prijavu praktičnih seminarskih radova se nalazi ovde. Anketa važi i za samostalne i istraživačke radove. Za sve detalje o seminarskim radovima, pogledati odeljak o obavezama.
Rok za prijavu je 1. decembar. Nakon isteka roka za prijavu, biće poslate pozivnice za pristup GitHub organizaciji i biće kreirani repozitorijumi za izradu radova.
Projekti otvorenog koda koji su već bili tema za samostalne seminarske radove prethodnih godina se mogu naći ovde. Smernice za odabir projekta za analizu se mogu naći ovde.
Spisak tema za istraživački tip seminarskog rada se može naći ovde.
U kolokvijumskim nedeljama se mogu polagati polovine seminarskih radova. Za samostalne seminarske radove to znači iskoristiti polovinu od neophodnog broja alata. Za istraživačke seminarske radove to znači prezentovanje razumevanja opisa teme kao i preciziranje obima i arhitekture predloženog rešenja. Molimo studente koji planiraju da svoj deo obaveza ispune u kolokvijumskoj nedelji da blagovremeno prijave seminarske radove i da izradu istih započnu u javnim repozitorijumima na GitHub-u (čiji će link biti neophodno podneti prilikom prijave odbrane u prvoj kolokvijumskoj nedelji). Pratiti stranicu za prateća obaveštenja o polaganjima u kolokvijumskim nedeljama.
04. 10. 2026.
06. 10. 2026.