Увод у софтверско инжењерство

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

Циљ је да студенти разумеју и савладају методе и технике професионалног развоја софтвера, што укључује рад на следећим целинама: софтверски процеси, агилни развој софтвера, инжењеринг захтева, моделирање система, дизајн архитектуре софтвера, дизајн и примена софтвера, тестирање и еволуција софтвера. Студент је стекао теоријска, методолошка и практична знања о развоју софтверског система, примењујући одређене софтверске технологије, које се примењују коришћењем савремених техника, модела и процеса: Студенти разумеју и примењују принципе и правила дизајна информационих система; Студент разуме и примењује принципе добре праксе у инжењерству софтвера; Студент разуме и користи UML језик за описивање и документовање софтверског пројекта; Студент разуме и зна да користи технике пројектовања софтверске архитектуре информационог система; Студент је оспособљен да примени технике валидације, верификације и тестирања софтвера, итд.; Познавање и разумевање агилних метода развоја софтвера; Познавање методологија и техника за управљање пројектима за развој софтвера.

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

Појам софтверског инжењерства. Модели процеса и животног циклуса. Алати и технике за моделовање процеса. Моделовање у пракси. Планирање и управљање пројектом. Праћење прогреса. Оцењивање потребног напора и ризика у пројекту. План пројекта. Прикупљање корисничких захтева. Врсте захтева и њихове карактеристике. Валидација и методе мерења током процеса. Дизајнирање система. Декомпозиција и модуларност. Архитектонски стилови и стратегије. Карактеристике доброг дизајна. Технике побољшања дизајна. Евалуација, валидација и документација. Имплементација програма. Документација. Тестирање програма. Грешке и дефекти у софтверу. Тест план. Аутоматизација тестирања. Тестирање система. Функционално тестирање. Тестирање перформанси. Читљивост, расположивост и одрживост. Тестирање инсталације. Тестирања критичних система. Испорука система. Документација и обука крајњег корисника. Одржавање система. Измене и њихово праћење. Метрика у одржавању система. Евалуација и побољшање производа, процеса и ресурса.

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

Увод у UML језик. Детаљни приказ UML класног дијаграма, обнављање објектног моделовања и практична примена PowerDesigner алата на студије случаја: Управљање инсулин пумпом, MHC-PMS систем и удаљене метеоролошке станице. Моделовање структуре података на концептуалном и физичком нивоу. За сваки од ER (Entity-relation) нотација приказан је пример. Приказ основних карактертистика сваког модела употребом Power Designer CASE алата. Израда UML дијаграма случајева коришћења у сврху прикупљања и моделовања захтева корисника. Креирање рачуна у банци: Пример генерисања кода за систем банке. Студија случаја - Ресторан: Пример генерисања кода из модела - систем RMOS.