You are on page 1of 17

RAZVOJ SOFTVERA OTVORENOG KODA – ISPIT

Od 1. do 12. pitanja – 2 pitanja na ispitu


1. Objasnite značenje termina Free and Open Source Software (FOSS).
Termin “Free Software” ne znači da je program, tj. softver besplatan, već slobodan. Ovaj termin
seodnosi na slobodu korišćenja softvera od strane korisnika (preuzimanje, instalacija, pokretanje,
distribucija, modifikacije).
Termin “Open Source Software” (softver otvorenog koda) znači da je izvorni kod softvera
dostupan korisniku, pa se samim tim može menjati i modifikovati.
Softver može biti slobodan (“free”) ali ne i otvorenog koda (“open source”). Važi i obrnuto,
softver može biti otvorenog koda (“open source”) ali ne i slobodan (“free”).

2. Objasnite značenje termina vlasničkog i softvera zatvorenog koda.


Vlasnički softver i softver zatvorenog koda su alternativa FOSS-u. U oba slučaja, izvorni kod
nije na raspolaganju kupcu, tj. korisniku, pa je na taj način softver zaštićen od redistribucije,
neovlašćenog korišćenja i konkurencije.
“Proprietary” ili vlasnički softver se kupuje, zaštićen je zakonima o autorskim pravima (i
intelektualnoj svojini) i na njega seprimenjuju razna ograničenja za upotrebu kopija su najčešće
navedena u EULA (“End User LicenceAgreement”) sporazumu sa krajnjim korisnikom kome se
pruža usluga. Ograničenja nad softveromstriktno određuje vlasnik softvera, prodavac ili onaj ko
je zadužen za razvoj. Vlasnik može biti pojedinac ili organizacija.
“Closed Software Source” ili softver zatvorenog koda je takav softver da se korisniku
isporučuje samo izvršna verzija programa.

3. Navedite primere FOSS softvera.


Primeri poznatih FOSS softvera:
 Operativni sistemi: Linux (GNU jezgro), Android;
 Programski jezici: PHP, Perl, Phyton, R;
 Web čitači: Mozilla;
 Serveri: Apache (PHP) i Tomcat (JSP) web serveri, MySQL server baze podataka,
PostgreSQL server baze podataka;
 Uslužni i aplikativni programi: GIMP (obrada slika), Octave (Matlab replika), Sendmail,
Postfix, Open Office, Libre Office;
 Softveri za kontrolu verzija (VCS “Version Control System”): Git, GitHub, CVS,
Subversion;
 CMS (“Content Management System”): Wordpress, Drupal, Joomla, Moodle;
 Radni okviri (“Framework”): Bootstrap, Laravel, Symphony, Zend;
 3D modelovanje i grafika: FreeCad, LibreCad, Blender.

4. Navedite 4 slobode FOSS softvera.


 SLOBODA 0 - Sloboda pokretanja programa kako korisnik to želi, za bilo koju svrhu i
namenu. Preduslov je mogućnost preuzimanja softvera.
 SLOBODA 1 - Sloboda proučavanja kako program radi i njegove izmene tako da radi u
računaru korisnika kako korisnik to želi. Preduslov je pristup izvornom kodu softvera.
 SLOBODA 2 - Sloboda redistribucije kopija kako bismo mogli pomoći drugim ljudima.
 SLOBODA 3 - Sloboda distribucije kopija korisnikovih modifikovanih verzija drugima.
Na taj način celoj zajednici možemo dati priliku da ima koristi od naših promena. Pristup
izvornom kodu je preduslov za to.

5. U FOSS svetu postoje dve institucije, navedite koje.


Postoje dve osnovne institucije u FOSS svetu:
 FSF (“Free Software Foundation”) koji je osnovao 1984. godine Richard Stallman.
 OSI (“Open Source Initiative”) koji je osnovao 1998. godine Eric Raymond.

6. Ko je osnovao i kada OSI (“Open Source Initiative”)?


Open Source Initiative (OSI) je osnovana 1998. godine. Osnivači OSI su Eric S. Raymond.

7. Ko je i kada osnovao FSF (“Free Software Foundation”)?


Free Software Foundation (FSF) osnovana je 4. oktobra 1984. godine. Osnivač FSF-a je Richard
Stallman.

8. Navedite karakteristike FOSS softvera.


 Slobodna upotreba, pokretanje, korišćenje, redistribucija i menjanje softvera;
 Nema ograničenja na broj instanci softvera koji se instaliraju;
 Najčešće se razvija u timovima programera preko Internet-a uz intenzivnu upotrebu
repozitorijuma i CVS (Control Version System) sistema;
 Podrška je dostupna preko Internet-a u formi chat-a, foruma ili mailing lista;
 Nadogradnje i naredne verzije softvera se ne plaćaju;
 Postoji puno kompanija koje su formirane sa ciljem pružanja podrške organizaciji
poslova koji koriste FOSS.

9. Navedite najznačajnije prednosti FOSS softvera.


 Dostupnost izvornog koda softvera za sve korisnike;
 Uglavnom je dopuštena besplatna upotreba, korišćenje, redistribucija i menjanje softvera,
što predstavlja uštedu velike količine novca kompanijama, čak i običnim korisnicima;
 Mogućnost prilagođavanje specifičnim potrebama korisnika, što nije slučaj sa
“proprietary” sistemima.
 Veća fleksibilnost i interoperabilnost, pošto korisnici nisu primorani da izvršavaju softver
na unapred predviđenoj platformi kao “proprietary” softveri.
 Veća sigurnost softvera, zato što većina aplikacija ima svoje zajednice i forume (stotine
hiljada ljudi) koji konstantno rade na usavršavanju kvaliteta i bezbednosti softvera;
 FOSS je vrlo pogodan za start-up kompanije zbog manjih početnih troškova ulaganja u
softvere;
 Dugoročni troškovi korišćenja FOSS softvera svih vrsta kompanija su manji.

10. Navedite nedostatke FOSS softvera.


 Većina korisničkog interfejsa (KI) nije tako “user-friendly” i jednostavna za korišćenje
kao kod “proprietary” softvera;
 Pošto je u FOSS softverima više pažnje posvećeno funkcionalnosti nego KI, u velikom
procentu, rad sa skriptom ili nekim programskim jezikom je naporan za početnike ili
programere sa manje iskustva;
 U slučaju povezivanja FOSS softvera unutar kompanije mora se voditi računa o tome da
zaposleni moraju biti specijalno obučeni ili imati dovoljno znanja da ga koriste pravilno;
 Ponekad je veoma teško pronaći potrebne drajvere za ovakve softvere;
 Dostupnost izvornog koda može biti mač sa dve oštrice zbog eventualnih zlonamernih
ljudi koji
 mogu iskoristi slabe tačke koda, pa čak i eksploatisati softver iskorištavajući njegove
delove;
 FOSS softver zahteva veći angažman korisnika;
 Podrška i edukacija za ažuriranje softvera nije uključena u licence.

11. Navedite državne institucije u svetu i kompanije koje koriste i ulažu u FOSS
softvere.
Državne institucije:
Ministarstvo obrane SAD, Mornarica SAD, Federalni sudovi u SAD, Pošta SAD, Francuski
parlament, Španija, Češka pošta, Nemačka Minhen…
Školstvo:
Brazilsko školstvo, Nemački univerziteti, Makedonija školski sistem, Rusija ceo školski sistem i
sve državne institucije.
Neke od velikih kompanija:
Google, IBM, Panasonic, Cisco, Amazon, Virgin America…
Kompanije koje ulažu u razvoj FOSS:
 IBM
 SUN Microsystem
 Google
 RedHat
 Microsoft.

12. Navedite najmanje 5 značajnih događaja iz istorijata FOSS.


1. 1982. godine se kompanija AT&T cepa i osniva se kompanija Sun Microsystems.
2. 1983. IBM je inaugurisao politiku da se ne distribuira izvorni kod s kupljenim softverom
i hardverom.
3. 1984. godine Richard Stallman, profesor i istraživač na MIT (“Massachusetts Institute of
Technology”)
4. univerzitetu, započinje GNU projekat sa ciljem da promoviše slobodan softver i softver
otvorenog koda.
5. 1986. godine Larry Wall objavljuje Perl, skriptni programski jezik za Unix sisteme u
formi FOSS-a.
6. 1987. godine Andrew Tanenbaum objavljuje izvorni kod za Minix operativni sistem koji
je pisan u programskom jeziku C.
7. 1995. godine izlazi Apache HTTP server, objavljen pod Apache licencom 1.0.

Od 13. do 17. pitanja – 1 pitanje na ispitu


13. Navedite najmanje 5 uspešnih FOSS projekata/softvera.
BIND (DNS Server) – Interent adrese ne bi mogle da funkcionišu da nema DNS-a (Domain
Name Servers), koji konvertuju nazive adresa u numeričke IP adrese i obrnuto.
Apache (Web Server) – HTTP server zadužen za prijem i ispunjavanje zahteva sa web
pretraživača.
Sendmail (Email Server) – Email server za isporučivanje poruke korisnika na njegovo odredište.
Ima izuzetno složenu funkcionalnost sa posebnim naglaskom na bezbednost.
Chrome/Chromium (Web Browser) – web pretraživač kompanije Google. Prvi put je objavljen
2008. godine za MS Windows OS.
Mozilla Firefox (Web Browser) – web pretraživač nastao kao konkurent Microsoft Explorer-u.

14. Ko je i kada objavio Linux projekat?


Linux projekat je objavio Linus Tovarlds 1991. godine.

15. Ko je i kada objavio Perl, skriptni jezik za Unix sisteme u formi FOSS-a?
Perl, skriptni jezik za Unix sisteme, objavio je Larry Wall. Prva javna verzija Perla, Perl 1.0,
objavljena je 1987. godine.

16. Ko je i kada započeo GNU projekat?


GNU projekat započeo je Richard Stallman, 1983. godine.

17. Osnovne karakteristike [Apache/Bind/SSH/Linux/SendMail/Chrome Firefox/7-


Zip/Libre Office] projekta/softvera.
 BIND (DNS Server) – Interent adrese ne bi mogle da funkcionišu da nema DNS-a
(Domain Name Servers), koji konvertuju nazive adresa u numeričke IP adrese i obrnuto.
 Apache (Web Server) – HTTP server zadužen za prijem i ispunjavanje zahteva sa web
pretraživača. Jedan je od temelja WWW (World Wide Web), najviše korišteni web server
još od 1996. godine, kada upravlja sa preko 60% tržišta web servera, što je dvostruko više
bilo od najbližeg konkurenta Microsoftovog IIS-a.
 Sendmail (Email Server) – Email server za isporučivanje poruke korisnika na njegovo
odredište. Ima izuzetno složenu funkcionalnost sa posebnim naglaskom na bezbednost.
 Linux (Operating System) – Izvorno ime jezgra operativnog sistema čiji je razvoj
započeo u okviru GNU projekta 1983. godine. Kernel OS-a je kreiran od strane Linus
Torvaldsa, 1991. godine. Ono omogućuje kontrolu upotrebe procesora (CPU),
organizaciju memorije i hardverskih uređaja.
 Libre/Open Office (Office Tools) – desktop softver za pisanje i uređivanje teksta,
crtanje, tabelarne proračune, grafikone, matematiku, prezentacije i rad sa bazama
podataka. Ekvivalent Microsoft Office paketu.
 Chrome (Web Browser) – web pretraživač kompanije Google. Prvi put je objavljen
2008. godine za MS Windows OS. Izgrađen je na osnovu slobodnih softverskih
komponenti Mozilla FireFox-a i Apple WebKit
 Mozilla Firefox (Web Browser) – web pretraživač nastao kao konkurent Microsoft
Explorer-u. Mozilla projekat je započet 1998. godine na osnovu izvornog koda Netscape
Navigator web pretraživača.
Od 18. do 25. pitanja – 1 pitanje na ispitu
18. Nacrtati šemu modela razvoja softvera otvorenog koda.

19. Navesti faze razvoja FOSS projekata.


Faze razvoja FOSS projekta su:
 Projektne ideje
 Dizajn i arhitektura
 Programiranje i implementacija
 Integracija i testiranje
 Realizacije
 Održavanje

20. Objasnite fazu održavanja FOSS softvera.

Obuhvata izmene, rešavanje problema, popravke grešaka, dopune softvera, na osnovu prijava
korisnika ili članova FOSS zajednice i njenih korisnika koji preuzimaju softver sa CVS Sistema.
Održavanje se deli u dve grupe: održavanje incidenata (greške) i održavanje problema (dopune i
izmene).
Za realizaciju održavanja mogu se koristiti “wiki” informativne stranice CVS sistema, sajtovi
FOSS timova, mailing liste u kojima se nalaze i korisnici softvera.

21. Objasnite fazu dizajna i arhitekture FOSS softvera.


Osmišljavanje detaljnije arhitekture softvera i njegovih elemenata u pogledu funkcionalnosti I
bezbednosti.
Detaljnija analiza zahteva korisnika i implikacije na buduće funkcije i opcije softvera.
Definisanje osnovnih elemenata softvera, biblioteka klasa, kontrola, komponenti, KI.
Kreiranje modela u zavisnosti od izabrane metodologije razvoja iz tačke 1 (UML, CDM, PDM,
BPM, blok dijagrami, algoritmi) uz pomoć on-line slobodnih CASE alata za projektovanje.
Početna upotreba CVS sistema za kontrolu verzija, kreiranje repozitorijuma I projekta (GitHub).
Izbor programskog jezika i/ili razvojnog okruženja.

22. Objasnite fazu programiranja i implementacije FOSS softvera.


Pisanje programskog koda, skripta, biblioteka klasa, izrada korisničkog interfejsa, formiranje
raznih vrsta datoteka određenog formata.
Intenzivna upotreba CVS sistema za kontrolu verzija.
Alati koji se koriste su: programski jezici četvrte generacije, objektno orijentisane metode
(OOM), razvojna okruženja, generatori aplikacija, “GUI builders”-kreatori KI, DBMS sistemi za
rukovanje bazama podataka, radni okviri (“frameworks”).
Dokumentovanje programa, izrada i pisanje uputstva za korišćenje programa.

23. Objasnite fazu testiranja i integracije FOSS softvera.


Integracija, tj. povezivanje delova programa, napisanih modula i delova softvera.
Pronalaženje grešaka ili nedostataka programa pre puštanja aplikacija u rad, tj. realizacije.
Faza koja obezbeđuje kvalitet softvera. Vrši se provera da li softver ispunjava tražene korisničke
zahteve.
Poželjno je koristiti softverske alati za automatizaciju testiranja (Postman, Cypress, Selenium I
sl.). Testovi mogu biti: funkcionalni, nefunkcionalni, jedinični testovi, integracioni, regresioni i
dr. Posebna pažnja se mora posvetiti testiranju bezbednosnih aspekata softvera (crna i bela
kutija, testovi prodora i ranjivosti).
24. Objasnite fazu realizacije FOSS softvera.
Izbor licence, vrste i tipa licence, u zavisnosti od toga da li su u implementaciji korišteni FOSS
implementacije pod licencama.
Isporuka softvera korinicima, razmeštanje modula i puštanje u rad, ukoliko konkretni korisnici
postoje. Radi se prema unapred utvrđenom planu isporuke i razmeštaja verzija softvera.
Isporuka može biti: isporuka svih modifikacija i celog softvera sa svih traženim funkcijama I
zahtevima, te isporuka samo kritičnih elemenata i ispravki grešaka, isporuka samo osnovne
tehnologije.
Dostavljanje uputstva za korišćenje programa.
Obuka korisnika za upotrebu programa.
Ukoliko ne postoji konkretan korisnik, realizacija, tj. objavljivanje se najčešće radi preko CVS
sistema (GitHub, Subversion i sl).

25. Navedite metode i tehnike testiranja softvera.


Postoje:
 Statičko testiranje
 Funkcionalno testiranje
 Strukturno testiranje
 Jedinično testiranje (Unit)
 Integraciono testiranje
 Sistemsko testiranje
 Testiranje metodom sive kutije

Od 26. do 32. pitanja – 1 pitanje na ispitu


26. Šta podrazumevaju softverske licence?
U oblasti FOSS softvera je definisan pravni mehanizam kojim se obezbeđuju određena
ekslkuzivna prava autorima originalnog softvera. Korišdenje, distribucija i autorska prava
vasnika softvera se regulišu pravnim mehanizmom koji se naziva softverska licenca. Korisnik
licence ima pravo na korišdenje jedne ili više kopija softvera. Pored toga, licencom je utvrđen
način i ostali uslovi korišdenja softvera.
27. Navedite vrste softverskih licenci.
Softverske licence se dele u dve kategorije vlasničke licence i slobodne licence.

28. Koje vrste licenci otvorenog koda postoje?


Licence otvorenog koda se dele u dve grupe:
 licence koje imaju za cilj da sačuvaju slobodu i otvorenost samog softvera (“Copyleft”
licence) i
 licence čiji je cilj da daju slobodu korisnicima softvera (“Permissive” licence).

29. Navedite osnovne karakteristike vlasničkih softverskih licenci.


Vlasničke licence podrazumevaju da korisnik može da koristi jednu ili više kopija
softvera od strane proizvođača koji zadržava sva prava vlasništva nad svakom
kopijom. Korisnik dobija mali deo strogo definisanih prava i karakteristično je da
je u ovoj vrsti licence navedeno puno uslova pod kojima je korišdenje softvera
zabranjeno. Krajnji korisnik mora prihvatiti sve uslove navedene u licenci i nije mu
dozvoljeno da koristi softver ukoliko ne prihvati sve uslove licence.

30. Navedite osnovne karakteristike slobodnih softverskih licenci.


Kod slobodne licence se pravo vlasništva nad kopijom softvera prenosi na krajnjeg
korisnika, kome je dozvoljeno korišdenje softvera bez prihvatanja uslova iz
licence. Krajnji korisnik je obavezan da prihvati uslove i da ih se pridržava ukoliko
želi da koristi dodatna prava iz licence.

31. Navedite tri najčešde korišćene slobodne softverske licence.


Najčešde korištene slobodne licence: MIT, Appache, GNU (GPL).

32. Objasnite razliku između Permissive i Copyleft vrste softverskih licenci.


“Copyleft” licenca osigurava da svako ko primi binarnu verziju softvera ima pravo na izvornu
verziju (uključujudi sve modifikacije izvora koje su ušle u bilo koje binarne datoteke), a ta
osoba, zauzvrat, takođe treba da prenese sve četiri slobode na bilo koga drugog kome prosleđuje
navedene binarne
datoteke/kod. “Permissive” licence omoguduju nekome da primi četiri slobode kao deo
dobijenog softvera i kopije izvornog koda, ali tada ta osoba može da odluči da li želi dati četiri
slobode (ili bilo koju pojedinačnu slobodu) nekom drugom kome daje taj softver. Ova vrsta
FOSS licence definiše koje slobode primaoc izvora ili binarnih datoteka treba da poštuje, što
znači da ne mora sve. Samo je “Copyleft” takva licenca da svaki primaoc softvera mora odobriti
sve četiri slobode koje daje softverska licenca.

Od 33. do 43. pitanja – 1 pitanje na ispitu


33. Navedite karakteristike GPL softverske licence.
GPL (General Public Licence) - GPL je jedna od najrasprostranjenijih FOSS licenca (“Copyleft”
tipa), ima najveda ograničenja. Omoguduje korisnicima da slobodni softver koriste i modifikuju,
ali obavezuje korisnike da modifikovane verzije softvera takođe moraju da budu licencirane GPL
licencom. Zahteva da izvorne verzije modifikovnog GPL softvera budu dostupne svim
korisnicima kojima se isporučuju samo binarne verzije.

34. Koji su uslovi korišdenja softvera pod GPL licencom?


Uslovi korišdenja GPL licence moraju biti dostupni svima koji dobiju kopiju softvera koji sadrži
GPL licencu. Svaki korisnik koji se pridržava uslova korišdenja ima dozvolu da modifikuje
softver, kao i da kopira i redistibuira softver ili bilo koju izvedenu verziju.

35. Kada je izdata GPL softverska licenca?


GNU GPL je izdata 1989. godine. Izdao ju je Free Software Foundation (FSF) kao deo GNU
projekta.

36. Kada je izdata BSD softverska licenca?


BSD je izdata 1988. Godine kao deo BSD operativnog sistema.

37. Ko je i kada napisao GPL licencu?


GNU General Public License (GPL) napisao je Richard Stallman. Prva verzija GPL licence,
poznata kao GPL v1, napisana je 1989. godine.
38. Navedite karakteristike BSD softverske licence.
BSD (Berkley Software Distribution) – BSD je jedna od najotvorenijih FOSS softverskih
licenci, ima mali broj ograničenja za korišdenje softvera. Redistribucija i korišdenje softvera u
izvornom ili binarnom obliku, sa ili bez izmena, su dozvoljeni ukoliko redistribucije izvornog
koda sadrže napomenu o autorskim pravima, listu uslova i izjavu o odricanju odgovornosti,
ukoliko redistribucije u binarnom obliku reprodukuju napomenu o autorskim pravima, listu
uslova i izjavu o odricanju odgovornosti (u slučaju štete) u dokumentaciji i/ili drugim
materijalima koji se isporučuju uz distribuciju softvera. Imena organizacija i saradnika ne mogu
da se koriste u izvedenim softverima bez prethodne dozvole.

39. Navedite karakteristike Appache softverske licence.


Appache licenca - Redistribucija i upotreba softvera u izvornom ili binarnom obliku, sa ili bez
izmena, dopuštena je ukoliko su ispunjeni slededi uslovi:
 redistribucija izvornog koda ili binarnog oblika mora imati obaveštenje o autorskim
pravima, popis uslova, odricanje od odgovornosti;
 dokumentacija krajnjeg korisnika uključena u redistribuciju, mora sadržati potvrdu:
"Ovaj proizvod uključuje softver razvijen od strane Apache Software Foundation
(http://www.apache.org/)."
 ova se potvrda može prikazati i u samom softveru; imena "Apache" i "Apache Software
Foundation" ne smeju se koristiti za potsticanje ili promociju proizvoda proizašlih iz
softvera bez prethodnog pismenog odobrenja;
 izvedeni softverski proizvodi ne smeju se nazivati "Apache" i "Apache" se ne sme
pojaviti u imenu, bez prethodnog pismenog odobrenja softverske fondacije Apache.
Appache verzija 2.0 je kompatibilna sa GPL 3. Ovo je “popustljiva” licenca jer ne zahteva da se
modifikovane verzije izdaju pod istom licencom, ali se podaci o autorima moraju čuvati u
pojedinačnim datotekama.

40. Navedite karakteristike LGPL softverske licence.


LGPL (LGNU Lesser General Public Licence) – U prevodu znači manje vredna GPL licenca.
Namenjena je isključivo za biblioteke koje softver koristi. Pošto se FOSS softver piše u
modulima, ova licenca štiti module izvornog koda, tj. biblioteke na isti način kao i GPL licenca.
Razlika je u tome što se pod LGPL licencom može koristiti i “neslobodni” softver tako što koristi
određene module. FSF ne podstiče korišdenje ove licence jer se rad programera daje vlasnicima
“neslobodnog” softvera koji ne moraju ništa dati zajednici od koje je dobijen softver.
41. Navedite karakteristike MIT softverske licence.
MIT - jedna od najrasprostranjenijih FOSS licenci, “Permissive” tipa. Nastala 1988. na MIT
univerzitetu za X Windows System, pod kojim je i dan danas licenciran. Veoma često menjana
licenca. Redistribucija I korišdenje softvera u izvornom ili binarnom obliku, su dozvoljeni
ukoliko redistribucije izvornog koda sadrže napomenu o autorskim pravima, listu uslova, izjavu
o odricanju odgovornosti, (u slučaju štete) u dokumentaciji i/ili drugim materijalima koji se
isporučuju uz distribuciju softvera. Skoro je ista kao i BSD licenca, sa tom razlikom što se kod
MIT licence sme koristiti naziv ustanove/pojedinca u daljim modifikovanim verzijama softvera.
Dozvoljava upotrebu i uključivanje izvornog koda softvera u vlasničke softvere, pod uslovom da
sve kopije softvera ili njegovi značajni delovi sadrže kopiju uslova MIT licence kao i
obaveštenje o autorskim pravima. Nakon 2020. godine postaje najpopularnija FOSS licenca.
Najviše se koristi i kod softvera postavljenih na GitHub. Postoje varijacije ove licence: X11
Licence, FPA Licence, MIT No Attribution Licence.

42. Navedite karakteristike Mozilla Public Licence softverske licence.


Mozilla Public Licence (MPL) – “Copyleft” licence koja se koristi kod softvera nastalih od
strane Mozilla Foundation Software, kao što su Firefox i Thunderbird. Pojavila se 1998. godine
na osnovu Netscape Public License (NPL), napisane za Netscape Communicator web
pretraživač. Dozvoljeno je korisniku da kopira, distribuira, koristi i modifikuje softver pod
slededim uslovima: softver se dobija takav kakav jeste, bez garancija bilo kakve vrste u vezi sa
korišdenjem softvera i autor nije odgovoran za štetu nastalu usled njegovog korišdenja. MPL
dozvoljava integraciju koda u vlasničke softvere, ali pod uslovom da komponente softvera i
izvorni kod ostanu svima dostupne. Slična je Apache licenci. Može se modifikovati u nove
licence, uz uslov na se navede da se licenca ne odnosi na Mozilla i Netscape. Poznati softveri:
Mozilla Firefox, LibreOffice, Bugzilla, KomodoEdit.

43. Navedite karakteristike FDL softverske licence.


GFDL (CGNU Free Document Licence) – slobodna licenca za knjige, tekstove, priručnike. Vrsta
“Copyleft” licence što znači da derivatni radovi moraju biti pod istom licencom. Nastala je iz
GNU projekta, 1999. godine, a osmislio ju je FSF. Slična je GPL licenci i daje pravo čitaocima
da svi mogu kopirati, redistribuirati i menjati (osim nepromenljvih delova) dokumente, ali kopije
i izmene moraju biti pod istom licencom I moraju sadržati imena autora, koji nisu odgovorni za
modifikacije. Kopije se mogu i prodavati, ali ako su količine vede od 100, originalni dokument
mora biti dostupan primaocu dela. Slobodna enciklopedija, Wikipedija, koristi GFDL licencu.
Aktuelna verzija je 1.3.
Od 44. do 47. pitanja – 1 pitanje na ispitu
44. Šta je CVS sistem?
Sistemi za kontrolu verzija (“Control Version System” - CVS) su hardversko-softverski
sistemi, tj. spremišta, skladišta, repozitorijumi za čuvanje i organizaciju izvornog koda softvera.
Repozitorijum je mesto gde se skladište softverski paketi i zvorni kod i odakle se isti može
preuzeti, distribuirati, instalirati I pokretati. Repozitorijumi su lokacije na Internetu gde se može
pristupati i preuzimati izvornom kodu slobodnih softvera.

45. Objasniti osnovne karakteristike CVS sistema.


Pošto u FOSS projektima razvoja softvera učestvuje vedi broj programera koji rade istovremeno,
poželjno je koristiti ovakve sisteme za kontrolu verzija, koji memorišu sve revizije izvršene na
softveru radi kontrole promena izvornog koda u softveru. Ovi sistemi obezbeđuju i komunikaciju
između članova tima, podržavaju način koordinacije promena u softvera. Takođe, CVS sistemi
su efikasni u cilju lociranja grešaka ili određenih karakteristika softvera, s obzirom da je mogude
pristupiti, preuzeti i pokrenuti različite verzije softvera, kako bi se utvrdilo gde se ispoljavaju
problemi da bi se otkrile i ispravile greške I defekti. Takođe, ovi sistemi su izuzetno efikasni u
realnoj praksi razvoja softvera kada su članovi tima geografski dislocirani i udaljeni.

46. Navedite nekoliko najvažnijih mogudnosti CVS sistema.


 kreiranje novog repozitorijuma;
 kopiranje datoteka i direktorijuma;
 izmenu sadržaja repozitorijuma tako što su obavezne potvrde izvršenih akcija;
 promena imena datoteke ili direktorijuma;
 modifikacije datoteka uz pomod tekst editora ili razvojnog okruženja;
 brisanja datoteke ili direktorijuma iz skladišta,
 razdvajanje procesa razvoja softvera u više različitih pravaca (grana), čak i od neke
verzije koja nije početna;

47. Navedite 5 popularnih CVS sistema.


Najpoznatiji CVS sistemi i repozitorijumi su: Subversion, Mercurial, Concurrent Versions
System - CVS, Git, Github, SourceForge.
Od 48. do 49. pitanja – 1 pitanje na ispitu
48. Navedite osnovne operacije CVS sistema. (Kontam da ne mora svih 22 sto je
naveo)
1. Kreiranje repozitorijuma
2. Kreiranje projekta
3. Dodavanje sadržaja u repozitorijum
4. Preuzimanje sadržaja iz repozitorijuma
5. Potvrda operacije
6. Kreiranje radne kopije repozitorijuma
7. Ažuriranje repozitorijuma
8. Izmena sadržaja repozitorijuma
9. Brisanje sadržaja iz skladišta
10. Promena imena sadržaja
11. Premeštanje sadržaja
12. Grananje repozitorijuma
13. Spajanje grana repozitorijuma
14. Prenos datoteka u granu
15. Dodavanje člana tima
16. Status izmena
17. Detalji liste promena
18. Odbacivanje izmena u radnoj kopiji
19. Dnevnik operacija
20. Označavanje trenutka u projektu
21. Ekskluzivna prava datoteke
22. Dodavanje licence

49. Objasnite [Commit/Merge/Branch] operacije CVS sistema.


Potvrda operacije (Commit, Commit changes) – operacija koja menja skladište/repozitorijum
tako što se potvrđuju i izvršavaju preduzete akcije, kopiraju se/menjaju datoteke, fajlovi, folderi i
sl.
Spajanje sadržaja (Merge) – spajanje razdvojenih verzija/grana. Mogude je spajanje verzija i bez
ove operacije ručno, dok “merge” automatizuje i olakšava posao. Operacija se mora prvo
potvrditi sa “Confirm merge”, pa zatim kao i u slučaju operacije dodavanja novog sadržaja,
pomodu “Commit”.
Grananje repozitorijuma (Branch) – operacija koja razdvaja process u dva ili čak i više različitih
pravaca (grane), čak i od neke verzije/taga koja nije početna. Svaki član tima može da ima svoju
radnu kopiju na kojoj radi i ne menja direktno celo skladište, ved svoju radnu kopiju.
Od 50. do 53. pitanja – 1 pitanje na ispitu
50. Ko je autor Git/Github sistema?
Git je prvobitno napisao Linus Torvalds, 2005. godine, koji je tvorac Linux OS kernela.

51. Navedite najznačajniju funkciju Git/Github sistema.


Git-ova izuzetno značajna funkcija je model grananja. Dozvoljava i podstiče porgramere da
imaju više lokalnih grana koje mogu biti potpuno nezavisne jedna od druge. Kreiranje, spajanje i
brisanje tih linija razvoja softvera se radi izuzetno brzo i jednostavno.ž

52. Šta je Git/Github sistem?


Git je distribuirani sistem za kontrolu verzija (DCVS) softvera koji prati promene u nekom
skupu računarskih datoteka, koristi se za koordinaciju rada među programerima koji sarađuju u
pisanju izvornog koda tokom razvoja softvera. Sistem poseduje veliku brzinu rada, integritet
podataka i podršku za nelinearne tokove rada kroz paralelne grana koje rade na različitim
sistemima i arhitekturama.

GitHub nudi distribuiranu kontrolu verzija i upravljanja izvornim kodom. Omogućuje kontrolu
pristupa softverskom projektu i saradnju u toku razvoja, praćenje grešaka u programima,
upravljanje zadacima članova tima, integraciju delova projekta, wiki informativne stranice za
svaki projekat.

53. Navedite karakteristike Git/Github sistema.


 Mogućnost poništavanja promena u slučaju da se napravi greška, možemo se vratiti na
prethodnu tačku u razvoju softvera i nastaviti rad u drugom pravcu.
 Potpuna istorija svih promena – može se videti kako je projekat izgledao ranije, može se
proveriti prethodna verzija projekta i tačno videti kakvo je stanje datoteka bilo u tom
trenutku.
 Dokumentacija o tome zašto su i kada napravljene izmene u softveru.
 Sigurnost promena pomoću jednostavnog vraćanja prethodnih verzija projekta, koje čak
ako i ne uspeju u novom pravcu, mogu se vratiti na najraniju verziju rada.
 Kreiranje i rad sa više tokova razvoja, tj. kreiranje istorije, mogu se kreirati različite
grane razvoja, čija se istorija memoriše, što omogućuje eksperimentisanje sa različitim
promenama sadržaja ili samostalnim izgradnjivanjem različitih funkcija softvera. Grane
se mog spojiti u glavni projekat (master/main, tj. Glavnu granu) ili ih možemo i obrisati,
ako na kraju ne funkcionišu ili nisu više potrebne.
Od 54. do 59. pitanja – 1 pitanje na ispitu
54. Navedite zajedničke aspekte FOSS projekata.
1. Zajednica
2. Liderstvo
3. Pronicljivost(“Forking”)
4. Kontrola verzija
5. Kontrola izdanja
6. Skladišta/Repozitorijumi
7. Pakovanje
8. Upstream/downstream
9. Komunikacija
10. Kontrola grešaka

55. Objasnite aspekt liderstva u razvoju FOSS projekata.


Liderstvo u mnogim FOSS projektima postoji BD (“Benevolent Dictator”), osoba koja ima
konačnu odluku i završnu reč. To je jedan ili nekoliko programera koji su se sa aspekta veštine
izdvojili od običnih programera. Dobronamerni BD zapravo ne preteruje u “diktatorstvu” i
oslanja se mnogo na iskusne I značajne programere koji imaju rezultate i iskustvo u određenim
oblastima razvoja softvera. Neki FOSS projekti migriraju iz BD modela u demokratski model
gde se odluke donose koncenzusom, tj. odlukom sa kojom se slaže vedina, postoji diskusija za
rešavanje problema.

56. Objasnite aspekt izdanja u razvoju FOSS projekata.


Aspekt izdanja u razvoju FOSS (Free and Open-Source Software) projekata odnosi se na proces
stvaranja i objavljivanja novih verzija softvera pod slobodnim i otvorenim licencama. Izdanja su
važan dio ciklusa razvoja FOSS projekata i omogućuju napredak, poboljšanja i distribuciju
softvera zajednici korisnika i razvijatelja.

57. Objasnite aspekte “Upstream” i “Downstream” u razvoju FOSS projekata.


Razvoj FOSS projekata ne mora biti u potpunosti linearan. S obzirom da veliki broj ljudi radi i
učestvuje na projektu istovremeno, formira se glavna grana bez obzira na sve iteracije (kaže se
da projekat “teče uzvodno”). Kada se izvrši promena, ona se gura (“push”) uzvodno do glavne
grane, tako da svi programeri uvek rade sa aktuelnom verzijom softvera. Ovi termini mogu biti
vezani i za projekte koji su međusobno povezani, pa jedan projekat zavisi od realizacije nekog
drugog, pa se izdavanje drugog projekta mora završiti pre izdavanja i puštanja prvog.
58. Objasnite aspekt kontrola izdanja u razvoju FOSS projekata.
FOSS projekti moraju imati definisan plan realizacije faza projekta i detaljan raspored aktivnosti
učesnika, kada se planiraju izdanja softvera (“Release”), otklanjanja grešaka, postupanja u
slučaju grešaka, moguda poboljšanja. U manjim projektima je dovoljno sačiniti plan kao listu.
Izdanja su vezana za trenutak u realizaciji projekta gde programeri žele da distribuiraju kod, tj.
softver I njegovu dokumentaciju. Izdanja se rade na osnovu plana puta projekta. U jednom
trenutku se razvoj “zamrzava” zbog testiranja koje se mora uraditi pre puštanja izdanja. Razvoj
praktično ne prestaje, ved se rade “grane”, te je potrebno upravljanje različitim granama s
obzirom da jedan broj programera radi na testiranju, a jedan deo na daljem razvoju kroz grane.

59. Objasnite aspekt kontrola verzija u razvoju FOSS projekata.


U FOSS projektima učestvuje vedi broj programera koji rade istovremeno pa je neophodno
koristiti sisteme za kontrolu verzija (CVS), koji memoriše sve revizije izvršene na softveru radi
kontrole promena u softveru. Ovi softveri određuju način komunikacije između članova tima,
kao i način koordinacije promena u softvera. CVS system se može koristiti i za učenje razvoja
softvera.

You might also like