Програм се примењује од 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).
Предавања; Рачунарске вежбе; Консултације. Пројекат. Континуално праћење употребе система за контролу верзија, система за управљање пројекта, оквира за тестирање и оквира за писање документације кроз пројектни задатак. У склопу предмета студенти подељени у тимове од по два члана (парови) реализују пројекат интерактивне апликације која омогучава визуализацију и разумевање структура података и основних операција над структурама података (алгоритми). Методолошки приступ заснива се на изради документа визије модела захтева и функционалног модела развијаног софтверског производа. Спецификацијом вођен развој омогућава каснију верификацију и валидацију програмског производа у односу на његову спецификацију.
Аутори | Назив | Година | Издавач | Језик |
---|
Перишић, Б. | Основи софтверског инжењерства | 2016 | Факултет техничких наука, Нови Сад | Српски језик |
Bourque, P., Dupuis; R., Abran, A., Moore, J. W. | Guide to the Software Engineering Body of Knowledge | 2005 | Sams Publishing | Енглески |
Pfleeger, S.L. | Software Engineering : Theory and Practice | 2001 | Prentice-Hall, New York | Енглески |
Robert C. Martin | Clean Code A Handbook of Agile Software Craftmanship | 2009 | Prentica Hall | Енглески |
Pierre Bourque, Richard E. (Dick) Fairley | Guide to the Software Engineering Body of Knowledge Version 3.0 SWEBOK V.3.0 | 2014 | IEEE Computer Society | Енглески |
James W. Moore | The Road Map to Software Engineering: A Standards-Based Guide | 2006 | Wiley-IEEE Computer Society Press | Енглески |
Pressman, R. S., Maxim, B. R. | Software Engineering: A Practitioners Approach (8th edition) | 2014 | McGraw-Hill | Енглески |
Предметна активност | Предиспитна | Обавезна | Број поена |
---|
Праћење активности при реализацији пројеката | да | да | 10.00 |
Предметни пројекат | да | да | 30.00 |
Писмени део испита - комбиновани задаци и теорија | не | да | 50.00 |
Одбрана пројекта | да | да | 10.00 |
| Име и презиме | Вид наставе |
---|
| | Предавања |
| | Предавања |
| | Рачунарске вежбе |
| | Рачунарске вежбе |
| | Рачунарске вежбе |
| | Рачунарске вежбе |
| | Рачунарске вежбе |
| | Рачунарске вежбе |