Fakultet organizacionih nauka, Univerzitet u Beogradu

Katedra za elektronsko poslovanje

Кonstrukcija softvera – odabrana poglavlja

STUDIJSKI PROGRAMNAZIV PREDMETANASTAVNIK/NASTAVNICISTATUS PREDMETABROJ ESPB
Informacioni sistemi i tehnologijeKonstrukcija softvera - odabrana poglavljaLazarević D. Saša, Antović D. Ilija Izborni10

Cilj predmeta

Cilj predmeta je upoznati studente sa aktuelnim istraživačkim temama i pravcima u domenu konstrukcije softvera. Takođe, razviti kod studenata razumevanje i sposobnost kritičkog sagledavanja i analize aktulenih modela i jezika konstrukcije softvera. Cilj je, takođe, osposobiti studente za praktično korišćenje jednog programskog jezika za potrebe konstrukcije softvera (kodiranja i jediničnog testiranja softvera) i jednog jezika za programiranje baza podataka (kodiranja i jediničnog testiranja uskladištenih procedura/funkcija). Кonačno, cilj je osposobiti studente za samostalni istraživački rad u izabranoj oblasti konstrukcije softvera.

Ishod predmeta

Studenti su upoznati sa aktuelnim istraživačkim pravcima u domenu konstrukcije softvera.
Studenti su osposobljeni da kritički sagledaju i analiziraju aktulene modele i jezike konstrukcije softvera.
Studenti su osposobljeni za praktično korišćenje modela konstrukcije i jednog programskog jezika za potrebe konstrukcije softvera.
Studenti su spremni za samostalni istaživački rad u ovoj oblasti.

Sadržaj predmeta

Osnove konstrukcije softvera: Minimiziranje kompleksnosti. Anticipiranje promena. Tehnike anticipiranja promena (komunikacione metode, programski jezici, platforme, alati). Verifikacija softvera. Standardi konstrukcije (OMG, IEEE, ISO). Upravljanje konstrukcijom: Modeli konstrukcije (linearni i iterativni). Planovi konstrukcije. Merenja konstrukcije. Praktično razmatranje: Projektovanje konstrukcije. Кonstrukcioni jezici (konfiguracioni jezik, toolkit jezici, programski jezici). Notacije programskih jezika (lingvistička, formalna, vizuelna). Кodiranje (tehnike kreiranja izvornog koda, korišćenje klasa, promenljivih, kontrolnih struktura, obrada izuzetaka, zaštita koda, organizacija izvornog koda, dokumentacija koda). Otkrivanje grešaka. Testiranje konstrukcije (jedinično testiranje koda). Ponovno korišćenje konstrukcija. Кvalitet konstrukcija. Integracija konstrukcija. Primena metoda mašinskog učenja u konstrukciji softvera.
Metodologija istraživanja u domenu konstrukcije softvera. Upoznavanje sa relevantnim istraživačkim pravcima i aktuelnim istraživačkim temama u oblasti konstrukcije softvera kroz sistematičan pregled literature (časopisa, zbornika radova i monografija) u domenu softverskog inženjerstva koja se bavi temama značajnim za konstrukciju softvera. Praktičan istraživački rad i prikaz rezultata u formi rada za naučno-istraživački skup ili časopis.

Metode izvođenja nastave

Predavanja i mentorski rad ili samo mentorski rad, zavisno od broja prijavljenih studenata. Samostalni istraživački rad studenata.

Literatura

  1. I. Sommerville: Software Engineering, 10th ed.,Pearson, 2015.
  2. A. Aleti, B. Buhnova, L. Grunske, A. Koziolek and I. Meedeniya, “Software Architecture Optimization Methods: A Systematic Literature Review,” in IEEE Transactions on Software Engineering, vol. 39, no. 5, pp. 658-683, May 2013, doi:10.1109/TSE.2012.64.
  3. Z. Wan, X. Xia, D. Lo and G. C. Murphy, “How does Machine Learning Change Software Development Practices?,” in IEEE Transactions on Software Engineering, vol. 47, no. 9, pp. 1857-1871, 1 Sept. 2021, doi: 10.1109/TSE.2019.2937083.
  4. C. Pahl and S. Azimi, “Constructing Dependable Data-Driven Software With Machine Learning,” in IEEE Software, vol. 38, no. 6, pp. 88-97, Nov.-Dec. 2021, doi: 10.1109/MS.2021.3067940.
  5. C. Le Goues, M. Pradel, A. Roychoudhury and S. Chandra, “Automatic Program Repair,” in IEEE Software, vol. 38, no. 4, pp. 22-27, July-Aug. 2021, doi: 10.1109/MS.2021.3072577.
  6. E. Horowitz et al., Computer Algorithms, 2nd ed., Silicon Press, 2007.
  7. S. McConnell, Code Complete, 2nd ed., Microsoft Press, 2004.
  8. S.J. Mellor and M.J. Balcer, Executable UML: A Foundation for Model-Driven Architecture, 1st ed., Addison‑Wesley, 2002.
  9. Chris Fehily, SQL Database Programming, 5th ed., Questing Vole Press, 2020.
  10. Bhuvan Unhelkar, Software Engineering with UML, 1st ed., Auerbach Publications, 2020.