Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PZ.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
762.72 Кб
Скачать

4.2 Допоміжні засоби для реалізації програмного забезпечення

Вся алгоритмічна частина програмного забезпечення реалізована за допомогою стандратних засобів, що надає мова програмування C++. Зокрема, для реалізації черги з пріоритетами була використана структура даних unordered_map [14] - хеш-таблиця із стандартної бібліотеки шаблонів, яка дозволяє вибирати елементи по ключу за константий час, а також структура multimap [15] (також з STL), яка дозволяє зберігати елементи з однаковими ключами та отримувати доступ за логарифмічний час.

Проте, для реалізації симулятора для візуального тестування необхідно було використати бібліотеку для роботи з формами. Для цього найкраще підійшов іструмент під назвою FLTK (fast light toolkit) [16].

FLTK являє собою кросплатформений C++ GUI інструментарій для всіх сучасних операційних систем. Дана бібліотека надає сучасну GUI функціональність без наворотів і підтримує 3D-графіку за допомогою OpenGL і вбудованої в GLUT емуляції.

За допомогою даного інструментарію було створене звичайне вікно з двома формами для завантаження карти (загальної карти, та частини карти, яку обробляє робот) та кнопкою, яка запускає симулятор.

Рисунок 4.1 - Інтерфейсне вікно візуального симулятора

4.3 Тестування пз

Для тестування програмного забеспечення на надійність необхідно було обрати аналізатор коду, який зміг би вказати на помилки, неточності та невідповідності до стилю кодування.

Є велика кількість різноманітних аналізаторів коду, але зупинимось на декількох та оберемо один із них для нашого проекту. Серед розглянутих утіліт для аналізу коду найбільш якісними є Klocwork, Valgrind та Cppcheck. Зупинимося на останній, оскільки вона є вільною (на відміну від Klocwork) та кросплатформеною (на відміну від Valgrind, який працює лише у unix-системах).

Рисунок 4.2 - Інтерфейсне вікно утіліти Cppcheck

4.4 Представлення результатів тестування пз (у хронологічному порядку, які помилки були виявлені і виправлені)

Результати стаичного аналізу кода представлені в таблиці 4.1

Таблиця 4.1. - Помилки, виявлені аналізатором кода Cppcheck

Файл

Тип помилки

Опис

Код

1

Simulator.cpp

Стиль коду

Кастування для void-вказівника у С-стилі

Simulator* simulator = (Simulator*)(p);

2

Simulator.cpp

Стиль коду

Невикористовувана зміна

int k2 = (i * img_width * img_depth) + (j * img_depth);

3

Planner.cpp

Стиль коду

Нераціональне оголошення змінної

double tmp_g

4

Planner.cpp

Стиль коду

Нераціональне оголошення змінної

double tmp_rhs

5

Planner.cpp

Швидкодія

Використання постфіксного інкременту для складного об'єкта

pos2++;

6

Widget_real.cpp

Швидкодія

Використання постфіксного інкременту для складного об'єкта

i++

7

Widget_robot.cpp

Швидкодія

Використання постфіксного інкременту для складного об'єкта

i++

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]