Cilj predmeta
Upoznavanje studenata sa životnim ciklusom u razvoju softverskog proizvoda i različitim metodologijama, standardima i alatima koji podržavaju životni ciklus softverskog proizvoda u celini ili u nekoj od njegovih faza.
Ishod predmeta
Student je sposoban da radi u timu i da razvije složenu desktop aplikaciju koja koristi fajlove sa strukturiranim podacima. Upoznat je sa životnim ciklusom i različitim metodologijama za razvoj softvera, kao i standardima i alatima koji ih podržavaju.
Sadržaj predmeta
Teorijska nastava
Dijagrami klasa, kompozicije, agregacije, dijagram paketa. Interfejsi i moduli. Strukturirani formati podataka. Serijalizacija i deserijalizacija objekata u strukturirani format. Dizajn šabloni za kreiranje objekata. Kompozicija objekata i klasa prema strukturnim projektnim obrascima. Modelovanje softvera i upotreba komponenti. Šabloni softverske arihtekture. Osnovni principi timskog razvoja softvera. UML dijagram slučajeva korišćenja. Funkcionalni zahtevi softvera. UML dijagram sekvenci. Dizajn šabloni za definisanje ponašanje softvera. Životni ciklus softverskog proizvoda. Faze životnog ciklusa. Značaj primene metodologija za razvoj softvera, istorijat razvoja metodologija. Modeli razvoja softvera: modeli bazirani na vodopadu, iterativni i inkrementalni modeli, Bemov spiralni model, modeli bazirani na prototipovima. Agilne metodologije. Automatizovani razvoj softvera. Savremeni alati za planiranje, projektovanje, konstrukciju i dokumentovanje. Alati za podršku timskog rada i praćenja napretka softverskog projekta.
Praktična nastava
Alati za dizajn i razvoj softvera. Okruženja za razvoj softvera. Alati za pravljenje izveštaja. Sistemi za kontrolu verzija. Alati za saradnju članova razvojnog tima. Alati za dokumentovanje softvera. Alati za testiranje softvera. Alati za pravljenje build-ova. Alati za kontinualnu integraciju softvera.