Osnovne informacijemdi-information-variantIzvođači nastavemdi-account-groupNastavni plan i programmdi-clipboard-text-outlineModel praćenjamdi-human-male-boardIspitni rokovimdi-clipboard-check-outlineRasporedmdi-calendar-clockKonzultacijemdi-account-voice
Cilj predmeta je poučiti studente osnovnim principima i konstruktima razvoja stolnih aplikacija za Windowse koristeći .Net razvojni okvir i C# programski jezik. Kroz predavanja i vježbe studenti će dobiti uvid u metodički pristup razvoju programskih proizvoda, posebno stolnih aplikacija, primjenu agilnih pristupa razvoju te korištenje objektno orijentiranih principa kod razvoja stolnih aplikacija. Studenti će kroz praktične zadatke steći znanja i vještine razvoja u integriranom razvojnom okruženju, vještine izrade korisničkog sučelja s naglaskom na korisničko iskustvo, vještine rada s podacima iz udaljenih relacijskih baza, te vještine primjene gotovih biblioteka u razvoju funkcionalnosti specifičnih za Windows platformu kako bi mogli implementirati cjelovito rješenje od analize zahtjeva do isporuke gotovog proizvoda.
Pristupi razvoju stolnih aplikacija (2 + 0) Profesionalni razvoj aplikacija i metodički pristup razvoju. Alati i okoline kao podrška aktivnostima razvoja. Modeli i pristupi razvoju aplikacija: klasični i agilni pristupi razvoju. Uloge i aktivnosti u procesima razvoja. Odabir pristupa razvoju. Poboljšanje procesa razvoja.
Upravljanje projektom razvoja aplikacija (2 + 2) Planiranje i budžetiranje procesa razvoja. Agilno planiranje. Timski rad. Verzioniranje programskog kôda. Upravljanje kvalitetom. Alati i tehnologije za podršku upravljanju projektom razvoja softvera.
Analiza korisničkih zahtjeva (2 + 1) Analiza korisničkih zahtjeva za funkcionalnostima programskih proizvoda. Konceptualni dizajn programskog rješenja. Identifikacija funkcionalnosti. Nefunkcionalni zahtjevi. Zahtjevi za korisničkim sučeljem i korisničkim iskustvom.
Osnove .NET platforme i razvojnog okruženja Visual Studio (2 + 2) Implementacije .NET-a (.NET Framework, .NET Core, Xamarin/Mono, .NET Standard). Osnovne komponente .NET Framework-a. Okruženje za izvođenje . NET aplikacija. .NET programski jezici. Zajednički međujezik. Skup osnovnih biblioteka .NET-a. Predlošci i tipovi rješenja/projekata u Visual Studio-u. Organizacija programskog kôda. Kompajliranje; Debuggiranje. Pomoćnik u pisanju programskog kôda Intellisense.
Programski jezik C# (4 + 4) Osnove sintakse C#-a. Razlike C# u odnosu na C/C++: jednostavni i složeni tipovi podataka, vrijednosni i referentni tipovi podataka, pretvorba tipova podataka, programske strukture (sekvenca, iteracija, grananje), definiranje klasa, konstruktora, metoda i svojstava klase. Primjeri implementacije.
Implementacija grafičkog sučelja (2 + 4) Vrste grafičkih sučelja u Windows aplikacijama. Tehnologije za izradu grafičkih sučelja (npr. Windows Forms, UWA..). Elementi korisničkih sučelja. Programiranje pogonjeno događajima. Upravljanje događajima prilikom interakcije korisnika i programa. Primjeri implementacije.
Primjena objektno-orijentiranog programiranja u C# i razvoju Windows aplikacija (6 + 4) Enkapsulacija, nasljeđivanje i polimorfizam u C#. Modifikatori pristupa. Koncept statičkih klasa i članova. Upravljanje iznimkama. Princip jedne odgovornosti. Inverzija ovisnosti, Pojam sučelja, Princip inverzije ovisnosti, Definiranje sučelja, Implementacija sučelja, Sučelja kao parametri, Sučelja kao povratne vrijednosti, Primjena sučelja, Princip segregacije sučelja i hijerarhije sučelja. Primjeri implementacije na složenijim primjerima iz prakse.
Rad s podacima i bazom podataka (4 + 6) Kolekcijski tipovi podataka i generičke kolekcije u C#. Rad s bazom podataka uz pomoć osnovnih klasa ADO.NET biblioteke. Objektno-relacijsko mapiranje uz pomoć Entity Framework-a. Pristup i manipuliranje podacima korištenjem LINQ-a. Primjeri implementacije na složenijim primjerima iz prakse.
Rad sa osnovnim skupom biblioteka u .NET-u (4 + 4) Skup osnovnih biblioteka .NET (Base Class Library). Implementacija specifičnih funkcionalnosti Windows aplikacija: rad sa datotekama i datotečnim sustavom, osnovni koncepti višedretvenog, paralelnog i asinkronog programiranja. Korištenje biblioteka trećih strana (npr. rad sa Office dokumentima). Primjeri implementacije.
Provjera i isporuka programskog proizvoda (2+3) Osnove testiranja. Automatizirano testiranje. Jedinični testovi. Osnove DevOps-a. Priprema programskog proizvoda za isporuku. Isporuka i održavanje programskog proizvoda. Alati i tehnologije za provjeru i isporuku programskog proizvoda.
Sadržaj seminara/vježbi
Ishodi učenja kolegija
Razumjeti proces razvoja programskih proizvoda i primijeniti principe agilnog razvoja programskih proizvoda.
Koristiti osnovne i napredne konstrukte programskog jezika C# i .Net razvojnog okvira za razvoj Windows aplikacija
Implementirati principe objektno orijentiranog programiranja u razvoju stolnih aplikacija.
Koristiti konstrukte dohvata, prikaza i pohrane podataka u udaljenu relacijsku bazu.
Ishodi učenja programa
Upravljati životnim ciklusom proizvoda, usluga, kao i životnim ciklusom razvoja informacijskog sustava
Predložiti i primijeniti temeljne metode razvoja informacijskih sustava u području modeliranja i izgradnje jednostavnih programskih rješenja
Predložiti i primijeniti metode razvoja programske potpore za jednostavne organizacijske procese na razini izvođenja
Odabrati i primijeniti metode iz područja programiranja, podatkovnih tehnologija i modeliranja podataka i procesa u problemskim domenama
Osnovna literatura
Boehm A., Murach J.: Murach's C# 2015, Mike Murach & Associates, 2016.
Troelsen A., Japikse P.: Pro C# 7 With .Net and .Net Core, Apress, 2017.
Dopunska literatura
Materijali s nastave dostupni na sustavu za elektroničko učenje
Autorizirani izvori, web materijali i knjige na teme kojima se kolegij bavi, a koji će zbog učestalih i velikih promjena u tehnologijama i alatima biti definirani za svaku generaciju studenata posebno.
U kalendaru ispod se nalaze konzultacije predmetnih nastavnika, no za detalje o konzultacijama možete provjeriti na profilu pojedinog predmetnog nastavnika.