- •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 Розрахунок загального штучного рівномірного освітлення приміщення люмінесцентними лампами методом коефіцієнта використання світлового потоку
- •Висновки
- •Перелік посилань
4.5 Представлення результатів, що демонструють функціональність розробленого пз
Реалізація візуального симулятора була написана спеціально для тестування функціональності розробленого програмного забезпечення. На рисунку 4.3 зображено прокладений шлях на карті з певною кількістю перешкод. На правій половині риснука можна побачити карту, яка була охоплена роботом, а на лівій - уся карта, по якій відбувався рух. При досягненні цілі (нижнього лівого кута) симулятор видає повідомлення про успішно досягнуту кінцеву точку. При умові, що шлях не може бути знайдений з'явиться повідомлення про неможливість досягнути кінцевої цілі.
Рисунок 4.3 - вікно симулятора для візуального тестування
Рисунок 4.4 - Повідомлення про успішне завершення роботи симулятора
4.6 Основні функції розробленого програмного забезпечення
Опис основних функцій програмного забезпечення подано в зведеній таблиці 4.2.
Таблиця 4.2 – Опис основних функцій програмного забезпечення
# |
Клас |
Назва |
Аргументи |
Опис |
1 |
Math |
deg2rad |
degrees - значення кута в градусах |
Конвертує значення кута з градусів в радіани |
2 |
Math |
deg2signed |
degrees - значення кута в градусах |
Конвертує значення кута в градусах у діапазон (-180..180] |
3 |
Math |
equals |
a - перше значення |
Визначає, чи два значення однакові (враховуючи похибку обрахунку) |
b - друге значення |
||||
precision (додатково) - похибка вимірювання |
||||
4 |
Math |
greater |
a - перше значення |
Визначає, чи перше значення більше другого (враховуючи похибку обрахунку) |
b - друге значення |
||||
precision (додатково) - похибка вимірювання |
Продовження таблиці 4.2 – Опис основних функцій програмного забезпечення
# |
Клас |
Назва |
Аргументи |
Опис |
5 |
Math |
less |
a - перше значення |
Визначає, чи перше значення менше другого (враховуючи похибку обрахунку) |
b - друге значення |
||||
precision (додатково) - похибка вимірювання |
||||
6 |
Math |
rad2deg |
radians - знчення кута в радіанах |
Конвертує значення кута з радіан в градуси |
7 |
Math |
rad2signed |
radians - знчення кута в радіанах |
Конвертує значення кута в радіанах у діапазон (-Pi..Pi] |
8 |
Map::Cell |
Cell |
x - x-координата |
Конструктор об'єкта "Комірка" |
y - y-координата |
||||
cost (додатково) - вага вершини |
||||
9 |
Map::Cell |
~Cell |
|
Деструктор об'єкта "Комірка" |
10 |
Map::Cell |
init |
**nbrs - вказівники на сусідні комірки |
Ініціалізація комірки, встановлення її сусідів |
11 |
Map::Cell |
nbrs |
|
Повертає список сусідніх комірок |
12 |
Map::Cell |
x |
|
Повертає x-координату комірки |
13 |
Map::Cell |
y |
|
Повертає y-координату комірки |
14 |
Map |
Map |
rows - номер рядка |
Конструктор об'єкта "Карта" |
cols - номер стовпця |
||||
15 |
Map |
~Map |
|
Деструктор об'єкта "Карта" |
Продовження таблиці 4.2 – Опис основних функцій програмного забезпечення
# |
Клас |
Назва |
Аргументи |
Опис |
16 |
Map |
has |
rows - номер рядка |
Перевірка на приналежність координати карті |
cols - номер стовпця |
||||
17 |
Map |
cols |
|
Повертає кількість стовпців |
18 |
Map |
rows |
|
Повертає кількість рядків |
19 |
Planner |
Planner |
*map - карта місцевості |
Конструктор об'єкта "Планувальник". |
*start - точка знаходження робота |
||||
*goal - кінцева точка пересування |
||||
20 |
Planner |
~Planner |
|
Деструктор об'єкта "Планувальник" |
21 |
Planner |
path |
|
Повертає траєкторію руху - послідовний список комірок, через які необхідно проїхати |
22 |
Planner |
goal |
*cell (додатково) - нова кінцева ціль |
Встановлення/повернення кінцевої точки |
23 |
Planner |
start |
*cell (додатково) - нова стартова ціль |
Встановлення/повернення початкової точки |
24 |
Planner |
replan |
|
Перерахунок траєкторії руху від початкової точки до кінцевої |
25 |
Planner |
update |
*cell - вершина |
Оновити вагу вершини |
cost - вага вершини |
Продовження таблиці 4.2 – Опис основних функцій програмного забезпечення
# |
Клас |
Назва |
Аргументи |
Опис |
26 |
Planner |
_cell |
*cell - вершина |
Підготовка вершини для обрахунку (розрахунок еврістичного параметру для вершини) |
27 |
Planner |
_compute |
|
Обрахунок найкоротшого шляху |
28 |
Planner |
_cost |
*a - перша вершина |
Обрахунок ваги шляху між двома вершинами |
*b - друга вершина |
||||
29 |
Planner |
_g |
*cell - вершина |
Встановлення/повернення g-значення вершини |
value (додатково) - вага вершини |
||||
30 |
Planner |
_h |
*a - перша вершина |
Визначення еврістичної оцінки між двума вершинами |
*b - друга вершина |
||||
31 |
Planner |
_k |
*cell - вершина |
Обрахунок пріоритету для вершини |
32 |
Planner |
_list_insert |
*cell - вершина |
Вставка вершини з пріоритетом в множину вершин для обрахунку |
k - значення пріоритету для вершини |
||||
33 |
Planner |
_list_remove |
*cell - вершина |
Видалення вершини з множини\ вершин для обрахунку |
34 |
Planner |
_list_update |
*cell - вершина |
Оновлення вершини з пріоритетом в множині вершин для обрахунку |
k - значення пріоритету для вершини |
Кінець таблиці 4.2 – Опис основних функцій програмного забезпечення
# |
Клас |
Назва |
Аргументи |
Опис |
35 |
Planner |
_min_succ |
*cell - вершина |
Знаходження найоптимальнішої сусідньої комірки для переходу |
36 |
Planner |
_rhs |
*cell - вершина |
Встановлення/повернення rhs-значення вершини |
value (додатково) - вага вершини |
||||
37 |
Planner |
_update |
*cell - вершина |
Оновлення вершини |
