Oblast programiranje
[1] Navesti sve faze u sklopu rješavanja problema i ukratko ih objasniti?
[2] U procesu rješavanja problema, šta predstavlja faza identifikacije?
[3] U procesu rješavanja problema, šta predstavlja faza dekompozicije (razlaganja)?
[4] U procesu rješavanja problema, šta predstavlja faza definisanja algoritma?
[5] Sa stanovišta strukture algoritma moguće je izolovati dva osnovna pristupa uz oslonac na dekompoziciju. Navesti ih i u kratko objasniti.
[6] Navesti prednosti i mane pristupa odozgo prema dole (Top-down) i odozdo prema gore (Bottom-up).
[7] Navedite osnovne korake (6) u postupku razvoja programskih rješenja.
[8] Navedite četiri osnovne grupe dokumentacije u sklopu programskih rješenja.
[9] Navedite tri osnovne podgrupe u sklopu programske dokumentacije.
[10] Šta se podrazumijeva pod pojmom IN-LINE programska dokumentacija?
[11] Šta se podrazumijeva pod pojmom ON-LINE programska dokumentacija?
[12] Šta se podrazumijeva pod pojmom OPERATIVNA programska dokumentacija?
[13] Koja tri koraka obuhvata UVOĐENJE U EKSPLOATACIJU programskog rješenja?
[14] Objasnite potrebu postojanja koraka IZVOĐENJA IZ EKSPLOATACIJE PROGRAMSKOG RJEŠENJA.
Oblast JAVA programiranje
[15] U sklopu JAVA programskog jezika, KLASA ima dvije fundamentalno različite uloge. Navedite ih.
[16] Šta se podrazumijeva pod blokom (block statement) u sklopu JAVA programskog jezika? Koja je njegova namjena?
[17] Pretpostavite da “crna kutija” posjeduje interfejs i implementaciju. U čemu se, u tom slučaju, sastoji osnovna razlika između pojmova interfejs i implementacija?
[18] Navedite dva osnovna razloga korišćenja imenovanih konstanti (deklaracija final) u sklopu JAVA programskog jezika.
[19] Šta u sklopu JAVA deklaracija predstavlja null i kakva je uloga ove deklaracije?
[20] Šta je konstruktor i kakva je njegova uloga u sklopu JAVA klase?
[21] Šta je osnovna uloga polimorfizma u objektnom programiranju?
[22] JAVA programski jezik koristi “garbage collection” za rukovanje memorijom. Šta je njegova uloga?
[23] Šta je alternativa za korišćenje “garbage collection” i koje posljedice po JAVA programe ona može imati?
[24] Šta, po vašem mišljenju, znači konstatacija da je program robustan?
[25] Šta, u objektnom programiranju, pedstavljaju preduslovi (preconditions)? Navedite jedan primjer preduslova.
[26] JAVA posjeduje predefinisanu klasu Throwable. Šta ona predstavlja? Koja je njena uloga?
[27] Neke grupe izuzetaka (exceptions) zahtijevaju obavezno rukovanje (mandatory exception handling). Šta to znači?
[28] Zbog čega metode treba da “bace izuzetak” u slučaju njegovog nastanka? Zašto samo ne bi prekinuli dalje izvršenje programa?
[29] ЈАVА prоgrаmski јеzik kоristi “garbage collection” zа rukоvаnjе mеmоriјоm. Štа је njеgоvа ulоgа?
[30] Štа је to podrazumijevani kоnstruktоr (default constructor) i kаkvа је njеgоvа ulоgа u sklоpu ЈАVА klаsе?
[31] Detaljno opisati namjenu konstruktora, kao i njegovo nasljeđivanje u sklopu ЈАVА klаsе?
[32] Navesti dva načina na koji se može proslijediti nepoznat broj argumenata metodi u programskom jeziku JAVA? Ilustrovati odgovor.
[33] ЈАVА pоsjеduје try…catch…finally izraz. Štа predstavlja svaki od definisanih blokova i koja je njihova ulоgа? Da li catch blok može obuhvatiti više izuzetaka?
[34] Navesti dvije grupe izuzetaka u programskom jeziku JAVA i ukratko ih objasniti.
[35] Na koji način se rukuje izuzecima u programskom jeziku JAVA?
[36] Kada se izvršava finally blok u try…catch…finally izrazu i koja je njegova namjena.
[37] Koje su prednosti korištenja izuzetaka (Exception) u programskom jeziku JAVA?
[38] Šta predstavljaju statičke promjenljive u programskom jeziku Java?
[39] Objasniti namjenu ključne riječi FINAL u programskom jeziku Java.
[40] Objasniti namjenu ključne riječi THIS u programskom jeziku Java.
[41] Objasniti namjenu ključne riječi SUPER u programskom jeziku Java.
[42] Koja je osnovna razlika između primitivnih i složenih tipova podataka u programskom jeziku Java? Navesti sve primitivne tipove podataka.
[43] Na koji način se može proširiti interfejs u programskom jeziku Java?
[44] Da li se može instancirati objekat čija klasa posjeduje barem jednu apstraktnu metodu?
[45] Apstrakne klase u programskom jeziku Java su?
[46] Interfejsi u programskom jeziku Java su?
[47] Kako se u programskom jeziku Java prosljeđuju primitivni tipovi podataka, a kako složeni?
[48] Objasniti razliku INTERFEJSA, APSTRAKTNE KLASE i KLASE. Navesti njihovu deklaraciju u ЈАVА prоgrаmskоm јеziku.
[49] Šta predstavljaju nabrojivi (enumerativni) tipovi podataka?
[50] Kako se u JAVA programskom jeziku definišu nabrojivi (enumerativni) tipovi podatka? Dati primjer.
[51] Gdje sve možemo deklarisati nabrojiv tip (enum) podataka?
[52] Koja je uloga konstruktora u nabrojivim tipovima (enumerativa)?
[53] Dati primjer upotrebe nabrojivog tipa podatka (enumerativa). Koja je uloga nabrojivog tipa podatka?
[54] Šta predstavljaju paketi u JAVA programskom jeziku?
[55] Kako se definiše paket u JAVA programskom jeziku? Šta se dešava u slučaju da paket nije definisan za klasu, interfejs, enumerativ, …?
[56] Kada dolazi do „kolizije“ paketa? Na koji način se izbjegava kolizija paketa?
[57] Da bi koristili klasu, interfejs, enum, … iz nekog paketa, na koje sve načine možemo to uraditi?
[58] Šta predstavlja puno ime klase, interfejsa, enumerativa, …?
[59] Šta predstavljaju moduli? Na koji način ih možemo uključiti u projekat?
[60] Opisati na koji način se deklarišu varijable u programskom jeziku JAVA.
[61] Koji sve modifikatori postoje u programskom jeziku JAVA? Dati opis za svaki.
[62] Koja je uloga default metode interfejsa u programskom jeziku JAVA? Dati primjer deklaracije.
[63] Koja je uloga statičkih metoda u sklopu interfejsa u programskom jeziku JAVA? Dati primjer deklaracije.
[64] U slučaju proširivanja interfejsa koji sadrži default metode, šta je moguće uraditi sa default metodama?
[65] Šta predstavljaju kolekcije u JAVA programskom jeziku?
[66] Koja je razlika između indeksiranih i asocijativnih nizova? Za svaki tip, dati naziv kolekcije koja ga
predstavlja u JAVA programskom jeziku.
[67] Šta je putanja? Objasniti u čemu je razlika kod apsolutne i relativne putanje.
[68] Šta predstavlja byte stream i character stream u programskom jeziku JAVA?
[69] Šta predstavlja data stream u programskom jeziku JAVA? Obrazložiti prednosti i mane.
[70] Šta predstavlja object stream u programskom jeziku JAVA? Obrazložiti prednosti i mane.
[71] Šta predstavlja regularni izraz (Regular expression) i koja mu je najčešća namjena?
[72] Ukratko opisati upotrebu regularnih izraza u programskom jeziku JAVA.
[73] Navesti predefinisane klase znakova u sklopu regularnih izraza u programskom jeziku JAVA i ukratko ih opisati.
[74] Navesti minimalno 3 (od 9) osnovna koncepta koji opisuju programski jezik JAVA. Ukratko ih opisati.
[75] Šta se podrazumijeva pod konceptom “prenosiva” programskog jezika JAVA?
[76] Šta se podrazumijeva pod konceptom “robusna” programskog jezika JAVA?
[77] Šta se podrazumijeva pod konceptom “višenitna” programskog jezika JAVA?
[78] Šta se podrazumijeva pod konceptom “nezavisna od platforme” programskog jezika JAVA?
[79] Šta se podrazumijeva pod konceptom “interoperabilna i visokoefikasna” programskog jezika JAVA?
[80] Prema načinu smještanja podataka u memoriju, u programskom jeziku JAVA podatke možemo podijeliti na dva tipa. Navesti koji su i opisati ih.
[81] Na koji način se prosljeđuju primitivni (prosti) tipovi podataka u programskom jeziku JAVA? Ilustrovati na primjeru.
[82] Na koji način se prosljeđuju složeni tipovi podataka u programskom jeziku JAVA? Ilustrovati na primjeru.
[83] Navesti kakav je opseg primitivnih tipova podataka u programskom jeziku JAVA. Odgovor ukratko objasniti.
[84] Objasniti šta je automatska, a šta eksplicitna konverzija tipova podataka u programskom jeziku JAVA. Obrazložiti odgovor.
[85] Šta predstavlja DOSEG identifikatora u programskom jeziku JAVA. Objasniti i ilustrovati na primjeru.
[86] Šta predstavljaju oznake (label) u programkom jeziku JAVA i koja je njihova namjena?
[87] Navesti tri moguće implementacije beskonačnih petlji u programskom jeziku JAVA.
[88] Navesti potpunu definiciju KLASE u programskom jeziku JAVA i ukratko objasniti sve elemente.
[89] Navesti potpunu definiciju METODE u programskom jeziku JAVA i ukratko objasniti sve elemente.
[90] Navesti potpunu definiciju INTERFEJSA u programskom jeziku JAVA i ukratko objasniti sve elemente.
[91] Navesti tri tipa varijabli u programskom jeziku JAVA i ukratko ih opisati.
[92] Šta predstavlja potpis metode u programskom jeziku JAVA?
[93] Šta predstavlja implicitno, a šta eksplicitno kastovanje objekata u programskom jeziku JAVA. Odgovor ilustrovati primjerom.
[94] Da li je moguće instancirati klasu koja posjeduje barem jednu apstraktnu metodu? Objasniti odgovor.
IDE i Otklanjanje grešaka
[95] Šta predstavljaju inegrisana razvojna okruženja (IDE) i koja je njihova uloga u procesu razvoja softvera?
[96] Dijagramom toka programa ilustrovati proces obrade i pisanja programa.
[97] Šta predstavlja proces otklanjanja grešaka (debugging) i na koji način se može vršiti?
[98] Koja su tri tipa grešaka koje mogu nastati u procesu pisanja računarskih programa?
[99] Navesti najmanje 3 tipa sintaksnih grešaka (syntax error).
[100] Navesti najmanje 3 tipa grešaka pri izvršavanju (runtime error).
[101] Navesti najmanje 3 tipa grešaka namjere (semantic/logic error).
[102] Navesti prednosti i osnovne funkcionalnosti alata za otklanjanje grešaka.
Sistemi za kontrolu verzija
[103] Objasniti šta predstavljaju sistemi za kontrolu verzija i koja je njihova namjena u procesu razvoja softvera.
[104] Šta omogućavaju sistemi za kontrolu verzija? Navedite dvije osnovne podjele sistema za kontrolu verzija.
[105] Objasniti koja je uloga Repozitorija, a koja Radne kopije u sistemu za kontrolu verzija.
[106] Navesti i ukratko objasniti sve generacije sistema za kontrolu verzija.
[107] Navesti prednosti i mane pesimističkog (Lock-Modify-Unlock) i optimističkog (Copy-Modify-Merge) modela upravljanja sistema za upravljanje verzijama.
[108] Opisati kada nastaje konflikt na softveru za kontrolu verzija (npr. SVN).
[109] Opisati na koji način se razrješuju konflikti u Eclipse razvojnom okruženju.
[110] Šta predstavlja COMMIT rješenja?
[111] Koji tipovi (vrste) sistema za kontrolu verzija postoje? Objasniti razliku.
[112] Opisati centralizovani sistem za kontrolu verzija (npr. subversion). Ilustrovati primjerom.
[113] Navesti prednosti i mane centralizovanog sistema za kontrolu verzija.
[114] Opisati decentralizovani sistem za kontrolu verzija (npr. git). Ilustrovati primjerom.
[115] Navesti prednosti i mane decentralizovanog sistema za kontrolu verzija.
[116] Navesti osnovne operacije sistema za kontrolu verzija (centralitovanog i decentralizovanog).
Oblast Softversko inženjerstvo
[117] Navedite osnovne elemente koji su, prema Wasserman-u, izmijenili softversko inženjerstvo.
[118] Koja dva elementa definišu svaku inženjersku aktivnost?
[119] Šta se, sa aspekta inženjerske aktivnosti, podrazumijeva pod pojmom proces?
[120] Šta se, sa aspekta inženjerske aktivnosti, podrazumijeva pod pojmom proizvod?
[121] Navedite osnovne karakteristike svakog inženjerskog procesa, (ima ih 6).
[122] Koje dvije dimenzije karakterišu pristup softverskom inženjerstvu sa aspekta procesa?
[123] Koji elementi čine dimenziju AKTIVNOSTI u sklopu modela softverskog procesa?
[124] Šta, prema osnovnom modelu softverskog procesa, obuhvata aktivnost RAZVOJ?
[125] Šta, prema osnovnom modelu softverskog procesa, obuhvata aktivnost KONTROLA?
[126] Šta, prema osnovnom modelu softverskog procesa, obuhvata aktivnost UPRAVLJANJE?
[127] Šta, prema osnovnom modelu softverskog procesa, obuhvata aktivnost RAD?
[128] Koji elementi čine dimenziju ASPEKATA u sklopu modela softverskog procesa?
[129] Šta, prema osnovnom modelu softverskog procesa, obuhvata aspekt APSTRAKCIJA?
[130] Šta, prema osnovnom modelu softverskog procesa, obuhvata aspekt PREDSTAVLJANJE?
[131] Šta, prema osnovnom modelu softverskog procesa, obuhvata aspekt METODI?
[132] Šta, prema osnovnom modelu softverskog procesa, obuhvata aspekt ALATI?
[133] Šta, prema osnovnom modelu softverskog procesa, obuhvata aspekt DEJSTVA?
[134] Šta, prema osnovnom modelu softverskog procesa, obuhvata aspekt KOMUNIKACIJA?
[135] Šta se podrazumijeva pod pojmom životni ciklus softvera?
[136] Na koje dvije osnovne grupe se dijele modeli životnog ciklusa softvera?
[137] U koju grupu modela životnog ciklusa softvera spada tzv. big-bang model?
[138] Navedite osam faza u procesu razvoja softvera po modelu vodopada.
[139] Koji su osnovni nedostaci modela vodopada?
[140] Kakva je uloga izrade PROTOTIPA u sklopu modifikovanog modela vodopada?
[141] Koja je posljednja faza u sklopu modifikovanog modela vodopada sa prototipovima iz koje je moguće uticati na softverske zahtjeve?
[142] U čemu je razlika između inkrementalnog i iterativnog razvoja softvera?
[143] U čemu se sastoji razlika između adaptivnog i tradicionalnog upravljanja softverskim projektima?
[144] Navedite dva osnovna predstavnika iterativnih modela životnog ciklusa softvera.
[145] Kakva je razlika između spiralnog i cikličkog modela životnog ciklusa softvera?
[146] Koje dvije dimenzije karakterišu pristup softverskom inženjerstvu sa aspekta proizvoda?
[147] Šta se podrazumijeva pod pojmom klase softverskih sistema?
[148] Šta se podrazumijeva pod pojmom opštih zahtjeva prema softverskom proizvodu?
[149] Kako se mogu klasifikovati softverski proizvodi sa aspekta odnosa prema okruženju?
[150] Kako se mogu klasifikovati softverski proizvodi sa aspekta internih karakteristika?
[151] Kako se mogu klasifikovati softverski proizvodi sa aspekta oblasti primjene?
[152] Kakva je razlika između interaktivnih i reaktivnih sistema?
[153] Šta se podrazumijeva pod pojmom integriteta softverskog proizvoda?
[154] Koje tri apstrakcije čine opšti model softverskog proizvoda?
[155] Navesti osnovnu podjelu arhitekture distribuiranih sistema.
[156] U procesu Razvoja na bazi ponovnog korištenja, razlikujemo tri nivoa. Navesti ih i ukratko opisati svaki od njih.
[157] Navesti i ukratko opisati prednosti i mane (min. 3 od svake grupe) koncepta ponovnog korištenja softvera.
[158] Navesti i ukratko opisati (min. 3) elemente na koje se oslanja osnovni pristup ponovnog korištenja softvera.
[159] Navesti elemente na koje se oslanja osnovni pristup ponovnog korištenja softvera (ima ih 11).
[160] Opisati šta predstavlja scrum i navesti tri osnovne uloge u sklopu scrum-radnog okvira.
[161] Navesti četiri osnovna elementa scrum-radnog okvira i ukratko ih opisati.
[162] Navesti i ukratko opisati razloge za primjenu scrum-modela.
[163] Navesti i ukratko opisati osnovne principe scrum-modela.
[164] Navesti i ukratko opisati osobine scrum-modela.
[165] Ukratko objasniti šta predstavlja XP (Extreme Programming). Navesti 5 osnovnih faza u razvoju softvera pomoću XP metodološkog pristupa razvoja softvera.
[166] Objasniti šta predstavljaju korisničke priče u sklopu XP metodološkog pristupa razvoja softvera.
[167] Navesti i ukratko objasniti 4 osnovna elementa procesa planiranja u sklopu XP metodološkog pristupa razvoja softvera.