Opis kursa
Ovaj kurs studentima pruža duboko razumijevanje savremenih alata i metodologija softverskog inženjeringa, fokusirajući se na najbolje prakse razvoja softvera, strategije testiranja i arhitektonske obrasce. Studenti će steći praktično iskustvo sa kontrolom verzija softvera, alatima za upravljanje projektima i okvirima za testiranje, osiguravajući da mogu efikasno upravljati softverskim projektima u stvarnim okruženjima.

Sa sve većim naglaskom na računalstvu u oblaku, mikroservisima i arhitekturi bez servera, ovaj kurs uvodi napredne principe softverskog inženjeringa bitne za skalabilan i efikasan razvoj aplikacija. Studenti će naučiti da dizajniraju, implementiraju i održavaju moderna softverska rješenja, uključujući infrastrukturu zasnovanu na oblaku i alate za automatizaciju koji se široko koriste u okruženjima vođenim umjetnom inteligencijom i računarskim okruženjima visokih performansi (HPC).
Sadržaj kursa (12 modula)
- Alati za softversko inženjerstvo – Uvod u alate za upravljanje projektima i okruženja za razvoj softvera.
- Agilni razvoj – Principi i alati za agilno upravljanje projektima i iterativni razvoj softvera.
- Arhitektura softvera i kontrola verzija – Osnove obrazaca dizajna softvera i sistema kontrole verzija (npr. Git).
- MVC arhitektura – Razumijevanje Model-View-Controller (MVC) i praktična implementacija.
- SOLID Principi – Pisanje čistog, održivog i skalabilnog softvera koristeći najbolju praksu u industriji.
- Obrasci dizajna koda – Uobičajeni obrasci koji se koriste u strukturiranom i objektno orijentiranom programiranju.
- Testiranje softvera – Jedinično testiranje, razvoj vođen testom (TDD) i razvoj vođen ponašanjem (BDD).
- Arhitekture zasnovane na oblaku – Uvod u računarstvo u oblaku, tehnologije bez servera i strategije implementacije.
- Aplikacije bez servera – Razvoj aplikacija zasnovanih na oblaku koristeći AWS Lambda, autentifikaciju i integraciju baze podataka.
- Arhitektura mikroservisa – Dizajn i implementacija aplikacija zasnovanih na mikroservisima.
- Sistemi vođeni događajima – Istraživanje izvora događaja i asinhrone obrade u modernim aplikacijama.
- Pisanje elegantnog koda – Najbolje prakse za čist kod, refaktoriranje i izradu softvera.
Ishodi učenja
Nakon uspješnog završetka ovog kursa, studenti će moći:
- Koristite moderne alate za softversko inženjerstvo za upravljanje projektima, kontrolu verzija i saradnju.
- Primijenite principe softverske arhitekture da dizajnirate skalabilne aplikacije koje se mogu održavati.
- Razvijte i testirajte softverske aplikacije koristeći jedinične testove, TDD i BDD metodologije.
- Implementirajte aplikacije zasnovane na Cloud i HPC.
- Slijedite najbolje prakse kodiranja za pisanje strukturiranog, čitljivog softvera koji se može održavati.