Дизајн софтвера

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

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

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

Напредни концепти UML дијаграма класа – веза композиције и агрегација, дијаграм пакета. Структурирани формати података – JSON и XML. Серијализација и десеријализација објеката у структурирани формат. Дизајн патерни за креирање објеката – Factory, Prototype, Builder. Композиција објеката и класа према структурним пројектним образцима – Adapter, Bridge, Composite, Decorator, Facade. Сваки дизајн патерн објашњава се на репрезентативном примеру који укључује UML дијаграм класа и имплементацију у програмском језику Java. Основни принципи тимског развоја софтвера. UML дијаграм случајева коришћења. Писање спецификације функционалних захтева софтвера. UML дијаграм секвенци. Дизајн патерни за дефинисање понашање софтвера – Iterator Pattern, Command Pattern, Mediator Pattern, Observer Pattern. Објашњења дизајн патерна који описују понашање садрже дијаграм класа, дијаграм секвенци и приказ имплементације у програмском језику Java. Приказ различитих примера практичне примене дизајн патерна. Анализа студије случаја имплементације софтвера на основу спецификације. UML дијаграм компоненти. Модули у програмском језику Java (од верзије 9). Приказ модуларне апликације преко UML дијаграма компоненти.

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

Илустрација коришћења савременог развојног окружења. Основни концепти система за управљање верзијама – git. Приказ основних функција git-а. Тимски рад коришћењем git-а. Коришћење готових библиотека у пројектима. Вежба имплементација серијализације објеката у XML и JSON формат. Вежба учитавања података из XML и JSON формата у одговарајући објектни модел. Вежба имплементације одговарајућег дизајн патерна у програмском језику Java за дати опис задатка. Вежба имплементације структурних пројектних образаца. Вежба имплементације веће десктоп апликације у тиму на основу спецификације функционалних захтева уз коришћење одговарајућих дизајн патерна. Имплементација дизајн патерна за дефинисање понашања софтвера. Имплементација модула у програмском језику Java.

3021-dizajn-softvera

sbobet88 slot agb99 situs slot slot777 AMANAHTOTO toto AMANAHTOTO AMANAHTOTO slot SLOT GACOR AMANAHTOTO toto slot88 ASIA200 ASIA200 ASIA200 bayijudy.com situs resmi bayitoto slot gacor popotogel login situs slot eropa99 hoki99 roma77 babe138 roma77 roma77 hoki99