Skip to content

MATF-Software-Verification/2024_Analysis_Airline-Reservation-System

Repository files navigation

2024_Analysis_Airline-Reservation-System

Informacije o projektu:

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

Informacije o projektu koji se analizira:

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.

Pokretanje projekta:

  1. 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;
  1. Prevođenje aplikacije: g++ -o airline_reservation_system Main.cpp
  2. Pokrenuti dobijeni izvršni fajl: ./airline_reservation_system

Primenjeni alati, instalacija i uputstvo za pokretanje:

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:

  1. QtTest:
    • instalacija: sudo apt-get install qtbase5-dev libqt5test5 i sudo apt-get install lcov
    • pokretanje iz direktorijuma 2024_Analysis_Airline-Reservation-System/unit_tests: ./run_unit_tests_with_coverage
  2. Memcheck:
    • instalacija: sudo apt-get install valgrind
    • pokretanje iz direktorijuma 2024_Analysis_Airline-Reservation-System/memcheck: ./run_memcheck
  3. Cppcheck:
    • instalacija: sudo apt-get install cppcheck
    • pokretanje iz direktorijuma 2024_Analysis_Airline-Reservation-System/cppcheck: ./run_cppcheck
  4. Clang-format:
    • instalacija: sudo apt-get install clang-format
    • pokretanje iz direktorijuma 2024_Analysis_Airline-Reservation-System/clang: ./run_clang_format

Zaključak

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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •