Модели и методе софтверског инжењерства

Циљ и исход предмета

Упознавање са различитим типовима моделирања софтвера, са њиховим кључним особинама као и са најпознатијим методама које обезбеђују систематичан приступ развоју софтвера. Студент познаје све најзначајније врсте моделирања софтвера и уме како да тумачи тако и да критички сагледа али и да креира софтверске моделе различитих врста. Студент је способан да селектује одговарајућу врсту модела са опис одређеног аспекта софтверског система. Студент је упознат са кључним карактеристикама најпознатијих метода који се користе у саврменом софтверском инжењерству.

Теоријска настава

Принципи моделирања софтвера - моделирање кључних елемената софтвера, обезбеђивање перспективе, омогућавање ефикасне комуникације. Особине софтверских модела - комплетност, конзистентност, коректност. Синтакса, семантика и прагматичност софтверских модела. Метамодели. Предуслови, постуслови и инваријанте. Типови модела - моделирање података, моделирање понашања, структурно моделирање. Анализа софтверских модела. Хеуристичка метода софтверског инжењерства. Формалне методе. Језици за спецификацију софтвера. Прототипске методе. Агилне методе и брз развој софтвера.

Практична настава

Анализа студија случаја коришћење различитих модела и језика спецификације софтвера који су обрађени у оквиру теоретске наставе. Илустрација различитих приступа моделирању софтвера на примерима познатих софтвера. Вежба анлализе модела софтвера - анализа коректности, комплетности, конзистенције, могућности праћења, анализе интеракције (контроле тока). Писање различитих модела за различите аспекте софтверског система - структурни модел, модел података, модел понашања. Дискусија о методама софтверског инжењерства обрађених у оквиру теоријске наставе и приказ студија случаја примене различитих метода у развоју софтвера.