To jest stara wersja strony!
Prezentacja
Cel Projektu
Dla aplikacji HQEd:
Audyt kodu - sprowadziło się do analizy ostrzeżeń kompilacji
Statyczne zbudowanie aplikacji
Testowanie aplikacji - stworzenie dwóch dużych modeli, jak i 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
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 trochę na podstawie już stworzonego modelu (dostępnego w aplikacji) i trochę na podstawie własnych pomysłów. Jak dane wejściowe otrzymuje pin wprowadzony przez użytkownika, prawidłowy z bazy danych, deklarowana kwota, dostępne środki na koncie jak i w bankomacie. Na podstawie tych danych daje jedną z odpowiedzi: ok, 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
Jeśli damy save i zapiszemy plik bez rozszerzenia, żeby ją edytor sam automatycznie dodał, zapisze bez kropki i dodatkowo z każdym naciśnięciem save będzie tworzył kolejny plik konkatenując nazwę o rozszerzenie bez kropki, zamiast zapisywać w starym. Jeżeli się ręcznie wpisze nazwę z rozszerzeniem '.hml', nie ma tego problemu.
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