Prezentacja

Cel Projektu

Dla aplikacji HQEd:

  • Audyt kodu - sprowadziło się to do analizy ostrzeżeń kompilacji
  • Statyczne zbudowanie aplikacji
  • Testowanie aplikacji - stworzenie dwóch dużych modeli, a także testy na małych

Audyt kodu

Analiza ostrzeżeń kompilacji:

  • Nieużywany parametr - najwięcej ostrzeżeń
  • Niebezpieczna konwersja
  • Niezainicjowana zmienna
  • Błędne nawiasowanie - wykrycie błędów logicznych
  • Brak klamr - wykrycie błędów logicznych

Statyczne zbudowanie aplikacji

Jednym z ważnych celów projektu było statyczne zbudowanie aplikacji z Qt4. Powody:

  • Zlikwidowanie potrzeby instalowania Qt4 użytkownika końcowego, czyli duże ułatwienie dla niego;
  • Uniknięcie problemów ze zgodnością nowych wersji Qt;

Po skompilowaniu Qt4 statycznie (w wersjach: 4.2.3, 4.3.0, 4.5.2), i statycznie programu (rozmiar wzrósł do 5.9 MB z 3.8 MB), a następnie po jego uruchomieniu otrzymałem w konsoli błąd: 'segmetion fault'.

Testy

Główne Konfiguracje na których testowano aplikacja:

  • Ubuntu 8.10, Qt ver. 4.4.3, Gnome ver. 2.24.1
  • Ubuntu 9.04, Qt ver. 4.5.0, Gnome ver. 2.26.1

a także dla Ubuntu 8.10, qt w wersjach: 4.3.0 i 4.2.3.

Wykonane modele:

  • Thermostat - ustalenie wartości zadanej dla klimatyzacji w zależności od miesiąca, dnia i godziny
  • ATM - bankomat

Thermostat

Zbudowany na podstawie już dobrze opisanego sytemu: hekate_case_thermostat, zmieniłem miesiące aby odpowiadały porom roku na półkuli północnej.

Wykonanie w HQEd (plik '.hml' do ściągnięcia):

thermostat.zip

Thermostat (screen)

ATM

Zbudowałem model bankomatu zarówno na podstawie już stworzonego modelu (dostępnego w aplikacji) jak i na podstawie własnych pomysłów. Jako dane wejściowe przyjąłem: pin wprowadzony przez użytkownika, prawidłowy pin z bazy danych, deklarowaną kwotę do wypłacenia, dostępne środki na koncie oraz w bankomacie. Na podstawie tych danych program daje jedną z odpowiedzi: wypłacenie kwoty, nieprawidłowy pin, brak środków na koncie, brak środków w bankomacie.

Wykonanie w HQEd (plik '.hml' do ściągnięcia):

atm.zip

ATM (screen)

Ważniejsze Uwagi do programu

  • Nieintuicyjne ustawianie granic przedziału (range);
  • Program zawsze pyta czy zapisać zmiany, niezależnie od tego czy nastąpiły;
  • Mało ergonomiczny interfejs – trzeba wykonać dużą ilość kliknięć aby cokolwiek wykonać
  • Program czasem kończy wyjątkiem (np. zbyt skomplikowane wyrażenie, zbyt duża ilość wierszy w tabeli)
  • Potrzeba ponownego wczytania modelu dla niektórych zmian

Program jest cały czas w trakcie tworzenia, więc tego typu uwagi często dotyczą rzeczy, których jeszcze nie zrobiono, a nie błędów.