You are on page 1of 28

Metodologije razvoja softvera - ispitna pitanja

1. Definicija sistema. Definicija informacionog sistema. Šta je informatika? Šta je podatak, a šta
informacija? Šta proučava teorija informacija?
Sistem je funkcionalni skup objekata (entiteta) i relacija između njih i njihovih karakteristika
integrisanih u cilju ostvarenja određenog cilja.Sistem predstavlja integralnu cjelinu elemenata i veza
određenog stepena jačine između elemenata i njihovih karakteristika.Svaki od objekata u sistemu
posjeduje niz svojstava (atributa).Veze između pojedinih objekata(elemenata) sistema se mogu
opisati nizom atributa.
Pod informacionim sistemom se podrazumijeva sistem koji svoje veze sa okolinom obavlja razmjenom
informacija.Informacioni sistem sačinjava skup procedura i uređaja koji je
projektovan,izgrađen,upravljan i održavan sa ciljem prikupljanja, bilježenja, čuvanja i prikazivanja
skupa onformacija relevantnog u okruženju datog skupa korisnika i njihovih poslova.
Informatika je nauka koja se bavi procesima vezanim za obradu podataka, odnosno
informacija.Informatika je interdiscplinarna nauka koja proučava strukturu i svojstva
informacija.(franc. Information(informacija)+ Automatique(automatika)=Informatika).
Podatak je kodirana predstava neke osobine, nekog koncepta, objekta, činjenice ili događaja u
realnom sistemu (npr:plavi,bijeli,100....)
Informacija je protumačeni podatak odnosno znanje koje se može izvući iz podataka(npr:plavi ekran).
Teorija informacija omogućava kvantativno proučavanje komunikacionih problema,kao i šta je
problem mjerenja količine informacija koju sadrži neka poruka ili problem organizacije
komunikacionih sistema tako da omogućavaju prenos što veće količine informacija u što kraćem
vremenu.Jedinica za mjerenje količine informacija je bit(BinaryDigit).
2. Klasifikacija informacionih sistema prema vrsti usluge.
Klasifikacija informacionih sistema po vrsti usluge:
1. Sistemi za računarske usluge obezbjeđuju računarske usluge opšte namjene različitim klasama
korisnika.Uobičajeni sistemi ovog tipa su računarski centri pri univerzitetima,istraživačkim ustanovama i
slično.
2. Sistemi za čuvanje i pretraživanje informacija projektovani su za pamćenje velikih količina podataka i
dokumenata i njihovo pretraživanje putem odgovarajućih upita.
3. Sistemi za obradu transakcija projektovani su za veliki broj istovremenih korisnika koji izvršavaju
unaprijed definisane operacije pretraživanja i ažuriranja podataka u bazi, uz generisanje izvještaja.Takvi
su bankarski,poslovni i drugi slični programi.
4. CAD/CAM sistemi namjenjeni su za računarsku podršku prilikom inženjerskog projektovanja u raznim
inženjerskim disciplinama:građevinarstvu,arhitekturi,mašinstvu,elektronici i elektrotehnici itd.
5. Sistemi za komandovanje i kontrolu procesa obavljaju praćenje tehnološkoh procesa,signaliziranje pri
pojavi unaprijed definisanih situacija,itd.

3. Klasifikacija informacionih sistema prema softversko/hardverskoj organizaciji:


1. Centralizovana obrada :podaci su fizički centralizovani.Korisnici pristupaju preko računarske
mreže.Ovaj način najčešće zahitijeva višeprocesni,višekorisnički operativni sistem radi
omogućavanja konkurentnog rada više korisnika.
2. Distribuirana obrada ima više varijanti.Moguće je da podaci budu fizički
distriburani,horizontalno (svako odjeljenje radi svoje specifične obrade i čuva svoje

Napomena: Pitanja su podjeljena u tri grupe. Grupe su označene različitom bojom (1 – 19, 20 – 36, 37 – 50). Na usmenom ispitu, student odgovara na tri pitanja
(iz svake grupe po jedno pitanje). Ukoliko u okviru jednog pitanja postoji slika (dijagram, grafik ili slično), koja se nalazi u slajdovima sa predavanja, potrebno je
kod odgovora na pitanje nacrtati i sliku.
podatke,pristupajući drugim podacima po potrebi) ili vertikalno (svako odjeljenje radib iste
obrade,ali samo nad svojim podacima,a drugim podacima pristupa po potrebi).Moguće je i da
postupak obrade bude distribuiran ,u vidu tzv. Kljijent-server arhitekture,pri čemu postoje
različiti stepeni u zavisnosti od podjele posla između klijenata i severa.Pod klijent-server
arhitekturom se podrazumijeva arhitektura računarskog sistema u kojoj su ( u posebne
aplikativne programe) razdvojene funckije pristupa podacima i funckije korisničkog
interfejsa.U opštem slučaju,klijent-server arhitektura je ona, u kojoj neki softverski modul,
odnosno aplikacija (klijent) zahtijeva (i dobija) unaprijed dogovorene usluge (i podatke) od
drugog softverskog modula.

4. Šta je arhitektura sistema? Podjela arhitekture u softverskom inženjerstvu. Šta


podrazumjeva klijent-server arhitektura?
Arhitektura sistema je osnovna organizacija Sistema ,koja obuhvata njegove komponente,njihove
relacije,okruženje i principe dizajna i razvoja [IEEE std 1471-2000].U softverskom inženjerstvu
razlikujemo :
− Softversku arhitekturu,
− Sistemsku arhitekturu,
− Aplikativnu strukturu,
− Organizacionu strukturu.
Arhitektura softvera obuhvata skup strateških odluka o organizaciji softverskog sistema i definiše
strukturu tj. dekompoziciju sistema u komponente/module.
Pod klijent-server arhitekturom se podrazumijeva arhitektura računarskog sistema u kojoj su ( u
posebne aplikativne programe) razdvojene funckije pristupa podacima i funckije korisničkog
interfejsa.U opštem slučaju,klijent-server arhitektura je ona, u kojoj neki softverski modul,
odnosno aplikacija (klijent) zahtijeva (i dobija) unaprijed dogovorene usluge (i podatke) od drugog
softverskog modula.
• Klijent je svaki proces koji traži usluge od servera
• Server je svaki proces koji pruža tražene usluge klijentima
• Klijent/Server je relacija između dva računarska programa gdje jedan od njih (klijent)
postavlja zahtjev za neku uslugu drugom (server) koji izvršava
-klijent/server relacija se može realizovati i na jednom računaru
-klijent/server model je uobičajeni način za povezivanje programa koji su distribuirani na
više različitih lokacija u mreži.

5. Koje su osnovne komponente informacionih sistema? Objasniti svaku od njih.


Osnovne komponente informacionih sistema su:
a)hardver(HARDWARE)-tehnički dio računarskog sistema,sastoji se od skupa različitih uređaja,a svaki
obavlja biše informacija i obrada.Uređaji u računaru se dijele na ulazne uređaje,uređaje za obradu i izlazne
uređaje
b)softver(SOFTWARE)-je program ili skup programa koji omogućuju da hardver obrađuje
podatke://Računarsko programiranje podrazumjeva niz vještina pomoću kojih korisnik stvara i izvršava
algoritme koristeći određene programske jezike da bi napravio računarski program.
c)baza podataka(DATABASE)-je dobro struktuirana kolekcija podataka,koja postoji jedno određeno
vrijeme,koja se održava i koju koristi više korisnika ili programa.Pod bazom podataka podrazumijeva se
skup podataka o nekom realnom sistemu, koji se u njemu koristi i kojim se on opisuje.

Napomena: Pitanja su podjeljena u tri grupe. Grupe su označene različitom bojom (1 – 19, 20 – 36, 37 – 50). Na usmenom ispitu, student odgovara na tri pitanja
(iz svake grupe po jedno pitanje). Ukoliko u okviru jednog pitanja postoji slika (dijagram, grafik ili slično), koja se nalazi u slajdovima sa predavanja, potrebno je
kod odgovora na pitanje nacrtati i sliku.
d)računarska mreža(NETWORK)-računarska mreža predstavlja sistem povezivanja (žično i bežično)
računara koja im omogućava da međusobno dijele resurse.Prema prodtoru na kome se
prostiru,računarske mreže mogu biti:
− Personal Area Network (PAN)
− Local Area Network (LAN)
− Metropolitan Area Network (MAN)
− Wide Area Network (WAN)
− Global Network (internet).
Pored navedene četiri komponente i ljudi su neizostavan dio nekog informacionog sistema.Ljudi su:
• Krajnji korisnici hardvera i softvera
• Pridržavaju se određenih procedura pri korišćenju računara
• Obavljaju aktivnosti koje stvaraju ili prikupljaju podatke
• Razvijaju programe
• Kreiraju procedure za druge ljude.

6. Šta je softver i kako se dijeli? Šta su programski, a šta script jezici? Navesti danas najviše korištene
programske jezike.
Softver je program ili skup programa koji omogućuju da hardver obrađuje podatke.Računarsko
programiranje podrazumjeva niz vještina pomoću kojih korisnik stvara i izvršava algoritme koristeći
određene programske jezike da bi napravio računarski program.Softver se dijeli na sistemski i
aplikativni.Sistemski softver je posrednik između korisnika i njegovog programa s jedne i hardvera
računarskog sistema sa druge strane,omogućava korišćenje tehničkog dijela računarskog sistema.
Sistemski softver obuhvata:
→ Operativne sisteme (OS)-operativni sistem je skup računarskih programa zadužen za efikasan rad
hardvera i ostvarivanje komunikacije između korisnika,programa i hardvera računara.
→ Programe za prevođenje (Compiler)
→ Uslužne programe (Utility programs).
Aplikativni softver je softver koji je namjenjen za određenu primjenu,rješavanje konkretnog zadatka ili
obradu podataka,takvi programi su npr. MS Excel,kalkulator,MS Access i sl.
Programski jezik je jednostavno skup pravila koji ukazuje kompjuterskom sistemu na to šta treba da radi i
kako da to uradi.On kompjuteru daje instrukcije za obavljanje određenog zadatka. Programski jezik se
sastoji od niza dobro definisanih koraka koje računar mora strogo da slijedi kako bi proizveo željeni izlaz.
Ukoliko se koraci ne slijede onako kako je definisano, to će za rezultat imati grešku i ponekad kompjuterski
sistem neće raditi kako je planirano.Ove instrukcije obično pišu programeri. Oni poznaju sintaksu tog
jezika, i ovladali su strukturama podataka i algoritmima koji se koriste za taj jezik.Ovo znanje je neophodno
zato što je osnovna funkcija programskog jezika prevođenje ulaznih podataka u smisleni izlaz.Primjeri
programskih jezika uključuju C, C ++, Java i Python..
Skriptni jezik je tip jezika koji je dizajniran tako da se integriše i da komunicira sa drugim programskim
jezicima.Primjeri najčešće korišćenih skriptnih jezika uključuju JavaScript, VBScript, PHP.Oni se uglavnom
koriste zajedno sa drugim jezicima, bilo programskim ili mark up jezicima.Primera radi, PHP, koji je skriptni
jezik, uglavnom se koristi zajedno sa HTML-om.JavaScript je takođe skriptni programski jezik koji ćete
upotrebljavati da napišete programski kôd koji će se izvršavati na klijentskoj radnoj stanici.
Mark up jezici oni koji se „brinu“ o vizuelnom delu i izgledu softvera.(HTML,XML).
Razlika između programskih i skript jezika:
Jedna od razlika između skriptnih jezika i programskih jezika jeste takozvana kompilacija. Dok je

Napomena: Pitanja su podjeljena u tri grupe. Grupe su označene različitom bojom (1 – 19, 20 – 36, 37 – 50). Na usmenom ispitu, student odgovara na tri pitanja
(iz svake grupe po jedno pitanje). Ukoliko u okviru jednog pitanja postoji slika (dijagram, grafik ili slično), koja se nalazi u slajdovima sa predavanja, potrebno je
kod odgovora na pitanje nacrtati i sliku.
programskim jezicima neophodan kompajler, skriptni jezici se interpretiraju bez kompajlera.
Da bi mogao da se izvrši PHP program, na primer, on ne zahteva kompajler, već kao većina drugih skriptnih
jezika zahteva interpeter – server na kojem će se izvršavati.„Server-side” znači da se PHP programi
izvršavaju na serveru a da se rezultati, to jest izlazni podaci iz PHP programa šalju klijentu. U slučaju HTML-
a i PHP-a, klijent je web browser.
Danas se najviše koriste sljedeći programski jezici:
• PHP-jednostavan a moćan programski jezik za izradu internet programa.Najtraženiji je i
najpopularniji programski jezik za programiranje internet sajtova.Danas preko 20 miliona web
sajtova radi na serverima sa instaliranim PHP-om
• SQL (Structured Query Language)- programski jezik seu osnovi koristi za pristup bazama
podataka.Taj se jezik koristi za takozvani „Cross-Platform“ operacijske
sisteme.Google,Skype,Dropbox koriste ovaj jezik...
• Python-vrlo učinkovit u objektno orjentisanom programiranju.Koriste ga velike svjetske kompanije
poput Googla,Yahooa,NASA,Instagrama itd...
• Ruby-nastao tokom devedesetih,to je dinamičan open-source,objektno orijentisan programski jezik
• C/C++:razvijeni su osamdesetih,spadaju u najosnovnije programske jezike (koriste se i dan
danas).C++ je izvedenica od orginalnog C jezika kao njegova verzija okrenuta objektno
orijentisanom programiranju.Osnovni jezik C je strukturni programski jezik, dok je C++ objektno
orijentisan programski jezik.Glavna razlika između C jezika i C++ programskog jezika je da C ne
podržava klasifikaciju dok C++ je kombinacija proceduralnog i objektno orijentisanog programskog
jezika,pa se C++ može nazvati i hibridnim jezikom.
• HTML,CSS-predstavljaju osnovu pri izradu web sajtova
• JavaScript- JavaScript je programski jezik koji je izuzetno bitan za definisanje web sadržaja. On
omogućava, između ostalog, i kreiranje interaktivnih stranica. Iako, uz CSS i HTML, predstavlja
osnovu mnogih sajtova, JavaScript ima mnogo širu primenu. On se može koristiti za kreiranje web
aplikacija, ali i video-igara. Dodatna prednost ovog jezika jeste mogućnost primene i u frontend i u
backend razvoju. Reč je o različitim oblastima rada koje se dosta razlikuju, iako se koristi isti
programski jezik.
Stack Overflow anketa iz 2020.godine pokazala je da su najpoznatiji programski jezici Mozilin
Rust,Microsoftov Typescript i Python. Ostali programski jezici na listi deset najpopularnijih su Kotlin, Go,
Julia, Dart, C#, Swift, JavaScript i SQL. Najnepopularniji programski jezici su pak VBA, Objective-C, Perl,
Assembly, C, PHP, Ruby, C++, Java i R.

7. Šta je model, a šta modelovanje? Objasniti konceptualni, logički i fizički model podataka.
Model je približni prikaz sistema ili procesa koji služi za razumijevanje sistema,te njegovo
mijenjanje ili upravljanje njime.
Modelovanje (ili modeliranje) je proces korišćenja modela umjesto realnog sistema.Modelovanje
treba da omogući stvaranje jasne i realne predstave-vizuelizaciju sistema.
Konceptualni model podataka određuje način shvatanja događaja, način stvaranja podataka o
događaju.On je cjelovit,konzistentan i neredudantan.
Logički model podataka je konceptualni model podataka koji služi za daljnju razdradu.Tri su tipa
logičkih modela podataka,hijerarhijski,relacioni i mrežni.
Fizički model podataka polazi od logičkog, a rezultira izrađenim fizičkim modelom.Fizički model
je opis stvarne fizičke organizacije podataka.Model ima oblik unutrašnje šeme baze podataka.

Napomena: Pitanja su podjeljena u tri grupe. Grupe su označene različitom bojom (1 – 19, 20 – 36, 37 – 50). Na usmenom ispitu, student odgovara na tri pitanja
(iz svake grupe po jedno pitanje). Ukoliko u okviru jednog pitanja postoji slika (dijagram, grafik ili slično), koja se nalazi u slajdovima sa predavanja, potrebno je
kod odgovora na pitanje nacrtati i sliku.
8. Šta je baza podataka? Koje su karakteristike relacionog modela baze podataka? Koja su tri
najpoznatija komercijalna, a koja tri open source sistema za upravljanje bazama podataka?
Baza podataka je dobro struktuirana kolekcija podataka,koja postoji jedno određeno vrijeme,koja se
održava i koju koristi više korisnika ili programa.Pod bazom podataka podrazumijeva se skup podataka o
nekom realnom sistemu ,koji se u njemu koristi i kojim se on opisuje.U širem značenju baza podataka
podrazumijeva način organizacije,čuvanja i pretraživanja uzajamno povezanih podataka namjenjenih
informacionoj podršci zadacima koji se rješavaju u toku korišćenja informacionog sistema.
Relacioni model je danas najrasprostranjeniji model na kome je zasnovan veliki broj realizovanih
programskih sistema za upravljanje bazama podataka (SUBP).Prednosti ovog modela su jednostavnost
korišćenja u dobra teorijska zasnovanost.Relacija je skup uređenih n-torki i može biti predstavljena
tabelom čiji su pojedinačni elementi torke podataka-povezane cjeline od n brojeva ili literala.Ta tabela
ima jednu obaveznu vrstu (red) naziva pojedinih kolona,a nula ili više preostalih vrsta.Svaka vrsta (red)
predstavlja reprezentaciju jedinke odabranog objekta iz stvarnosti kojeg nazivamo
ENTITET.Obilježja(osobine) entiteta relevante za analizu nazivamo ATRIBUTI.Naziv kolona tabele
predstavlja atribute entiteta.U nekim implementacijama relacionog modela uobičajen je naziv POLJE za
atribut.Skup vrijednosti jednog atributa sačinjava njegov DOMEN.Atributi dakle poprimaju neku vrijednost
iz domena ili nemaju nikakvu vrijednost (nedefinisani su) što se obilježava specijalnom vrijednošću NULL.
Osnovne karakteristike relacionog modela:
▪ Jednostavna struktura modela-relaciona baza je skup tabela;rezultati operacija(upita) su takkođe
tabele.
▪ Matematička interpretacija tabela-tabele se mogu tretirati kao matematičke relacije.Bogat
matematički aparat služi kao osnova za razvoj jezika baze podataka (DDL i DML).
Tri najpoznatija komercijalna sistema za upravljanje bazama podataka su:
➢ Microsoft SQL Server (2000,2005,2008,2012,2014,2016)
➢ Oracle(7,8,8i,9i,10g,11g,12c)
➢ IBM DB2 ali i Microsoft Access 1995-2016(dio MS Office sistema).
Tri najpoznatija open source sistema za upravljanje bazama podataka su:
➢ MySQL
➢ Maria DB
➢ FireBird
➢ PostgreSQL

9. Šta su ERP sistemi? Koja su tri najpoznatija ERP sistema?


ERP(Enterprise Resource Planning-planiranje poslovnih resursa) su poslovni informacioni sistemi odnosno
komercijalni softverski paketi za mala,srednja i velika preduzeća.To je integrisan informacioni sistem
zasnovan na jedinstvenoj bazi podataka.Najpoznatiji ERP sistemi su:
➢ SAP ERP
➢ ORACLE eBusinessSuite
➢ Microsoft Dynamics

10. Šta je softverska licenca? Kako se dijele softverske licence?


Softverska licenca (Software Licence) ili prevedeno „Dozvola za korišćenje softvera“ je pravni instrument
kojim se reguliše korišćenje,distribucija i redistribucija softvera.Softverska licenca krajnjem korisniku daje
pravo na korišćenje jedne ili više kopija softvera.Softverskom licencom se definišu način i uslivi korišćenja
softvera.Softverske licence možemo podijeliti u dvije glavne kategorije.Njihove karakteristike mogu
značajno uticati na prava korisnika.To su:

Napomena: Pitanja su podjeljena u tri grupe. Grupe su označene različitom bojom (1 – 19, 20 – 36, 37 – 50). Na usmenom ispitu, student odgovara na tri pitanja
(iz svake grupe po jedno pitanje). Ukoliko u okviru jednog pitanja postoji slika (dijagram, grafik ili slično), koja se nalazi u slajdovima sa predavanja, potrebno je
kod odgovora na pitanje nacrtati i sliku.
− Vlasnička licenca (proprietary licence)-proizvođač softvera daje korisniku pravo da koristi jednu ili
više kopija softvera,dok proizvođač zadržava pravo vlasništva nad svakom kopijom softvera.
Proizvođač zadržava pravo vlasništva nad softverom i krajnji korisnik mora prihvatiti uslove
navedene u licenci.
− Slobodne licence i licence otvorenog koda (free and open source licences):
o Kod slobodne licence, proizvođač softvera ne zadržava pravo vlasništva nad kopijama
softvera,već se pravo vlasništva nad kopijom prenosi na krajnjeg korisnika.Krajnji korisnik
može koristiti softver bez prihvatanja uslova iz licence.
o Licence otvorenog koda dijelimo u dvije kategorije:
→ Licence koje imaju za cilj da sačuvaju slobodu i otvorenost samog softvera (copyleft
licence) ,npr. GNU General Public Licence ova licenca korisniku daje široka prava,kao
što je pravo na redistribuciju,rezervni inženjering,odnosno vršenje izmjene na
softveru.
→ Licence čiji je cilj da daju slobodu korisnicima softvera (permissive licence),npr. BSD
licenca koja garantuje krajnjem korisniku da može sa softverom da radi šta
hoće,uključujući i pravo da iskoristi softver i njegov izvorni kod kao dio softvera
zatvorenog koda objavljenog pod vlasničkom licencom.

11. Šta je softversko inženjerstvo? Kako je nastalo?


Softversko inženjerstvo je inženjerska disciplina koja se bavi svim aspektima razvoja softvera.Softversko
inženjerstvo podrazumijeva sistemski pristup u :
 Analizi
 Projektovanju
 Razvoju
 Testiranju
 Implementaciji
 Održavanju
 Reinženjeringu softvera
Softversko inženjerstvo integriše matematiku,računarske nauke i praktične vještine čije porijeklo leži u
inženjeringu.Termin se prvi put upotrebio 1968.godine.Faze razvoja softverskog inženjeringa:
− 1940.godine-ručno pisanje mašinskog koda (0 i 1)
− 1950.godine-makro asembleri,interpreteri i prva generacija kompajlera
− 1960.godine-funkcionalno programiranje (Basic,Fortran,Cobol...),mainframe računari i softveri za
velike korporacije
− 1970.godine-kolaborativni alati
− 1980.godine-personali računari(PC) i radne stanice
− 1990.godine-objektno-orijentisano programiranje (C++,C#,JAVA...),agilni procesi,integrisana
softverska poslovna rješenja (ERP,CRM...)
− 2000-te do danas-web servisi i servisno-orijentisano programiranje,inteligenta poslovna rješenja
(BI),servisi u Cloud Computing okruženju.

12. Šta je virtuelizacija, a šta Računarstvo u oblacima (Cloud computing)? Koja su tri osnovna tipa
računarstva u oblacima? Objasniti ukratko svaki od tipova.
Virtuelizacijom se dobiju podaci iz raznih izvora u jednom sažetom,sumiranom obliku.Ovaj koncept
pomaže smanjivanju potreba za fizičkim skladištenjem i obezbjeđuje zajedničke interfejse za sve
aplikacije koje koriste podatke.Virtuelizacija je model koji korisniku omogućava jednostavan pristup

Napomena: Pitanja su podjeljena u tri grupe. Grupe su označene različitom bojom (1 – 19, 20 – 36, 37 – 50). Na usmenom ispitu, student odgovara na tri pitanja
(iz svake grupe po jedno pitanje). Ukoliko u okviru jednog pitanja postoji slika (dijagram, grafik ili slično), koja se nalazi u slajdovima sa predavanja, potrebno je
kod odgovora na pitanje nacrtati i sliku.
djeljenom skupu resursa(mrežnim resursima,serverima,prostoru na diskovima,aplikacijama,itd).
Cloud Computing (Računarstvo u oblacima) predstavlja savremeni koncept korišćenja informatičkih
resursa kroz usluge koje koegzistiraju u djeljenom skupu resursa zasnovanom na tehnologiji
virtuelizacije.Tri su osnovna tipa računarstva u oblaku:
➢ Softver kao usluga SaaS ( Software as a Service)- isporuka aplikativnog softvera u formi javnog
servisa. Neki od primera su salesforce.com i workaday.com, kao i niz drugih isporučilaca
najrazličitijih kategorija aplikativnog softvera.Ovaj način isporuke je za korisnika najjednostavniji,
jer ne zahtijeva administriranje sopstvene informatičke infrastrukture, ali donosi i brojne izazove
u pogledu integracije aplikacija i bezbjednosti. Značajna novina koju donosi ovakav servis je i
novi model licenciranja softvera, jer umjesto kupovine trajnih licenci podrazumjeva plaćanje
mjesečnog najma za licence, koji uključuje i pretplatu na nove verzije i održavanje aplikativnog
softvera.
➢ Platforma kao usluga PaaS (Platform as a Service)- Ova vrsta usluga u računarskom oblaku
omogućava korisniku, s posebnim akcentom na proizvođače aplikativnog softvera, da bez
posebnih postupaka instalacije i integracije sopstvenih resursa omoguće rad korisničkih
aplikacija u oblaku, na platformi za koju je aplikacija razvijena.Najpoznatije platforme ove vrste
su Google App Engine, Microsoft Azure, VMware Cloud Foundry, kao i Amazon AWS Elastic
Beanstalk.
➢ Infrastruktura kao usluga IaaS (Infrastructure as a Service)- pojavile su se prve i predstavljaju
najzastupljeniji vid usluga u računarskom oblaku, a najpoznatiji primjer je Amazon
AWS.Opredjelivši se za ovakvu uslugu, korisnik dobija na korišćenje osnovne infrastrukturne
elemente: mogućnost povezivanja (komunikacione resurse), skladištenja podataka i virtuelne
računare (servere). Korisnik, tj. stručno IT osoblje korisnika, od ovih komponenata prave
korisničku IT infrastrukturu, povezivanjem servisa, instalacijom korisničkih aplikacija itd.

13. Arhitektura softvera, pojam i podjela. Šta je predstavlja dvoslojna, a šta troslojna/višeslojna
arhitektura softvera? Karakteristike desktop i web aplikacija.
Arhitektura sistema je osnovna organizacija sistema,koja obuhvata njegove komponente,njihove
relacije,okruženje i principe dizajna i razvoja.[IEEE std 1471-2000].U softverskom inženjerstvu
razlikujemo:-softversku arhitekturu
-sistemsku arhitekturu
-aplikativnu arhitekturu
-organizacionu arhitekturu.
Arhitektura softvera obuhvata skup strateških odluka o organizaciji sistema i definiše strukturu tj.
dekompoziciju sistema u komponente/module.Opšti obrasci arhitekture:
• Dvoslojna arhitektura (client-server)
• Troslojna/višeslojna (three-tier/multi-tier)
-četvoroslojna arhitektura SAP R/3
-četvoroslojna athitektura mobilnih sistema
• Servisno orijentisana arhitektura (SOA)
-(Web) servisi
*standardi zasnovani na XML:SOAP+WSDL+UDDI
-Web servisi kao sastavni elemnti SOA
*find-bind-execute
*ESB
• Ostali opšti obrasci arhitekture(message broker,pipeline).

Napomena: Pitanja su podjeljena u tri grupe. Grupe su označene različitom bojom (1 – 19, 20 – 36, 37 – 50). Na usmenom ispitu, student odgovara na tri pitanja
(iz svake grupe po jedno pitanje). Ukoliko u okviru jednog pitanja postoji slika (dijagram, grafik ili slično), koja se nalazi u slajdovima sa predavanja, potrebno je
kod odgovora na pitanje nacrtati i sliku.
Dvoslojna arhitektura sastoji se od 3 komponente distribuirane u dva sloja – klijentskom i serverskom.
Te tri komponente su:
1)Korisnički interfejs – sesije, unos teksta, dijaloški prozori, prikaz na ekranu
2)Upravljanje procesima (process managment) – generisanje, izvođenje i nadgledanje procesa
i neophodnih resursa
3)Upravljanje podacima (database managment) – servisi vezani za deljenje podataka i
datoteka.
Jedna od osnovnih karakteristika klijent/server sistema je distribuirana obrada podataka – logika
aplikacije je podeljena između klijenta i servera tako da obezbedi optimalno korišćenje resursa. Na
primjer, prezentacija podataka i provjera ulaznih podataka su sastavni dio klijent-aplikacije, dok se
rukovanje podacima, u smislu njihovog fizičkog smeštaja i kontrole pristupa, vrši na serveru. Neke od
prednosti ovakvog modela obrade podataka su: centralizovano upravljanje resursima sistema i
jednostavnije obezbeđivanje sigurnosti podataka. Osnovni nedostatak dvoslojne arhitekture je problem
održavanja velikog broja istih kopija aplikativnog softvera na svim klijentima.
Karakteristike desktop aplikacija u odnosu na web aplikacije su :
✓ Kontrole koje čine korisnički interfejs kod desktop aplikacija reaguju na više dođgađaja nego kod
web aplikacija,
✓ Kod desktop aplikacija može se smanjivati broj pozivanja servera,s tim da sličnu funkcionalnost
omogućava tzv. Ajax koncept
✓ Kod desktop aplikacija je moguće postići veći stepen interakcije sa korisnikom.
Troslojna/višeslojna arhitektura se sastoji od sledećih slojeva:
▪ Korisničkog interfejsa koji predstavlja ulazno-izlaznu reprezentaciju softverskog sistema
▪ Aplikacione logike koja opisuje strukturu i ponašanje softverskog sistema
▪ Skladišta podataka koji čuva stanje atributa softverskog sistema.
Aplikaciona logika se projektuje nezavisno od korisničkog interfejsa i može da im arazličite ulazno-
izlazne reprezentacije.Na osnovu troslojne arhitekture su napravljeni savremeni aplikacioni
serveri.Aplikacioni serveri su odgovorni da obezbjede servise koji će da omoguće realizaciju aplikacione
logike softverskog sistema.Svaki aplikacioni server se sastoji iz tri osnovna dijela:
1)dio za komunikaciju sa klijentom (kontroler)
2)dio za komunikaciju sa bazom podataka
3)dio koji sadrži poslovnu logiku.
Troslojna arhitektura:
1. Klijent (Prezentacioni sloj)-*korisnički interfejs
2. Poslovni sloj (Aplikacioni server)-*aplikaciona logika
3. Izvori podataka (Baza podataka)-*upravljanje podacima.

14. CASE alati, pojam i namjena. Tri najpoznatija CASE alata na svjetskom tržištu.
Za izradu modela koriste se CASE (Computer Aided Software Engineering) alati.CASE proizvod je bilo
koji programski proizvod, namjenjen za podršku ili automatizaciju makar jednog zadatka u okviru
životnog ciklusa drugog programskog proizvoda.Raspoloživi CASE alati koji su najviše u upotrebi:
• BpWin-Platinum
• ErWin-Platinum
• Oracle Designer
• Rational Rose- IBM Paradigm Plus

Napomena: Pitanja su podjeljena u tri grupe. Grupe su označene različitom bojom (1 – 19, 20 – 36, 37 – 50). Na usmenom ispitu, student odgovara na tri pitanja
(iz svake grupe po jedno pitanje). Ukoliko u okviru jednog pitanja postoji slika (dijagram, grafik ili slično), koja se nalazi u slajdovima sa predavanja, potrebno je
kod odgovora na pitanje nacrtati i sliku.
• Power Designer

15. Kako se dijeli Internet ili web programiranje? Za svaku od oblasti navesti najmanje tri alata.
Web development se može podijeliti na više oblasti:
• Programiranje na strani klijenta:HTML,CSS,JavaScript,AJAX,...
• Programiranje na strani servera:ASP,Java,Java Servlet,PHP,Python,.NET,...
• Projektovanje baza podataka:MySQL,Microsoft SQL Server,IBM DB2,Oracle,PostgreSQL,...

16. Šta obuhvata programski paket WAMP, a šta XAMP? Za šta su namjenjeni njegovi alati?
WAMP i XAMP su varijacije grupe softvera koje zajedno čine web server i platformu za web aplikacija.
WAMP(Windows/Apache/MySQL/PERL/PHP)arhitektura
Windows je operativni sistem
Apache je open source Web server,tako da se i na lokalnoj mašini uz pomoć Apach-a može simulirati
klijent/server
MySQL je open source server baze podataka koji podržava SQL (Structured Query Language) i idealan je
kako za manje,tako i za veće baze podataka
Ako se PHP koristi u kombinaciji sa MySQL-om može se napraviti mjultiplatformska aplikacija,štp znači da
se može razviti u Windows okruženju, a da se potom koristi na Unix-u.
Naprediju verzihu ovoga predstavlja XAMPP Apache+MariaDB+PHP+Perl

17. Objasniti pojmove: www i http. Šta su dinamički, a šta statički web sajtovi? Šta predstavlja DOM -
Document Object Model? Namjena HTML, CSS i Java Script jezika?
HTTP(HyperTextTransfer Protocol)
Komunikacija između srednjeg sloja i sloja baze podataka se obavlja pomoću protokola zavisnog od tipa
programskog jezika i tipa baze podataka .Komunikacija preko HTTP-a dominira mrežnim saobraćajem na
internetu oko 80%.HTTP je standard koji omogućava prosleđivanje i dijeljenje dokumenata na web-
u.Klijentski sloj u modelu troslojne arhitekture je web pretraživač (web browser).Web pretraživač šalje
HTTP zahtijev za resursima,obrađuje HTTP odgovore i prikazuje HTML resurse.Prednosti upotrebe web
pretraživača kao tankog klijenta su jednostavan razvoj ,nezavisnost od pplatforme na klijentskoj
strani.HTTP je komunikacioni protokol koji omogućava saobraćaj web stranica u mreži.Kompletna putanja
do zahtijevanih web sgtranica naziva se URL(Uniform Resource Locator).
WWW World Wide Web
Najpopularniji Internet servis je World Wide Web(WWW).Nastao je 1989.godine kao rezultat ideje Tim
Bernersa Li-a i njegovih saradnika u okviru Centra za nuklearna istraživanja u Švajcarskoj (CERN).WWW je
sistem sa prihvaćenim standardima za skladištenje,pronalaženje i prezentaciju informacija u klijent-server
konceptu.Web stranice se zasnivaju na standardnom HTML-u.Za realizaciju WWW ervisa važan je web
server.Web server je softver za lociranje i skladištenje web stranice.On locira stranice koje korisnik
računara zahtijeva i dostavlja ih.
Statički Web sajtovi
Statički sajtovi se ne mijenjaju sve dok sam autor web sajta nešto ne promijeni.Statički web sajtovi
omogućavaju slanje informacija ka korisnicima,korisnici nemaju nikakvu mogućnost interakcije.Statičke
web sajtove čine obične statičke HTML stranice ( skup HTML fajlova).
Dinamički Web sajtovi
Dinamički web sajtovi omogućavaju interakciju sa korisnikom.Dinamičke web sajtove čine dinamičke
stranice (skup php,asp,jsp...fajlova)koje takođe koriste HTML za komunikaciju sa klijentom.

Napomena: Pitanja su podjeljena u tri grupe. Grupe su označene različitom bojom (1 – 19, 20 – 36, 37 – 50). Na usmenom ispitu, student odgovara na tri pitanja
(iz svake grupe po jedno pitanje). Ukoliko u okviru jednog pitanja postoji slika (dijagram, grafik ili slično), koja se nalazi u slajdovima sa predavanja, potrebno je
kod odgovora na pitanje nacrtati i sliku.
DOM je skraćenica od engleskog pojma Document Object Model – na srpskom: objektni model
dokumenta (misli se na HTML dokument) i predstavlja zapravo hijarhijski prikaz strukture vaše web-
stranice, onako kako je vidi vaš pretraživač.On je prikaz toga koji se sve elementi nalaze na vašoj stranici i
gde se tačno na njoj nalaze i ujedno predstavlja interfejs za programiranje (API) kojim se JavaScript
programima omogućava da komuniciraju sa HTML dokumentima i njihovim elementima. Ono što DOM
čini izuzetno važnim jeste mogućnost da se uz pomoć nekog programskog jezika (npr. JavaScript)
manipuliše njegovim elementima, tako da se njima pristupa preko DOM-a, a nakon toga radi sa njima na
željeni način.
HTML (HyperText Markup Language), je jezik za obilježavanje teksta koji se koristi za opisivanje sadržaja i
strukture Veb stranica.
HTML je akronim od Hyper Text Markup Language, i on je platformski neutralan jezik, koji koristimo za
strukturiranje i opisivanje sadržaja raznih dokumenata, uključujući i web stranice. HTML je temelj
današnjeg weba i stranica na njemu njegovom upotrebom postavljamo specifično određene i definisane
elemente, koje nazivamo tagovima (eng. tag), pomoću kojih definišemo strukturu stranica.
CSS je akronim od Cascading Style Sheets , to opisni jezik koji se koristi za opis prezentacione semantike
drugog dokumenta pisanog u opisnom jeziku, koji je najčešće HTML.CSS elemente HTML-a stilizuje i
uređuje kako bi dobili željeni oblik i, mogli bismo reći, funkciju. Često se može čuti da je CSS „dizajn”
sajtova.
JavaScript je interpretiran objektno orijentisan skriptovan jezik visokog nivoa. On se dominantno koristi
pri izradi web stranica uz HTML i CSS. JavaScript omogućava kreiranje stranica sa dinamičkim sadržajem.
Jedna od najvažnijih mogućnosti jeste čuvanje podataka na uređaju korisnika. To znači da će skripta raditi
čak i bez interneta jer su svi podaci smiješteni na lokalni kompjuter. To je značajna razlika u odnosu na
Java programski jezik, koji je serverski orijentisan.

18. Šta je SQL (Structured Query Languague) i čemu služi? Koja je razlika između pojmova: SQL, MySql i
MS SQL Server? Šta je CRUD?
MySQL je open source sistem za upravljanje relacionim bazama (RDBMS). To je najpopularniji open
source sistem za upravljanje bazama podataka na svijetu i trenutno je rangiran kao drugi najpopularniji
sistem za upravljanje bazama podataka na svijetu (posle Oracle Database). MySQL je relaciona baza
podataka. To znači da su podaci smješteni unutar strukture sposobni da prepoznaju odnose između
sačuvanih informacija. Svaka baza podataka sadrži tabele. Svaka tabela (koja se takođe naziva relacija)
sadrži jednu ili više kategorija podataka pohranjenih u kolonama (koji se takođe nazivaju atributima).
Svaki red (koji se takođe naziva zapis ili zbirka) sadrži jedinstven podatak (koji se inače naziva ključ) za
kategorije definisane u kolonama. Najčešća upotreba MySQL-a je u svrsi za web baze podataka. Može se
koristiti za smještanje bilo čega, od jednog zapisa podataka do cijelog popisa dostupnih proizvoda za
Internet prodavnicu.U kombinaciji sa skriptnim jezikom kao što su PHP ili Perl, moguće je kreirati web
stranice koje će u realnom vremenu komunicirati sa MySQL bazom podataka kako bi se korisniku web
sajta brzo prikazale kategorisane i informacije koje se mogu pretraživati.
SQL je relacioni upitni jezik.
MySQL je višenitni višekorisnički SQL sistem za upravljanje bazama podataka.Sistem radi kao
server,obezbjeđujući višekorisnički interfejs za pristup bazama podatak.
Microsoft SQL Server je relacijska baza podataka kojoj je primarni jezik za upite Transact SQL (T-SQL), što
znači da osim osnovnih i klasičnih (SELECT tipa) SQL upita dozvoljava i složenije stvari poput mijenjanja
programskog toka (IF naredba) i slično.
CRUD je skraćenica koja se odnosi na četiri funkcije koje se smatraju neophodnim za primjenu trajne
aplikacije za skladištenje: kreiranje, čitanje, ažuriranje i brisanje.( create, read, update and delete)

Napomena: Pitanja su podjeljena u tri grupe. Grupe su označene različitom bojom (1 – 19, 20 – 36, 37 – 50). Na usmenom ispitu, student odgovara na tri pitanja
(iz svake grupe po jedno pitanje). Ukoliko u okviru jednog pitanja postoji slika (dijagram, grafik ili slično), koja se nalazi u slajdovima sa predavanja, potrebno je
kod odgovora na pitanje nacrtati i sliku.
19. Šta je JSON (JavaScript Object Notation), čemu služi i od čega se sastoji? Šta je XML (Extensible
Markup Language), čemu služi i od čega se sastoji?
JSON (JavaScript Object Notation) je popularan format koji služi za prenos i razmjenu podataka
putem web-a,gdje se služimo jednim jezikom da sačuvamo i primimo neke podatke.Samo ime
JavaScriptObjectNotation govori da je nešto povezano i inspirisano sa JavaScript-om.JSON se zasniva
na podskupu JavaScript Programming Language,Standard ECMA-262 3rd Edition-December
1999.Prednost mu je što je veoma čitljiv ljudima,a takođe je jednostavan računarima da ga
analiziraju i generišu.To je format koji ne zavisi niti o jednom programskom jeziku,ali koristi
konvencije programskih jezika C familije,uključujući C,C++,C#,Java,JavaScript,Perl,Python i mnoge
druge.JSON format se često koristi za serijalizaciju i prenos struktuiranih podataka preko mreže.Prije
svega se koristi za razmjenu podataka između servera i web aplikacija,kao alternativa XML-u.JSON se
zasniva na dvije strukture:
➢ Zbirka parova ime/vrijednost.Na raznim jezicima,to je realiziovano kao
objekat,zapis,struktura,riječnik,keš tabela,lista sa ključevima ili asocijativni nizovi.
➢ Uređena lista vrijednosti.U većini jezika ovo je realizovana kao niz,vector,lista ili sekvenca.
XML (Extensible Markup Language) je jezik za označavanje podataka.Slijedeći pravila XML
standarda,korisnici definišu sopstvene XML formate podataka,koje mogu koristiti za njihovo
skladištenje,obradu i razmjenu.XML definiše opštu sintaksu za označavanje podataka pomoću
odgovarajućih etiketa(tagova) koje imaju poznato ili lako razumljivo značenje.XML-ova osnovna svrha
je da olakša dijeljenje podataka kroz različite informacione sisteme,posebno kroz one sisteme koji su
povezani sa internetom.10 ciljev aXML-a:
➢ XML mora biti direktno primjenljiv preko interneta
➢ XML mora podržavati širok spektar primjena
➢ XML mora biti kompatibilan sa SGML-om
➢ XML mora lako pisati programe koji procesiraju XML dokumente
➢ Broj opcionih mogućnosti u XML-u mora biti apsolutno minimalan,a u idealnom slučaju jednak
nuli
➢ XML dokumenti moraju biti čitljivi ljudima
➢ Standard mora biti specifikovan što prije
➢ Dizajn XML-a mora biti formalan i precizan
➢ Kreiranje XML dokumenta mora biti jednostavno
➢ Sažetost kod označavanja dokumenata XML-om je od minimalnog značaja.
___________________________________________________________________________________

20. Šta je proces razvoja softvera? Koje su četiri fundamentalne aktivnosti koje su zajedničke
za sve softverske procese?

Proces razvoja softverskih sistema predstavlja skup aktivnosti i odgovarajućih komponenti koji
zajedno dovode do stvaranja softverskog proizvoda.Ove aktivnosti se uglavnom obavljaju od
strane softverskih inženjera.Postoje četiri fundamentalne aktivnosti koje su zajedničke za
sve softverske procese:

❖ Specifikacija softvera:definisanje funkcija i ograničenja koje mora da ispuni softverski

Napomena: Pitanja su podjeljena u tri grupe. Grupe su označene različitom bojom (1 – 19, 20 – 36, 37 – 50). Na usmenom ispitu, student odgovara na tri pitanja
(iz svake grupe po jedno pitanje). Ukoliko u okviru jednog pitanja postoji slika (dijagram, grafik ili slično), koja se nalazi u slajdovima sa predavanja, potrebno je
kod odgovora na pitanje nacrtati i sliku.
sistem;
❖ Realizacija softvera:realizacija softverskog sistema prema zadatim specifikacijama;
❖ Provjera softvera:provjera da li je realizovani softverski sistem zadovoljava postavljene
zahtjeve;
❖ Razvoj softvera:proširenje softverskog sistema u cilju zadovoljenja novih zahtijeva.

21. Šta predstavlja proces razvoja softverskih sistema? Koje su tri najpoznatije klasične
metodologije razvoja softvera?
Proces razvoja softverskih sistema predstavlja skup aktivnosti i odgovarajućih komponenti koji
zajedno dovode do stvaranja softverskog proizvoda.Ove aktivnosti se uglavnom obavljaju od strane
softverskih inženjera.Postoji više modela softverskog razvojnog procesa koji navedene aktivnosti
dekomponuju na različite načine.Među njima najviše se koriste sledeći:
✓ Model vodopada
✓ Spiralni model
✓ Evolutivni model (prototipski razvoj)
✓ Agilni razvoj softvera.

22. Metodologija razvoja softvera, model vodopada, nacrtati dijagram i objasniti svaku od faza
razvoja. Koje su prednosti i nedostaci ovog modela.

Postupak počinje sistemskom analizom,koja se ponekad naziva i analiza zahtijeva jer joj je cilj da utvrdi
šta organizacija i budići korisnici zahtijevaju da sistem radi.Nakon završetka i odobrenja sistemske
analize,cijeli sistem se detaljno projektuje.Toj fazi slijedi planiranje i procjena troškova,a zatim slijede
izrada,testiranje i uvođenje cijelog sistema u upotrebu,nakon toga slijedi eksploatacija i održavanje
sistema.Model vodopada je estetski dopadljiv.Rezultati jedne faze služe kao ulazni podaci za sledeću

Napomena: Pitanja su podjeljena u tri grupe. Grupe su označene različitom bojom (1 – 19, 20 – 36, 37 – 50). Na usmenom ispitu, student odgovara na tri pitanja
(iz svake grupe po jedno pitanje). Ukoliko u okviru jednog pitanja postoji slika (dijagram, grafik ili slično), koja se nalazi u slajdovima sa predavanja, potrebno je
kod odgovora na pitanje nacrtati i sliku.
fazu,a naredna faza može da se izvršava tek kada je prethodna faza realizovana.Ovo je najstariji
model.Model vodopada omogućuje visok stepen kontrole nad troškovima,radom učesnika i utroškom
vremena.Model polazi od pretpostavke da su sve informacije koje su neophodne za obavljanje
određenog posla poznate tokom njegovog obavljanja i ne dopušta naknadnu pojavu novih informacija
tokom postupka.Izuzev u vrlo malim i jednostavnim sistemima,a takvih slučajeva je veoma mali
broj.Model vodopada ne dozvoljava ni mijenjanje poslovnih zahtijeva tokom izrade projekta.Problem sa
modelom vodopada je njegova linearnost,tj. pretpostavka da se nikad ne treba vraćati na odrednu fazu
nakon njenog završetka.Takva situacija je naročito opasna pri projektovanju baza podataka,gdje
proširivanje opsega projekta može da promjeni semantiku podataka,što zahtijeva mijenjanje šeme baze
podataka,a izmjena šeme može dovesti do neočekivanih i nrepredvidivih izmjena u cijelom sistemu.

23. Metodologija razvoja softvera, spiralni model, nacrtati dijagram i objasniti svaku od faza razvoja.
Koje su prednosti i nedostaci ovog modela.

Kao rješenje modela vodopada,smišljno je više alternativnih modela životnog ciklusa.Spinalni model
omogućava više iteracija modela vodopada,pri čemu svaka među njima proširuje opseg prethodne
iteracije.Problem nastaje kada sespinalni model striktno primjenjuje,cjelokupan opseg projekta ne može se
razmatrati,sve do pred sam kraj razvoja projekta,a postoji vjerovatnoća da će kasnije iteracije učiniti
bezpredmetnim ranije uložen trud.U praksi se pokazalo,da se kod ovog modela često javlja prekoračenje
budžeta.Sastoji se od četiri faze koje se ciklično izmjenjuju:analiza,projektovanje,planiranje i procjena
troškova,izrada,testiranje,uvođenje u upotrebu.Po završetku faze procjene rizika,kreće se novi ciklus,ali sa
proizvodom koji je ovog puta savršeniji,bogatiji funkcijama i kalitetniji.

Napomena: Pitanja su podjeljena u tri grupe. Grupe su označene različitom bojom (1 – 19, 20 – 36, 37 – 50). Na usmenom ispitu, student odgovara na tri pitanja
(iz svake grupe po jedno pitanje). Ukoliko u okviru jednog pitanja postoji slika (dijagram, grafik ili slično), koja se nalazi u slajdovima sa predavanja, potrebno je
kod odgovora na pitanje nacrtati i sliku.
24. Metodologija razvoja softvera, prototipski/inkrementalni razvoj, nacrtati dijagram i objasniti svaku
od faza razvoja. Koje su prednosti i nedostaci ovog modela.

Model koji se smatra najprikladnijim za složene sisteme opisuje se kao inkrementni razvoj(incremental
development) ili evolutivni razvoj (evolutionary development).U tom modelu,koji je u mnogim svojim
aspektima samo varijanta spinalnog modela,izvodi se početna analiza cijelog sistema,a ne samo jednog
njegovog dijela.Tome sliejdi projektovanje strukture,takođe cijelog sistema.Cilj projektovanja strukture je
da se utvrde komponente koje se mogu realizovati manje ili više nezavisno i da se opišu odnosi i
zavisnosti između tih komponenata.Zatim se obavlja detaljno projektovanje i izrada svake komponente
na osnovu odela koji je najprikladniji.Za razliku od spinalnog modela ovdje postoji još jedan korak,a to je
integrisanje.Integrisanje pojedinačnih komponenata podrazumijeva se i u spinalnom modelu,naravno,ali
se pokazalo da je taj posao složeniji kada se primjenjuje model inkrementnog razvoja.Problem s
modelom inkrementnog razvoja jeste to što pretpostavlja da se svaki složen sistem može razbiti na jasno
razdvojene komponente,a to nije uvijek moguće u svim sistemima.Budući da se analiza zahtijeva i
projektovanje strukture obavljaju na početku projekta,postoji rizik da oni zastare,što je jedan od glavnih
nedostataka modela vodopada.Iz tog razloga,važno je da više puta ponovite ta dva koraka-naročito
nalaizu zahtijeva,pošto je tu najveća vjerovatnoća naknadnih izmjena-prije nego što započnete detalljno
projektovanje svake komponente.Uprkos rizicima,model inkrementnog razvoja ipak pruža više
prednosti.Budući da je slika sistema definisana na samom početku projekta,smanjuje se vjerovatnoća
gubljenja ranije uloženog truda zbog pogrešnih odluka.Budući da se složeni projekti razbijaju na manje
komponente,lakše se upravlja projektima pojedinačnih komponenata.Razbijanjem sistema na
pojedinačne komponente,vrlo je vjerovatno da će se već u ranim fazama projekta moći obezbjediti
klijentu dio osnovne funkcionalnosti.To obezbjeđuje da sistem počne da isplaćuje novac uložen u
dotadašnji razvoj i obezbjeđuje mehanizam da se povratne informacije koje stižu od korisnika sistema
ugrade u dalji rad na razvoju sistema.

Napomena: Pitanja su podjeljena u tri grupe. Grupe su označene različitom bojom (1 – 19, 20 – 36, 37 – 50). Na usmenom ispitu, student odgovara na tri pitanja
(iz svake grupe po jedno pitanje). Ukoliko u okviru jednog pitanja postoji slika (dijagram, grafik ili slično), koja se nalazi u slajdovima sa predavanja, potrebno je
kod odgovora na pitanje nacrtati i sliku.
25. Šta predstavljaju agilne metodologije razvoja softvera? Nabrojati najmanje šest agilnih
metodologija razvoja softvera. Koje su prednosti, a koji nedostaci agilnih metodologija razvoja
softvera.
Agilni razvoj softvera ili skraćeno Agile je skup okvira i metoda razvoja softvera na načelima iterativnog i
inkrementalnog razvoja, gdje zahtjeve korisnika u rješenja implementiraju samoorganizirani,
multifunkcionalni razvojni timovi.Agile promoviše adaptivno planiranje, razvoj u vremenski ograničenim
iteracijama, podstiče brz i fleksibilan odgovor na promijene i stalni feedback svih učesnika u razvoju kroz
učestale inspect-and-adapt aktivnosti. Software se isporučuje sukcesivno na način da se prvo razvijaju
funkcionalnosti sa najvećom poslovnom vrijednošću za korisnika. Agilni razvoj podrazumjeva
organiziovanu kolaboraciju svih učesnika u razvoju sistema i podržava brzo i efikasno donošenje odluka
Agilne metode razvoja softvera su:
• Ekstremno programiranje (XP)
• Industrijsko ekstremno programiranje (IXP)
• Scrum
• Agilno modelovanje
• Adaptivni razvoj softvera (ASD)
• Crystal clear i ostale crystal metode
• Metod dinamičkog razvoja sistema(DSDM)
• Razvoj vođen karakteristikama (FDD)
• „Suvi“ razvoj (lean development)
• Agile Unified Process(AUP).
Prednosti agilnih metoda:
• Promena je prihvatljiva: sa kraćim ciklusom planiranja, lako je prilagoditi i prihvatiti promene u
bilo kom trenutku tokom projekta. Uvek postoji mogućnost usavršavanja i reprioretizacije backlog
liste, puštajući timove da se upoznaju sa promenama na projektu u roku od nekoliko nedelja.
• Krajnji cilj može biti nepoznat: Agilnost je veoma korisna za projekte gde krajnji cilj nije jasno
definisan. Kako projekat napreduje, ciljevi će doći pre ili kasnije na videlo i razvoj se može lako
prilagoditi ovim razvojnim zahtevima.
• Brze i kvalitetne isporuke: Razbijanje projekta na ponavljanja omogućava timu da se fokusira na
visoko-kvalitetni razvoj, testiranje i saradnju. Sprovođenje testiranja tokom svakog ponavljanja
znači da se greške identifikuju i rešavaju mnogo brže.
• Snažna timska interakcija: Agilnost ističe značaj česte komunikacije i interakcije licem u lice.
Timovi rade zajedno i ljudi su u stanju da preuzmu odgovornost i rukovode određenim delovima
projekta.
• Klijenti su saslušani: Klijenti imaju mnogo mogućnosti da vide rad koji se isporučuje, dele svoj
doprinos, i imaju stvarni uticaj na krajnji proizvod. Oni mogu da steknu osećaj vlasništva radeći
blisko sa projektnim timom.
• Kontinuirana poboljšanja: Agilni projekti podstiču povratnu informaciju od korisnika i članova
tima tokom čitavog projekta, tako da se naučene lekcije koriste za poboljšanje budućih projekata.
Nedostaci agilnih metoda:
Dok je nivo fleksibilnosti u agilnom okruženju obično pozitivan, takođe dolazi sa nekim kompromisima.
Može biti teško da se uspostavi tačan datum isporuke, dokumentacija se može zanemariti, ili krajnji
proizvod može biti vrlo različit od prvobitno namenjenog i planiranog.
• Planiranje može biti manje konkretno: ponekad može biti teško da se odredi tačan datum
isporuke. Jer agilna metodologija se zasniva na isporuci i projektni menadžeri često

Napomena: Pitanja su podjeljena u tri grupe. Grupe su označene različitom bojom (1 – 19, 20 – 36, 37 – 50). Na usmenom ispitu, student odgovara na tri pitanja
(iz svake grupe po jedno pitanje). Ukoliko u okviru jednog pitanja postoji slika (dijagram, grafik ili slično), koja se nalazi u slajdovima sa predavanja, potrebno je
kod odgovora na pitanje nacrtati i sliku.
reprioretizuju zadatke, tako da je moguće da neke stavke prvobitno zakazane za isporuku ne
mogu biti završene na vreme.
• Tim mora biti upućen: Agilni timovi su obično mali, tako da članovi tima moraju biti veoma vešti u
raznim oblastima. Oni takođe moraju da razumeju i osećaju se udobno u odabranoj agilnoj
metodologiji.
• Vreme posvećenosti programera: Agilna metodologija je najuspešnija kada je razvojni tim u
potpunosti posvećen projektu. Aktivno učešće i saradnja je neophodna tokom agilnog procesa,
što podrazumeva više vremena od tradicionalnog pristupa. To takođe znači da programeri moraju
biti posvećeni tokom celog trajanja projekta.
• Dokumentacija se može zanemariti: Agilni Manifesto preferira radni softvera umesto
sveobuhvatne dokumentacije, tako da neki članovi tima osećaju da je manje važno fokusirati se na
dokumentaciju. Dok sveobuhvatna dokumentacija sama po sebi ne dovodi do uspeha projekta,
agilni timovi treba da pronađu pravu ravnotežu između dokumentacije i razgovora.
• Finalni proizvod može biti veoma različit: Početni agilni projekat možda neće imati konačan i
definisan plan, tako da krajnji proizvod može izgledati mnogo drugačije nego što je prvobitno
namenjen. Agilna metodologija je fleksibilna, nova ponavljanja se mogu dodati na osnovu
povratne informacije od klijenta, što može dovesti do veoma različitog datuma isporuke softvera.

26. Larmanova metoda razvoja softvera: pojam, karakteristike, faze. UML.


Ova metoda je objektno orijentisana metoda razvoja softvera. Objektno orijentisana metoda
omogućuje razvoj aplikacije tako da na jednostavan način obezbeđuje uvid u analizu i
implementaciju svim učesnicima u razvoju softvera. Larmanova metoda za notacije koristi
UML (Unified Modeling Language) dijagrame. UML predstavlja grafički jezik za specifikaciju,
vizuelizaciju,konstrukciju i dokumentovanje artifakta softverskih sistema bez obzira na
implementacionu platformu. Osnovne faze Larmanove metode razvoja softvera su:
− Prikupljanje zahtjeva
− Analiza
− Projektovanje
− Implementacija
− Testiranje.
Zahtjevi predstavljaju osobine i uslove koje sistem ili projekat mora da zadovolji. Zahtjevi se
opisuju pomoću modela slučaja korišćenja (engl. use-case model) koji predstavljaju skup
željenih korišćenja sistema od strane krajnjih korisnika. U ovoj fazi se definišu svi učesnici u
sistemu i slučajevi korišćenja. Karakteristika ove faze je intenzivna saradnja između projektanta
i osobe koja dobro poznaje domen problema. Ova faza najčešće počinje tekstualnim opisom
zahtjeva radi formiranja slučajeva korišćenja koji se predstavljaju tekstualno i grafički. Slučajevi
korišćenja definišu interakciju korisnika sa sistemom, koje opisuje skup od jednog osnovnog i
više alternativnih scenarija. Scenario predstavlja skup željenih korišćenja od strane korisnika
sistema.
Faza analize opisuje logičku strukturu i ponašanje softverskog sistema (poslovnu logiku
softverskog sistema). Ponašanje softverskog sistema je opisano pomoću sistemskih dijagrama
sekvenci, koji se prave za svaki slučaj korišćenja, i pomoću ugovora o sistemskim operacijama,
koje se dobijaju na osnovu sistemskih dijagrama sekvenci. Struktura softverskog sistema se
opisuje pomoćukonceptualnog modela. Konceptualni (domenski) model sistema opisuje
konceptualne klase domena problema i asocijacije među njima. Konceptualne klase
predstavljaju atribute softverskog sistema, što znači da opisuju njegovu strukturu. Konceptualni

Napomena: Pitanja su podjeljena u tri grupe. Grupe su označene različitom bojom (1 – 19, 20 – 36, 37 – 50). Na usmenom ispitu, student odgovara na tri pitanja
(iz svake grupe po jedno pitanje). Ukoliko u okviru jednog pitanja postoji slika (dijagram, grafik ili slično), koja se nalazi u slajdovima sa predavanja, potrebno je
kod odgovora na pitanje nacrtati i sliku.
model služi kao osnova za izradu relacionog modela i šeme baze podataka. Realacioni model je
još uvijek najpopularniji model i osnova najvećeg broja komercijalnih sistema za upravljanje
bazom podataka.
Projektovanje opisuje fizičku strukturu i ponašanje softverskog sistema (arhitekturu softverskog
sistema). Projektovanje arhitekture softverskog sistema obuhvata projektovanje aplikacione
logike, skladišta podataka i korisničkog interfejsa. U okviru aplikacione logike se projektuju
kontroler, poslovna logika i database broker.
Implementacija. U ovoj fazi se vrši kodiranje softverskog sistema u nekom od objektno-
orijentisanih programskih jezika.
Testiranje. U zavisnosti od arhitekture softverskog sistema, ova faza se može podijeliti u
nekoliko nezavisnih dijelova testiranja.Nezavisne jedinice testiranja su softverske komponente
koje smo dobili u fazi implementacije softverskog sistema. Testiranje svake softverske
komponente podrazumeva sljedeće [Lar98]:
a) test slučajeva koji opisuju šta test treba da provjeri,
b) test procedura koje opisuju kako će se izvršiti test i
c) test komponente koje treba da automatizuju test procedure ukoliko je to moguće. Nakon
testiranja softverskih komponenti vrši se njihova integracija. U tom smislu se prave integracioni
testovi softverskih komponenti.
27. Agilne metodologije razvoja softvera, Ekstremno programiranje (XP): pojam,
karakteristike, faze.
Poznat kao XP, ekstremno programiranje je vrsta razvojnog softvera koji ima za cilj da poboljša
kvalitet i odziv na konstantne zahtijeve klijenata. Principi XP uključuju povratne informacije,
pod pretpostavkom jednostavnosti i prihvatanje promjena. Ekstremno programiranje (XP),
agilni jezik uzora za razvoj softvera u timu, koji čini sinergija uspostavljenih vrednosti tima i
principa koji podržavaju ove vrednosti kroz praktične mehanizme funkcionisanja timskog rada i
aktivnosti kojima se tim bavi. Cilj ove sinergije je uspostavljanje visokog nivoa kvaliteta i odziva
na promene. U XP se sprovodi četiri vrste takvih aktivnosti:
• Kodiranje
• Slušnje
• Testiranje
• Dizajn (Projektovanje).

28. Agilne metodologije razvoja softvera, Scrum: pojam, karakteristike, faze.


Scrum je jedan od najpopularnijih načina za implementaciju Agilne metodologije. To je model softvera
koji prati niz uloga, odgovornosti i sastanaka koji se nikad ne menjaju. Sprintevi, obično traju od jedne
do dve nedelje i omogućuje timu da isporuči softver redovno. Ona propisuje načine upravljanja zahtevima,
formiranja iteracija (planiranje sprinta), kontrole implementacije i isporuke klijentu. Često se upotrebljava kao
način vođenja XP, ili drugih projekta koji ne moraju obavezno da se projektuju nekom agilnom metodom.
Osnovu predstavljaju tri ključna pitanja koja se postavljaju na svakodnevnim, jutarnjim “stojećim”
petnaestominutnim sastancima, a to su:
1. Šta je urađeno juče?
2. Šta će se raditi danas?
3. Kakve nas danas prepreke očekuju?
Ova pitanja se odnose na:
1. Kontrolu izvršenog
2. Planiranje budućeg dizajna

Napomena: Pitanja su podjeljena u tri grupe. Grupe su označene različitom bojom (1 – 19, 20 – 36, 37 – 50). Na usmenom ispitu, student odgovara na tri pitanja
(iz svake grupe po jedno pitanje). Ukoliko u okviru jednog pitanja postoji slika (dijagram, grafik ili slično), koja se nalazi u slajdovima sa predavanja, potrebno je
kod odgovora na pitanje nacrtati i sliku.
3. Identifikaciju rizika i nalaženje rešenja

29. Agilne metodologije razvoja softvera, Razvojna metoda za dinamični sistem (DSDM), pojam,
karakteristike, faze.
Razvojni metod dinamičkih sistema (Dynamic Systems Development Method –DSDM): Ovaj Agilni
framework se koristi za razvoj softvera i rešenja koja nisu striktno IT. Bavi se zajedničkim neuspesima IT
projekata, kao što su prekoračenje budžeta, probijanje rokova, i nedostatak uključivanja u razvoj od
strane klijenta ili korisnika. Osam načela DSDM su: fokus na poslovne potrebe, dostavljanje na vreme,
saradnja, oko kvaliteta nema kompromisa, postepena gradnja od čvrstih temelja, razvijanje korak po
korak, komuniciranje neprekidno i jasno, i demonstriranje kontrole nad razvojem.

30. Agilne metodologije razvoja softvera, Razvoj pokretan funkcionalnostima (FDD): pojam,
karakteristike, faze.
Razvoj baziran na karakteristikama (Feature-driven development – FDD): Ovaj ponavljajući i postepen
proces razvoja softvera se uklapa u industriju najboljih praksi u jednom pristupu. Postoji pet osnovnih
aktivnosti u FDD: razviti sveobuhvatni model, izgraditi listu karakteristika ili tehničkih zahteva, plan po
karakteristikama, dizajn po karakteristikama, i građenje softvera po karakteristikama.

31. Strukturna sistem analiza: pojam, osnovni koncepti, osnovni elementi. Dijagram toka podataka
(DTP). Riječnik podataka.
Strukturna sistemska analiza (SSA) je potpuna metodologija za specifikaciju informacionog sistema
(IS).Prva faza u strukturnom projektovanju IS,koja odgovara na pitanje ŠTA sistem treba da radi.SSA
posmatra informacioni sistem kao funkciju(proces) koja,na bazi ulaznih,generiše izlazne
podatke.Predstavlja metodološki postupak dekompozicije sistema na podsisteem.Orginalna SSA
posjeduje jednostavne ,grafičke,pa samim tim i jasne koncepte.Osnovni koncepti SSA su:
• Funkcije,odnosno procesi obrade podataka
• Tokovi podataka,
• Skladišta podataka
• Interfejsi.
Njihov međusobni odons prikazan je preko dijagrama toka podataka (DTP).
DTP:
❖ Krug ili elipsa predstavlja funkciju ili proces obrade podataka
❖ Pravougaonik predstavlja interfejs
❖ Usmjerena linija predstavlja tok podataka
❖ Dvije paralelne linije („otvoreni pravougaonik“)predstavlja skladište podataka.

Napomena: Pitanja su podjeljena u tri grupe. Grupe su označene različitom bojom (1 – 19, 20 – 36, 37 – 50). Na usmenom ispitu, student odgovara na tri pitanja
(iz svake grupe po jedno pitanje). Ukoliko u okviru jednog pitanja postoji slika (dijagram, grafik ili slično), koja se nalazi u slajdovima sa predavanja, potrebno je
kod odgovora na pitanje nacrtati i sliku.
Napomena: Pitanja su podjeljena u tri grupe. Grupe su označene različitom bojom (1 – 19, 20 – 36, 37 – 50). Na usmenom ispitu, student odgovara na tri pitanja
(iz svake grupe po jedno pitanje). Ukoliko u okviru jednog pitanja postoji slika (dijagram, grafik ili slično), koja se nalazi u slajdovima sa predavanja, potrebno je
kod odgovora na pitanje nacrtati i sliku.
Dijagram toka podataka na vrhu hijerarhije naziva se DIJAGRAM KONTEKSTA.Procesi koji se dalje ne
mogu dekomponovati nazivaju se PRIMITIVNI PROCESI.Interfejsi predstavljaju entitete(objekte) iz
realnog svijeta.
Osnovni elementi SSA:
1. Dijagram toka podataka -DTP
2. Riječnik podataka-RP
3. Opis logike primitivnih procesa (Pseudo kod,Stabla i tabele odlučivanja,Dijagram
akcije)
Riječnik podataka:
Riječnik podataka,daje opis strukture i sadržaja svih tokova i skladišta podataka.Bez obzira šta tok ili
skladište podataka predstavljaju,papirni dokument,niz karaktera koa ulaz sa terminala ,“paket“
informacija dobijen telekomunikacionom linijom,kartoteku ili datoteku.Kao logučka struktura podataka
rječnici predstavljaju neku kompoziciju polja.Da bi precizno definisali logičku strukturu skladišta i tokova
i definisali sintaksu rječnika neophodno je da uvedemo definicije svih koncepata rječnika:
→ Polje je elementarna(atomska)struktura koja se dalje ne dekomponuje i koja ima svoju vrijdnost.
→ Polja svoje vrijednosti uzimaju iz skupova vrijednosti koji se nazivaju domenima.
Domeni mogu biti:
− „predefinisani“,odnosno standardni programsko-jezički domenu,kao što su
INTEGER,CHARACTER,REAL,LOGICAL i DATE.
− „semantički“ kada se definišu posebno,preko svog imena,predefinisanog domena i
eventualno,ograničenja na mogući skup vrijednosti predefinisanog domena.
Pored ograničenja na vrijednost polja,odnosno vrijednost domena,definišu se i druga.Ograničenja mogu
biti prosta i složena.Lista dozvoljenih prostih ograničenja je:
a)  konstanta, gdje je  bilo koji operator poređenja koji se može definisati na datom domenu
(na primjer <,>,=,<=,>= za brojne domene),a konstanta je neka definisana vrijednost iz datog
domena.
b) BETWEEN konstanta,konstanta ,gdje su konstante vrijednosti iz datog domena.
c) IN (lista vrijednosti) gdje se lista formira od konstanti iz odgovarajućeg domena.
d) NOT NULL kada dato polje ne može da doniije „null vrijednost“ odnosno mora uvijek da ima
vrijednost.
Primjeri polja i vrijednosti koje polje uzima iz nekog domena:

Napomena: Pitanja su podjeljena u tri grupe. Grupe su označene različitom bojom (1 – 19, 20 – 36, 37 – 50). Na usmenom ispitu, student odgovara na tri pitanja
(iz svake grupe po jedno pitanje). Ukoliko u okviru jednog pitanja postoji slika (dijagram, grafik ili slično), koja se nalazi u slajdovima sa predavanja, potrebno je
kod odgovora na pitanje nacrtati i sliku.
− NazivPredmeta:CHAR(20)
− Ocjena:INT(2) IN (5,6,7,8,9,10)
− Prosjek:REAL (2,2)<10.00
− Semestar:SEMESTRI.

32. Šta predstavlja testiranje softvera? WhiteBox testiranje. BlackBox testiranje. Vrste softverskih
grešaka.
Testiranje softvera je kritičan element u osiguravanju kvaliteta i pouzdanosti softvera u fazama
specifikacije,dizajna i kodiranja.Posebnu pažnju pri testiranju zahtjeva softver koji je orjentisan na
ljude (kontrola leta,monitoring nuklearnih reaktora itd.)Cijena vremena testiranja može biti
nekoliko puta veća u odnosu na ostale faze zajedno.Testiranje je proces izvođenja programa sa
ciljem pronalaženja grešaka.Za izvođenje testa potrebni su ulazni podaci koji formiraju testni
slučaj (test case) koji treba da ima veliku vjerovatnoću otkrivanja grešaka.Testovi moraju biti
dizajnirani tako da otkrivaju različite klase grešaka i testiranje može prikazati samo prisustvo
defekta.Kao i bilo koji drugi proizvod softver može biti testiran na dva načina:
− Poznate su sve specifirane funckije za koje je proizvod dizajniran da ih izvede.Testovi treba
da demonstriraju da je svaka funkcija potpuno operacionalna (black box testiranje)
− Poznate su sve interne operacije koje se izvode prema specifikaciji i sve interne
komponente se adekvatno ispituju (white box testiranje).
Black box testiranje (testiranje crne kutije) je funkcionalno testiranej.Testni slučajevi demonstriraju
da su softverske funkcije operacionalne,da je input dobro specifiran,da je output korektno
produkovan i da se održava integritet eksternih informacija (npr.fajlova).Dakle, black box testiranje
razmatra neke aspekte fundamentalnog modela sistema i malo pažnje posvećuje internoj logičkoj
strukturi softvera.
White box testiranje (testiranje bijele kutije) je metoda za dizajniranje testnih slučajeva koja
upotrebljava upravljačke strukture proceduralnog dizajna.Upotrebom white box testiranja se mogu
derivirati testni slučajevi koji omogućavaju:
− Da su svi nezavisni putevi unutar modula izvedeni najmanje jednom,
− Da je kod svake logičke odluke izvedeno testiranje na obe strane true (ispravno) i
false(pogrešno),
− Da je izvođenje svih petlji izvršeno u njihovim granicama,
− Da se ispita interna struktura podataka i njihova vrijednost.

33. Šta je kvalitet softvera? Nabrojati pet najznačajnijih modela za ocjenu kvaliteta softvera?
Kvalitet softvera je veličina prema kojoj softverski proizvod zadovoljava formulisane i
podrazumjevane potrebe kada je upotrebljivan pod specifičnim uslovima (ISO/IEC 9126-
1:2001).Kvalitet softvera je višedimenzionalni koncept koje se ne može na jednostavan način
objasniti.Jedan od uslova za kvalitetan softverski proizvod je razvijanje i implementacija
standarda i dokumentacije sistema kvaliteta koja će biti primjenjena na softverske
proizvode.Pet najznačajnijih modela za ocjenu kvaliteta softvera su:
1. ISO/IEC 9126
2. Capability Maturity Model Integration (CMMI)-to je skup najbolje prakse
pri postupcima razvoja i održavanja softvera koji kompanijama omogućuje
procjenu uspješnosti vlastitog procesa razvoja softvera.
3. Control Objestives for Information and Related Technology (CobiT)-odnosi

Napomena: Pitanja su podjeljena u tri grupe. Grupe su označene različitom bojom (1 – 19, 20 – 36, 37 – 50). Na usmenom ispitu, student odgovara na tri pitanja
(iz svake grupe po jedno pitanje). Ukoliko u okviru jednog pitanja postoji slika (dijagram, grafik ili slično), koja se nalazi u slajdovima sa predavanja, potrebno je
kod odgovora na pitanje nacrtati i sliku.
se na procjenu i upravljanje rizikom,i ima fokus na cjelovitost,pouzdanost i
sigurnost.Ovaj model je fokusiran na četiri područja:planiranje i
organizacija,primjena,isporuka podrška i nadzor.
4. IT Infrastructure Library (ITIL)-predstavlja upustva za upravljanje IT
uslugama i operacijama kao što su incidenti,promjene,upravljanje
sigurniošću itd.
5. Six Sigma-model čiji je sponzor Motorola Inc.,ovaj model definiše nivo
usluge i mjeri odstupanja,namjenjen je stvaranju proizvoda ili usluga bez
pogrešaka.
34. Koje su osnovne karakteristike Standarda koji daje smjernice za ocjenu kvaliteta softverskog
proizvoda ISO/IEC 9126?
Standard koji daje smjernice za ocjenu kvaliteta softverskog proizvoda ISO/IEC 9126,ovaj model
nudi šemu u dva nivoa sa karakteristikama i podkarakteristikama.Standard ISO/IEC 9126
definiše šest eksternih karakteristika kvaliteta softverskog proizvoda:
➢ Funkcionalnost(celishodnost,tačnost,sigurnost,povezanost,usaglašenost)
➢ Pouzdanost(tolerancija greške,učestalost prekida,mogućnost popravke)
➢ Upotrebljivost(razumljivost,preglednost,savladivost,izvršnost)
➢ Efikasnost(ponašanje resursa,vrijeme)
➢ Lakoća održavanja(mogućnost analize,izmjenljivost,stabilnost,mogućnost testiranja)
➢ Prenosivost(prilagodljivost,podudarnost,zamjenljivost,mogućnost instalacije).
Pri čemu se ne definišu konkretne metrike za njihovu ocjenu,ostavljajući time slobodu da se za
svaki konkretni softverski projekat usaglase mjere kvaliteta između naručioca i isporučioca
softvera.

35. Šta predstavlja održavanje softvera? Ciljevi održavanja softvera. Pristup održavanju softvera.
Održavanje softvera predstavlja modifikaciju isporučenog softverskog proizvoda,radi ispravke
grešaka,poboljšavanja performansi ili prilagođenja nastalim izmjenama u okruženju.To je najduža i
najskuplja faza u životnom ciklusu softverskog proizvoda.Ova aktivnost je usmjerena prema
zadržavanju funkcionalnog softverskog proizvoda u zadovoljavajućim radnim uslovima prema
specifiranim zahtjevima i obuhvata testiranje,mjerenje,zamjene,prilagođenja,promjene i
korekcije.Direktno je vezano za krajnjeg korisnika koji pokreće proces održavanja.Održavanje
softverskih sistema izuzetno je važno zato što se takvi sistemi koriste dugi niz godina,a moraju
zadovoljiti vrlo visoke zahtjeve za kvalitetom.Tokom rada softverskih sistema uočavaju se različite
neispravnosti ili se pojavljuju novi zahtjevi korisnika.Proces održavanja započinje nakon procesa
razvoja softvera.Neki autori održavanje smatraju produženim,evolutivnim razvojem,što je posebno
slućaj kod složenih sistema.Ciljevi održavanja sistema su:
• Ispravljanje grešaka
• Poboljšanje dizajna
• Izrada interfejsa prema drugim sistemima
• Ugradnja različitih poboljšanja
• Izvođenje neophodnih promjena sistema.

36. Kategorije održavanja softvera. Model održavanja softvera prema standardu IEEE 1219.
IEEE 1219 (IEEE Standard za održavanje programske podrške):Održavanje programske podrške je

Napomena: Pitanja su podjeljena u tri grupe. Grupe su označene različitom bojom (1 – 19, 20 – 36, 37 – 50). Na usmenom ispitu, student odgovara na tri pitanja
(iz svake grupe po jedno pitanje). Ukoliko u okviru jednog pitanja postoji slika (dijagram, grafik ili slično), koja se nalazi u slajdovima sa predavanja, potrebno je
kod odgovora na pitanje nacrtati i sliku.
modifikacija softverskog proizvoda nakon isporuke kako bi se ispravile greške,poboljšale performanse ili
kako bi se softverski proizvod prilagodio radnoj okolini.Prema preporuci IEEE Standarda za održavanje
programske podrške (IEEE 1219) postoje tri osnovne kategorije održavanja (korektivno,adaptivno i
perfektivno) koje su kasnije dopunjene kategorijom preventivnog održavanja.
• Korektivno(ispravljanje grešaka pronađenih u programu)
• Adaptivno(održavanje inicirano promjenama u softverskoj okolini)
• Perfektivno(zadovoljavanje novih,modifikovanih potreba korisnika)
• Preventivno(sprečavanje eventualnih problema prije nego se pojave).
Standard IEEE 1219 eksplicitno izražava da planiranje održavanja treba započeti s planiranjem razvoja
softvera.Međutim,ovaj model smatra da je održavanje zasebna faza koja nastupa nakon isporuke
softvera,ne uzimajući u obzir aktivnosti prije isporuke.
_______________________________________________________________________________________

37. Šta je projekat, a šta Portfolio (sa stanovišta upravljanja projektima)? Ko je Projekt menadžer i
šta je njegova uloga?

Projekat je složeni neponovljivi poslovni poduhvat koji se preduzima u budućnosti da bi se dostigli


ciljevi u predviđenom vremenu i sa predviđenim troškovima.Projekat je privremen poduhvat koji je
pokrenut da da bi se kreirao jedinstven proizvod, usluga ili rezultat.Portfolio je upravljana grupa
projekata, programa, podportfolija i operativnih aktivnosti da bi se ostvarili strateški ciljevi.Projekt
menadžer (PM) - Lice, angažovano od strane organizacije koja izvodi projekat, kojem je dodijeljeno da
vodi tim koji je odgovoran za relizaciju projektnih ciljeva.

38. Šta predstavljaju faze projekta, a šta je Program (sa stanovišta upravljanja projektima)?
Program (sa stanovišta upravljanja projektima) je grupa povezanih projekata, podprograma i programskih
aktivnosti kojima se upravlja na koordinisan način da bi se ostvarili benefiti koji koji se ne bi mogli
ostvariti ukoliko bi se njima upravljalo pojedinačno.
Faza projekta predstavlja niz događaja koji imaju svoj početak i kraj, te neki rezultat. Po fazama se
projekat dijeli na manje cjeline zbog lakšeg upravljanja projektom. Faze projekta se dalje dijele na
zadatke. Svaka faza projekta je označena završetkom jednog ili više zadataka.

39. Strukture softverskih timova i njihove karakteristike.


Strukture softverskih timova:
➢Demokratski tim-( Zahtjevaju programiranje bez ega;Programeri nisu previše vezani za svoj
kod;Neophodna dobra atmosfera u timu i međusobna saradnja;Pronalaženje bagova daje pozitivan
efekat;10 programera „bez ega“= demokratski tim;Svako je jednak i tim je samoorganizovan
;Ne postoji imenovani lider => u suprotnosti sa konvencionalnim principom upravljanja;Teorija tvrdi da
ovakva grupa radi dobra za kompleksneprobleme)
➢Glavni-programer tim („šefovski tim“)-( Šefovski tim:Po uzoru na hiruške timove: hijerarhija se koristi
da bi se prevazišla komunikaciona eksplozija:
•Šef-programmer, od 6 osoba redukuje broj kom. kanala sa 15 na 5
• Uloge: – Šef (glavni programer): dizajnira arhitekturu sistema,programira kompleksne dijelove koda i
integriše kod u cjelinu,sveobuhvatni menadžer – Rezervni (zamjenik) programer:preuzima po potrebi

Napomena: Pitanja su podjeljena u tri grupe. Grupe su označene različitom bojom (1 – 19, 20 – 36, 37 – 50). Na usmenom ispitu, student odgovara na tri pitanja
(iz svake grupe po jedno pitanje). Ukoliko u okviru jednog pitanja postoji slika (dijagram, grafik ili slično), koja se nalazi u slajdovima sa predavanja, potrebno je
kod odgovora na pitanje nacrtati i sliku.
zadatke od šefa, dizajnira testove –Administrativac: održava bazu podataka i dokumentaciju,
pokreće testove;)
➢Modifikovani šefovski tim-( *Šef programer podjeljen u dvije uloge:– Tim lider (za tehnička pitanja)
– Tim menadžer (za netehnička menadžerska pitanja)
*Pažljivo odvojene odgovornosti uloga u timu, kako ne bi bilo konflikta interesa
*Mogu postojati neki dijelovi preklapanja (recimo kada jedan član tima ode na godišnji odmor)
*Struktura tima može da se uveća ako se uvede još liderskih nivoa (viši šefovi u hijerarhiji))
➢Sinhronizovan i stabilizovan tim-( Sinhronizovan I stabilizovan tim:• Microsoft model; uspješan za
veoma velike projekte – Više od 3000 programera i testera je radilo na Win 2000
• Mali timovi od 3-8 programera i 3-8 testera, rade u paraleli
• Pojedincima je dozvoljena sloboda da dizajnira i implementiraju specifikaciju, ali: – Programski kod
mora biti integrisan na dnevnom nivou – Ukoliko tvoj programski kod sprečava kompilaciju, on mora da
bude fiksiran odmah
• Microsoft ima svoju poslovnu etiku već godinama, tako da njihov tim možemo nazvati „tim jake
korporativne kulture“)
➢Ekstremno programiranje (XP)-( XP tim• Baziran na programiranju u paru:
– šire znanje koje imaju dvije osobe nego pojedinac
– pomaže manje iskusnim programerima da ubrzaju rad)

40. Šta je Gantov dijagram i za šta se koristi? Nabrojati dva alata za kreiranje Gantovog dijagrama.
Koji su koraci u kreiranju Gantovog dijagrama.
Gant čart (Gantt chart), Gantov dijagram ili Gantogram su različiti nazivi za jednu te istu stvar,
odnosno za najčešće korišćeni prikaz projekta. Gantov dijagram je dijagram koji se koristi za grafički
prikaz rasporeda projekta. Gantogrami ilustriraju početni i krajnji datum nekih nepromjenjivih i
sažetih elemenata projekta. Nepromjenijivi ili terminalni elementi kao i sažeti elementi obuhvataju
podjelu radne structure.
Gantov dijagram, koraci u kreiranju:
1. Napraviti listi aktivnosti (taskova)
2. Povezati aktivnosti
3. Odrediti početak I kraj aktivnosti
4. Dodati kontrolne tačke (milestone)
5. Dodati resurse.

41. Šta predstavlja milestone softverskog projekta? Šta predstavlja zadatak (task) sa stanovišta
upravljanja softverskim projektom?
Ključni događaj je početak ili završetak određenog značajnog događaja ili niz događaja. Milestone
predstavlja značajan događaj u projektu, odnosno ukazuje nam kad takav događaj treba da se
izvrši. Milestone može biti ili obavještenje ili već postojeći zadatak.*Milestone – značajna tačka ili
događaju projektu,programu ili portfolio.
Zadatak(task) je aktivnost koja je jasno definisana, ima svoj početak i završetak, te predstavlja
osnovni element u planiranju i izvođenju projekta.

Napomena: Pitanja su podjeljena u tri grupe. Grupe su označene različitom bojom (1 – 19, 20 – 36, 37 – 50). Na usmenom ispitu, student odgovara na tri pitanja
(iz svake grupe po jedno pitanje). Ukoliko u okviru jednog pitanja postoji slika (dijagram, grafik ili slično), koja se nalazi u slajdovima sa predavanja, potrebno je
kod odgovora na pitanje nacrtati i sliku.
42. Procesne grupe upravljanja projektima.
Procesi upravljanja projektima grupisani su u pet kategorija koje su poznate kao procesne grupe
upravljanja projektima.
1. Pokretanje (određuje projekat ili faze projekta)
• Autorizacija i utvrđivanje (potreba) projekta
• Imenovanje projekt menadžera
• Preliminarni proračun obima projekta i ostalih poznatih informacija
2. Planiranje(definiše ciljeve i planira tok akcija potrebnih za postizanje ciljeva i obima projekta)
• Definisanje aktivnosti
• Trajanje aktivnosti
• Mrežni dijagram
• Upravljanje rizicima
3. Realizacija (integriše ljude i ostale resurse da ostvare plan upravljanja projektom)
• Direktno upravljanje izvršenjem projekta
• Obezbjeđenje kvaliteta izvođenja
• Stvaranje i razvoj projektnog tima
• Protok informacija
4. Praćenje i kontrola (ocjenjivanje i kontrola napretka u cilju identifikacije odstupanja od plana upravljanja
projektom)
• Kontrola obima, dinamike, troškova, kvaliteta
• Izvještaji
• Upravljanje očekivanjima ključnih učesnika
• Administracija ugovora
5. Zatvaranje (formalizacija prijema proizvoda,usluge ili rezultata)
• Zatvaranje projekta
• Zatvaranje ugovora

43. Šta je PMP-Project Management Institute? Podjela projekata prema Internacionalnoj asocijaciji
za upravljanje projektima (IPMA).
Klasifikacija projekata omogućava da se precizno utvrde specifičnosti određenih tipova projekata i na
osnovu toga definise određeni koncept upravljanja nekim tipom projekta.Podjela Internacionalne
asocijacije za upravljanje projektima (IPMA):
1. Investicioni projekti
2. Istraživačko-razvojni projekti
3. Organizacioni projekti
4. Informatički projekti.

Napomena: Pitanja su podjeljena u tri grupe. Grupe su označene različitom bojom (1 – 19, 20 – 36, 37 – 50). Na usmenom ispitu, student odgovara na tri pitanja
(iz svake grupe po jedno pitanje). Ukoliko u okviru jednog pitanja postoji slika (dijagram, grafik ili slično), koja se nalazi u slajdovima sa predavanja, potrebno je
kod odgovora na pitanje nacrtati i sliku.
44. Koji su ključni učesnici u svakom softverskom projektu?
Ključni učesnici u skoro svakom projektu su:
• Projekt menadžer – osoba koja je odgovorna za upravljanje projektom,
• Projektni upravljački tim i članovi projektnog tima
• Kupac, klijent – pojedinci ili organizacija/organizacije koje će koristiti projekat,
• Organizacija koja izvodi projekat,
• Naručilac projekta, i razne organizacije koje finansijski na bilo koji način prate projekat (sponzori).
• Osobe i organizacije koje mogu imati koristi od projekta su i isporučioci, vladine agencije, ministarstva,
zainteresovani građani, itd.

45. Nabrojati 10 funkcionalnih oblasti u upravljanju softverskim projektom.


Podjela osnovnih funkcionalnih oblasti upravljanja projektom koje danas čine njegovu teorijsku
bazu i realne mogućnosti za praktičnu primjenu:
1. Upravljanje obimom projekta - usmjeravanje projekta prema njegovim ciljevima, počev od
koncipiranja, definisanja i razrade projekta, sve do njegove realizacije i zavrsetka,
2. Upravljanje vremenom – obezbeđuje održavanje raspodjele vremena za cjelokupno UP kroz
etape životnog ciklusa projekta, pomoću procesa: planiranja vremena, procjene vremena,
operativnog planiranja vremena i kontrole operativnog planiranja vremena,
3. Upravljanje troškovima – obezbeđuje se kontrola odvijanja realizacije projekta kroz: proces
procene, budžetiranja, praćenja,analiziranja i izvještavanja o troškovima projekta,
4. Upravljanje kvalitetom – obuhvata proces utvrđivanja osnovnih zahtjeva projekta i ispitivanje
usklađenosti realizacije projekta sa traženim standardima,
5. Upravljanje ugovaranjem – usmjeravaju se procesi ugovaranja iIi praćenja realizacije
ugovorenih obaveza tokom realizacije projekta,
6. Upravljanje nabavkom - nabavka, odnosno obezbeđenje potebnih materijalnih resursa u
skladu sa realizacijom projekta,
7. Upravljanje ljudskim resursima - usmjeravanje i koordinaciji ljudskih resursa od strane
rukovodilaca, kao i motivacija,
8. Upravljanje komuniracijama - upravljanje informacijama za potrebe projekta kroz: procese
slanja, prenosa, prijema, obrade, interpretacija i razmene informacija,
9. Upravljanje konfliktima - istraživanje izvora mogućih konflikata i definisanje najboljih načina
za njihovo rješavanje. (bitna za ljudske resurse)

Napomena: Pitanja su podjeljena u tri grupe. Grupe su označene različitom bojom (1 – 19, 20 – 36, 37 – 50). Na usmenom ispitu, student odgovara na tri pitanja
(iz svake grupe po jedno pitanje). Ukoliko u okviru jednog pitanja postoji slika (dijagram, grafik ili slično), koja se nalazi u slajdovima sa predavanja, potrebno je
kod odgovora na pitanje nacrtati i sliku.
10. Upravljanje promjenama – predviđanje mogućih promjena na projektu, uvođenje i
usmjeravanje ka efikasnoj realizaciji ciljeva projekta.

46. Koja su tri osnovna tipa organizacija? Nabrojati karakteristike svake od njih.
Funkcionalna organizacija - hijerarhijska organizacija prema kojoj svaki zaposleni ima jasno
definisanog nadređenog, a zaposleni su organizovani u područja specijalizacije i rukovođeni
osobom sa stručnoj u toj oblasti.
Primjer: zaposleni su grupisani u sektore: nabavka,prodaja, finansije, IT sektor, ljudski resursi,
itd.). U ovakvoj organizaciji, zaposleni će raditi na projektu u okviru svojih organizacionih
dijelova i paralelno sa svojim radnim zadacima.
Matrična organizacija je organizacija u kojoj projekt menadžer i funkcionalni menadžeri imaju
podjelu odgovornosti za dodjeljivanje prioriteta i za vođenje posla osoba dodijeljenih na
projekat. Projekt menadžer može u tim organizacijama da bude koordinator (da ima neku
manju moć odlučivanja).
Projektno orijentisana organizacija je organizaciona struktura u kojoj projekt mendažer ima
potpuni autoritet za dodjeljivanje prioriteta, resursa i vođenje posla osoba dodijeljenih na
projekat.

47. Na šta se odnosi disciplina Interakcija čovjek-računar (eng. Human Computer Interaction -
HCI)? Šta se podrazumjeva pod pojmom korisnički interfejs? Šta predstavlja WIMP
paradigma?
Interakcija čovjek-računar (eng. Human Computer Interaction - HCI) se može definisati kao
“disciplina koja se odnosi na projektovanje, evaluaciju i implementaciju interaktivnih
računarskih sistema koje koriste ljudi pri čemu se proučavaju i glavni fenomeni koji ih okružuju.
Pod pojmom korisnički interfejs podrazumjeva se “softverska komponenta aplikacije koja
transformiše korisnikove akcije u jedan ili više zahteva prema funkcionalnoj komponenti
aplikacije, i koja obezbeđuje korisniku povratnu vezu o posledicama njegove akcije.Ovu
softversku komponentu (ili komponente) trebalo bi razlikovati od podrazumevajućeg
sračunavanja koje se dešava kao podrška funkcionalnosti softvera”[Brad A. Myers, A Brief
History of Human-Computer Interaction Technology, ACM Press, April 1998]
Komunikacija koja se zasniva na korištenju prozora kao radne površine, ikona kao reprezenta
mogućih aplikacija, menija kao mehanizma odlučivanja i pokazivača kao reprezenta položaja
korisnika u virtuelnom svijetu generisanog programskom logikom, često se naziva i WIMP
paradigma (eng.windows, icons, menus, pointer) prema osnovnim konceptima na kojima se
zasniva.
48. Šta je autorizacija? Koji je značaj autorizacije kod zaštite informacionih sistema?
Autorizacija ili ovlašćenje je funkcija navođenja prava pristupa resursima koji se odnose na bezbjednost
informacija i računarsku bezbjednost uopšte, naročito kontrolu pristupa. Formalno, „autorizovati“ znači
definisati politiku pristupa. Tokom rada, sistem koristi pravila za kontrolu pristupa da odluči da li će biti
odobren pristup zahtjeva od (provjerenih) potrošača ili će biti odbijen. Resursi uključuju pojedinačne
datoteke ili stavke podataka, računarske programe, računarske uređaje i funkcionalnosti koje pružaju
računarske aplikacije. Primjeri potrošača su korisnici računara, računarski programi i drugi uređaji na
računaru.
49. Šta je autentifikacija? Koji je značaj autentifikacije kod zaštite informacionih sistema?
Autentifikacija -proces određivanja identiteta nekog subjekta, najčešće se odnosi na fizičku osobu.U

Napomena: Pitanja su podjeljena u tri grupe. Grupe su označene različitom bojom (1 – 19, 20 – 36, 37 – 50). Na usmenom ispitu, student odgovara na tri pitanja
(iz svake grupe po jedno pitanje). Ukoliko u okviru jednog pitanja postoji slika (dijagram, grafik ili slično), koja se nalazi u slajdovima sa predavanja, potrebno je
kod odgovora na pitanje nacrtati i sliku.
praksi subjekat daje određene podatke po kojima druga strana može utvrditi daje subjekt upravo taj
kojim se predstavlja. Najčešći primjeri su: uz korištenje kartice i upisivanje PIN-a, ili upisivanje
(korisničkog) imena i lozinke.
50. Koje četiri kategorije napada postoje kod distribuiranih informacionih sistema? Nivoi zaštite
informacionih sistema.
Postoje četiri kategorije napada kod distribuiranih sistema:
1. Prekid normalnog toka informacija,
2. Presretanje ili prisluškivanje informacija,
3. Modifikacija informacija,
4. Fabrikacija informacija.
Zaštita se primjenjuje na :
-nivou mreže,
-nivou operativnog sistema,
-nivou aplikacije,
-nivou baze podataka,
-kao proceduralna zaštita.
Zaštita u distribuiranim sistemima:
a)Autentifikacija -proces određivanja identiteta nekog subjekta, najčešće se odnosi na dizičku osobu.U
praksi subjekat daje određene podatke po kojima druga strana može utvrditi daje subjekt upravo taj
kojim se predstavlja.Autetntifikacija se razlikuje od autorizacije, to su dva različita procesa.Autorizacija
ili ovlašćenje je funkcija navođenja prava pristupa resursima koji se odnose na bezbjednost informacija i
računarsku bezbjednost uopšte, naročito kontrolu pristupa. Formalno, „autorizovati“ znači definisati
politiku pristupa.
b)Kriptografija - Sistemi elektronske identifikacije se uobičajeno baziraju na infrastrukturi javnog ključa
(Public Key Infrastructure,PKI).Infrastruktura javnih ključeva je kompleksan sistem koji se sastoji od
kriptografskih tehnologija,protokola,standarda,polotika,procedura,servisa i aplikacija.Enkripcija je
proces šiforvanja poruka na takav način da samo autorizovani entiteti mogu da ih dešifruju i
pročitaju.Enkripcija se tipično zasniva na nekom „ključu“ bez kojeg je teško dešifrovati poruku.Metode
enkripcije mogu biti simetrične i asimetrične.Simetrične metode koriste isti ključ za enkripciju i
dekripciju poruke.
c)Digitalni potpis - Elektronski potpis predstavlja skup podataka u elektronskom obliku, koji su
pridruženi ili su logički povezani sa elektronskim dokumentom i koji služe za identifikaciju
potpisnika.Kvalifikovani elektronski potpis je elektronski potpis kojim se pouzdano garantuje identitet
potpisnika,integritet elektronskih doumenata i onemogućavanaknadno poricanje odgovornosti za
njihov sadržaj, a koji ispunnjava uslove utvrđene Zakonom o elektronskom potpisu.Kvalifikovani
elektronski potpis se realizuje primjenom asimetričnoh kriptografskih sistema i heš funkcija, dok se kao
sredstva za formiranje kvalifikovanog elektronskog potpisa uglavnom koriste smart kartice.

Napomena: Pitanja su podjeljena u tri grupe. Grupe su označene različitom bojom (1 – 19, 20 – 36, 37 – 50). Na usmenom ispitu, student odgovara na tri pitanja
(iz svake grupe po jedno pitanje). Ukoliko u okviru jednog pitanja postoji slika (dijagram, grafik ili slično), koja se nalazi u slajdovima sa predavanja, potrebno je
kod odgovora na pitanje nacrtati i sliku.

You might also like