Архитектура софтверских система

Циљ предмета

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

Исход предмета

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

Садржај предмета

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

Појам и улога софтверске архитектуре. Разлика између дизајна софтвера и архитектуре система. Архитектонске одлуке и компромиси. Технички дуг. Архитектонски стилови: слојевита архитектура, модуларни монолит, clean архитектура и хексагонална архитектура. Компоненте и модули софтверског система. Управљање зависностима и раздвајање одговорности. Архитектонски обрасци и њихова примена у сложеним системима. Догађајно оријентисана архитектура. Основе CQRS приступа. Архитектура система са базом података. Утицај архитектуре на перформансе и скалабилност. Архитектура и тестирање софтвера. Тестабилност као архитектонски захтев. Веза архитектуре и CI/CD процеса. Документовање архитектуре софтверских система. UML дијаграми у архитектонском контексту. C4 модел архитектуре. Архитектонске одлуке и њихова документација.

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

Анализа постојећих софтверских система. Пројектовање архитектуре софтверског система на основу задатих захтева. Дефинисање компоненти, модула и њихових међусобних односа. Израда архитектонских дијаграма. Примена архитектонских образаца у практичним примерима. Пројектовање тестабилне архитектуре. Повезивање архитектуре са аутоматизованим тестирањем и CI/CD процесима. Документовање архитектуре софтверског система. Рад на студијама случаја и пројектним задацима.

sbobet88 slot agb99 situs slot slot777 toto 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 abadicash