Alati i metode softverskog inženjerstva

O predmetu

Predmet Alati i metode softverskog inženjerstva je obavezan predmet na master programu Softversko inženjerstvo i računarske nauke, ali samo u okviru modula Softversko inženjerstvo. Predmet je veoma praktično orijentisan. Pokriva razne tehnike programiranja, razvoja aplikacija i rada sa konkretnim softverskim alatima.

Zbog izuzetno velike dinamike razvoja oblasti softverskog inženjerstva, teme koje pokriva predmet Alati i metode softverskog inženjerstva menjaju se iz godine u godinu. Nastavu izvodi više nastavnika, a zbog aktuelnosti pojedinih tema za softversku industriju nastavu vezanu za pojedine teme izvode stručnjaci iz prakse.

Preporučena literatura se takođe menja iz godine u godinu, ali je uvek dostupna na Internetu.

Ispit se polaže samostalnom ili grupnom izradom neke softverske aplikacije u dogovoru sa predmetnim nastavnicima.

Sadržaj predmeta u školskoj 2014/15 godini

  • Clojure i funkcionalno programiranje.
    • Osnovni koncepti
    • Funkcije viseg reda
    • Interaktivno programiranje u REPL-u
    • Software transaction memory
    • Asinhrono programiranje
    • Agenti
    • Protokoli
    • Napredni polimorfizam funkcija
    • Rad sa bazama podataka
    • Testiranje
    • ClojureScript
    • Programiranje paralelnih numerickih algoritama na grafickim karticama u Clojure-u i OpenCL-u (opciono; samo ako bude bilo zainteresovanih studenata koji poseduju potreban hardver).
  • Java
    • Konvencije
    • Često korišćene tehnike obrade izuzetaka
    • Korišćenje iteratora umesto standardnih petlji
    • Rad sa bibliotekom/paketom java.nio.file
    • Lambda izrazi
  • Java i UML
  • Refactoring
  • Otvoreni podaci (Open Data)
    • Otvoreni podaci na Web-u
    • Alati za rad sa otvorenim podacima (OpenRefine, R)
  • Git
    • Alati za verzioniranje koda (Version Control System VCS) osnove, principi
    • Nedistribuirani i distribuirani VCS
    • Osnovne komande u Git VCS
    • Rad sa Git VCS-om iz komandne linije
    • Hostovanje Git repozitorijuma na GitHub-u
  • NetBeans Platforma
    • Sistem modula
    • Akcije
    • Sistem prozora
    • Lookup sistem
    • Arhitektura