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

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

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

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

Значај добре софтверске архитектуре. Основни принципи квалитетне софтверске архитектуре. Улога софтверског архитекте у развоју софтвера. Дизајн софтверске архитектуре коришћењем UML-а. Процес дизајнирања софтверске архитектуре. Преглед најпознатијих пројектних образаца архитектуре софтвера - слојевити, структурни, презентациони, сервисни, хибридни. Анализа студије случаја за сваки пројектни образац. Критеријуми за избор одговарајућег образца. Дизајн слојевите софтверске архитектуре и избор софверских компоненти у сваком слоју. Дизај сервисно-оријентисане архитектуре за слабо повезаним сервисима.

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

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