
- •1 Розробка плану проекту
- •1.1 Аналіз та постановка задачі
- •1.2 Обґрунтування вибору моделі життєвого циклу для реалізації проекту
- •1.2.1 Каскадна модель.
- •1.2.2 Ітераційна модель.
- •1.2.3 Спіральна модель.
- •1.3 Обґрунтування вибору мови програмування та case-засобів
- •1.4 Розробка графіка виконання робіт по проекту у контексті обраної моделі життєвого циклу
- •1.5 Аналіз ризиків проекту та управління ними
- •1.6 Системна специфікація вимог до розроблюваного проекту
- •1.6.1 Розробка користувальницьких (функційних) вимог
- •1.6.2 Нефункційні вимоги до програмного забезпечення
- •2 Вибір та аналіз існуючих алгоритмів побудови шляху на карті
- •2.1 Точні алгоритми
- •2.1.1 Пошук в ширину на незваженому графі.
- •2.1.2 Алгоритм Флойда-Уоршелла
- •2.1.3 Алгоритм Дейкстри
- •2.2 Евристичні алгоритми
- •2.2.1 Алгоритм a*
- •2.2.2 Алгоритм d* Lite
- •3 Розробка архітектури програмного забезпечення
- •3.1.1 Діаграма варіантів використання
- •3.1.2 Діаграма класів
- •3.1.3 Діаграма станів
- •3.1.4 Діаграма діяльності
- •3.2 Блок-схеми алгоритмічної частини програмного забезпечення
- •4 Кодування і тестування пз
- •4.1 Особливості реалізації програмного забезпечення
- •4.2 Допоміжні засоби для реалізації програмного забезпечення
- •4.3 Тестування пз
- •4.4 Представлення результатів тестування пз (у хронологічному порядку, які помилки були виявлені і виправлені)
- •4.5 Представлення результатів, що демонструють функціональність розробленого пз
- •4.6 Основні функції розробленого програмного забезпечення
- •5 Надійність програмного забезпечення
- •5.1 Поняття надійності програмного забезпечення
- •5.2 Класифікація моделей надійності програмного забезпечення
- •5.3 Розрахункова частина
- •6 Економічний розділ
- •6.1 Обґрунтування доцільності створення локальної мережі
- •6.2 Кошторис на розробку програмного продукту
- •6.2.1 Основна заробітна плата розробників (дослідників):
- •6.2.2 Амортизація обладнання, комп'ютерів та приміщень, які використовувались для розробки нового технічного рішення.
- •6.2.3 Оренда обладнання, устаткування, приміщень, які були використані в ході здійснення розробки нового технічного рішення.
- •6.2.4 Витрати на комплектуючі к, що були використані на розробку нового технічного рішення, розраховуються за формулою:
- •7.2 Забезпечення електробезпеки при експлуатації комп’ютерної техніки
- •7.3 Розрахунок загального штучного рівномірного освітлення приміщення люмінесцентними лампами методом коефіцієнта використання світлового потоку
- •Висновки
- •Перелік посилань
3.2 Блок-схеми алгоритмічної частини програмного забезпечення
Блок-схема - поширений тип схем (графічних моделей), що описують алгоритми або процеси, в яких окремі кроки зображуються у вигляді блоків різної форми, з'єднаних між собою лініями, що вказують напрямок послідовності [13].
Порядок виконання дій задається шляхом з'єднання вершин дугами, що дозволяє розглядати блок-схеми не тільки як наочну інтерпретацію алгоритму, зручну для сприйняття людиною, але і як зважений орієнтований граф (т. зв. граф-схема алгоритму). Подібне уявлення алгоритмів використовується при побудові систем логічного керування, що реалізують задані керуючі алгоритми, в задачах розпаралелювання обчислень і т. д.
Для проектування програмного забезпечення велику роль відіграє правильність розробки алгоритму прокладання маршруту, тому на ряду з UML-діаграмами, які вказують на логіку роботи усього ПЗ, в проекті розроблено блок-схеми самого алгоритму пошуку оптимальної траєкторії руху.
Алгоритм пошуку траєкторії складається із головної та допоміжних функцій. Для кожної допоміжної функції наведена окрема блок-схема. Функції, які необхідні для роботи алгоритму:
ініціалізація;
розрахунок пріоритету вершини;
оновлення вершини;
розрахунок оптимального маршруту.
Рисунок 3.5 - Блок-схема функції ініціалізації
Рисунок 3.6 - Блок-схема функції обрахунку пріоритету для вершини
Рисунок 3.7 - Блок-схема функції оновлення вершини
Рисунок 3.8 - Блок-схема розрахунку найкоротшого шляху між вершинами
Рисунок 3.9 - Блок-схема алгоритму пошуку оптимального шляху
4 Кодування і тестування пз
4.1 Особливості реалізації програмного забезпечення
Для реалізації програмного забезпечення побудови траєкторії руху мобільного робота з урахуванням переміщення інших рухомих об'єктів було обрано мову програмування C++ (стандарт C++11). Враховуючи властивості даної мови, програмне забезпечення реалізовано за допомогою об'єктно-орієнтованої парадигми програмування.
Реалізація проекту проведена в кілька етапів:
етап формування класів та інтерфейсів обміну даними між класами;
етап написання алгоритмічної частини програмного забезпечення;
етап написання симулятора для візуального тестування розробленого програмного забезпечення.
Після проходження цих трьох етапів отриманий готовий програмний продукт складається з наступних класів:
math - клас для роботи з арифметичними діями на площині: обрахування/конвертація кутів та відстаней, реалізація математичних констант, функції порівняння;
map - клас, що зберігає інформацію про карту місцевості: зайнятість комірок об'єктами, розміри карти;
cell - клас, що зберігає інформацію про комірку на карті: координати, список сусідів, вартість;
planner - клас обрахунку оптимальної траєкторії, який проводить завантаження карти, оновлення карти/вершини, обрахунок/перерахунок оптимального шляху;
simulator - клас для роботи із візуальним симулятором: ініціалізує графічне відображення карти, вимальовує карту та рух робота по ній;
config - клас, що зберігає конфігураційні дані для симулятора: дані про загальну карту та карту, яку "бачить" робот, стартову та кінцеву вершини, радіус сканування роботом карти.