Софтверско инжењерство - 2013/14 1. Општи појмови Шта је то софтверско инжењерство? Које карактеристике софтвера компликују процес његовог развоја? Типови софверских апликација. Основни принципи софтерског инжењерства. Софтверско инжењерство засновано на вебу. Етика и софтверско инжењерство. 2. Софтверски процес Опис софтверског процеса. Софтверски процес вођен планом и агилни софтверски процес. Модели софтверских процеса. Модел водопада. Модел инкременталног развоја. Софтверско инжењерство орјентисано према поновном коришћењу. Активности у софтерском процесу. Спецификација софтвера. Дизајн и имплементација софтвера. Валидација и верификација софтвера. Еволуција софтвера. Усаглашавање са променама код софтверског процеса. Софтверски протптипови. Инкрементална испорука. Спирални модел софтверског процеса. Рационални унифицирани процес. 3. Агилни развој софтвера Разлози за развој агилних метода. Агилни манифест. Принципи агилног манифеста. Предности агилних метода. Проблеми са агилним методама. Развој вођен планом и агилни развој. Агилни развој - техничка, људска и организациона питања. Екстремно програмирање. Праксе екстремног програмирања. Рефакторизација. Тестирање код екстремног програмирања. Начин софтверског развоја „тестирај-прво“. Укључење клијената. Аутоматизација тестова. Програмирање у паровима. Scrum. Скалирање агилних метода. Агилна методологија и развој великих система. 4. Софтверски захтеви Инжењеринг захтева. Шта су захтеви? Типови захтева. Функционални захтеви. Нефункционални ѕахтеви. Захтеви и општи циљеви. Доменски захтеви. Документ са софтверским захтевима. Агилни методи и захтеви. Корисници докумената са захтевима. Структура документа са захтевима. Спецификација захтева Захтеви и дизајн. Спецификација захтева природним језиком. Структурисана спецификација захтева. Спецификација захтева заснована на формама. Табеларна спецификација захтева. Инжењерски процес за специфицирање захтева. Утврђивање и анализа захтева. Проблеми код анализе захтева. Активности код процеса за специфицирање захтева. Откривање захтева. Интервјуисање. Сценарији. Случајеви коришћења. Етнографија и специфицирање захтева. Валидација захтева. Поновно испитивање захтева. Управљање захтевима. Еволуција захтева. 5. Моделирање система Појам модела система. Системске перспективе Типови UML дијаграма. Коришћење графичких модела. Контекстни модели. Границе система. Перспектива процеса. Модели интеракције. Моделирање случајева коришења. Секвенцни дијаграми. Структурни модели. Дијаграми класа. Генерализација. Модели агрегације објеката. Асоцијација и агрегација. Модели понашања. Моделирање вођено подацима. Моделирање вођено догађајима. Модели коначног аутомата.