Naziv predmeta

Programsko inženjerstvo

Detalji
Kod
VSITE253
Skr.
PRIN
ECTS
5
Godina
2
Semester
Zimski semestar
Vrsta
obvezatni smjera
Razina HKO 7
Diplomski studiji
E-Learning
0%
Aktivnosti
DIT zg - Ljet 19/20
ECTS
Jedinice
Sati
Svega
P
1
15
2
30
A
0.5
15
1
15
L
0.5
10
1
15
S
0
0
0
0
KA
0
0
0
0
KP
0
2
2
0
PR
0
0
0
0
IP
0
0
0
0
IU
0
1
2
0
SU
3
1
90
90
NastavniciNositelji: Tomislav Soldo, pred.
PreduvjetiNema
Sadržaj

Sustav za automatsko upravljanje prevođenja i kreiranja projekata ili programa. Zadaćna datoteka za opis procesa kreiranja projekta ili programa. Automatsko upravljane zadaćama po vremenskoj bazi. Zadaćna datoteka, pravila pisanja i način izvršavanja. Zadaće, uvjeti za izvršenje zadaće i akcije koje se izvode. Ugrađena pravila. Grupiranje pravila po ovisnostima i zadatcima. Uvjetno izvršavanje zadaća. Vježbe na alatima make i gmake.
Sustav za upravljanje promjenama u datotekama i projektu ( Revision control system ). Zapis svih promjena u datotekama i projektu, svrha i značaj. Označavanje pojedinih trenutnih verzija projekta. Grananje projekta. Upravljanje granama projekta, stvaranje i spajanje grana. Uobičajeni tipovi grana projekata, objava, ispravci grešaka, dodavanje nove funkcionalnosti. Funkcionalnost i upotreba sa stanovišta razvojnika i administratora. Primjeri i vježbe upotrebom alata GIT.

Ciljevi učenja

Osposobiti studenta za primjenu metoda vođenja programerskih projekata.

Ishodi učenja

1. Nabrojati i objasniti sustav za vođenje projekata, svrhu i značaj zapisa.
2. Specificirati i napisati zadaćnu datoteku.
3. Upravljati zadaćama, ugrađivati pravila.
4. Upravljati promjenama u projektu, koristiti alate make i gmake.
5. Koristiti grananja i spajanja, označivati trenutne verzije, koristiti sustav GIT.

Sposobnosti

Kolegij pruža temeljna znanja potrebna za upravljanje kreiranjem projekata i upravljanje sustavom za kontrolu verzija projekata.

Preporučena literatura

1. Mecklenburg, R.: Managing Projects with GNU Make, Third Edition, O'Reilly Media, 2004.
2. Loeliger, J.: Version Control with Git, O'Reilly Media, 2009.
3. Chacon, S.: Pro Git, APRESS, 2009.
4. Stallman, R. M.; McGrath, R.: GNU Make: A Program for Directed Compilation, GNU Press, 2002.

Dodatna literatura
predavanja (P)
  1. - Osnovni koncepti programiranja, pisanje, prevođenje i izvršavanje programa. Detaljni koraci kod prevođenja programa s naglaskom na duljinu trajanja svake od faza. - C programski jezik, povijest i značaj. Struktura C programskog jezika, međusobna ovisnost datoteka izvornog koda i datoteka zaglavlja. - Povijest Unix i Linux operativnih sustava. Osnovne naredbe za izvođenje kroz terminal. - Make kao alat za prevođenje složenih programerskih projekata.
  2. - Koncept zadaćnih datoteka, njihov smisao i osnovni dijelovi zadaćne datoteke - Sadržaj zadaćne datoteke. Opis cilja, preduvjeta i recepata. - Na primjeru jednostavne zadaćne datoteke pokazati strukturu i međusobnu povezanost dijelova datoteke. - Način na koji make obrađuje zadaćnu datoteku, redoslijed izvršavanja pojedinih dijelova datoteke i pravila za zaobilaženje pojedinih dijelova. - Što su to varijable, kako se koriste i koje su osnovne vrste grešaka kod korištenja varijabli - Prikaz korištenja MAKE-a za namjene koje nisu strogo prevođenje programskog koda
  3. - Detaljan sadržaj zadaćne datoteke, eksplicitna pravila, implicitna pravila, varijable i naredbe. - Sintaksa pisanja komentara te pisanje linija zadaćne datoteke u više redaka - Standardni nazivi zadaćnih datoteka u različitim inačicama MAKE-a. Korištenje ne standardnih naziva i načina na koji se oni izvode u MAKE-u. - Uključivanje drugih vanjskih datoteka prilikom izvođenja standardne - Koncept pravila u zadaćnoj datoteci, njihov poredak i način označavanja - Sintaksa pisanja pravila, korištenje .RECIEPEPREFIX varijable - Definiranje tipova preduvjeta. Namjena običnih preduvjeta i 'order only' preduvjeta
  4. - Korištenje zamjenskih znakova za poopćavanje sintakse zadaćne datoteke. Tipične pogreške kod korištenja zamjenskih znakova. Korištenje 'wildcard' funkcije. - Traženje preduvjeta u ostalim mapama, a ne samo u lokalnoj mapi. Korištenje VPATH varijable. - Definicija lažnih ciljeva i njihove namjene. Korištenje .PHONY varijable - Korištenje pravila koja nemaju recept ili preduvjeta - Prazne ciljne datoteke kao podvrsta lažnih ciljnih datoteka i njihova namjena kod spremanja događaja - Korištenje više ciljeva unutar jednog pravila te automatsko generiranje preduvjeta
  5. - Sintaksa pisanja recepata i veza s naredbama koje se izvršavaju u terminalu operativnog sustava. - Dijeljenje recepata u više redova i korištenje varijabli u receptima. - Korištenje 'echo' naredbe za ispis potvrde na terminalu - Izvršavanje recepata u jednoj ili više ljuski operativnog sustava - Upravljanje greškama kod izvršavanja recepata - Prisilno zaustavljanje MAKE-a u slučajevima mrtvih petlji ili grešaka kod izvršavanja zadaćne datoteke - Definiranje grupa recepata i načini njihovog izvršavanja i pozivanja
  6. - Varijable u zadaćnim datotekama, njihova usporedba s varijablama u programskim jezicima - Osnove korištenja varijabli, pisanje i pozivanje - Različiti načini pisanja varijabli, prednosti i nedostaci - Dodavanje teksta na postojeću varijablu te korištenje varijabli koje se protežu preko više linija - Korištenje varijabli okoline i varijabli s posebnom namjenom
  7. - Uvjetni dijelovi zadaćnih datoteka, njihova svrha i praktična primjena. Usporedba s uvjetnim dijelovima u programskim jezicima - Različite sintakse uvjeta i primjeri kroz praksu - Korištenje 'ifdef' funkcije za provjeru da li je varijabla definirana i tipične greške kod korištenja navedene funkcije
  8. - Funkcije za obradu teksta i njihova primjena u zadaćnim datotekama za generiranje putanja i generiranje sadržaja recepata - Sintaksa poziva funkcija, paralela s načinom pozivanja varijabli - Najčešće korištene funkcije za analizu i obradu teksta - Najčešće korištene funkcije za generiranje naziva datoteka - Opis funkcija 'origin', namjena i opis vrijednosti koje funkcija 'origin' vraća kao rezultat
  9. - Implicitna pravila kao pomagalo za ažuriranje datoteka bez korištenja detaljno specificiranih pravila - Popis implicitnih pravila s uputama za korištenje i pozivanje - Varijable koje se koriste u implicitnim pravilima - Implicitna pravila koja koriste uzorke
  10. - Automatske varijable, način korištenja i njihova posebnost u odnosu na klasične varijable - Sprječavanje izvršavanja implicitnih pravila pisanjem zasebnih pravila za svaku od datoteka - Algoritam za pretraživanje implicitnih pravila koji će se izvršiti za pojedinu ciljnu datoteku - Načini pokretanje Make-a i parametri koji se pri tome mogu koristiti
  11. - Povijest sustav za upravljanje verzijama softvera. Vrste i načini upravljanja verzijama softvera - Povijest GIT-a kao jedne od vrsta sustava za upravljanje verzijama - Osnove GIT-a, osnovni koncepti rada, upravljanje slikama, a ne razlikama
  12. - Načini inicijalizacije repozitorija u trenutnoj mapi, posljedice inicijalizacije - Kloniranje postojećeg repozitorija. Sintaksa procesa kloniranja i posljedica na lokalni direktorij - Bilježenje promjena u repozitoriju, različiti statusi datoteka u lokalnoj mapi
  13. - Pregled povijesti spremanja u repozitorij, korištenje 'log' naredbe i parametara za strukturirano ispisivanje povijesti spremanja u repozitorij. Ograničavanje ispisa iz log-a. Grafički alati za pregled povijesti spremanja u repozitorij - Posljedice spremanja datoteka u repozitorij i utjecaj na promjene u repozitoriju - Rad s udaljenim repozitorijima, kloniranje podataka, dodavanje referenci na udaljene repozitorije, uređivanje i brisanje referenci - Označavanje verzija softvera. Vrste oznaka, njihovo dodavanje, uređivanje i brisanje
  14. - Namjena grananja u repozitoriju GIT-a, dobre i loše strane procesa - Osnove grananja i spajana grana, izazovi koji se pojavljuju u procesu spajanja grana - Upravljanje granama, dodavanje, uređivanje i brisanje grana - Pregled tipova grana s primjerima korištenja u praksi
  15. - Udaljene grane, namjena i upravljanje udaljenim granama - 'Rebasing', osnovni principi rada, razlika između 'merge-a' i 'rebase-a'. Složeni primjer 'rebase-a' i opasnosti koje se mogu pojaviti - Protokoli koje GIT koristi, prednosti i nedostaci svakog od protokola. Primjeri korištenja - GIT Hosting, praktični primjeri
auditorne vježbe (A)
  1. - Osnovni koncepti programiranja, pisanje, prevođenje i izvršavanje programa. Detaljni koraci kod prevođenja programa s naglaskom na duljinu trajanja svake od faza. - C programski jezik, povijest i značaj. Struktura C programskog jezika, međusobna ovisnost datoteka izvornog koda i datoteka zaglavlja. - Povijest Unix i Linux operativnih sustava. Osnovne naredbe za izvođenje kroz terminal. - Make kao alat za prevođenje složenih programerskih projekata.
  2. - Koncept zadaćnih datoteka, njihov smisao i osnovni dijelovi zadaćne datoteke - Sadržaj zadaćne datoteke. Opis cilja, preduvjeta i recepata. - Na primjeru jednostavne zadaćne datoteke pokazati strukturu i međusobnu povezanost dijelova datoteke. - Način na koji make obrađuje zadaćnu datoteku, redoslijed izvršavanja pojedinih dijelova datoteke i pravila za zaobilaženje pojedinih dijelova. - Što su to varijable, kako se koriste i koje su osnovne vrste grešaka kod korištenja varijabli - Prikaz korištenja MAKE-a za namjene koje nisu strogo prevođenje programskog koda
  3. - Detaljan sadržaj zadaćne datoteke, eksplicitna pravila, implicitna pravila, varijable i naredbe. - Sintaksa pisanja komentara te pisanje linija zadaćne datoteke u više redaka - Standardni nazivi zadaćnih datoteka u različitim inačicama MAKE-a. Korištenje ne standardnih naziva i načina na koji se oni izvode u MAKE-u. - Uključivanje drugih vanjskih datoteka prilikom izvođenja standardne - Koncept pravila u zadaćnoj datoteci, njihov poredak i način označavanja - Sintaksa pisanja pravila, korištenje .RECIEPEPREFIX varijable - Definiranje tipova preduvjeta. Namjena običnih preduvjeta i 'order only' preduvjeta
  4. - Korištenje zamjenskih znakova za poopćavanje sintakse zadaćne datoteke. Tipične pogreške kod korištenja zamjenskih znakova. Korištenje 'wildcard' funkcije. - Traženje preduvjeta u ostalim mapama, a ne samo u lokalnoj mapi. Korištenje VPATH varijable. - Definicija lažnih ciljeva i njihove namjene. Korištenje .PHONY varijable - Korištenje pravila koja nemaju recept ili preduvjeta - Prazne ciljne datoteke kao podvrsta lažnih ciljnih datoteka i njihova namjena kod spremanja događaja - Korištenje više ciljeva unutar jednog pravila te automatsko generiranje preduvjeta
  5. - Sintaksa pisanja recepata i veza s naredbama koje se izvršavaju u terminalu operativnog sustava. - Dijeljenje recepata u više redova i korištenje varijabli u receptima. - Korištenje 'echo' naredbe za ispis potvrde na terminalu - Izvršavanje recepata u jednoj ili više ljuski operativnog sustava - Upravljanje greškama kod izvršavanja recepata - Prisilno zaustavljanje MAKE-a u slučajevima mrtvih petlji ili grešaka kod izvršavanja zadaćne datoteke - Definiranje grupa recepata i načini njihovog izvršavanja i pozivanja
  6. - Varijable u zadaćnim datotekama, njihova usporedba s varijablama u programskim jezicima - Osnove korištenja varijabli, pisanje i pozivanje - Različiti načini pisanja varijabli, prednosti i nedostaci - Dodavanje teksta na postojeću varijablu te korištenje varijabli koje se protežu preko više linija - Korištenje varijabli okoline i varijabli s posebnom namjenom
  7. - Uvjetni dijelovi zadaćnih datoteka, njihova svrha i praktična primjena. Usporedba s uvjetnim dijelovima u programskim jezicima - Različite sintakse uvjeta i primjeri kroz praksu - Korištenje 'ifdef' funkcije za provjeru da li je varijabla definirana i tipične greške kod korištenja navedene funkcije
  8. - Funkcije za obradu teksta i njihova primjena u zadaćnim datotekama za generiranje putanja i generiranje sadržaja recepata - Sintaksa poziva funkcija, paralela s načinom pozivanja varijabli - Najčešće korištene funkcije za analizu i obradu teksta - Najčešće korištene funkcije za generiranje naziva datoteka - Opis funkcija 'origin', namjena i opis vrijednosti koje funkcija 'origin' vraća kao rezultat
  9. - Implicitna pravila kao pomagalo za ažuriranje datoteka bez korištenja detaljno specificiranih pravila - Popis implicitnih pravila s uputama za korištenje i pozivanje - Varijable koje se koriste u implicitnim pravilima - Implicitna pravila koja koriste uzorke
  10. - Automatske varijable, način korištenja i njihova posebnost u odnosu na klasične varijable - Sprječavanje izvršavanja implicitnih pravila pisanjem zasebnih pravila za svaku od datoteka - Algoritam za pretraživanje implicitnih pravila koji će se izvršiti za pojedinu ciljnu datoteku - Načini pokretanje Make-a i parametri koji se pri tome mogu koristiti
  11. - Povijest sustav za upravljanje verzijama softvera. Vrste i načini upravljanja verzijama softvera - Povijest GIT-a kao jedne od vrsta sustava za upravljanje verzijama - Osnove GIT-a, osnovni koncepti rada, upravljanje slikama, a ne razlikama
  12. - Načini inicijalizacije repozitorija u trenutnoj mapi, posljedice inicijalizacije - Kloniranje postojećeg repozitorija. Sintaksa procesa kloniranja i posljedica na lokalni direktorij - Bilježenje promjena u repozitoriju, različiti statusi datoteka u lokalnoj mapi
  13. - Pregled povijesti spremanja u repozitorij, korištenje 'log' naredbe i parametara za strukturirano ispisivanje povijesti spremanja u repozitorij. Ograničavanje ispisa iz log-a. Grafički alati za pregled povijesti spremanja u repozitorij - Posljedice spremanja datoteka u repozitorij i utjecaj na promjene u repozitoriju - Rad s udaljenim repozitorijima, kloniranje podataka, dodavanje referenci na udaljene repozitorije, uređivanje i brisanje referenci - Označavanje verzija softvera. Vrste oznaka, njihovo dodavanje, uređivanje i brisanje
  14. - Namjena grananja u repozitoriju GIT-a, dobre i loše strane procesa - Osnove grananja i spajana grana, izazovi koji se pojavljuju u procesu spajanja grana - Upravljanje granama, dodavanje, uređivanje i brisanje grana - Pregled tipova grana s primjerima korištenja u praksi
  15. - Udaljene grane, namjena i upravljanje udaljenim granama - 'Rebasing', osnovni principi rada, razlika između 'merge-a' i 'rebase-a'. Složeni primjer 'rebase-a' i opasnosti koje se mogu pojaviti - Protokoli koje GIT koristi, prednosti i nedostaci svakog od protokola. Primjeri korištenja - GIT Hosting, praktični primjeri
laboratorijske vježbe (L)
  1. Instalacija virtualizacijskog okružja. Instalacija Linux operativnog sustava. Korištenje osnovnih unix naredbi korištenjem terminala.
  2. Koraci prilikom prevođenja izvornog koda pisanog u C programskom jeziku. Korištenje GCC prevoditelja. Razumijevanje generiranih datoteka prilikom svakog od koraka prevođenja.
  3. Pisanje osnovne zadaćne datoteke. Prepoznavanje dijelova zadaćne datoteke. Uočavanje veze između preduvjeta i ciljeva. Prevođenje izvornog koda korištenjem zadaćne datoteke.
  4. Korištenje globalnih varijabli. Pronalaženje izvornog koda van radnog direktorija. Korištenje VPATH varijable.
  5. Korištenje uvjeta pri pisanju zadaćne datoteke. Testiranje sintakse svakog od načina korištenja uvjeta. Provjera da li je varijabla deklarirana.
  6. Funkcije za obradu teksta. Generiranje putanje i naziva datoteka nad kojim se izvršavaju recepti, generiranje sadržaj recepata. Testiranje slijedećih funkcija za obradu teksta: subst, strip, sort, wordlist, filter, addprefix, addsuffix, firstword, words
  7. Osnove korištenja GIT-a. Instalacija GIT-a na lokalnom računalu. Podešavanje osnovnih parametara. Kreiranje repozitorija kroz kloniranje postojećeg repozitorija sa udaljenog računala i kreiranje novog repozitorija (inicijalizacija). Spremanje promjena u GIT repozitorij
  8. Dijeljeni repozitoriji u GIT-u. Kreiranje referenci na udaljene repozitorije. Kloniranje sadržaja udaljenih repozitorija. Dodavanje novih datoteka u prostor za pripremu. Konfiguracija GIT-a da ignorira privremene datoteke.
  9. Grananje u GIT-u. Kreiranje grana i kretanje po granama projekta. Stapanje i brisanje grana. Korištenje grafičkog sučelja za upravljanje granama.
  10. Korištenje internetskih inačica GIT-a.
kolokvij - teorija (KP)
  1. Jedinice predavanja 1-10 (poglavlja 1-10). Student dobiva 50 pitanja s višestrukim mogućim odgovorima. Pozitivno odgovoreno pitanje donosi 1 bod, pogrešno odgovoreno pitanje donosi -0,5 bodova. U slučaju da nema odgovora, student ne dobiva pozitivne niti negativne bodove. Za pozitivnu ocjenu potrebno je skupiti više od 50% bodova.
  2. Jedinice predavanja 11-15 (poglavlja 1-15). Student dobiva 50 pitanja s višestrukim mogućim odgovorima. Pozitivno odgovoreno pitanje donosi 1 bod, pogrešno odgovoreno pitanje donosi -0,5 bodova. U slučaju da nema odgovora, student ne dobiva pozitivne niti negativne bodove. Za pozitivnu ocjenu potrebno je skupiti više od 50% bodova.
ispit - teorija (IU)
  1. Jedinice predavanja 1-15 (poglavlja 1-15). Student dobiva 100 pitanja s višestrukim mogućim odgovorima. Pozitivno odgovoreno pitanje donosi 1 bod, pogrešno odgovoreno pitanje donosi -0,5 bodova. U slučaju da nema odgovora, student ne dobiva pozitivne niti negativne bodove. Za pozitivnu ocjenu potrebno je skupiti više od 50% bodova.
samostalno učenje (SU)
  1. testovi i kolokviji, konzultacije, samostalni rad i samostalno učenje