You are on page 1of 38

MRS 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
spojenih 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) se mogu opisati nizom atributa. Sistem intereaguje sa okolinom. Uticaj okoline
na sistem naziva se ulazom dok se uticaj sistema na okolinu naziva izlazom.

Pod Informacionim sistemom se podrazumijeva sistem koji svoje veze sa okolinom obavlja
razmjenom informacija. Preslikavanje realnog sistema u informacioni sistem se izvodi
postupkom modelovanja procesa i podataka.

Druga def.: 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
informacija relevatnog u okruženju datog skupa korisnika i njihovih poslova.
Informatika je nauka koja se bavi procesima vezanim za obradu podataka, odnosno
informacija. Interdisciplinarna nauka koja proučava strukturu I svojstva informacije.
Podatak je kodirana predstava neke osobine, nekog koncepta, objekta, činjenice ili događaja
u realnom sistemu (npr: plavi, bijeli, 100, Banja Luka).
Informacija je je protumačeni podatak, odnosno znanje koje se može izvući iz podataka
(Banja Luka ima 200 000 stanovnika, plav ekran).
Teorija informacija omogućava kvantitativno proučavanje komunikacionih problema, kao
što 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 mjerneje količine informacija je bit.
2. Klasifikacija informacionih sistema prema vrsti usluge?
1. Sistemi za računarske usluge objezbjeđ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 sistemi.
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, elektrotehnici, itd.
5. Sistemi za komandovanje i kontrolu procesa obavljaju praćenje tehnoloških 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 zahtjeva visokoprocesni, višekorisnički operativni
sistem radi omogućavanja konkurentskog rada više korisnika.
2. Distribuirana obrada ima više varijanti. Moguće je da podaci budu fizički distribuirani,
horizontalno (svako odjeljenje radi svoje specifične obrade i čuva svoje podatke, pristupajući
drugim podacima po potrebi), ili vertikalno (svako odjeljenje radi iste obrade, ali samo nad
svojim podacima, a drugim podacima pristupa po potrebi).

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


Šta podrazumijeva klijent-server arhitektura?

Arhitektura sistema je osnovna organizacija sistema, koja obuhvata njegove komponente,


njihove relacije, okruženje i principe dizajna i razvoja. U softverskom inženjerstvu
razlikujemo:
1. Softversku arhitekturu
2. Sistemsku arhitekturu
3. Aplikativnu arhitekturu
4. Organizacionu arhitekturu.
Pod klijent-server arhitekturom se podrazumijeva arhitektura računarskog sistema u kojoj
su (u posebne aplikativne programe) razdvojene funkcije pristupa podacima i funkcije
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.
5. Koje su osnovne komponente informacionih sistema? Objasniti svaku od
njih.
Osnovne komponente informacionih sistema su:
1. Hardver (Hardware) - tehnički dio računarskog sistema, sastoji se od skupa različitih
uređaja, a svaki obavlja više operacija i obrada. Uređaji u računaru dijele se na:
 Ulazne uređaje
 Uređaje za obradu
 Izlazne uređaje

2. Softver (Software) - program ili skup programa koji omogućavaju da hardver obrađuje
podatke. Računarsko programiranje podrazumijeva niz vještina pomoću koje korisnik stvara
i izvršava algoritme koristeći određene programske jezike da bi napravio računarski
program. Programiranje sadrži elemente umjetnosti, nauke, matematike i inženjerstva.
3. 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 podrazumjeva se skup podataka o nekom realnom sistemu, koji se u
njemu koristi i kojim se on opisuje.
4. Računarska mreža (Network) - predstavlja sistem povezivanja (žično ili bežično) računara
koja im omogućava da međusobno dijele resurse.
Prema prostoru 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).

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ćavaju da hardver obrađuje podatke.
Računarsko programiranje podrazumijeva niz vještina pomoću koje korisnik stvara i izvršava
algoritme koristeći određene programske jezike da bi napravio računarski program.
Programiranje sadrži elemente umjetnosti, nauke, matematike i inženjerstva.
Softver se dijeli na:
1. Sistemski softver - posrednik između korisnika i njihovih programa s jedne strane i
hardvera računarskog sistema s druge strane. Omogućava upotrebu tehničkog dijela
računarskog sistema.
Sistemski softver uključuje:
 Operativne sisteme (skup računarskih programa zadužen za efikasan rad harvera o
ostvarivanja komunikacije između korisnika, programa i harvera računara)
 Programe za prevođenje
 Uslužne programe

2. Aplikativni softver je softver koji je namijenjen za određenu primjenu, rješavanje


određenog zadatka ili obradu podataka. Primjeri aplikativnih softvera: MS Excel, Calculator,
itd.
Operativni sistem je skup računarskih programa koji su zaduženi za efikasan rad hardvera i
ostvarivanje komunikacije između korisnika, programa i hardvera računara.

Programski jezik je određen skupom simbola i pravilima njihovog slaganja kojim se opisuje
postupak računanja. Opis računanja u danom programskom jeziku interpretira, odnosno
tumači, stroj koje nazivamo računalo. Poznati sinonimi za postupak računanja
su algoritam i program.
 Java
 Phyton
 ASP
 ADA

Skriptni jezici predstavljaju stil programiranja koji je različit od uobičajenih programskih


jezika. Skriptni jezik je programski jezik čiji se kod najčešće izvršava interpretiranjem. Pored
toga, skriptni jezici se koriste najčešće za pisanje manjih programa (skripti) koji se brzo pišu i
služe za obavljanje manjih poslova. Skriptni jezici su postali popularni i u veb programiranju,
zbog svoje prenosivosti i jednostavnosti u pisanju — u njima najčešće ne postoje napredne
mogućnosti koje imaju drugi programski jezici, poput pokazivača, direktnog pristupa
memoriji, sistemskih funkcija itd.(wiki)

 PHP
 Javascript

6. Š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že za razumijevanje sistema, te njegovo
mijenjanje ili upravljanje njime. Model je francuska riječ-modele, riječ vuče korijene od
latinskih riječi modellus tj. modulus (mjera, način) i modus (način, mjera).
Modelovanje (ili modeliranje) je proces korišćenja modela umjesto realnog sistema.
Modelovanje treba da omogući stvaranje jasne i realne predstave-vizuelizaciju sistema.
Vrste modela podataka:
1. Konceptualni model podataka određuje način shvatanja događaja, način shvatanja
podataka o događaju. On je cjelovit, konzistentan i neredudantan.
2. Logički model podataka je konceptualni model podataka koji služi za daljnju razradu.
Tri su tipa logičkih modela podataka:
 Hijerarhijski
 Relacioni
 Mrežni

3. 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 unutarnje sheme baze
podataka.

7. Š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 nekom realnom sistemu koji se u njemu opisuje i kojim se
on opisuje.
U širem značenju baza podataka podrazumijeva način organizacije, čuvanja i pretraživanja
uzajamno povezanih podataka namijenjenih 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 bazom podataka (RBSM). Baze podataka-
najpoznatiji DBMS – Database Management System.

Osnovne karakteristike relacionog modela:

 Jednostavna struktura modela. Relaciona baza je skup tabela. Rezultati operacija


(upita) su takođ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).

Komercijalni:

 Microsoft SQL Server (2000, 2005, 2008, 2012, 2014, 2016)


 Oracle (7, 8, 8i, 9i, 10g, 11g, 12c)
 IBM DB2
 Microsoft Access (dio MS Office sistema)

Open source:

 MySQL
 Maria DB
 Firebird
 PostgreeSQL

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


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

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


Softverska licenca - 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 uslove korišćenja softvera.
Softverska licence možemo podijeliti u dvije glavne kategorije. Njihove karakteristike mogu
značajno uticati na prava korisnika.
 Vlasnička licenca - Glavna karakteristika ove licence je da 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 (otuda mu ime „vlasnička licenca“)
Praktično sva prava koja se odnose na softver su rezervisana za proizvođača.
Samo mali dio strogo definisanih prava daje se korisniku i tipično za ovu vrstu licence
je da je u njoj navedeno puno uslova pod kojima je korišćenje softvera zabranjeno.
Najvažniji za ovu vrstu licence je da proizvođač zadržava pravo na vlasništvo nad
softverom i da krajnji korisnik mora prihvatiti uslove navedene licenci.

 Slobodna licenca - Proizvođač softvera ne zadržava pravo vlasništva nad kopijama


softvera već se pravo vlasništva nad kopijom prenosi na krajnjeg korisnika.
Najvažniji za ovu vrstu licence je da krajnji korisnik može koristiti softver bez
prihvatanja uslova iz licence. Ako krajnji korisnik želi da koristi dodatna prava koja
proizilaze iz licence (npr. Pravo na dalju distribuciju softvera) , onda je krajnji korisnik
obavezan da prihvati i da se pridržava uslova iz licence.

Postoje još i licence otvorenog koda - Open source licence. Dijele se u dvije kategorije:
 Licence koje imaju za cilj da sačuvaju slobodu i otvorenost samog softvera (Copyleft
licence – npr. General Public Licence, koja korisniku daje veoma široka prava, kao
što je pravo na redistribuciju, reverzni inženjering, odnosno vršenje izmjena na
softveru. Obaveze krajnjeg korisnika – mora da prihvati određene uslove ukoliko želi
sva prava iz licence, npr da objavi izvorni kod za sve izmjene koje su napravljene 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).

10. Š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 razvojne
procese:
 Specifikacija softvera: definisanje funkcija i ograničenja koje mora da ispuni
softverski sistem.
 Realizacija softvera: realizacia softverskog sistema prema zadatim specifikacijama.
 Provjera softvera: provjera da li je realizovani softverski sistem zadovoljava
postavljene zahtjeve.
 Daljni razvoj softvera: proširenje softverskog sistema u cilju zadovoljenja novih
zahtjeva.

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:

1. Analizi
2. Projektovanju
3. Razvoju
4. Testiranju
5. Implementaciji
6. Održavanju
7. 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 upotrijebio 1969. god.

Proces nastanka:

 1940-te - ručno pisanje mašinskog koda (0 i 1)


 1950-te - makro asembleri, interpreteri i prva generacija kompajlera
 1960-te - funcionalno programiranje (Fortran, Basic, Cobol, …)
- mainframe računari i softveri za velike korporacije
 1970-te - kolabolarni alati
 1980-te - personalni računari (PC) i radne stanice
 1990-te - objektno-orijentisano programiranje (C++,C#, Java)
- agilni procesi
- integrisana softverska poslovna rješenja (ERP, CAM, ...)
 2000-te - web servisi i servisno- orjentisano programiranje
- inteligentna 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 dobijaju podaci iz raznih izvora u jednom sažetom, sumiranom obliku.
Ovaj koncept pomaže smanjivanju potrebe za fizičkim skladištenjem i obezbjeđuje
zajedničke interfejse za sve aplikacije koje koriste podatke. Model koji korisniku omogućava
jednostavan pristup dijeljenom skupu resursa (mrežnim resursima, serverima, prostoru na
diskovima, aplikacjama, itd).
Cloud computing - predstavlja savemeni koncept korišćenja informatičkih resursa kroz
usluge koje koegzistiraju u djeljenom skupu resursa zasnovanom na tehnologiji virtuelizacije.
Tri osnovna tipa računarstva u oblacima:
 Softver kao usluga (SaaS - Software as a Service) jeste softver koji se licencira na
pretplatnoj osnovi i koji se nalazi na centralnoj lokaciji (kao npr. na serveru pružatelja
usluga).
 Platforma kao usluga (PaaS - eng. Platform as a Service) je kategorija usluga
računarstva u oblaku koja pruža platformu korisnicima da razvijaju, pokreću i
upravljaju programe bez potrebe da izgrađuju i održavaju svoju infrastrukturu.
 Infrastruktura kao usluga (IaaS – eng. Infrastructure as a Service) - Korisniku je kao
usluga pružena mogućnost korišćenja računarske infrastrukture u vidu virtuelne
platforme. Korisnik može da upravlja virtuelnim uređajima, umrežavanjem,
skladištenjem podataka, i drugim osnovnim računarskim resursima.

13. Arhitektura softvera, pojam i podjela. Šta je predstavlja dvoslojna, a šta


troslojna/višeslojna arhitektura softvera? Karakteristike desktop i web
aplikacija.
Arhitektura softvera:
 Obuhvata skup strateških odluka o organizaciji softverskog sistema.
 Definiše strukturu - dekompoziciju sistema u komponente/module.

Opšti obrasci arhitekture:

1. Dvoslojna arhitektura (klijent-server)


2. Troslojna/višeslojna arhitektura
3. Servisno orijentisana arhitektura
4. 4. Ostali opšti obrasci arhitekture

Dvoslojna arhitektura softvera (client-server)


Nema jasnog razdvajanja pojedinih logički komponenti u dvoslojnoj arhitekturi gdje su
prezentacioni sloj (korisnički interfe) i sloj poslove logike objedinjeni unutar desktop
aplikacije (tzv. „debeli klijent“). Ovakva aplikacija poziva funkcije biblioteke za pristup bazi
podataka (ADO, ODBC, JDBC, ...) koja se takođe nalaze na klijentu.

Osnovni nedostatak dvoslojne arhitekture je problem održavanja velikog broja istih kopija
aplikativnog softvera na svim klijentima. Prednost ovakve implementacije se ogleda prije
svega u mogućnosti da se u slučaju promjene poslovne logike izvrši izmjena samo
uskladištene procedure, bez izmjene aplikacije.

Troslojna arhitektura (web aplikacije) sastoji se od:


1. Korisničkog interfejsa koji predstavlja ulazno-izlaznu reprezentaciju softverskog
sistema
2. Aplikacione logike koja opisuje strukturu i ponašanje softverskog sistema
3. Skladišta podataka koji čuva stanje atributa softverskog sistema
(klijentski sloj, aplikacioni sloj, sloj baze podataka)

Karakteristike desktop aplikacije u odnosu na web aplikaciju su:


 Kontrole koje činekorisnički interfejs kod desktop aplikacija reaguju na više događaja
nego kod web aplikacija.
 Kod desktop aplikacija može se smanjiti broj povezivanja servera, s tim da sličnu
funkconalnost omogućava tzv. Ajax koncept.
 Kod desktop aplikacija je moguće postići veći stepen interakcije sa korisnikom.

14. CASE alati, pojam i namjena. Tri najpoznatija CASE alata na svjetskom
tržištu?
Okvir za razvoj softvera u kojem centralno mjesto zauzima model na visokom nivou
apstrakcije naziva se MDA (Model Driven Architecture – Model bazirana arhitektura). Ova
arhitektura ne zavisi od konkretne imlementacione platforme (PIM). PIM se sastoji od
jednog ili više vrsta dijagrama koji opisuju statičke i dinamičke osobine sistema koji se
modeluje. MDA se koristi i kod razvoja skladišta podataka.
Za izradu modela koriste se CASE alati (Computer Aided Software Engineering -
„računarom podržano softversko inžinjerstvo“ ili „razvoj programskih proizvoda uz pomoć
računara“).
Raspoloživi CASE alati koji su najviše u upotrebi:
 BpWin – Platinum
 ErWin – Platinum
 Oracle Designer
 Rational Rose – IBM Paradigm Plus
 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, Java Script, 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 (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ć Apache
- 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 multiplatformska


aplikacija, što znači da se može razviti u Windows okruženju, a da se potom koristi na
Unix-u.

WAMP je softverski paket koji predstavlja skraćenicu od Windows, Apache, MySQL, a P se


može odnositi na PHP, Python ili Perl. Pored verzije za Windows, postoji i LAMP (Linux),
MAMP (Macintosh) i WIMP, gdje I označava IIS veb server.

Ukratko, WAMP vam omogućava da na svom računaru simulirate rad internet servera, i da
za vaš sajt, prezentaciju ili šta god namjeravate da okačite na internet provjerite sve
funkcionalnosti koje ste u njega implementirali, i uvjerite se da sve radi kako treba.
Objasnimo prvo osnovne dijelove WAMP-a. Već smo rekli da W označava Windows
operativni sistem, dok se A odnosi na Apache, veb server koji omogućava da se na vašem
računaru nalazi istovremeno i korisnik (browser) i lokalni server. MySQL je sistem za
upravljanje relacionim bazama podataka, dok je PHP skriptni jezik koji služi za izradu
dinamičng veb sadržaja, i koji generiše novu veb stranu svaki put kada korisnik prustipi
serveru. Takođe, u paketu mogu biti uključeni i dodatni programi, kao što je phpMyAdmin,
kreiran u PHP-u, koji između ostalog služi za kreiranje, modifikovanje i brisanje baza
podataka, tabela, kolona i redova, koristeći SQL programski jezik.

Naprednija verzija: 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?

WWW – World Wide Web jeste najpopularniji Internet servis. Nastao je 1989. godine kao
rezultat ideje Tim Berners 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. Veb stranice se zasnivaju
na standardnom HTML. Za realizaciju WWW servisa važan je veb server. Web server je
softver za lociranje i skladištenje web stranica. On locira web stranice koje korisnik računara
zahtjeva i dostavlja ih.

HTTP (Hypertext Transfer Protocol) je komunikacioni protokol koji omogućava saobraćaj


veb stranica u mreži. Kompletna putanja do zahtjevanih veb stranica naziva se URL (Uniform
Resource Locator).

Adresa Internet lokacije: http://www.webserver.com/path/resource

 Protokol
 Ime web servera
 Putanja do izvora
 Ime izvora

Dinamički veb 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.
Statički sajtovi se ne mijenjaju sve dok sam autor web sajta nešto ne promijeni.
Omogućavaju slanje informacija ka korisnicima. Korisnici nemaju nikakvu mogućnost
interakcije. Statičke veb sajtove čine obične statičke HTML stranice (skup HTML fajlova).
 HTML- definiše sadržaj web stranica
 CSS- određuje izgled web stranica
 Java Script – om se programira ponašanje web stranica

The Document Object Model (DOM) is a programming API for HTML and XML documents.
It defines the logical structure of documents and the way a document is accessed and
manipulated. In the DOM specification, the term "document" is used in the broad sense -
increasingly, XML is being used as a way of representing many different kinds of information
that may be stored in diverse systems, and much of this would traditionally be seen as data
rather than as documents. Nevertheless, XML presents this data as documents, and the
DOM may be used to manage this data.
With the Document Object Model, programmers can create and build documents, navigate
their structure, and add, modify, or delete elements and content. Anything found in an
HTML or XML document can be accessed, changed, deleted, or added using the Document
Object Model, with a few exceptions - in particular, the DOM interfaces for the internal
subset and external subset have not yet been specified.

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?

SQL (Structured Query Language) – standardni upitni jezik za relacione baze podataka (i
objektno relacione). SQL je nastao 1974. god. od strane Donalda D. Chamberlina i Raymond
F. Boyce u IBM-ovoj istraživačkoj laboratoriji. SQL služi za rad sa tabelama.

SQL (Structured Query Languague) je standardni relacioni jezik baza podataka. Preko njega
se definišu strukture relacionog modela (skup tabela i njihovih atributa, ključeva i drugo),
skup ograničenja vrednosti atributa i dinamička pravila integriteta. Jednostavnost strukture
relacionog modela (skup ravnih tabela) i jednostavan jezik za manipulaciju nad njima učinili
su relacioni model najpopularnijim implementacionim modelom baza podataka.

Sa vježbi: MySQL je sistem za upravljanje relacionim bazama podataka. Podaci su smješteni


u tabelama, svaki red tabele predstavlja primjerak jednog entiteta (npr. proizvod) koji je
opisan atributima (naziv, cijena, barkod...).

Za obradu i dohvatanje podataka koriste se upiti napisani na jeziku SQL (Structured Query
Language). Postoje četiri vrste upita kojima se dohvataju i obrađuju podaci – SELECT,
INSERT, UPDATE i DELETE. Nekad se ovaj skup operacija naziva i CRUD – Create Read Update
Delete.

Faze razvoja:

 1986. god. SQL-86 Usvojen za standardni relacioni upitni jezik deklarativnog


(neproceduralnog) tipa.
 1989. god. SQL–89 Definisani standardi koji se odnose na očuvanje integriteta
baze podataka i povezivanje sa drugim programskim jezicima.
 1992. god. SQL-92
 1999. god. SQL-1999 Uveden mehanizam trigera (okidača), uvedena određena
proceduralna proširenja itd.

SQL naredbe su svrstavane u jednu od sledeće tri kategorije:

 naredbe za definisanje podataka (data definition statements)


 naredbe za manipulisanje (rukovanje) podacima (data manipulation statements) i
 naredbe za kontrolne (upravljačke funkcije (data control statements).

SQL- upitni jezik, MySql – open source SUBP (Database Management System (DBMS)) - je
sistem za upravljanje relacionim bazama podataka, MS SQL Server - komecijalni SUBP
(Sistem za upravljanje bazama podataka).

SUPB=DBMS

CRUD - skup operacija Create Read Update Delete

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 prijenos i razmjenu
podataka putem web-a, gdje se služimo jednim jezikom da sačuvamo i primimo neke
podatke. Samo ime JavaScript Object Notation govori da je nešto povezano i inspirisano sa
JavaScript-om.

Zasniva se na podskupu JavaScript Programming Language, Standard ECMA-262 3rd Editon -


December 1999. Prednost mu je što je veoma čitljiv ljudima, a takođe je jednostavan
računarima da ga analiziraju i generišu.

JSON 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 strukturiranih podataka preko
mrežn.

Prije svega 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 - XML je skraćenica za Extensible Markup Language -odnosno 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. Ideja je bila stvoriti
jezik koji će i ljudi i računarski programi da čitaju jednostavno. XML definiše opštu sintaksu
za označavanje podataka pomoću odgovarajućih etiketa (engl. tags) 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.
Svaki XML dokument mora imati jedan korijenski ili "root" element koji uokviruje
kompletan sadržaj. Taj element opisuje XML dokument

XML element može sadržavati: tekst, atribute, druge elemente ili kombinaciju već
navedenog. Ti elementi moraju poštivati sljedeća pravila imenovanja: Imena mogu
sadržavati brojeve i druge znakove Imena su osjetljiva na velika i mala slova Imena ne smiju
počinjati brojem ili interpunkcijskim znakom Imena ne smiju počinjati slovima xml ili XML ili
Xml. Imena ne mogu imati razmak u sebi.

10 ciljeva XML-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 kojim se razvija softver. U softverskom inženjerstvu , proces razvoja softvera


postupak je dijeljenja razvoja softvera u različite faze radi poboljšanja dizajna , upravljanja
proizvodima i upravljanja projektima. Takođe je poznat kao životni ciklus razvoja softvera
(SDLC). Metodologija može uključivati unaprijed definiciju određenih isporučivih proizvoda i
artefakte koje projektni tim stvara i dovršava za razvoj ili održavanje aplikacije.
Postoje 4 fundamentalne aktivnosti koje su zajedničke za sve softverske ravojne procese:
1. Specifikacija softvera (definisanje funkcija i ograničenja koja mora da ispuni
softverski sistem.
2. Realizacija softvera (realizacija softverskog sistema prema zadanim specifikacijama).
3. Provjera softvera (da li softver zadovoljava postavljenje zahtjeve).
4. Razvoj softvera (proširenje softverskog sistema u cilju zadovoljavanja novih
zahtjeva).
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?
Model vodopada
1. Sistemska analiza
2. Projektovanje
3. Planiranje i procjena troška
4. Izrada
5. Testiranje
6. Uvođenje u upotrebu
7. Eksploatacija i održavanje
Postupak počinje sistemskom analizom, koja se ponekad naziva i analiza zahtjeva jer joj je
cilj da utvrdi šta organizacija i budući korisnici zahtjevaju 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 slijedi izrada, testiranje i uvođenje cijelog sistema u upotrebu,
nakon čega slijedi eksploatacija i održavanje sistema.
Model vodopada je estetski dopadljiv. Rezultati jedne faze služe kao ulazni podaci za sledeću
fazu, a naredna faza može da se izvršava tek kada je prethodna faua realizovana.
Ovo je najstariji model, prvi put predložen početkom 60-ih godina, a detaljno razrađen i
opšte primjenjen tokom 70-ih. Model vodopada omogućuje visok stepen kontrole nad
troškovima, radom učesnika i utroškom vremena.

Problem je u tome što stvarnost gotovo nikad nije tako jednostavna i uređena. 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
postupaka. Izuzev u vrlo malim i jednostavnim sistemima a takvih slučajeva je veoma mali
broj.
Model vodopada ne dozvoljava ni mijenjanje poslovnih zahtjeva tokom izrade projekta.
Potpuno je nerealno pretpostaviti da će sistem koji ispunjava poslovne zahtjeve na početku
nekog projekta, ispunjavati te zahtjeve i poslije dvije ili tri godine rada. Međutim treba imati
u vidu da su aktivnosti identifikovane u modelu vodopada potpuno ispravne.
Problem sa modelom vodopada je njegova linearnost, tj. pretpostavka da se nikad ne treba
vraćati na određenu fazu nakon njenog završetka. Takva situacija je naročito opasna pri
projektovanju baze podataka, gdje proširivanje opsega projekta može da promijeni
semantiku podataka, što zahtjeva mijenjanje šeme baze podataka, a izmjena šeme može
dovesti do neočekivanih i nepredvidljivih 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.
Razvoj softvera, spiralni model
Kao rješenje modela vodopada, smišljeno je više alternativnih modela životnog ciklusa.
Spiralni model omogućava više iteracija modela vodopada, pri čemu svaka među njima
proširuje opseg prethodne iteracije. Problem nastaje kada se spiralni model striktno
primjenjuje, cjelokupan ospeg 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 pokazuje da se kod ovog modela često javlja prekoračenje budžeta. Sastoji se od
četiri faze koje se ciklično izmjenjuju:
1. Analiza
2. Projektovanje
3. Planiranje i procjena troškova
4. Uvođenje u upotrebu

Po završetku faze procjene rizika kreće se u novi ciklus, ali sa proizvodom kojije ovoga puta
savršeniji, bogatiji funkcijama i kvalitetniji.

24. Metodologija razvoja softvera, prototipski/inkrementalni razvoj, nacrtati


dijagram i objasniti svaku od faza razvoja. Koje su prednosti i nedostaci ovog
modela?
Razvoj softvera, prototipski razvoj
Model koji se smatra naprikladnijim za složene sisteme opisuje se kao inkrementni razvoj ili
evolutivni razvoj.
U tom modelu, koji je u mnogim svojim aspektima samo varijanta spiralnog modela, izvodi
se početna analiza cijelog sistema, a ne samo jednog njegovog dijela. Tome slijedi
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 modela koji je
najprikladniji. Za razliku od spiralnog modela ovdje postoji još jedan korak, a to je
integrisanje. Integrisanje pojedinačnih komponenata podrazumijeva se i u spiralnom
modelu, naravno, ali se pokazalo da je taj posao složeniji kada se primjenjuje model
inkrementnog razvoja.
Problem sa 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 zahtjeva 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 analizu zahtjeva, pošto
je tu najveća vjerovatnoća naknadnih izmjena-prije nego što započnete detaljno
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.

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 podrazumeva razvoj softvera kroz ponavljanja (ka cilju) gde se glavni
životni ciklus projekta sastoji od nekoliko iteracija u nizu.

Agilne metode razvoja softvera:


1. Ekstremno programiranje
2. Industrijsko ektremno programiranje
3. Scrum
4. Agilno modelovanje
5. Adaptivni razvoj softvera
6. Crystal clear i ostale crystal metode
7. Metod dinamično razvoja sistema
8. Razvoj vođen karakteristikama
9. „Suvi“ razvoj
10. Agile Unified Process

Pros and cons for agile:


Pros: responding to change, accepting uncertainty, faster review cycles, greater flexibility in
releasing features, less up-front work.
Cons: lack of understanding, flexibility can lead to bad behaviors, culture fit, lack of
predictability, integrating diverse skill sets into teams.
26. Larmanova metoda razvoja softvera: pojam, karakteristike, faze.
Larmnova metoda razvoja softvera
Ova metoda je objektno orijentisana metoda razvoja softver. Objektno orijentisana metode
omogućuje razvoj aplikacije tako dabna jednostavan način obezbjeđuje uvid u analizu i
implementaciju svim učesnicima u razvoju softvera.
Larmanova metoda za notacije koristi UML dijagrame. UML predstavlja grafički jezik za
specifikaciju, vizuelizaciju, konstrukciju i dokumentovanje artifakata softverskih sistema bez
obzira na implementacionu platformu.
Osnovne faze Larmanove metode razvoja softvera su:
1. Prikupljanje zahtjeva
2. Analiza
3. Projektovanje
4. Implementacija
5. Testiranje

Zahtjevi predstavljaju osobine i uslove koje sistem ili projekat mora da zadovolji. Zahtjevi se
opisuju pomoću modela slučaja korišćenja (eng. 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 tektualnim 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.
Faze 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ću konceptualnog modela. Konceptualni
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 model služi kao osnova za izradu relacionog modela i šeme baze
podataka. Relacioni 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šte 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 podrazumijeva sledeće:
 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.

Postoji nekoliko agilnih metoda u razvoju softvera.


Ekstremno programiranje (XP) Proces ekstremnog programiranja karakterističan je kratkim
razvojnim ciklusima, inkrementalnim planiranjem, stalnim povratnim informacijama,
oslanjanjem na komunikaciju. Prema Willamsu, članovi tima koji rade prema modelu
ekstemnog programiranje, projektni menadzment, dizajn, povratne informacije i učestale
timske sastanke. Izraz „ekstremno“ dolazi do prevođenja navedenih praksi na ekstremnim
nivoima.
Životni ciklus ekstremnog programiranja podijeljen je na 5 faza:
1. Istraživanje
2. Planiranje
3. Iteracije do isporuke
4. Produkcija
5. Održavanje

U fazi istraživanja klijenti opisuju kartice s pričama koje opisuju funkcionalnosti koje žele u
programu. Ovo vodi ka fazi planiranja gdje se dodaje prioritet svakoj kartici s pričama i gdje
se određuje raspored prve isporuke programa. U fazi iteracije do isporuke, razvojni tim u
prvoj iteraciji stvara sistem koji ima arhitekturu cjelokupnog sistema, a potom se kod stalno
integriše i testira.
Dodatna testiranja i provjera performansi sistema prije isporuke sistema klijentu provode se
u fazi produkcije. Sve odgođene ideje i prijedlozi nastali u ovoj fazi se dokumentuju kako bi
se kasnije implementirali u budućim ažuriranjima koja će biti obavljena u fazi održavanja.
Zadnja faza je faza smrti, u kojoj klijent nema više kartica s pričama, odnosno kad nema više
zahtjeva prema razvojnom timu. U ovoj fazi piše se sva dokumentacija sistema budući da
nema više promjena u arhitekturi, dizajnu i kodu sistema.
28. Agilne metodologije razvoja softvera, Scrum: pojam, karakteristike, faze.
Scrum model- se može okarakterisati kao iteraktivni, inkrementalni proces za razvoj bilo
kakvog softvera ili upravljanje bilo kakvim poslom. Naglasak je na odgovoru na pitanje kako
bi članovi tima trebali funkcionirati da bi postigli fleksibilnost sustava u stalno mijenjanje
okolnostima. Na kraju svake iteracije, proizvodi se potencijalni niz funcionalnosti. Izraz
„SCRUM“ ima svoje porijeklo iz strategije koja se koristi u ragbiju, a koji znači vraćanje lopte
koja je izvan igre u igru pomoću timskog rada.
Scrum kao model razvoja softvera ne zahtjeva korištenje specifičnih metoda i prakse.
Umjesto toga, traži se korištenje određenih management praksi i alata u različitim fazama
kako bi se izbjegao haos koji je rezultat nepredvidljivosti i kompleksnosti.
Ključne prakse Scruma:
Zaostatak proizvoda (eng. product backlog)- predstavlja listu prioriteta svih funkcionalnosti i
promjena koje još treba implementirati u sistem, a koje žele razni sudionici u procesu kao
što su klijenti, odjeli markentinga i prodaje i projektni tim. Vlasnik proizvoda (eng. product
owner) je zadužen za održavanje.
Sprintovi – sprintovi traju 30 dana i predstavljaju proceduru pomoću koje je moguće
prilagođavanje promjenjivim varijablama u okruženju (zahtjevi, vrijeme, resursi, znanje,
tehnologija itd.). sprintovi moraju rezultirati inkrementalnim softverom koji je potencijalno
isporučiv. Kao radni alati koriste se sastanci za planiranje sprinta, zaostatak sprinta i dnevni
Scrum sastanci.
Sastanak za planiranje sprinta-na ovom sastanku se prvo nalaze klijenti, korisnici,
managment, vlasnik proizvoda i Scrum tim te se definiše set ciljeva i funkcionalnosti. Nakon
toga, Scrum Master (projektni manager) i Scrum tim se fokusiraju na način na koji će
proizvod biti implementiran tokom sprinta.
Zaostatak sprinta- predstavlja listu funkcionalnosti koje treba razviti za određeni sprint. Kad
su sve funkcionalnosti razvijene, isporučuje se nova
iteracija sistema.
Dnevni Scrum- predstavlja dnevni sastanak koji traje otprilike 15min, a koji se organizuje sa
svrhom praćenja napretka Scrum tima i rješavanja prepreka koje je tim susreo.

29. Agilne metodologije razvoja softvera, Razvojna metoda za dinamični sistem


(DSDM), pojam, karakteristike, faze.
Razvojna metoda za dinamičan sistem(DSDM)-razvijen je u Ujedinjenom Kraljevstvu
sredinom 90-ih godina. Može se smatrati spojem i produžetkom brzog razvoja aplikacija i
iterativnim razvojnim metodama. Prema Martinu Fowleru, jednom od pisaca Agilnog
Manifesta, DSDM se odlikuje s mnogo infrastrukture koja je svojstvena zrelim tradicionalnim
metodama, ali uz to slijedi principe agilnih metoda.
Fokus DSDM-a je na fiksiranju vremena i resursa i prilagođavanje količine funkcionalnosti
umjesto fiksiranja količine funkcionalnosti u proizvodu i prilagođavanja vremena i resursa
kako bi se postigla ta funkcionalnost.

Faze DSDM-a:
1. Studija izvodljivosti-ova faza dovodi do odluka hoće li se koristiti DSDM. Ovo se
postiže na način da se ispituje tip projekata te organizacioni i ljudski problemi. Kao
rezultat ove faze izrađuje se izvještaj o izvodljivosti i nacrt plana razvoja.
2. Poslovna studija-u ovoj fazi se predlaže organizovanje radionice kako bi se olakšalo
razumijevanje poslovnog procesa. Kao rezultat ove faze izrađuju se definicija
arhitekture sistema i plan za nacrt prototipa.
3. Iteracija funkcionalnog modela-predstavlja prvu fazu iteracije. U ovoj fazi radi se
analiza, pisanje koda i razvoj prototipa. Razvijeni prototipovi služe kako bi se
poboljšali analitički modeli. Kao rezultat ove faze izrađuje se funkcionalni model koji
se sastoji od koda prototipa i analitičkih modela.
4. Iteracija dizajna i razvoja- sistem se većinom gradi u ovoj fazi. Korisnici ispituju
dizajn i funkcionalne prototipove te su njihovi komentari osnova za dalji razvoj.
5. Implementacija-predstavlja konačnu fazu u kojoj se sistem isporučuje korisnicima. U
ovoj fazi organizuju se treninzi ua korisnike i izrađuju se korisnički priručnik i izvještaj
o pregledu projekta. Bitno je naglasiti da iterativna i inkrementalna priroda DSDM-a
znači da se održavanje sistema može smatrati i stalnim razvojem. Projekat ne mora
biti završen u jednom ciklusu umjesto toga projekt može biti vraćen u bilo koju od
faza kako bi se one usavršile.

30. Agilne metodologije razvoja softvera, Razvoj pokretan funkcionalnostima


(FDD): pojam, karakteristike, faze.
Razvoj pokretan funkcionalnostima(FDD)-se razlikuje od drugih modela za razvoj softvera
jer ne pokriva čitav proces razvoja softvera, nego se fokusira na faze dizajniranja i razvoja.
Prvi put je korišćen kasnih 9’-ih u projektu razvoja velike ikompleksne bankarske aplikacije.
Faze FDD-a:
1. Razvoj opšteg modela- stručnjak za poslovni proces prezentuje opseg i kontekst
sistema članovima tima i glavnom arhitektu na visokoj razini apstrakcije.
Dokumentiraju se zahtjevi kao što su studije slučajeva i funkcionalne specifikacije.
2. Razvoj liste funkcionalnosti- razvija se kategorizovana lista funkcionalnosti na
osnovu zahtjeva.
3. Planiranje prema funkcionalnostima-razvojni tim organizuje setove funkcionalnosti
prema prioritetu i potom ih dodjeljuje glavnim programerima. Klase koje su
definisane u prvoj fazi dodjeljuju se tzv. vlasnicima klasa, tj. pojedinačnim
programerima. Postavlja se raspored i ciljevi za setove funkcionalnosti.
4. Dizajn prema funkcionalnostima i razvoj prema funkcionalnostima - biraju se
funkcionalnosti, a timovi za funkcionalnosti koji će raditi na njima biraju se na osnovu
vlasnika klase. Nakon toga dolazi do iterativnog procesa u kojem tim razvija
dijagrame niza za odabrane funkcionalnosti. Ovi dijagrami se zatim šalju
programerima koji implementiraju kod potreban za pojedinačnu funkcionalnost.
Neke od zajedničkih karakteristika agilnih metodaa:
1. Orijentisanost ka ljudima-agilne metode smatraju klijente, programere, krajnje
korisnike i ostale sudionike kao najvažniji faktor softverskih metoda.
2. Prilagodljivost –sudionici agilnog procesa ne boje se promjene. Oni prihvaćaju
promjenu u svim fazama projekta. Gledaju na promjenu u zahtjevima kao na dobru
stvar, budući da će tim na taj način naučiti kako uspješno zadovoljiti tržište.
3. Slaganje s aktuelnim-kod agilnih se metoda više cijeni slaganje s aktuelnim nego
slaganje s detaljnim planom. Svaka iteracija ili razvojni ciklus dodaje poslovnu
vrijednost projektu. Odluku o tome hoće li se ili ne projektu dodati poslovna
vrijednost ne donose programeri, nego krajnji korisnici.
4. Balansiranje između fleksibilnosti i planiranja-planiranje je bitno, ali problem leži u
činjenici da se softverski projekti ne mogu planirati daleko u budućnosti zbog
postojanja velikog broja varijabli. Bolji pristup planiranju je pravljenje detaljnih
planova za sljedećih nekoliko nedjelja i planova za idućih nekoliko mjeseci.
5. Empirijski proces-agilne metode razvijaju softver kao empirijski proces za razliku od
definisanog procesa. Definisani proces je svaki proces koji može početi i završiti
dajući iste rezultate svaki put. Definisani proces se ne može smatrati procesom koji
se koristi u razvoju softvera jer se tokom vremena koje tim provodi razvijajući
proizvod dogodi previše promjena.
6. Decentralizovani pristup- agilne metode daju ovlaštenje za donošenje odluka
programerima. Ovo ne znači da programeri dobijaju ulogu managementa.
Management služi kako bi se otklonile prepreke koje stoje na putu projektu.
7. Jednostavnost-agilni timovi uvijek koriste najlakši put koji se slaže s timskim
ciljevima. Razlog za jednostavnost leži u činjenici da je lako promijeniti dizajn ukoliko
je to potrebno. Nije potrebno razvijati više no što je potrebno i nije potrebno pisati
dokumente koji predviđaju budućnosti budući da će ti dokumenti postati zastarjeli.
8. Saradnja-dobijanje povratnih informacija od klijenata mora biti stalno i često budući
da klijenti moraju imati blisku saradnju s članovima razvojnog tima. Stalna saradnja
mora postojati i među članovima razvojnog tima. Zbog decentraliziranog pristupa
agilnih metoda, saradnja postiče raspravu.
9. Mali timovi koji se sami organizuju -odgovornosti se komuniciraju timu kao cjelinu, a
tim odlučuje na koji način će te odgovornosti biti najbolje ispunjene. Agilni timovi
zajedno raspravljaju i komuniciraju o svim aspektima projekta. Agilni pristup najbolje
funkcioniše na malim timovima.

31. Strukturna sistem analiza: pojam, osnovni koncepti, osnovni elementi.


Dijagram toka podataka (DTP). Riječnik podataka. (dopuniti sa slajdova)
Strukturna sistem 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 podsisteme
Orginalna SSA čiji su tvorci Yourdon i njegovi saradnici posjeduju veoma jednostavne,
grafičke pa samim tim i jasne koncepte.
Potpuna, tačna formalna i jasna specifikacija IS ili specifikacija zahtjeva korisnika, zahtjeva
koje budući sistem treba da zadovolji predstavlja bitan preduslov za uspješno dalje
projektovanje i implementaciju sistema. Zahtjev da specifikacija bude jasna iskazuje se zbog
toga što u specifikaciji IS u velikoj mjeri učestvuju korisnici sistema, neinformatičari, pa jezik
specifikacije mora biti i njima prihvatljiv.
Osnovni koncepti SSA su:
1. Funkcija, odnosno procesi obrade podataka
2. Tokovi podataka
3. Skladišta podataka
4. Interfejsi

Njihov međusoban onos prikazan je preko dijagrama toka podataka (DTP). DTP:
1. Krug ili elipsa predstavlja funkciju ili proces obrade podataka
2. Pravougaonik predstavlja interfejs
3. Usmjerena linija predstavlja tok podataka
4. Dvije paralelne linije (otvoreni pravougaonik) predstavlja skladište podataka

Dijagram mora imati svoj početak i kraj. 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 primitivih procesa (Pseudo kod, Stabla i tabele oslučivanja, Dijagram
akcija)

Riječnik podataka daje opis strukture i sadržaja svih tokova i skladišta podataka. Bez obzira
što tok ili skladište podataka predstavljaju, papirni dokument, niz karaktera kao ulaz sa
terminala, „paket“ informacija dobijen telekomunikacionom linijom, kartoteku ili datoteku,
kao logička struktura podataka oni predstavljaju neku kompoziciju polja.
Da bi precizno definisali logičku strukturu skladišta i tokova i definisali sintaksu riječnika
neophodno je da uvedemo definicije svih koncepta riječnika.
1. Polje je elementarna (atomska) struktura koja se dalje ne dekomponuje i koja
ima svoju vrijednost.
2. Polje svoju vrijednost uzimaju iz skupova vrijednosti koji se nazivaju domenima.

Domeni mogu biti:


1. „Predefinisani“ odnosno strandardni programsko- jezički domeni kao što su:
 INTEGER
 CHARACTER
 REAL
 LOGICAL
 DATE
2. „Semantički“ kada se definišu posebno, preko svoga imena, predefinisanog domene i
eventualno ograničenja na mogući skup vrijednosti predefinisanog domena.

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
orijentisan na ljude. Cijena i vrijeme testiranja može biti nekoliko puta veća u odnosu na sve
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 gresaka.
Testovi moraju biti dizajnirni tako da otkrivaju različite klase grešaka i testiranje može
prikazati samo prisustvo defekta. Rezultati testa se porede sa očekivanim rezultatima i ako
nisu prihvatljivi potrebno je otkloniti greške. Greške koje se ne otkriju u fzi testiranja
otklanjaju se u fazi održavanja.
Softver može biti testiran na dva načina:
1. Black Box testiranje – poznate su sve specificirane funkcije za koje je proizvod
dizajniran da ih izvede, testovi treba da demostriraju da je svaka funkcija potpuno
operacionalna.
Black Box testiranje je funkcionalno testiranje. Testni slučajevi demonstiraju da su
softverske funkcije operacionalne, da je input dobro specificiran, 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.

2. White box testiranje (testiranje bele kutije) je metoda za dizajniranje testnih


slučajeva koja upotrebljava upravljačke strukture proceduralnog dizajna. Poznate su
sve interne operacije koje se izvode prema specifikaciji i sve interne komponente se
adekvatno ispituju.
Upotrebom white box testiranja mogu se derivirati testni slučajevi koji omogućuju:
 Da su svi nezavisni putevi unutar modula izvedeni najmanje jednom,
 Da je kod svake logičke odluke izvedeno testiranje na obe strane true i false
 Da je izvođenje svih petlji izvršeno u njihovim granicama,
 Da se ispita interna stuktura podataka i njihova validnost.

Softverske greške mogu biti simboličke i logičke:


 Simboličke greške se obično pojavljuju zbog nepoznavanja sintakse i semantike
programskog jezika i tipografskih grešaka. Mnoge od ovih grešaka otkriva
kompajler u fazi prevođenja i relativno ih je lako otkloniti a neotkrivene greške će
se pokazati u fazi testiranja.
 Logičke greške se javljaju prilikom testiranja ili izvođenja programa a poslijedica
su lošeg dizajna, implementacije funkcija i uslova. Za pronalaženje ovih grešaka
najčešće se koriste simbolički debug-eri koji omogućavaju programeru da prati
izvođenje programa od jedne do druge izvorne instrukcije, da ispituje i menja
sadržaje varijabli, postavlja tačke prekida od kojih počinje ispitivanje itd.

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 upotrebljavan pod specifičnim uslovima (ISO/IEC 9126-
1:2001).
Kvalitet softvera je višedimenzionalni koncept koji se ne može na jednostavan način
objasniti. Jedan od uslova za kvalitetan softverski proizvod je razvijanje i implementacija
standarda i dokumentaciju sistema kvaliteta koja će biti primjenjena na softverske
proizvode.
Veoma je bitno da se razvoj softvera odvija u skladu sa unaprijed definisanim standardno
propisanim procedurama da bi se smanjile intervencije na popravci u toku životnog ciklusa
softverskog proizvoda. Prva ideja kvalitetnog softvera jeste težnja da taj proizvod bude
urađen u skladu sa specifikacijama.
Modeli za ocjenu kvaliteta softvera:
1. Standard ISO/IEC 9126 – standard koji daje smjernice za ocjenu kvaliteta
softverskog proizvoda. Ovaj model nudi šemu u dva nivoa sa karakteristikama i
podkarakteristikama.
2. CMMI – Capability Maturity Model Integration je metoda ocjene kvaliteta softvera.
Ocjene ovog modela su: 1 (initial), 2(managed), 3(defined), 4(predictable),
5( optimizing). Prednosti ovog modela su: vrlo detaljan popis, podržavanje
neprekidnog unapređenja procesa razvoja, a ne samo održavanje certifikata.
Ograničenja: ne odnosi se na neke ključne IT operacije (sigurnost, promjena
aplikacija, upravljanje konfiguracijama, …) te u nekim slučajevima postavlja ciljeve ali
ne precizira kako ih postići .
3. CobiT – Control Objectives for Informational and Related Technology predstavlja
preporuke sa stanovišta revizije i kontrole informacionih sistema o IT procesima,
najboljolj praksi i kontroli. Fokusiran je na 4 područja: planiranje i organizacija,
primjena, isporuka, podrska i nadzor. Ocjene vog modela su od 1 do 6. Najveća
prednost: posjeduje odličnu check listu za infrmacione sisteme, te procesni pristup
koji omogućava procjenu rizika, upravljanje rizikom, i provođenje revizije
informacionih sistema. Ograničenja: nepostojanje ponekad nedovoljno preciznih
uputstava.
4. ITIL – IT Infrastructure Library predstavlja uputstva za upravljanje IT uslugama i
operacijama kao što su: incidenti, promjene, kapacitet, odrešivanje i upravljanje
nivoom usluga, upravljanje sigurnošću, korisnička podrška. Prednosti: dobro
definisana, detaljna uputstva fokusirana na pitanja primjene IT i pitanja kvalitete
isporučene usluge. Ograničenja: ne pokriva razvoj sistema upravljanja kvalitetom, te
prilično zavisi od interpretacije.
5. Six Sigma – predstavlja proces statičkog praćenja unaprijeđenja kvalitete procesa s
korisničke strane. Program je prvobitno namijenjen povećanju kvaliteta hardverskih
sistema, koji se danas rado primjenjuje i na softverske sisteme. Prednosti: egzaktni
pristup kojim se pronalazi uzrok problema i pristupa njegovom rješavanju, te uzima u
obzir i troškove kvaliteta, call centar. Ograničenja: u primjeni kod softvera, su što je
izvorno oblikovn za proizvodne aktivnosti,, te pojava mogućih problema u primjeni
kod procesa koji nisu dovoljno precizno definisani.

34. Koje su osnovne karakteristike Standarda koji daje smjernice za ocjenu


kvaliteta softverskog proizvoda ISO/IEC 9126?
1. Funkcionalnost – karakteristika kojom se utvrđuje ispravnost rada pojedinih funkcija
softverskog proizvoda. Propisuje šta sve softverski proizvod treba da čini da bi
ispunio postavljene zahtjeve. Obuhvata analizu 5 podkarakteristika: cjelishodnost,
tačnost, povezanost, usaglašenost, sigurnost.
2. Pouzdanost – karakteristika softvera da održava svoj nivo performansi pod
navedenim uslovima za navedeni period vremena. Ovakvo ponašanje softvera
najbolje će potvrditi korisnici softvera. Obuhvata analizu tri podkarakteristike:
učestalost prekida, tolerancija greške, mogućnost popravka.
3. Upotrebljivost – karakteristika kojom se procjenjuje lakoća korišćenja i rukovanja
softverskim proizvodom. Analiza upotrebljivosti vrši se u svim fazama životnog
ciklusa softvera. Obuhvata 4 podkarakteristike: razumljivost, preglednost, saladivost,
izvršivost.
4. Efikasnost – karakteristika koja definiše odnos između nivoa performansi softverskog
proizvoda i korištenih resursa pod određenim uslovima posmatranja. Zavisi od
hardvrske patforme i dizajna softvera. Obuhvata analizu dvije podkarakteristike:
utvrđivanje vremena i ponašanje resursa.
5. Lakoća održavanja (održavanje) - predstavlja skup svih aktivnosti neophodnih za
osiguravanje efikasne podrške softverskom sistemu. Obuhvata podkarakteristike:
mogućnost analize, izmjenjivost, stabilnost, mogućnost testiranja.
6. Prenosivost – karaktrisitka kojom se utvrđuje sposobnost softverskog proizvoda da
se transformiše iz jednog okruženja (organizaciono, hardversko, softversko) u drugi.
Ima sljedeće podkarakteristike: priagodljivost, mogućnost instaliranja, podudarnost,
zamjenjivost.

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, mjerenja, zamjene, prilagođenja, promjene i korekcije. Direktno je vezana
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 softvera su:


 Ispravljanje grešaka
 Poboljšanje dizajna,
 Izrada interfejsa prema drugim sistemima,
 Ugradnja različitih poboljšanja,
 Izvođenja neophodnih promjena sistema.

Ugovorima između proizvođača softverskih sistema i korisnika definiše se ko će vršiti


održavanje. Postoji nekoliko mogućnosti za organizaciju koja vrši održavanje (pristup
održavanju softvera).
1. Organizacija za razvoj softverskog proizvoda
Prednosti: imaju najbolje znanje o proizvodu, nema potrebe za detaljnom dokumentacijom,
razvijena komunikacija, korisnik komunicira samosa jednom organizacijom, raznovrsnost za
osoblje koje održava softver.
Nedostaci: ograničenost rokova i cijene, održavanje od strane osobe sa nedovoljnim
znanjem.
2. Nezavisna organizacija za održavanje
Prednosti: veća pažnja pri stvaranju dokumentacije, uspostavlja se formalna procedura za
prebacivanje softverskog proizvoda iz faze razvoja u fazu održavanja, osoblje koje vrši
održavanje ima objektivniji pregled proizvoda i koda, uspostavljaju se procedure za
implementiranje promjena.
Nedostaci: prebacivanje sistema iz razvoja u održavanje može biti sporo, pojavljuju se
problemi refundiranja troškova održavanja, potrebno je vrijeme da organizacija za
održavanje stekne znanja o novom softverskom proizvodu koji je preuzet.
36. Kategorije održavanja softvera. Model održavanja softvera prema
standardu IEEE 1219.
1. Korektivno- ispravljanje grešaka pronađenih u programu,
2. Adaptivno-održavanje inicirano promjenama u softverskoj okolini,
3. Perfektivno-zadovoljavanje novih i modifikovanih potreba korisnika,
4. Preventivno- sprečavanje eventualnih problema prije nego se pojave.

IEEE 1219 def: Održavanje programske podrške je modifikacija softverskog proizvoda nakon
isporuke kako bi se ispravile greške, poboljšale performanse ili kako bi se softverski proizvod
prilagodio promjenjenoj radnoj okolini.
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, aktivnosti prije isporuke.

Na slici je prikazan ovaj model, i on opisuje ulaze u proces održavanja, proces održavanja u
cjelini, rezultate procesa održavanja, i način uspostave kontrole nad njim.
Troškovi: Najveći dio troškova (50% )čini perfektivni dio održavanja softvera.

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)?
Upravljanje projektima je primjena znanja, vještina, alata i tehnika na aktivnosti projekta da
bi se postigli projektni ciljevi.
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.
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.
39. Strukture softverskih timova i njihove karakteristike.
Strukture softverskih timova:
 ➢Demokratski tim
 ➢Glavni-programer tim („šefovski tim“)
 ➢Modifikovani šefovski tim
 ➢Sinhronizovan i stabilizovan tim
 ➢Ekstremno programiranje (XP)

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 sakonvencionalnim principom upravljanja
➢Teorija tvrdi da ovakva grupa radi dobra za kompleksne probleme
Š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 zadatke od šefa, dizajnira
testovež
– Administrativac: održava bazu podataka i dokumentaciju, pokreće testove

Upravljanje projektima, šefovski tim - istorija


Rezultat inicijalnog test projekta je bio izvanredan:
– „NewYork Times“ alat za automatsko sječenje fajla – 83 000 LOC za 22 meseca (11
čovek/godina).
– Polovina modula (svaki od po 200-400 LOC) bio je korektan prilikom prvog
kompajliranja..
– Alat za održavanje fajlova bio operativan 20 meseci bez greške – Nakon ovoga nije
postojao nijedan sličan uspješan projekat! – Razlog: šef Terry Baker je jedan od
najvećih programera za superračunare
Problemi kod šefovskog tima:
➢Dobrog šefa je vrlo rijetko naći: treba da bude presjek visoko obrazovnog programera i
veoma uspješnog menadžera.
➢Zamjenika glavnog programera je još teže naći: kapacitet kao šef, ali spreman da radi za
manju platu i da radi u podređenom položaju (na nižoj poziciji).
➢Administrativca je takođe teško naći: Ko želi da ne radi ništa oko razvoja softverskog
sistema, nego samo da radi na dokumentaciji svakog dana.

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:


 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“

XP tim
 Baziran na programiranju u paru:
– šire znanje koje imaju dvije osobe nego pojedinac
– pomaže manje iskusnim programerima da ubrzaju rad
 Dokazi:
– Istraživanje na Univerzitetu Utah na naprednom kursu programiranja: Svoje testove
parovi su radili za 60% vremena od vremena koje je bilo potrebno pojedincu. Test je
prošlo 94% studenata, za razliku od 78% kada su radili pojedinačno.
 Programiranje u paru poboljšava zadovoljstvo poslom i sveukupno povjerenje.
Sedam projektnih faktora
Koje faktore treba uzeti u obzir prilikom strukturiranja softverskog tima?
– težina problema koji treba rešiti
– veličina rezultujućeg programa u linijama koda
– vrijeme koje će tim provesti zajedno (team lifetime)
– stepen u kojem problem može biti izdjeljen na module
– zahtjevani kvalitet i pouzdanost sistema koji se pravi
– rok završetka softvera (deadline)
– komunikacija u timu

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 niza 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, programuili portfolio.
Zadatak je aktivnost koja je jasno definisana, ima svoj početak i završetak, te predstavlja
osnovni element u planiranju i izvođenju projekta.
42. Procesne grupe upravljanja projektima.
Upravljanje projektom – naučno zasnovan i u praksi protvrđen koncept kojim se uz pomoć
odgovarajućih metoda organizacije, planiranja i kontrole vrši racionalno usklađivanje svih
potrebnih resursa i kooridnacija obavljanja potrebnih aktivnosti da bi se određeni projekat
realizovao na najefikasniji način.
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).
PMI (Institut za Projektni Menadžment) je vodeća svjetska organizacija u području
projektnog menadžmenta koja provodi međunarodno priznati program profesionalne
certifikacije. PMI postavlja osnove i strukturalna rješenja za sva područja projekt
menadžmenta i čini PMP referentnim međunarodnim certifikacijskim standardom. PMP
program predstavlja primjenu znanja, vještina, metoda i tehnika koje se koriste u području
projektnog menadžmenta i utemeljen je na PMI-ovim definicijama projektnog
menadžmenta.
PMP (Project Management Professional) - Oznaka „PMP“ govori trenutnim i potencijalnim
poslodavcima da ste pokazali čvrstu podlogu znanja kojom kompetentno možete djelovati u
području projektnog menadžmenta, te time istaći spremnost za saradnju sa domaćim i
stranim organizacijama i kompanijama. Dobivanjem PMP certifikata uvrštavate se u najveću
i najugledniju grupu certificiranih profesionalaca u svjetskom društvu projektnog
menadžmenta.
PMP predstavlja tehnike, metode i alate upravljanja projektima poštujući pet procesnih
grupa:
 Inicijalizacija projekta
 Planiranje projekta,
 Izvršavanje projekta,
 Monitoring i kontrola projekta,
 Zatvaranje projekta.

Podela projekata prema Internacionalnoj asocijaciji za upravljanje projektima (IPMA):


1. Investicioni projekti
2. Istraživačko-razvojni projekti
3. Organizacioni projekti
4. Informatički projekti

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 grupa ili a je pod
upravljanje projektom, ili samo upravlja odrediti 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.


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, Upravljanje projektima
7. Upravljanje ljudskim resursima - usmjeravanje i koordinaciju ljudskih resursa
od strane rukovodilaca, kao i motivacija,
8. Upravljanje informacijama - 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)
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.
Polazni korak u primjeni koncepta upravljanja projektom je definisanje odgovarajuće
organizacione forme koja je zadužena za upravljanje realizacijom projekta. Poseban akcenat
se stavlja na određivanje rukovodioca projekta (project manager) koji upravlja realizacijom
projekta. Organizacija za upravljanje projektom je jedan od osnovnih uslova za efikasnu
primjenu koncepta upravljanja projektom.
Za upravljanje složenim projektima najbolje je formirati posebnu jedinicu - projektni tim,
koja će isključivo radi na realizaciji projekta i biti odgovorna za njegovu efikasnost.
Projektovanje organizacije za upravljanje projektom može se izvesti na dva osnovna
pristupa:
 ✓klasični: funkcionalni, projektni, matrični tip organizacione forme;
 ✓kontigencijski: projektni ekspeditor, projektni koordinator, matrična forma,
projektna forma.

1. 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.
2. 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).
3. 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.
➢Projekti niske klase – Osnovne funkcionalnosti, upravljanje zadacima, rad sa grafikonima –
Primjeri: MS Excel, Milestones Simplicity (tzv. project scheduler-i)
➢Projekti srednje klase – Rad na većim projektima i sa više projekata istovremeno,
potrebna analiza podataka u projektu/projektima – Primjer: MS Project (oko 50% tržišta
koristi)
➢Projekti visoke klase – Veoma veliki projekti, sa specijalizovanim potrebama – Primjeri:
Primavera Project Manager, AMS Realtime.

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.
HCI takođe proučava: performanse zadataka koje zajednički obavljaju ljudi i računari,
strukturu komunikacije čovek-računar, sociološku i organizacionu interakciju tokom
projektovanja računarskog sistema, čovekove mogućnosti da koristi računar (uključujući
mogućnost da uči), algoritme i programiranje samog interfejsa, inženjerske probleme koji se
pojavljuju tokom projektovanja i izgradnje interfejsa i procese specifikovanja, projektovanja i
implementacije interfejsa”.
Sveukupno područje interakcije čovjeka i kompjutera ima jedan jedinstveni cilj – postizanje i
osiguravanje visoke upotrebljivosti softverskih sistema.
Upotrebljivost (engl. usability) osnovni je koncept interakcije čoveka i kompjutera,
zaokupljen načinom realizovanja sistema lakših i jednostavnijih za učenje, ali i za korišćenje.
Upotrebljivost se definiše kao uloženi napor pri korišćenju od strane navedenog ili
podrazumevanog skupa korisnika.
Po 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”.
Prema korištenoj tehnološkoj bazi i paradigmi interakcije koju su koristili, pristupe
rješavanju problema komunikacije između čovjeka i računara možemo podijeliti u sledeće
grupe:
 ➢ Hardverske korisničke interfejse,
 ➢ Terminalske korisničke interfejse,
 ➢ Grafičke korisničke interfejse,
 ➢ Korisničke interfejse zasnovane na pažnji, i
 ➢ Elektro-fiziološke korisničke interfejse.

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 računarsku
bezbednost uopšte, naročito kontrolu pristupa. Formalno, "autorizovati" znači definisati
politiku pristupa.
Tokom rada, sistem koristi pravila za kontrolu pristupa da odluči Intra da li će biti odobren
pristup zahtjeva od (provjerenih) potrošača koji ili će biti odbijen. Resursi uključuju
pojedinačne datoteke ili stavke podataka, računarske programe, računarske uredaje 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.
Značaj autorizacije?

49. Šta je autentifikacija? Koji je značaj autentifikacije kod zaštite informacionih


sistema?
Autentifikacija je proces određivanja identiteta nekog subjekta, najčešće se odnosi na
fizičku osobu. U praksi subjekt daje određene podatke po kojima druga strana može utvrditi
da je 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.
Autentifikacija se razlikuje od autorizacije, to su dva različita procesa.
50. Koje četiri kategorije napada postoje kod distribuiranih informacionih
sistema? Nivoi zaštite informacionih sistema.
Postoje 4 kategorije napada kod distribuiranih sistema:
1. prekid normalnog toka informacija,
2. presretanje ili prisluškivanje informacija,
3. modifikacija informacija,
4. fabrikacija informacija.

Napade na operativne sisteme možemo podijeliti u nekoliko grupa:


1. virusi, 2. crvi (worms), 3. Trojanski konji.
Zaštita se primjenjuje:
1. na nivou mreže,
2. na nivou operativnog sistema,
3. na nivou aplikacije,
4. na nivou baze podataka,
5. kao proceduralna zaštita.

Računarski virus je program koji se može sam reprodukovati tako što dodaje sopstveni kod
nekom drugom programu. Rezultat izvršavanja virusa može biti ispisivanje neke poruke na
ekranu, prikaz slike, modifikovanje ili brisanje neke datoteke, poziv nekog telefonskog broja,
itd, tj. virus može uraditi sve što i računarski program može.
Ciljevi autora virusa su: brzo širenje virusa, da se virus teško detektuje i da odbrana od
virusa bude što komplikovanija.
Najpoznatiji tipovi virusa su:
 parazitni (uvijek se nalaze kao deo nekog izvršnog programa),
 stalno prisutni u operativnoj memoriji (obično su deo nekog sistemskog
programa i inficiraju sve programe koji se izvršavaju),
 boot sektor (inficiraju glavni boot slog i šire se nakon podizanja sistema sa
diska),
 stealth (posebno su projektovani da budu nevidljivi prilikom detekcije od
strane antivirusnih softvera),
 polimorfni (virusi koji mutiraju prilikom svakog inficiranja, čime ostvaruju da
detekcija na osnovu karakterističnog uzorka virusa nije moguća).

Crv je računarski program koji kopira samog sebe sa jednog računara na drugi.
Mogu se koristiti za prenošenje virusa ili za zamjenu postojećih datoteka verzijama datoteka
koje predstavljaju Trojanske konje. Obično se crvi prenose preko računarske mreže koristeći
nedostatke operativnih sistema u pogledu zaštite. Brzo se repliciraju i troše puno memorije
na „host“ računarima. Za razliku od virusa, za aktiviranje crva nije potreban korisnik i oni
skrivaju svoje širenje na druge računare.
Trojanski konj je program koji se najčešće prenosi na ciljni računar kao nevidljivi dodatak uz
neki drugi program, a zatim dolazi to njegovog aktiviranja.
Mogu se prenijeti kopiranjem programa, download-ovanjem sa Interneta, kao i otvaranjem
attachment-a u e-mailu. Aktivnosti Trojanskih konja mogu biti veoma različite. Mogu da
brišu podatke, pošalju svoju kopiju na sve računare sa liste e-mail adresa i da omoguće
dodatne napade na dati računar. Obično ostvaruju povezivanje sa nekim udaljenim
računarom i prenose informacije sa računara na kome su instalirani. Najopasniji su oni koji
se izvršavaju u okviru kernela.

You might also like