Napredne tehnike programiranja
ECTS: 5 · Semestar: 4 · Ukupna satnica: 60 h
Opis kolegija
Razvojno okruženje i aplikacija s nekoliko klasa Windows VCL aplikacije. VCL komponente i dijalozi za unos i prikaz podataka Komunikacija među dijalozima i lokalizacija korisničkog sučelja Korištenje INI datoteka i Windows registra za spremanje i učitavanje korisničkih postavki Korištenje XML i JSON datoteka te razvoj datoteka prilagođenog formata ADO komponente i ostvarivanje komunikacije s bazom podataka Izvršavanje upita nad bazom podataka i generiranje izvještaja Višedretveno programiranje, mehanizmi sinkronizacije i međusobnog zaključavanja Razvoj klijent-poslužitelj aplikacija baziranih na TCP/IP i UDP protokolima Razvoj SOAP i REST web servisa i klijent aplikacija Funkcije matematičkog sažimanja i simetrični kriptografski algoritmi Korištenje i implementacija asimetričnih kriptografskih algoritama i digitalno potpisivanje sadržaja Razvoj LIB i DLL biblioteka Statičko DLL povezivanje, i povezivanje u trenutku poziva Razvoj VCL komponenti
Ishodi učenja
- analizirati Analizirati razvojno okruženje, biblioteke i programske okvire za razvoj aplikacija s korisničkim grafičkim sučeljem.
- napisati Napisati aplikaciju s jednostavnim grafičkim korisničkim sučeljem koja sadrži komponente poput gumbi, padajućih lista, potvrdnih okvira, dijaloga itd.
- napisati Napisati aplikaciju koja može spremati korisničke postavke (INI/ Windows registry) te obrađivati i razmjenjivati podatke u XML i JSON formatima.
- napisati Napisati aplikaciju koja je mogućnosti komunicirati s bazom podataka te izvršavati CRUD (CREATE/READ/UPDATE/DELETE) operacije.
- napisati Napisati aplikaciju koja svoje zadatke može izvršavati korištenjem više procesorskih jezgri i dretvi, uz implementaciju mehanizama sinkronizacije i međusobnog zaključavanja.
- napisati Napisati aplikaciju koja omogućuje mrežnu klijent-poslužitelj komunikaciju baziranu na TCP/IP i UDP protokolima, te komunikaciju sa SOAP i REST web servisima.
- napisati Napisati aplikaciju koja omogućuje matematičko sažimanje sadržaja korištenjem hash funkcija te šifriranje i dešifriranje sadržaja korištenjem simetričnih i asimetričnih kriptografskih algoritama.
- razviti Razviti vlastite LIB i DLL biblioteke i implementirati ih u nove projekte korištenjem statičkog i runtime povezivanja programskog koda.
Literatura
Obavezna literatura
- Ž. Kovačević, Slajdovi sa predavanja (LMS-2020)
Ž. Kovačević, Napredne tehnike programiranja u C++ Builderu, 2020 (Udžbenik za kolegij, LMS-2020)