Osnovne informacije o programu

  • Trajanje studija: 1 godina
  • Broj ESPB: 60 ESPB
  • Zvanje: Master inženjer softvera
  • Polje: Tehničko-tehnološke nauke
  • Oblast: Softversko inženjerstvo
  • Oblici studiranja: onlajn, preko Interneta (e-učenje)

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.

Kratak opis svih predmeta

SE440 Razvoj velikih softverskih sistema
Ovaj predmet se bavi teorijom i praksom velikih softverskih sistema, njihovim dizajnom, razvojem, i razmeštanjem. Upravljanje projektima, napredni UML, reverzibilno inženjerstvo, inspekcija softverskih zahteva, verifikacija i validacija, softverska arhitektura, modelovanje i analiza performansi ovakvih sistema. Takodje, niz primera velikih softverskih sistema, i izgradnja, refaktorisanje, koncepti i tehnike koje se koriste kod ovakvih sistema. Cilj je da se student familijarizuje sa velikim softverskim sistemima i metodama i alatima i tehnikama rešavanja ovih sistema. Predvidjen je projekt i seminarski rad.
SE436 Ocenjivanje i merenje softvera
Ovladavanje osnovim i naprednim tehnikama i principima merenja u softverskom inženjerstvu. Poznavanje primene softverskih merenja. Ovladavanje primenom softverskih merenja pri donošenju odluka na projektu. Osposobljavanje za planiranje merenja u cilju unaprđenja kvalitetom softvera na projektu i u organizaciji. Kurs predstavlja pregled i detaljnu razradu najvažnijih tema vezanih za organizaciju procesa ocenjivanja i merenja softvera (metrika procesa i softverskog proizvoda), osnovne pojmove merenja kvaliteta softvera (broj potencijalnih grešaka, procenat otkrivanja i otklanjanja grešaka i dr.), merenja karakteristika performansi procesa razvoja softvera kroz odabir i prikupljanje softverskih metrika. Izučavaju se osnovne tehnike merenja i predviđanja kvaliteta softvera (modeli estimacije), ocenjivanje i merenje performansi članova projektnog tima.Takođe, izučavaju se i aspekti mernog okvira (izbor ciljeva softverskog projekta, standardi merenja i ocenjivanja veličine i kvaliteta softverskog proizvoda, nivo zrelosti kompanije – CMMi metodologija i td.), postupci prikupljanja atributa objekata merenja, njihovo čuvanje, analiza i obrada, izveštavanje tokom ciklusa razvoja softvera i drugo.
SE445 Agilne metode razvoja softvera
U okviru ovog predmeta predvidjeno je upoznavanje sa grupom razvojnih metoda softvera baziranih na iterativnom i inkrementalnom razvoju, gde softverski zahtevi i rešenja evoluiraju kroz kolaboraciju nekoliko autonomnih podtimova. Ovde se izučava adaptivno planiranje, evolutivni razvoj i isporuka, fiksirani rokovi, i brzi i fleksibilni odgovori na promene u toku procesa razvoja softvera. Takodje, upoznavanje sa Agilnim Manifestom, i komunikacionim tehnikama koje se koriste kod agilnih metoda razvoja softvera. Cilj predmeta je da se master student osposobi za primenu agilnih tehnika razvoja softvera, i da to demonstrira na jednom projektu. Takodje, student treba da uradi seminarski rad koji je teorijske prirode i podrazumeva pretragu po Internetu.
CS385 Razvoj softvera za ugrađene sisteme
Osnovni cilj predmeta je sinteza stečenih znanja iz informatike usmerena na primenu savremenih alata za razvoj aplikacija za rad sa sistemima u realnom vremenu. Prеdmеt оspоsоbljаvа studеntе dа izađu iz okvira i kućišta računara, da rаzviјu јаsnе, kоnciznе i fоrmаlizоvаnе zаhtеvе zа prоširеnjеm pоstојеćеg sistеmа u sklаdu sа rеаlnim pоtrеbаmа kоrisnikа, dа primеnе principе prојеktоvаnjа distribuirаnih sistеmа, dа izvršе аnаlizu i prојеktоvаnjе оbјеktnо-оriјеntisаnih sistеmа, dа primеnе јеdnоstаvnе grаfičke interfejse računara sa merno regulacionim sistemima i ralnim fiim procesima koji su i sami mini ili mikro računarske komponente, sa ugrađenim kompleksnim softverom. Poseban cilj predmeta je osposobljavanje studenta za samostalan rad pri izradi softverskog proizvoda u komunikaciji sa realnim svetom, finim okruženjem i inteligentnim senzorskim sistemima kroz ovladavanje tehnikama kao što su: Konkurentno programiranje, Programiranje uz vremnska ograničenja, Bezbedna i struktuirana upotreba prekida u Rtsistemima, Programiranje i virtuelizacija distribuiranih multi-tasking senzorskih mreža, Projektovanje aplikacija sa distribuiranim podacima u realnom vremenu i dr. Kurs predstavlja pregled i detaljnu razradu najvažnijih tema projektovanja i razvoja softvera računarskih sistema za upravljanje u realnom vremenu. Cilj je da se studentima pruži jedan izbalansiran pogled na teoriju i praksu programiranja sistema u realnom vremenu. Ovaj kurs omogućava studentima da prepoznaju klasifikuju i formulišu zahteve za ovu vrstu računarskih sistema, da izaberu adekvatnu hardversko-softversku arhitekturu, da izaberu odgovarajući operativni sistem i programski jezik, da rešavaju problem komunikacije u realnom vremenu i da simuliraju rad sistema.
SE455 Inteligentni softverski sistemi
Ovaj predmet se bavi teorijom i praksom inteligentnih softverskih sistema. Cilj je da student ovlada inteligentnim softverskim sistemima, i metodama veštačke inteligencije. Student će se familijarizovati sa inteligentnim softverskim sistemima i metodama i alatima i tehnikama veštačke inteligencije. Predviđen je projekat i seminarski rad.
SE591 Stručna praksa
Cilj stručne prakse je da studente pripremi studenata 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 orijentisani 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 steći nova znanja, sigurnost u radu i mogućnost integrisanja stečenih znanja i veština kroz prethodni studij u obimu od 120 sati. Sticanje iskustava i ovladavanje 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.
CS540 Napredni sistemi za e-učenje
Cilj predmeta je da upozna studenta sa teorijskim osnovama e-učenja, kao i sa savremenim tehnologijama koje se primenjuju pri e-učenju. Očekuje se od studenata posle položenog ispita bude spreman da radi na organiѕaciji i pripremi sistema za e-učenje u nekoj organizaciji, da odabere odgovarajuće tehnologije za pripremu nastavnih materijala za e-učenje, da odabere i pšrimeni neki od sistema za e-učenje, da izabere i konfiguriše infrastrukturu za e-učenje i organizuje rad centra za e-učenje. Takođe, student dobija solidnu osnovi istraživanja u oblasti e-učenja.
SE560 Semantičke veb tehnologije
Predmet razmatra tehnologije semantičkog veba koje je preporučio W3C konzorcijum i koje se već primenjuju za razvoj inovativnih višejezične proizvoda i usluga u javnom sektoru, bioinformatici, energetici, transportu, itd. Cilj je upoznati studente sa inovativnim metodama predstavljanja i obrade podataka, alatima za razvoj semantičkih veb aplikacija, kao i trenutno stanje u istraživanju semantičkog veba.
Razumevanje principa semantičkog veba; sposobnost za primenu standardnih W3C rečnika i postojećih alata slobodnog otvorenog koda; cposobnost za projektovanje i razvoj semantičkih veb rešenja (XML/RDF/OWL/SPARQL), kao i samostalni istraživački rad.
SE510 Bezbedno softversko inženjerstvo
Priprema studenta za dalje studije u okviru oblasti bezbednosti aplikacionog softvera, računarskih sistema i mreža kao i kvalifikacija visoko stručnog kadra za probleme projektovanja i revizije sigurnosti sistemskog i aplikacionog softvera. Student će biti u mogućnosti da analizira ranjivost na hekerski napad sistemskog i aplikacionog softvera kao i da dizajnira odbrambene mehanizme istih. Student će takođe biti sposoban da izvrši reviziju bezbednosno opasnih strukturnih i instalacionih defekata velikih softverskih sistema a zatim proizvede dokumenat investicionih preopruka za redizajn i osavremenjavanje sistema aplikativnih modula.
Sadržaj predmeta: Istorijski pregled tehnologije programiranja i softverskog inženjeringa. Pregled postojećih tehnologija i alata. Moderni objektno-orjentisan i objekt-bazirani metodi anlize, dizajna i programiranja. Razrešenje inženjerskog konflikta između produktivnosti razvoja softvera, efikasnosti izvršenja i bezbednosnidž zahteva. UMLsec i bezbednosni životni ciklus softvera. Programska unutrašnja i sistemska spoljašnja rešenja bezbednosnih problema softvera. Tehnologije Java i .NET, virtuelne mačine za izvršnja sofzvera i menadžment poveernja. Sertifikat softvera. Bezbedna distribucija softvera. Bezbednosna revizija. Praktična nastava uključuje demonstraciju softverskih defekata, slabih tačaka u softverskim sistemima, kao i različitih mehanizama provala u softver. Šel programi, ilegalni ulaz u aplikaciju na prednja i zadnja vrata, itd.
SE595 Završni rad
Cilj završnog rada je da da: prikaz usvojenih znanja i veština potrebnih za samostalan rad i rešavanje konkretnih problema u praksi, dokaz osposobljenosti da student u ekspozeu prikaže rad na sažet i zanimljiv način, a tokom odbrane da odbrani svoje argumente i odgovori na pitanja i kritike, stečena znanja tokom studiranja su dobar osnov da student uspešno izradi i odbrani završni rad i da nakon izrade i odbrane završnog rada bude kompetentan za uspešno primenjivanje stečenih znanja na radnom mestu. Student demonstrira da je sposoban da: uz pomoć mentora sprovede istraživanje i prikaže rezultate na način koji je u skladu sa usvojenim normama za prikazivanje rezultata, poveže dobijene rezultate sa dostupnim rezultatima drugih radova, pravilno koristi relevantnu stručnu i naučnu literaturu, pravilno koristi sručne i naučne termine, usmeno obrazlaže rezultate rada i argumentovano odgovara na pitanja u vezi rada.