Ovaj repozitorijum predstavlja samostalni praktični seminarski rad izrađen za potrebe kursa Verifikacija softvera na master studijama Matematičkog fakulteta u Beogradu. Samostalni praktični seminarski rad podrazumeva primenu alata za statičku i dinamičku verifikaciju softvera na nekom od studentskih projekata. 
Projekat je urađen za potrebe kursa Programske paradigme. 
Projekat je napisan u programskom jeziku C++ i mogao bi se svrstati pod funkcionalnu i generičku programsku paradigmu. 
Osnovna ideja iza samog projekta jeste pokušaj za definisanjem generičkog tipa "compound_unit" (složena jedinica) koji bi bio korišćen za reprezentovanje različitih mernih jedinica. 
Na primer: compound_unit<meter<1>, second<-2>> bi predstavljalo m/s^2 (mernu jedinicu za ubrzanje). 
Ukoliko bismo pomnožili različite veličine, na primer: 32m/s^2 * 5s 
...trebalo bi da dobijemo m/s, odnosno <meter<1>, second<-1>>. 
Napomena: Za prevođenje projekta neophodno je koristiti verziju 17 programskog jezika C++. Jedna od komandi kojom bismo to mogli da uradimo je sledeća:
g++ -std=c++17 demo.cpp -o test
- gcov lcov
 - QtTest
 - Valgrind - massif
 - Valgrind - memcheck
 - Valgrind - callgrind
 - Perf
 
U projektu nisu pronađeni veći propusti. Projekat je po obimu mali. Implementirano je dosta funkcionalnosti u .hpp fajlovima, ali je mali broj njih testiran u demo.cpp fajlu u kome se nalazi main funkcija. Trebalo bi napomenuti da je ideja Compound unit projekta bila da se u toku prevođenja projekta (eng. in compile time) konstruišu sve merne jedinice, a da se potom u toku izvršavanja eventualno ispišu neke njihove osobine. S toga nas ne iznađuju izveštaji alata memcheck i massif koji kažu da je hip memorija mali broj puta alocirana i to pri samom kraju izvršavanja programa.
Petar Tešić 1064/2022 5I