Softverski inženjeri se bave izradom i održavanjem softverskih aplikacija, koristeći najbolje tehnike iz računarstva, upravljanja projektima, inženjeringa, aplikacija i drugih IT oblasti. Softversko inženjerstvo se vezuje za upravljanje procesom i kvalitetom, za kreativnost i inovacije, za standarde, za individualne veštine pojedinaca, ali i za sposobnost timskog rada i primenu pravila i iskustva iz profesionalne prakse.
Studenti će naučiti kako da primenjuju najsavremenije tehnike i metodologije za razvoj visokokvalitetnih softvera prema profesionalnim standardima.
Vešti i formalno obrazovani softverski inženjeri su izuzetno traženi. Kontinuirani rast novih tehnologija i mobilnih aplikacija u industriji, trgovini i javnom sektoru povećava potražnju za stručnjacima koji mogu dizajnirati, implementirati i održavati složene softverske sisteme. Cilj ovog master programa je da studenti steknu napredne praktične veštine iz softverskog inženjerstva, a sa završenim master studijama studenti povećavaju svoju konkurentnost na tržištu rada i otvaraju mogućnost za napredovanje u karijeri.
Master inženjeri softvera najčešće rade na pozicijama softverskih inženjera, veb programera, računarskih programera, poslovnih analitičara, menadžera za razvoj sistema itd. Po uspešno završenom programu studenti su osposobljeni da razumeju metode, tehnike i alate koji su dostupni za specifikaciju, projektovanje, implementaciju i upravljanje softverskim sistemima.
Ove veštine im omogućavaju da:
OPIS PROGRAMA
Softversko inženjerstvo je disciplina koja se bavi razvojem i održavanjem pouzdanih i efikasnih softverskih sistema. Značaj softverskog inženjerstva je porastao sa rastućim zahtevima za razvojem bezbednih aplikacija, tj. bezbednih softverskih sistema i sa većim značajem velikih i skupih softverskih sistema. Softversko inženjerstvo se razlikuje od svih drugih inženjerskih disciplina, zbog nefizičke prirode softvera (ne postoji u prostoru i nije opipljiv). Softversko inženjerstvo pokušava da integriše računarske nauke i inženjerske principe koji se primenjuju kod razvoja opipljivih tvorevina sa jasnim fizičkim osobinama. Softversko inženjerstvo se vezuje za upravljanje procesom i kvalitetom, za kreativnost i inovacije, za standarde, za individualne veštine pojedinaca, ali i za sposobnost timskog rada i primenu pravila i iskustva iz profesionalne prakse. Studijski program MAS Ingeligentni i napredni softverski sistemi obrazuje studente da rade na razvoju profesionalnog softvera industrijskog kvaliteta. Softversko inženjerstvo je disciplina koja se bavi razvojem i održavanjem pouzdanih i efikasnih softverskih sistema.
Softversko inženjerstvo, kao master program, ima za cilј školovanje master inženjera softvera za kojima postoji velika potreba na tržištu rada. Studijski program obezbeđuje sticanje kompetencija koje su društveno opravdane i korisne i u skladu su sa zadacima i cilјevima Univerziteta, na kome se studijski program i izvodi. Svrha studijskog programa je osposoblјenost za racionalno i stručno obavlјanje različitih praktičnih poslova i zadataka koji su povezani sa strukom, a čiji je ishod utvrđivanje potreba i zahteva čije zadovolјenje obezbeđuje punu funkcionalnost softvera uz definisanje svih softverskih modula i komponenata sa projektovanjem softverskog sistema.
Studijski program MAS Inteligentni i napredni softverski sistemi razvijen je u skladu sa preporukama i predlozima američkih profesionalnih udruženja: IEEE Computer Society, ACM:
Curriculum Guidelines for Graduate Degree Programs in Software Engineering (2009)
Computing Competencies for Data Science Curricula (2021)
ISHODI UČENJA STUDIJSKOG PROGRAMA
Studijski program master akademskih studija Inteligentni i napredni softverski sistemi ima konkretnije definisane ciljeve koji su u skladu sa osnovnim zadacima i ciljevima Univerziteta Metropolitan, a koji su i društveno opravdani:
- Obezbeđenja prenošenja naučnih, stručnih znanja i veština, razvoj struke softver inženjera, unapređenje primene i kreativnost u softverskom inženjerstvu.
- Obrazovanje visoko stručnog kadra koji ima celovito akademsko obrazovanje i integrisano poznavanje razvoja softvera u skladu sa očekivanjima i potrebama kompanija koje se profesionalno bave razvojem softvera.
- Osposobljavanje studenta da učestvuje u razvoju ili vodi razvoj složenijih softverskih proizvoda, primenom najsavremenijih metoda i tehnika, koje se primenjuju u softverskom inženjerstvu.
- Osposobljavanje studenta da poštuje sve etičke principe, kao dobra pravila struke i da širi njihovu primenu u svom okruženju.
- Razvija sposobnost timskog rada u razvoju softvera.
NASTAVNI PLAN – MAS INTELIGENTNI I NAPREDNI SISTEMI
| Sem | RB | MAS INTELIGENTNI I NAPREDNI SOFTVERSKI SISTEMI (60 ESPB), Plan nastave u školskoj 2025/26. |
ESPB |
|---|---|---|---|
| 1 | 1 | CS515 Principi i tehnike veštačke inteligencije | 6 |
| 2 | SE515 Arhitektura softvera | 6 | |
| 3 | Izborni predmet 1 | 6 | |
| 4 | Izborni predmet 2 | 6 | |
| 5 | Izborni predmet 3 | 6 | |
| 2 | 6 | SE585 Projekat razvoja softvera | 6 |
| 7 | SE590 Stručna praksa | 3 | |
| Izborni predmeti 1,2,3 (biraju se tri predmeta) | |||
| 1 | 3,4,5 | CS565 Mašinsko učenje | 6 |
| CS520 Primenjeno duboko učenje | 6 | ||
| CS525 Kompjuterski vid | 6 | ||
| CS541 Inteligentni sistemi e-učenja | 6 | ||
| SE575 Obezbeđenje kvaliteta softvera | 6 | ||
| SE580 Skalabilni softverski sistemi | 6 | ||
| SE565 Upravljanje projektom razvoja softvera | 6 | ||
| OM545 Preduzetništvo i inovacije | 6 | ||
Kratak opis svih predmeta
CS515 Principi i tehnike veštačke inteligencije
Cilj predmeta je upoznavanje studenata sa osnovnim idejama, izazovima, tehnikama, primenama i problemima veštačke inteligencija, a koje se koriste pri razvoju inteligentnih softverskih sistema. Izučavaju se tehnike pretraživanja, predstavljanja znanja, načina rezonovanja i planiranja, kao i osnovne tehnike mašinskog učenja. Studenti će biti u stanju da izaberu tehnike veštačke inteligencije za određenu klasu problema. Po položenom ispitu iz ovog predmeta, student će biti osposobljen da: Rešava probleme vezane za pretraživanje u složenim okruženjima, kao i uslovima ograničenja, razume ulogu logičkih agenata, metode predstavljanja znanja i automatskog planiranja, primeni metode i tehnike predstavljanja neizvesnog znanja i rasuđivanja, neophodnih za donošenje odluka, razume osnovne metode mašinskog učenja, kao što su probalistički modeli i metode dubokog učenja i podržanog učenja.
SE515 Arhitektura softvera
Primarni cilj predmeta je da pomogne studentima da razviju veštine u projektovanju, razvoju i prihvatanju razumne softverske arhitekture, za sisteme koji intenzivno zahtevaju softver na nivou preduzeća, uzimajući u obzir i funkcionalne i nefunkcionalne zahteve, kao i kontekstualna sistemska okruženja. Osnovne teme uključuju: Pregled arhitekture softvera, mikroarhitektonske šablone (šablone projektovanja) i makroarhitektonske šablone (savremene šablone), arhitekturu orijentisanu na usluge, arhitektonsko modeliranje, gledišta i perspektive, tehnike arhitektonske analize, arhitektonske taktike i neke napredne teme. Kao rezultat završetka predmeta, student će moći da: Jasno definiše arhitektonske probleme u smislu atributa kvaliteta, scenarija, kompromisa, zainteresovanih strana i zabrinutosti; Razume važne arhitektonske modele (npr. višeslojni model, servisno orijentisana arhitektura) zajedno sa njihovim prednostima i nedostacima; Identifikuje arhitektonske taktike relevantne za specifične arhitektonske probleme; Projektuje arhitektonske modele koristeći postojeće arhitektonske šablone; Procenjuje arhitekture u smislu njihovih rizika i kompromisa i koliko dobro ispunjavaju zahteve atributa kvaliteta, kao i koliko dobro rešavaju probleme zainteresovanih strana.
Izborni predmeti 1, 2 i 3
CS565 Mašinsko učenje
Cilj predmeta je da studentima na jednostavan način pomogne u ovladavanju primeni tehnika mašinskog učenja koristeći programski jezik Python i specijalizovanu biblioteku programskih kodova ThensorFlow. Predmet je kreiran za studente koji se bave programiranjem i razvojem softvera, a žele da nauče kako da razvijaju softver sa primenom metoda mašinskog učenja. Zato, predmet ne ulazi dublje u matematičku interpretaciju primenjenih koncepata mašinskog učenja, koja je za njih teža za razumevanje. U prvom delu nastave, fokus je na primeni Python-a, bez korišćenja specijalizovanih biblioteka, što omogućava studentima da bolje razumeju suštinu koncepata metoda mašinskog učenja. U drugom delu se koristi specijalizovana biblioteka TensorFlow, što omogućava brži i lakši razvoj inteligentnih softverskih sistema. Po položenom ispitu iz ovog predmeta, student će biti osposobljen da: Razume kako jednoslojne i višeslojne neuronske mreže rade; Primeni programski jezik Python bez specijalizovanih biblioteka, radi boljeg razumevanja kako neuronske mreže rade, tj. da shvati suštinu metoda učenja i dubokog učenja; Primeni TensorFlow biblioteku kodova u Python-u, u slučaju razvoja složenijih inteligentnih softverskih sistema koji primenjuju jednoslojne ili višeslojne neuronske mreže, a u oblastima klasifikacije slika, detekcije i prepoznavanja lica na slikama, detekcije objekata i poza, obrade prirodnog jezika i u analizi podataka; Vrši izbor tehnika u zavisnosti od vrste, prirode i kompleksnosti realnog problema; Primeni odgovarajuću tehniku koristeći programski jezik Python i TensorFlow biblioteku i tako reši posmatrani problem, odnosno, donese zaključak u vezi posmatrane pojave koji odgovara realnim uslovima u industriji.
CS520 Primenjeno duboko učenje
Razvoj inteligentnih softverskih sistema koji primenjuju modele tzv. dubokog učenja, u poslednje vreme doživljava buran razvoj i primenu u različitim oblastima, kao što su: Vizualno prepoznavanje objekata, obradu prirodnog jezika, obradu informacija u cilju učenja inteligentnog sistema, upravljanje autonomnim vozilima i dr. Cilj ovog predmeta je da upozna studente sa metodama dubokog učenja sa korišćenjem TensorFlow biblioteka Python rutina, čije korišćenje znatno olakšava razumevanje i primenu različitih metoda dubokog učenja, koje se u ovom predmetu izučavaju preko primera. Zbog toga, na minimum je svedeno korišćenje složenog matematičkog aparata, koji se često koristi u udžbenicima i u radovima o dubokom učenju, te je predmet na ovaj način prilagođen potrebama studenata softverskog inženjerstva i IT-a. Po završetku nastave na predmetu, student će moći da: Primenjuje Python i TensorFlow u razvoju inteligentnog softvera koji primenjuje metode dubokog učenja; Razume i koristi metode konvolucionih neuronskih mreža za prepoznavanje objekata, slika i dr; Razume i koristi povratne neuronskih mreža (RNN) i konvolucionih neuronskih mreža (CNN) u cilju obrade i razumevanja prirodnog jezika; Razume i koristi autoenkoder i generativne suparničke mreže (GAN); Razume primenu metoda dubokog učenja, koje se primenjuju u upravljanju autonomnim vozilima.
CS525 Kompjuterski vid
Cilj predmeta je upoznavanje studenata sa principima, načinima implementacije i primenom konvolucionih neuronskih mreža za vizuelno prepoznavanje. Kompjuterska vizija je postala sveprisutna u našem društvu sa aplikacijama za pretraživanje, razumevanje slika, mapiranje, ima primenu u dronovima i autonomnim vozilima. Osnovu ovih primena čine zadaci vizuelnog prepoznavanja kao što su klasifikacija slika, lokalizacija i detekcija. U ovom predmetu će poseban akcenat biti na dubokom učenju za kompjutersku viziju. Studenti će biti osposobljeni da rešavaju probleme vizuelnog prepoznavanja korišćenjem konvolucionih neuronskih mreža u Python programskom jeziku, uz korišćenje biblioteke TensorFlow. Po završetku nastave na predmetu, studenti će moći da: Razumeju, implementiraju i primene konvolucione neuronske mreže za vizuelno prepoznavanje; Razumeju najnovija istraživanja u vizuelnom prepoznavanju i kompjuterskoj viziji; Implementiraju i razvijaju sopstvene neuronske mreže; Razumeju i primenjuju poznata rešenja na probleme kompjuterskog vida u realnom svetu.
CS541 Inteligentni sistemi e-učenja
Cilj predmeta je da osposobi studenta da može da projektuje inteligentni sistem za elektronsko učenje i da može da primeni ovakav sistem u kreiranju svog onlajn predmeta na pogodnoj platformi za e-učenje. Pod inteligentnim sistemom e-učenja se ovde podrazumeva sistem za e-učenje koji je sposoban da se prilagodi specifičnim potrebama i mogućnostima svakog studenta posebno i da na taj način, tj. primenom principa personalizovane nastave, obezbedi njegovo zadovoljstvo i veće efekat nastave, jer se studentu obezbeđuje nastava i učenje ”po njegovoj meri”, tj. u skladu sa njegovim interesovanjem i mogućnostima. Program predmeta obuhvata primenu inteligentnih agenata, a posebno razvoj inteligentnih tutora koji obezbeđuju studentu personalizovane nastavne materijale i odgovarajući stil učenja. Posle uspešnog završetka nastave na ovom predmetu, student će biti osposobljen da: Razume različite metode i tehnike personalizovanog e-učenja; Razvije, uz pomoć odgovarajuće razvojne platforme, prototip sistema za e-učenja koji koristi sistem tutora.
SE520 Primenjeni distribuirani sistemi
Cilj predmeta je obezbeđivanje visokog nivoa razumevanja i primene naprednih koncepata distribuiranih računarskih sistema. Predmet pruža jedan zaokružen niz tematskih sadržaja: Heterogenost, sigurnost, transparentnost, konkurentnost, otpornost na greške; Principi umrežavanja; Protokol zahtev-odgovor; Daljinski pozivi procedura; Distribuirani objekti; Arhitekture srednjeg softvera; Bezbednosni i protokoli za autentifikaciju; Distribuirani sistem datoteka; Usluge imena; Globalna stanja u distribuiranim sistemima; Koordinacija i dogovor; Kontrola transakcija i konkurentnosti; Distribuirane transakcije; Replikacija. Ovi tematski sadržaji predstavlja solidnu osnovu za dalje nadogradnje i primene u skladu sa daljim razvojem primene distribuiranih sistema, koji se konkretnije izučavaju u drugim predmetima studijskog programa. Nakon odslušanog predmeta student: Razume, projektuje i razvija arhitekture osnovnih distribuiranih sistema i aplikacija; Primenjuje osnovne principe razvoja distribuiranih sistema; Razume i koristi objektno-orijentisane distribuirane sistema koji se zasnivaju na primenu tzv. srednjeg softver (middleware) i odgovarajućih tehnoloških platforma, razume, koristi i razvija napredne API servise distribuiranih sistema; Je osposobljen za otkrivanje, balansiranje opterećenja, oporavak od kvarova, metriku i nadgledanje distribuiranih sistema, razume svojstva zajedničkih elemenata koji se koriste pri projektovanju distribuiranih sistema; Razume složenost razvoja distribuiranih sistema, kao što su otkazi računara i mreža, konkurentnost, konsistentno, otkazi, i dr.
SE575 Obezbeđenje kvaliteta softvera
Ovaj predmet se bavi osiguranjem i kontrolom kvaliteta softvera. Predmet uvodi studente u različite alate i tehnike za osiguranje kvaliteta. Cilj ovog predmeta je da studenti shvate da se visoka vrednost kvaliteta softvera ne postiže bez uključivanja i drugih komponenti, kao što su bezbednost, pouzdanost, inspekcija i revizija softvera. Na kraju, razmatraju se i izazovi obezbeđenja kvaliteta softverskih sistema budućnosti, kao što su: Testiranje u digitalnom dobu, testiranje autonomnih sistema, testiranje veštačke inteligencije, testiranje DevOps-a, testeri softvera sledeće generacije, budućnost testiranja i dr. Po završetku nastave na predmetu, studenti će moći da: Razumeju kvalitet softvera, odnosno, kako ga definisati, analizirati i izmeriti; Izaberu odgovarajući analitički alat/tehniku za datu situaciju i da istraže kako da analiziraju rezultate; Razumeju prednosti i slabosti različitih tehnika obezbeđenja kvaliteta, kao što su testiranje softvera, statička analiza, pregled koda i demonstracija; Nauče da prikupljaju, upravljaju i procenjuju metriku kvaliteta; Analiziraju i verifikuju različita svojstva softvera uključujući i bezbednost, pouzdanost i performanse; Steknu iskustvo rada sa stvarnim alatima za osiguranje kvaliteta uključujući alate za statičku analizu, okvire za testiranje softvera i alate za merenje kvaliteta softvera.
SE580 Skalabilni softvereski sistemi
Ovaj predmet pokriva principe projektovanja i strategije potrebne za projektovanje i implementaciju skalabilnih distribuiranih sistema sa intenzivnim podacima. U ovom domenu inženjeri, ne samo da moraju da znaju kako da projektuju sisteme koji su inherentno skalabilni, već da to urade na način koji takođe podržava visoku dostupnost, pouzdanost i performanse. S obzirom na veliku distribuiranu prirodu ovih sistema, osnovni koncepti distribuiranih sistema kao što su doslednost, vreme i sinhronizacija su takođe važni. Ovi sistemi uglavnom rade danonoćno, imaju komponente koje rade na različitim čvorovima i platformama, tako da predmet stavlja naglasak na primenu i operativne probleme. Po završetku nastave na predmetu, studenti će moći da: Primene HTPP servise koji su izvorni u klaudu, sa asinhronom komunikacijom vođenom događajima, i SQL i NoSQL skladištima podataka, kroz izgradnju sistema sa sve većim očekivanjima; Razumeju šta je potrebno za projektovanje sistemskih svojstava u distribuiranim sistemima sa intenzivnim podacima, sa fokusom na interoperabilnost, skalabilnost, dostupnost i pouzdanost, labavo povezivanje, promenljivost i distribuirane podatke, koji su u stanju da međusobno deluju između ovih opcija prilikom primene nekoliko projektantskih šablona i tehnologija; Projektuju i implementiraju skalabilne distribuirane sisteme sa intenzivnim podacima.
SE565 Upravljanje projektom razvoja softvera
Razvoj softvera velikog obima zahteva sposobnost upravljanja resursima (ljudskim i računarskim) kroz kontrolu procesa razvoja. Ovaj predmet je orijentisan na širinu, osmišljen da pomogne tehnički obučenim softverskim inženjerima da steknu znanja i veštine, neophodne za vođenje projektnog tima, razumeju odnos razvoja softvera i celokupnog projektnog inženjeringa, procene vreme i troškove i razumeju softverski proces. Priroda razvoja softvera je dovoljno jedinstvena da zahteva specijalizovane tehnike upravljanja, posebno u oblastima procene i zakazivanja. Specifičnost ovog predmeta je namera da se pored upravljanja projektima koji se razviju klasičnim metodima, tj. upravljani planom, obuhvati i upravljanje projektima koji se razvijaju agilnim metodima. Po završetku nastave na predmetu, studenti će moći da: Analiziraju elemente softverskog projekta da bi izvukli sveobuhvatne ciljeve projekta; Koriste inherentne i izvedene stavke izvučene iz artefakata projekta za kreiranje efektivnih planova projekta; Steknu veštinu primene različitih tehnika upravljanja projektima u kontekstu softverskog projekta.
OM545 Preduzetništvo i inovacije
Stvaranje novih preduzeća, osvajanje novih tržišta, povećanje organizacione efektivnosti dešavaju se kroz inovacije, transformaciju procesa – ili oboje. Nove tehnologije, procesi, konkurencija i globalizacija primoravaju preduzetnike i postojeće firme da se distanciraju od poznatog i neguju inovacije i agilnost. Ovaj predmet ispituje uspešne strategije, poslovne modele, okvire, finansiranje, barijere i rizike za uvođenje inovativnih proizvoda i usluga. Teme uključuju inovacije poslovnog modela, strateško liderstvo, inovacije usmerene na ljude i na dizajn, znanje i upravljanje promenama. Po završetku nastave na predmetu, studenti će moći da: Razviju veštine i uvide za procenu, artikulisanje, usavršavanje i predstavljanje novog proizvoda ili usluge, ili kao početni posao ili kao nova inicijativa u okviru postojeće firme, primene znanje koje je neophodna za primenu nove tehnologije na tržištu.
SE585 Projekat razvoja softvera
Cilj ovog predmeta je da omogući studentu da razvije softver u skladu projektnom zadatkom, koji je usaglašen sa predmetima koje je student slušao u prvom semestru. Na ovaj način, student treba da praktično primeni stečena znanja sa razvojem softvera. Moguće je da se projektni zadatak usaglasi i sa završnim radom, a i radom tokom stručne prakse. U tom slučaju, treba da se uzme u obzir projektni zadatak, kojim se definišu ciljevi i opseg projekta razvoja softvera. Po završetku nastave na predmetu, student će moći da pokaže da je osposobljen da razvije softverski sistem u skladu sa dobijenim projektnim zadatkom.
SE590 Stručna praksa
Cilj stručne prakse je da studente pripremi za samostalni istraživački i stručni rad u prepoznavanju i rešavanju konkretnih zadataka iz oblasti studijskog programa, u realnim uslovima prakse i/ili u istraživačkim laboratorijama i centrima. Programski zadaci su orjentisani na uključenje studenata u projekte različitih vrsta, obima i namena, u njihovoj početnoj, razvojnoj ili završnoj fazi. Kroz sagledavanje radne sredine i konkretnih radnih aktivnosti, student treba da stekne nova znanja, sigurnost u radu i mogućnost integrisanja stečenih znanja i veština kroz prethodni studij u obimu od 90 sati. Nakon obavljene stučne prakse, student će steći iskustavo i ovladati veštinama u korišćenju, produbljivanju i obogaćivanju stečenih teorijskih i praktičnih znanja, radi prepoznavanja i rešavanja konkretnih pitanja i zadataka, koji se pojavljuju u realnom sistemu.
ISTAKNITE SE MEĐU KONKURENCIJOM I NAPRAVITE SLEDEĆI KORAK U VAŠOJ KARIJERI!
CENA ŠKOLARINA ZA DRŽAVLJANE R.SRBIJE I BIVŠIH SFRJ REPUBLIKA
| STUDIJSKI PROGRAM | ŠKOLARINA | |||||
|---|---|---|---|---|---|---|
| FAKULTET INFORMACIONIH TEHNOLOGIJA | ||||||
| Informacione tehnologije i sistemi | 2.990 € | |||||
| Inteligentni i napredni informacioni sistemi | 2.990 € | |||||
| FAKULTET ZA MENADŽMENT | ||||||
| Digitalni biznis | 2.490 € | |||||
| FAKULTET DIGITALNIH UMETNOSTI | ||||||
| Vizuelne komunikacije | 3.690 € | |||||
*Školarinu je moguće plaćati u više mesečnih rata.