Ovaj repozitorijum sadrži rezultate praktičnog seminarskog rada u okviru kursa Verifikacija softvera, na master studijama Matematičkog fakulteta u Beogradu. Izrada projekta obuhvata primenu alata za verifikaciju softvera na odabranom projektu i analizu dobijenih rezultata.
Autor: Natalija Filipović 1013/2024
Projekat koji se analizira predstavlja sistem za pronalaženje letova. Sistem pruža mogućnost osnovne pretrage leta na osnovu datuma i kompanije, ali i naprednu pretragu najjeftinijeg leta, najkraćeg leta, kao i izbor letenja sa ili bez presedanja. Projekat je implementiran u programskom jeziku C++ i koristi se putem terminala.
Ovde možete pogledati odabrani projekat.
Analizirana je main
grana zaključno sa commit-om 7e41ace
.
- Pre pokretanja projekta potrebno je izmeniti fajlove:
- Airline-Reservation-System/src/List.h:linija 3:
#include"Vector" zameniti sa #include "Vector.h"
Sledeće fajlove promeniti pre pokretanja jediničnih testova, a nakon pokretanja cppcheck-a:
- Airline-Reservation-System/src/Stack.h:
na kraj funkcije pop dodati return T();
- Airline-Reservation-System/src/Graph.h:
na kraj funkcija getCost i getCostArrayIndex dodati return -1;
- Prevođenje aplikacije:
g++ -o airline_reservation_system Main.cpp
- Pokrenuti dobijeni izvršni fajl:
./airline_reservation_system
Alati korišćeni za analizu koda:
- QtTest - za pisanje i izvršavanje jediničnih testova
- Memcheck - za pronalaženje grešaka u radu sa memorijom prilikom izvršavanja programa
- Cppcheck - statički analizator za detektovanje potencijalnih grešaka i rizičnih konstrukcija
- Clang-format - za formatiranje koda
Rezultati svakog alata mogu se reprodukovati pozicioniranjem u istoimeni direktorijum i pokretanjem skripte. Uputstvo za instalaciju i pokretanje alata na Linux sistemima:
- QtTest:
- instalacija:
sudo apt-get install qtbase5-dev libqt5test5
isudo apt-get install lcov
- pokretanje iz direktorijuma 2024_Analysis_Airline-Reservation-System/unit_tests:
./run_unit_tests_with_coverage
- instalacija:
- Memcheck:
- instalacija:
sudo apt-get install valgrind
- pokretanje iz direktorijuma 2024_Analysis_Airline-Reservation-System/memcheck:
./run_memcheck
- instalacija:
- Cppcheck:
- instalacija:
sudo apt-get install cppcheck
- pokretanje iz direktorijuma 2024_Analysis_Airline-Reservation-System/cppcheck:
./run_cppcheck
- instalacija:
- Clang-format:
- instalacija:
sudo apt-get install clang-format
- pokretanje iz direktorijuma 2024_Analysis_Airline-Reservation-System/clang:
./run_clang_format
- instalacija:
Primenom alata otkrivene su brojne greške i nedopustivi propusti. Nekoliko njih izazvalo je iznenadni prekid izvršavanja, a kod pojedinih alata problem je bio i samo pokretanje. Sve ovo ukazuje da je potrebno detaljno pregledati projekat i izvršiti odgovarajuće izmene u cilju poboljšanja njegove stabilnosti i efikasnosti. Ovim radom pokazana je značajnost alata za verifikaciju softvera, čak i kada program naizgled funkcioniše ispravno. Detaljan izveštaj i zaključci mogu se naći na sledećoj lokaciji.