Konstrukcija softvera

Cilj i ishod predmeta

Osposobiti studente za primenu preporučene prakse, standarda, metoda, tehnika i alata u konstrukciji softvera. Studenti poseduju praktična znanja i veštine za profesionalnu konstrukciju softvera, koja je zasnovana na standardima i dobroj praksi u razvoju softverskih procesa i softverskih proizvoda.

Teorijska nastava

Osnove konstrukcije softvera. Minimiziranje kompleksnosti. Predviđanje promena. Konstruisanje za lakšu verifikaciju. Standardi u konstrukciji (programski jezici, standardi za format i sadržaje dokumenta, platforme, API standardi, alati). Upotreba spoljašnjih standarda. Upotreba unutrašnjih standarda. Upravljenje konstrukcijom. Konstrukcioni modeli. Konstrukciono planiranje. Konstrukciono merenje. Konstrukcioni dizajn. Konstrukcioni jezici (konfiguracioni jezik, jezici osnovnog alata, programski jezici, lingvističke notacije, formalne notacije, vizuelne notacije). Kodovanje. Tehnike za pravljenje razumljivog izvornog koda, upotreba imena i izgled izvornog koda, upotreba klasa, enumeracioni tipovi, promenljive, imenovane konstante i drugi slični entiteti, korišćenje kontrolnih struktura, obrada grešaka ili izuzetaka, sprečavanje probijanja zašite na nivou koda (prepunjenje bafera,  prekoračenje indeksa niza, itd.), korišćenje resursa upotrebom ekskluzivnog pristupa i disciplina pristupanja deljenim resursima. Organizacija izvornog koda (ulazne naredbe, rutine, klase, paketi i druge strukture), dekompozicija i podešavanje koda. Testiranje konstrukcije. Ponovno korišćenje (izbor adekvatnih programskih jedinica, test procedura ili test podataka). Kvalitet konstrukcije (jedinično testiranje,  integraciono testiranje, razvoj tipa “odmah testiraj”). Strukturiranje koda, debagovanje, statička analiza. Rezenzija i revizija koda (IEEE 1028). Integracija.

Praktična nastava

Primena standarda CERT za kodovanje sigurnih, bezbednih i pouzdanih softverskih sistema (Embedded C, C, C++, Java). Primena stečenog znanja na rešavanje konkretnih aktuelnih problema u različitim oblastima i aplikacionim domenima.

1 thought on “Konstrukcija softvera”

Comments are closed.