Предмет: Увод у софтверско инжењерство
(17 -
SE0011) Основне информације
Матичне организационе јединице предмета
Програм предмета
Програм се примењује од 29.10.2012.. Оспособити студенте за примену савремених метода, алата и најбоље праксе у процесу инжењерског развоја софтвера. Омогућити јасну диференцијацију између програмирања и софтверског инжењерства и улоге модела животног циклуса софтвера у процесу инжењерства софтверских производа.
Оспособити студенте за избор модела животног циклуса софтвера који најбоље одговара природи домена проблема и карактеристикама програмских производа.
Подићи ниво свести о улози захтева, њихове спецификације (модела захтева) и описа интеракције корисника са развијаним софтверским производом (функционални модел) на архитектуру и принципе развоја интерактивних програмских производа. Након успешно завршеног курса студент је у стању да: користи модерне технике и алате у развоју софтвера (интегрисана окружења, едиторе, компајлере, дебагере и др.), успешно сарађује на развоју софтвера у оквиру вишечланог тима, користи алате за колаборацију, системе за контролу верзија и системе за праћење захтева за променама, пише јединичне, интеграционе тестове и тестове прихватања, разуме предности развоја софтвера управљаног тестирањем, разуме и користи основне методошке приступе у развоју софтвера, пише документацију и користи алате за писање документације за софтвер који развија. Теоријски део: Процеси и методологије развоја софтвера; Модели животног циклуса софтвера; Упоредна анализа традиционалног схватања процеса развоја софтвера и агилне методологије. Инжењерство софтвера као професија. Преломне тачке у историји развоја дисциплине софтверског инжењерства. Корпус знања у софтверском инжењерству (SWEBOK - Software Engineering Body of Knowledge). Етички кодекс инжењерства софтвера (Software Engineering Code of Etics).Софтверски производ и процес његове израде.
Преглед интегрисаних окружења за развој; предности у односу на класичне едиторе кода; ефикасна употреба интегрисаних окружења; навигација над изворним кодом; дефинисање динамичких шаблона за кодирање. Технике откривања и уклањања грешака; дебаговање. Системи за контролу верзија (Version Control System – VCS); архитектуре; алати; subversion – употреба, управљање верзијама.
Основни појмови тестирање; развој софтвера вођен тестирањем; јединично тестирање; интеграционо тестирање; тест прихватања.
Развој софтвера вођен понашањем; писање сценарија; писање тестова прихватања. Писање документације; документација елемената изворног кода; техничка документација; корисничко упутство; алати за писање и генерисање документације. Алати за управљање изградном и инсталацијом.
Практичан део: инсталација, подешавање и употреба Eclipse интегрисаног окружења; подешавање шаблона за кодирања елемената изворног кода; техничка документација; корисничко упутство; алати за писање и генерисање документације. Алати за управљање изградном и инсталацијом. Виртуална окружења у Java-у. Практичан део: инсталација, подешавање и употреба Eclipse интегрисаног окружења; подешавање шаблона за кодирање у Java-у; дебаговање Java програма. Инсталација, подешавање и употреба клијената за subversion VCS; Subversive. Тестирање Јава програма (JUnit, doctest). Предавања; Рачунарске вежбе; Консултације. Пројекат. Континуално праћење употребе система за контролу верзија, система за управљање пројекта, оквира за тестирање и оквира за писање документације кроз пројектни задатак. У склопу предмета студенти подељени у тимове од по два члана (парови) реализују пројекат интерактивне апликације која омогучава визуализацију и разумевање структура података и основних операција над структурама података (алгоритми). Методолошки приступ заснива се на изради документа визије модела захтева и функционалног модела развијаног софтверског производа. Спецификацијом вођен развој омогућава каснију верификацију и валидацију програмског производа у односу на његову спецификацију.
|