аного засобу протидії.
Procedure Id Thread CFN Run (Sender: TIdCustomThreadComponent) - процедура події инициируемого при запуску потоку.
Розберемо дану процедуру докладніше. Породження ниток в ході роботи програми забезпечує розпаралелювання процесів взаємодії користувача з інтерфейсом і обміну повідомленнями програми-імітатора з сервером міжпрограмної взаємодії. Забезпечення розпаралелювання є важливим завданням, що виникає при реалізації програми.
Створення потоку відбувається при підключенні до сервера функцією Start компонента IdThreadCFN.
У самому потоці здійснюється прийом повідомлень, які передають програми комплексу через сервер міжпрограмної взаємодії.
Код процедури представлений нижче.
ifIdThreadCFN. ActiveandIdTCPCFN. Connectedthen
//Одержання повідомлення
IdTCPCFN. ReadBuffer (tmp_res, sizeof (R_MSGHEADER));
NameSID:=tmp_res. wSID;// код каналу-відправника
except; IdTCPCFN do
//Аналізуємо тип повідомлення
casetmp_res. bTypeof
//Погода
SMT_WEATHER:
begin
//обробка повідомлення від програми-імітатора погодних умов
end;
SMT_BPLA:
begin
//обробка повідомлення від програми-імітатора БПЛА
end;
//КП
SMT_ISP:
begin
//обробка повідомлення від командного пункту
end;
//Сервер
else
begin
//обробка повідомлення від сервера
end;
Повний код процедури представлений у додатку А.
Враховуючи схожість логіки роботи програм-імітаторів багато процедур додатків, в основному ті які відповідають за взаємодію користувача з інтерфейсом, спроектовані однаково.
Малюнок 15 - Діаграма моделі програми-імітатора протидії
.5 Тестування програмного забезпечення
1.5.1 Вибір способів і методів тестування програмного забезпечення
Якість програмного продукту характеризується набором властивостей, що визначають, наскільки продукт хороший з погляду зацікавлених сторін. Тестування є одним з найбільш усталених способів забезпечення якості розробки програмного забезпечення і входить в набір ефективних засобів сучасної системи забезпечення якості програмного продукту [32].
Тестування можна розглядати, як процес семантичної налагодження (перевірки) програми, що полягає у виконанні послідовності різних наборів контрольних тестів, для яких заздалегідь відомий результат. Тобто тестування передбачає виконання програми та отримання конкретних результатів виконання тестів [33].
Тести підбираються так, щоб вони охоплювали якнайбільше типів ситуацій алгоритму програми. Менш жорстку вимогу - виконання хоча б один раз кожної гілки програми.
На сьогоднішній день найбільш актуальними методами тестування є:
- функціональне тестування;
- тестування навантаження;
- модульне тестування;
- інтеграційне тестування.
Для тестування розроблюваного програмного забезпечення буде застосовуватися функціональне тестування. Даний вибір обумовлений відносно низькою складністю програмного забезпечення.
.5.2 Функціональне тестування
Функціональне тестування розглядає заздалегідь вказане поведінку і грунтується на аналізі специфікацій функціональності компонента або системи в цілому.
Функціональні тести грунтуються на функціях, виконуваних системою, і можуть проводитися на всіх рівнях тестування (компонентному, інтеграційному, системному, приемочном). Як правило, ці функції описуються у вимогах, функціональних специфікаціях або у вигляді випадків використання системи (use cases).
Тестування функціональності може проводитися у двох аспектах: вимоги та бізнес-процеси [33].
Тестування в перспективі вимоги використовує специфікацію функціональних вимог до системи як основу для дизайну...