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.
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.
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. epozitorijumi 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 samostalnih seminarskih radova se može naći na sledećem linku (ignorisati pitanja vezana za samostalne seminarske radove).
Polaže se pismeno, izvlače se četiri ispitna pitanja sa spiska ispitnih pitanja (spisak za prva dva ispitna pitanja, ostatak će biti objavljen naknadno).
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!
Svim studentima su rezultati testa uneti u tabelu sa rezultatima. Ukoliko neki rezultat nedostaje, javite se mejlom. Uvid u radove je u pauzi između predavanja.
24.01.2026.
Kreirani su timovi i repozitorijumi za izradu samostalnih i istraživačkih seminarskih radova. Timovi i repozitorijumi se mogu pronaći u okviru VS GitHub organizacije.
Za prijave od prethodne godine, bilo neizmenjene ili ažurirane, koristi se isti repozitorijum. Ukoliko ste prijavili projekat prethodne godine i ažurirali prijavu ove godine, nastavljate rad u istom repozitorijumu od prošle godine. Molimo da u tom slučaju preimenujete ime repozitorijuma da odgovara novoodabranom repozitorijumu za analizu.
14. 01. 2025.
Raspored polaganja teorijskog testa se može pronaći u nastavku. Test se održava 12. januara u Jagićevoj, učionica JAG3. Molimo studente da dođu barem 10 minuta pre navedenog termina kako bismo što efikasnije organizovali ispit.
Vežbe će se održati pre testa, u terminu od 13h do 16h u učionici JAG3.
| Ime i prezime | Broj indeksa | Termin |
|---|---|---|
| Nikola Milosevic | 1063/2024 | 16:00 |
| Anđela Jovanović | 1035/2025 | 16:00 |
| Anja Cvetkovic | 1009/2024 | 16:00 |
| Jelena Ivanovic | 1133/2025 | 16:00 |
| Aleksa Antic | 1045/2025 | 16:00 |
| Marko Bura | 1040/2024 | 16:00 |
| Lazar Dačković | 1037/2025 | 16:00 |
| Lana Matić | 1009/2025 | 16:00 |
| Dimitrije Radjenovic | 1084/2024 | 16:00 |
| Dimitrije Radjenovic | 1084/2024 | 16:00 |
| Bojan Velickovic | 1070/2024 | 16:00 |
| Sara Misic | 1100/2024 | 16:00 |
| David Aksović | 1048/2025 | 16:00 |
| Luka Stanković | 1055/2024 | 16:00 |
| Luka Djekic | 1021/2025 | 16:00 |
| Jovan Ranđelović | 1088/2023 | 17:00 |
| Milica Tosic | 1036/2025 | 17:00 |
| Iva Citlucanin | 1033/2024 | 17:00 |
| Radenko Nikolic | 1049/2024 | 17:00 |
| Marko Lazarević | 1005/2025 | 17:00 |
| Milena Miladinovic | 1098/2024 | 17:00 |
| Branko Grbic | 1015/2024 | 17:00 |
| Marija Bozic | 1044/2023 | 17:00 |
| Valentina Tošić | 1022/2025 | 17:00 |
| Bogdan Tomic | 1040/2025 | 17:00 |
| David Toholj | 1013/2025 | 17:00 |
| Bogdan Stojadinovic | 1028/2025 | 17:00 |
| Jelena Lazovic | 1045/2024 | 17:00 |
| Milos Kutlesic | 1046/2022 | 17:00 |
| Mileva Simic | 1023/2024 | 17:00 |
| Lazar Savić | 1004/2025 | 17:00 |
| Marijana Čupović | 1018/2025 | 17:00 |
| Jovan Skoric | 1030/2024 | 17:00 |
| Nikola Kuburović | 1048/2024 | 17:00 |
| Milica Gajić | 1023/2022 | 17:00 |
| Julijana Jevtić | 1131/2025 | 17:00 |
| Marko Koprivica | 1010/2025 | 17:00 |
| Aleksandra Labović | 1025/2024 | 17:00 |
7. 1. 2026.
Svim studentima sam poslala mejl povodom otkazivanja predavanja usled bolesti.
Danas na casu je trebalo da obradimo semantiku programskih jezika i preglede koda. Zamolila bih Vas da te lekcije odslusate online. Lekcije se mogu naci na narednom linku.
Za sva pitanja i u slucaju potrebnih dodatnih konsultacija, javite mi se mejlom pa cemo se po potrebi dogovoriti za odgovarajuci online termin.
29.12.2025.
Molimo sve studente koji planiraju da izađu na teorijski test 12. januara da popune narednu formu najkasnije do 07.01.2026. godine.
Nakon isteka roka za prijavu, biće okačen raspored polaganja. Test će se održati u toku poslednja dva časa vežbi, a vežbe će biti pomerene u termin predavanja.
27. 12. 2025.
Poslate su pozivnice za pristup GitHub organizaciji za izradu seminarskih radova. Molimo sve studente koji su se prijavili a nisu već članovi organizacije da provere svoje GitHub naloge i prihvate pozivnice do 07.01.2026.
Timovi i repozitorijumi za izradu seminarskih radova će se napraviti nakon što se svi studenti priključe organizaciji.
26. 12. 2025.
6. 12. 2025.
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.
Napomena: Obaveze su ažurirane u odnosu na prethodne godine.
Rok za prijavu je 25. 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.
25. 11. 2025.
12. 11. 2025.