Softverske komponente

Cilj i ishod predmeta

Upoznavanje sa principima razvoja softvera zasnovanog na komponentama, kao i sa alatima za upravljanje i povezivanje softverskih komponenti, zatim servisno-orijentisanom softverskom arhitekturom i konceptom mikroservisa. Student razume pojam softverske komponente u smislu fiziče i logičke modularnosti, rejuzabilnosti i apstrakcije komponente, razume uloge interfejsa i servisa komponente, probleme zavisnosti od drugih komponenti i poznaje alate za pakovanje i povezivanje softverskih komponenti. Student razume pojam servisno orijentisane softverske arhitekture, poznaje koncepte mikroservisne softverske arhitekture kao alternative monolitnoj arhitekturi.

Teorijska nastava

Ciljevi i prednosti razvoja softvera zasnovanog na komponentama. Pojam softverske komponente. Osnovne karakteristike softverske komponente. Pojam fizičke i logičke modularnosti. Praksa odvajanja specifikacije od implementacije softverske komponente. Poštovanje SOLID principa i primena dizajn paterna u razvoju zasnovanom na komponentama. Dokumentovanje softverske komponente. Pojam bild alata i upravljanje povezanim komponentama. Pregled savremenih bild alata za programske jezike Java i Python. Standardi za razvoj modularnih sistema za Java platformu – OSGi i Jigsaw. Softverske licence i verzije. Servisno orijentisana softverska arhitektura i veb servisi. Tehnologije i standardi za implementaciju veb servisa – SOAP i REST. Pojam mikroservisa i poređenje sa drugim arhitekturama. Integracija mikroservisa i komunikacija između mikroservisa. Mikroservisi i korisnički interfejs, mikroservisi i baze podataka. Koraci u provođenju monolitne u mikroservisnu arhitekturu.

Praktična nastava

Prikaz ilustrativnog primera softverske komponente koja koristi druge komponente i njeno proširenje dodatnim funkcionalnostima. Ilustracija osobine rejuzabilnosti komponente. Rad sa sistemima za upravljanje verzijama. Korišćenje bild alata za Javu – Apache Ant, Apache Maven i Gradle. Kreativna vežba kreiranja komponente sa odvojenom specifikacijom. HTTP protokol i REST arhitektura. Implementacija mikroservisne aplikacije korišćenjem Spring Boot tehnologije. Rad sa bazama podataka u mikroservisnoj arhitekturi uključujući relacione i nerelacione baze. Korišćenje Hiberante ORM alata za perzistenciju podataka u relacionu bazu. Komunikacija između mikroservisa i korišćenje sistema za razmenu poruka.

3067-softverske-komponente