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.