Конструкција софтвера

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

Оспособити студенте за примену препоручене праксе, стандарда, метода, техника и алата у конструкцији софтвера. Студенти поседују практична знања и вештине за професионалну конструкцију софтвера, која је заснована на стандардима и доброј пракси у развоју софтверских процеса и софтверских производа.

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

Основе конструкције софтвера. Минимизирање комплексности. Предвиђање промена. Конструисање за лакшу верификацију. Стандарди у конструкцији (програмски језици, стандарди за формат и садржаје документа, платформе, API стандарди, алати). Употреба спољашњих стандарда. Употреба унутрашњих стандарда. Управљење конструкцијом. Конструкциони модели. Конструкционо планирање. Конструкционо мерење. Конструкциони дизајн. Конструкциони језици (конфигурациони језик, језици основног алата, програмски језици, лингвистичке нотације, формалне нотације, визуелне нотације). Кодовање. Технике за прављење разумљивог изворног кода, употреба имена и изглед изворног кода, употреба класа, енумерациони типови, променљиве, именоване константе и други слични ентитети, коришћење контролних структура, обрада грешака или изузетака, спречавање пробијања зашите на нивоу кода (препуњење бафера,  прекорачење индекса низа, итд.), коришћење ресурса употребом ексклузивног приступа и дисциплина приступања дељеним ресурсима. Организација изворног кода (улазне наредбе, рутине, класе, пакети и друге структуре), декомпозиција и подешавање кода. Тестирање конструкције. Поновно коришћење (избор адекватних програмских јединица, тест процедура или тест података). Квалитет конструкције (јединично тестирање,  интеграционо тестирање, развој типа “одмах тестирај”). Структурирање кода, дебаговање, статичка анализа. Резензија и ревизија кода (IEEE 1028). Интеграција.

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

Примена стандарда CERT за кодовање сигурних, безбедних и поузданих софтверских система (Embedded C, C, C++, Java). Примена стеченог знања на решавање конкретних актуелних проблема у различитим областима и апликационим доменима.

1 thought on “Конструкција софтвера”

Comments are closed.