Циљ предмета
Упознавање студената са животним циклусом у развоју софтверског производа и различитим методологијама, стандардима и алатима који подржавају животни циклус софтверског производа у целини или у некој од његових фаза.
Исход предмета
Студент је способан да ради у тиму и да развије сложену десктоп апликацију која користи фајлове са структурираним подацима. Упознат је са животним циклусом и различитим методологијама за развој софтвера, као и стандардима и алатима који их подржавају.
Садржај предмета
Теоријска настава
Дијаграми класа, композиције, агрегације, дијаграм пакета. Интерфејси и модули. Структурирани формати података. Серијализација и десеријализација објеката у структурирани формат. Дизајн шаблони за креирање објеката. Композиција објеката и класа према структурним пројектним обрасцима. Моделовање софтвера и употреба компоненти. Шаблони софтверске арихтектуре. Основни принципи тимског развоја софтвера. UML дијаграм случајева коришћења. Функционални захтеви софтвера. UML дијаграм секвенци. Дизајн шаблони за дефинисање понашање софтвера. Животни циклус софтверског производа. Фазе животног циклуса. Значај примене методологија за развој софтвера, историјат развоја методологија. Модели развоја софтвера: модели базирани на водопаду, итеративни и инкрементални модели, Бемов спирални модел, модели базирани на прототиповима. Агилне методологије. Аутоматизовани развој софтвера. Савремени алати за планирање, пројектовање, конструкцију и документовање. Алати за подршку тимског рада и праћења напретка софтверског пројекта.
Практична настава
Алати за дизајн и развој софтвера. Окружења за развој софтвера. Алати за прављење извештаја. Системи за контролу верзија. Алати за сарадњу чланова развојног тима. Алати за документовање софтвера. Алати за тестирање софтвера. Алати за прављење build-ова. Алати за континуалну интеграцију софтвера.