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 24/25 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
|
Nastavnici | Nositelji: Tomislav Soldo, pred. |
Preduvjeti | Nema |
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) | - - 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.
- - 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
- - 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
- - 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
- - 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
- - 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
- - 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
- - 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
- - 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
- - 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
- - 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
- - 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
- - 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
- - 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
- - 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) | - - 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.
- - 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
- - 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
- - 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
- - 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
- - 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
- - 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
- - 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
- - 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
- - 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
- - 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
- - 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
- - 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
- - 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
- - 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) | - Instalacija virtualizacijskog okružja. Instalacija Linux operativnog sustava. Korištenje osnovnih unix naredbi korištenjem terminala.
- Koraci prilikom prevođenja izvornog koda pisanog u C programskom jeziku. Korištenje GCC prevoditelja. Razumijevanje generiranih datoteka prilikom svakog od koraka prevođenja.
- 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.
- Korištenje globalnih varijabli. Pronalaženje izvornog koda van radnog direktorija. Korištenje VPATH varijable.
- Korištenje uvjeta pri pisanju zadaćne datoteke. Testiranje sintakse svakog od načina korištenja uvjeta. Provjera da li je varijabla deklarirana.
- 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
- 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
- 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.
- Grananje u GIT-u. Kreiranje grana i kretanje po granama projekta. Stapanje i brisanje grana. Korištenje grafičkog sučelja za upravljanje granama.
- Korištenje internetskih inačica GIT-a.
|
kolokvij - teorija (KP) | - 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.
- 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) | - 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) | - testovi i kolokviji, konzultacije, samostalni rad i samostalno učenje
|