Skip to content

MATF-Software-Verification/2026_Analysis_12-file-manager

Repository files navigation

2026_Analysis_12-file-manager

U ovom direktorijumu nalazi se analiza softverskog projekta 12-file-manager izrađena u okviru samostalnog projekta iz kursa Verifikacija softvera na master studijama Matematičkog fakulteta Univerziteta u Beogradu.

Autor

Ime i prezime: Lazar Dačković

Broj indeksa: 1037/25

Opis projekta

12-file-manager je aplikacija implementirana u programskom jeziku C++ uz korišćenje Qt framework-a. Sadrži dva potprozora koji listaju sadržaje direktorijuma. Možemo da se krećemo kroz direktorijume i da manipulišemo fajlovima. Da ih kopiramo, premeštamo, preimenujemo, menjamo prava pristupa, kreiramo foldere, zipujemo i slično.

Originalan projekat dostupan je na adresi: https://gitlab.com/matf-bg-ac-rs/course-rs/projects-2022-2023/12-file-manager

Grana projekta na kojoj je izvršena analiza: main.

Heš kod commit-a: f4d888816021aca862ca522b312e8589cd147584

Priprema projekta

Pre pokretanja analiza, potrebno je da se projekat ispravno klonira.

Pa da se klonira sa submodulima git submodule update --init --recursive

Zatim je potrebno instalirati alat bear, koji nam je potreban zbog fajla compile_commands.json koji koristi alat Clang-Tidy.

  • sudo apt install bear

Nakon toga mozemo pokrenuti skriptu build.sh koji ce nam izgenerisati izvrsni fajl FileManager.

Alati

  • Clang-Tidy

  • Cppcheck

  • Valgrind

  • Heaptrack

  • CLazy

  • Flawfinder

    Clang-Tidy

    • sudo apt install clang-tools
    • cd Clang-Tidy
    • chmod +x clang_tidy_script.sh
    • ./clang_tidy_script.sh

    CppCheck

    • sudo apt install cppcheck
    • cd CppCheck
    • chmod +x cppcheck.sh
    • ./cppcheck.sh

    Valgrind

    • sudo apt install valgrind
    • cd Valgrind
    • chmod +x valgrind.sh
    • ./valgrind.sh

    Heaptrack

    • sudo apt isntall heaptrack
    • sudo apt install heaptrack-gui
    • cd Heaptrack
    • chmod +x heaptrack.sh
    • ./heaptrack.sh

    Clazy

    • sudo apt install clazy
    • cd CLazy
    • chmod +x Clazy.sh
    • ./CLazy.sh

    Flawfinder

    • sudo apr instal flawfinder
    • cd Flawfinder
    • chmod +x flawfinder.sh
    • ./flawfinder.sh

    Zaklučak

    Primena različitih alata za analizu koda omogućila je sveobuhvatnu proveru stabilnosti i efikasnosti aplikacije. Statičkom analizom pomoću Cppcheck, Clang-Tidy i Clazy detektovani su zastareli, neefikasni i manje bezbedni koncepti i mogućnosti optimizacije koda. Često neprosledjivanje argumenata preko reference, što dovodi do bespotrebnog kopiranja velikih objekata

    Dinamičkom analizom pomoću alata Valgrind i Heaptrack su otkriveni problemi sa curenjem memorije, uglavnom je izostavljano delete za objekte koji su kreirani na hipu.

    Detaljniji izveštaj sa preporukama za izmenu koda može se pronaći u fajlu ProjectAnalysisReport.pdf

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors