You are on page 1of 98

1

АНОТАЦІЯ

У бакалаврській роботі було розроблено імітаційну модель вибору


елементної бази для синтезу засобів нейромережевого захисту даних в реальному
часі, написаної за допомогою об’єктно орієнтованої мови програмування С#.
Дана імітаційна модель надає користувачу можливість вибрати оптимальні
елементи із множини усіх можливих елементів та сформувати елементну базу.
Користувач має змогу вносити мінімальні значення атрибутів елементів та
вносити необхідну кількість експертних оцінок вагомості атрибутів. Функціонал
системи полягає в розрахунку інтегральної оцінки для кожного елементу та
вибору елементів різного типу з найбільшим її значенням.
У розробці імітаційної моделі використовувалися такі технології:
 середовище розробки – Visual Studio 2019;
 мова програмування – C#;
 фреймворк розробки інтерфейсу – Windows Forms;
 менеджер встановлення додаткових бібліотек – NuGet.
Пояснювальна записка до бакалаврської роботи складається з 98 сторінок,
35 рисунків, 11 таблиць та формул. Список проаналізованих джерел складається
з 20 найменувань.
2

ABSTRACT

In the bachelor's work, a simulation model for selecting elemental base for synthesis of
real-time neural network data protection tools, written using the object-oriented
programming language C #, was developed.
This simulation model gives the user the opportunity to select the optimal
elements from a set of all possible elements and form an element base. The user has the
ability to enter the minimum values of the attributes of the elements and enter the
required number of expert estimates of the weight of the attributes. The functionality of
the system is to calculate the integrated assessment for each element and the selection
of elements of different types with the largest value.
The following technologies were used in the development of the simulation
model:
• development environment - Visual Studio 2019;
• programming language - C #;
• interface development framework - Windows Forms;
• tools for installing additional libraries - NuGet.
The explanatory note to the bachelor's thesis consists of 98 pages, 35 figures, 11
tables and formulas. The list of analyzed sources consists of 20 names.
3

ЗМІСТ

ВСТУП...............................................................................................................................................................5
РОЗДІЛ 1. ХАРКТЕРИСТИКА ІМІТАЦІЙНОЇ МОДЕЛІ ВИБОРУ ЕЛЕМЕНТНОЇ БАЗИ ДЛЯ
СИНТЕЗУ ЗАСОБІВ НЕЙРОМЕРЕЖЕВОГО ЗАХИСТУ ДАНИХ В РЕАЛЬНОМУ ЧАСІ І
ПОСТАНОВКА ЗАДАЧІ................................................................................................................................7
РОЗДІЛ 2. ОГЛЯД ЛІТРАТУРИ...................................................................................................................9
2.1 Огляд структури елементної бази.................................................................................................9
2.2 Огляд баз даних......................................................................................................................................16
2.3 Огляд засобів розробки..........................................................................................................................20
2.4 Огляд засобів візуалізації......................................................................................................................21
РОЗДІЛ 3. СИСТЕМНИЙ АНАЛІЗ............................................................................................................24
3.1 Побудова дерева проблем......................................................................................................................24
3.2 Побудова дерева цілей...........................................................................................................................25
3.3 Вибір мови програмування....................................................................................................................27
3.4 Вибір середовища розробки..................................................................................................................30
РОЗДІЛ 4. РОЗРОБКА СТРУКТУРИ ТА АЛГОРИТМІВ РОБОТИ СИСТЕМИ...............................31
4.1. Побудова Use-case діаграми.................................................................................................................31
4.2 Побудова діаграми діяльності.........................................................................................................32
4.3 Побудова моделей бізнес-процесів за допомогою діаграм IDEF0.....................................................34
4.4. Проектування бази даних.....................................................................................................................39
4.4. Блок-схеми алгоритмів.........................................................................................................................41
РОЗДІЛ 5. РОЗРОБКА ПРОГРАМНОГО РІШЕННЯ.............................................................................46
5.1. Структура програмного продукту (діаграма компонентів)................................................................46
5.2. Опис використаних сторонніх бібліотек і модулів.............................................................................47
5.2. Опис використаних сторонніх бібліотек і модулів.............................................................................48
5.4. Розробка та опис інтерфейсу користувача..........................................................................................50
5.5. Опис альтернативних підходів, які розглядались під час розробки..................................................54
5.6. Опис проблем і нестандартних ситуацій, які виникали під час розробки........................................54
РОЗДІЛ 6. ЕКПЕРИМЕНТАЛЬНА ЧАСТИНА.......................................................................................55
6.1. Інструкції з використання для Адміністратора...................................................................................55
6.2. Інструкції з використання для Користувача........................................................................................56
6.3. Інструкції з використання для Програміста........................................................................................59
6.4. Вимоги до апаратного забезпечення....................................................................................................59
6.5. Тестування.............................................................................................................................................60
4

РОЗДІЛ 7. ЕКОНОМІЧНА ЧАСТИНА......................................................................................................67


7.1. Економічна характеристика імітаційної моделі вибору елементної бази для синтезу засобів
нейромережевого захисту даних в реальному часі....................................................................................67
7.2. Інформаційне забезпечення та формування гіпотези щодо потреби у розробці імітаційної моделі
вибору елементної бази...............................................................................................................................67
7.3. Оцінювання та аналіз факторів зовнішнього та внутрішнього середо-вища...................................69
7.4. Формування стратегічних альтернатив...............................................................................................71
7.4.1. Перша група стратегічних альтернатив..................................................................................71
7.4.2. Друга група стратегічних альтернатив....................................................................................73
7.4.3. Вибір стратегії...............................................................................................................................74
7.5. Бюджетування.......................................................................................................................................75
7.6. Висновки до економічної частини.......................................................................................................81
СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ.............................................................................................83
ДОДАТОК А...................................................................................................................................................86
5

ВСТУП
Актуальність. Імітаційна модель вибору елементної бази для синтезу
засобів нейромережевого захисту та передачі даних в реальному часі має значну
актуальність в рамках досліджень у галузі криптографії. Дослідження та розробка
нових методів захисту інформації та забезпечення інформаційної безпеки систем,
мереж і пристроїв є важливою галуззю досліджень в системах, мережах і
пристроях ІТ. Захист інформації значною мірою базується на використанні
криптографічних методів, пов'язаних з шифруванням даних. Одним із провідних
сучасних напрямків розробки ефективних і стійких методів криптографічного
захисту стали технології штучних нейронних мереж, які вирізняються
різноманітністю архітектур та алгоритмів навчання, а також можливостями
гнучкого налаштування, зокрема і для задач симетричного шифрування даних.
Розроблення систем захисту та передачі даних у реальному часі з високими
техніко-економічними показниками вимагає використання інтегрального
критерію ефективності для вибору елементної бази для їх синтезу. Створення
систем захисту систем захисту даних даних у реальному часі з високими техніко-
економічними показниками найдоцільніше здійснювати при інтегрованому
підході, який охоплює сучасну елементну базу, нейроподібні методи та
алгоритми, архітектури засобів шифрування-дешифрування та кодування-
декодування даних і враховує вимоги конкретних застосувань.
Зменшення часу і вартості розробки систем захисту та передачі даних у
реальному часі з високими техніко-економічними показниками вимагає
автоматизації процесу вибору елементної бази, який повинен враховувати вимоги
технічного завдання та існуючу сучасну елементну базу.
Таким чином, актуальною проблемою є розроблення імітаційної моделі
вибору елементної бази для синтезу засобів нейромережевого захисту та передачі
даних в реальному часі з високими техніко-економічними показниками.
6

Метою дослідження є розроблення імітаційної моделі вибору оптимальної


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

Об’єктом дослідження є процеси збору та вибору елементної бази для


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

Предмет дослідження є моделі, методи, та засоби вибору елементної бази


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

Для досягнення мети необхідно виконати такі задачі:

1. Проведення огляду літератури


2. Проведення системного аналізу
3. Вибір оптимального інструментарію
4. Створення концептуальної моделі
5. Розробка алгоритмів
6. Візуалізація роботи компонентів системи
7. Розробка логічної та моделі БД
8. Розробка фізичної та моделі БД
9. Розробка програмного застосунку
10.Проведення тестування застосунку
11. Оптимізація застосунку
Практична цінність полягає у тому, що розроблена імітаційна модель
вибору елементної бази для синтезу засобів нейромережевого захисту та передачі
даних у реальному часі забезпечує швидкий вибір найефективнішої елементної
бази за інтегральним критерієм.
7

РОЗДІЛ 1. ХАРКТЕРИСТИКА ІМІТАЦІЙНОЇ МОДЕЛІ ВИБОРУ


ЕЛЕМЕНТНОЇ БАЗИ ДЛЯ СИНТЕЗУ ЗАСОБІВ
НЕЙРОМЕРЕЖЕВОГО ЗАХИСТУ ДАНИХ В РЕАЛЬНОМУ ЧАСІ І
ПОСТАНОВКА ЗАДАЧІ

Дана імітаційна модель необхідна для вибору елементної бази для синтезу
засобів нейромережевого захисту даних в реальному часі.

Програмний продукт має складатись з бази даних, користувацького інтерфейсу та


алгоритмічної частини. В БД необхідно завантажити інформацію про елементні
бази у вигляді множин елементів. Застосунок повинен зчитувати дані про
елементну базу із БД. Користувач повинен вводити критерії та обмеження
пошуку за допомогою інтерфейсу застосунку. Згідно з отриманою інформацією у
виді даних про елементні бази та обмеження і критерії пошуку, застосунок
повинен згідно з алгоритмами знайти найбільш оптимальну елементну базу та
вивести результат за допомогою інтерфейсу для користувача. Аналогічної моделі
не знайдено у всесвітній мережі «Інтернет», що робить дану імітаційну модель
унікальною.

Для якісної розробки програмного продукту необхідно провести огляд літератури


та системний аналіз, вибрати оптимальні засоби реалізації застосунку, такі як
мова програмування, середовище та засоби візуалізації та обрати програму для
розробки БД. Також необхідно розробити алгоритми вибору елементної бази з
їхньою візуалізацією у вигляді блок-схем, створити діаграму класів та діаграми
функціонування системи і її окремих блоків.

Для виконання мети, потрібно розробити алгоритми для наступних функцій:

1. Вибір множини елементів які відповідають вимогам технічного завдання


2. Визначення вагових коефіцієнтів
3. Нормування часткових критеріїв
4. Обчислення інтегрованої оцінки ефективності елементної бази
8

Вимоги до БД:

1. Багаторазовість використання даних


2. Незначні витрати на створення та ведення БД, або відсутність витрат.
3. Висока швидкість обробки запитів.
4. Надійність даних
5. Логічна та фізична незалежність даних від прикладних програм.
6. Простота в експлуатації та зручний інтерфейс
Вимоги до користувацького інтерфейсу:

1. Зручність у користуванні
2. Простота
3. Можливість введення даних з клавіатури
4. Повідомлення користувача про можливі помилки під час виконання
програми
Вимоги до платформи та мови розробки:

1. Підтримка об’єктно-орієнтованої методології


2. Лаконічність
3. Висока популярність
4. Універсальність
Вимоги до апаратних засобів:

1. Процесор з частотою не нижче 1.8 ГГЦ та двома ядрами


2. Не менше 4 ГБ ОЗУ
3. Відеоадаптер з мінімальним розширенням 720 р
Вимоги до засобів візуалізації результатів

1. Сумісність з платформою розробки


2. Чіткість зображення
3. Швидкодія
9

РОЗДІЛ 2. ОГЛЯД ЛІТРАТУРИ

2.1 Огляд структури елементної бази


За останні десять років няпрямок проектування систем на кристалі (СнК)
зробив стрімкий ривок. Мейнстрімним визначенням СнК в сучасній технічній
літературі є наступне:[1]: СнК – це НВІС, яка вміщує функціональні вузли
закінченого пристрою, інтегрованого на кристалі, для автономного використання
в електронній апаратурі.

СнК розроблений спеціально для того, щоб відповідати стандартам


включення необхідних електронних схем численних комп'ютерних компонентів
до єдиної інтегрованої мікросхеми. Замість системи, яка збирає кілька мікросхем
і компонентів на друкованій платі, СнК виробляє всі необхідні схеми в один
блок. Виклики СнК включають більш високі витрати на прототипування та
архітектуру, більш складні налагодження та менші виходи ІС. Інтегровані чіпи не
завжди є економічно вигідним і вимагає часу на виготовлення. Однак це,
ймовірно, зміниться, оскільки технологія продовжує розвиватися та
використовувати. Система на кристалі (СнК) поєднує необхідні електронні схеми
різних комп'ютерних компонентів на єдину інтегрований мікросхем (IC). СнК -
це повна електронна субстратна система, яка може містити аналогові, цифрові,
змішані сигнали або радіочастотні функції. Його компоненти зазвичай
включають графічний процесорний блок (GPU), центральний процесорний блок
(CPU), який може бути багатоядерним, і системну пам'ять (RAM). Оскільки СнК
включає в себе як апаратне, так і програмне забезпечення, вона використовує
меншу кількість, має кращі показники, вимагає менше місця і є надійнішою, ніж
багаточіпові системи. Більшість СнК використовуються на мобільних пристроях,
таких як смартфони та планшети.

Основним застосуванням подібних схем є широкий вибір інтегрованих систем.


СнК може включати і аналогові і цифрові вузли. Процесор, в основному,
являється центральним цифровим вузлом, який проводить програмне
10

опрацювання різного роду цифрових даних і сигналів. Для різного роду більш
спеціалізованого функціоналу, СнК містить різноманітні елементи, які можуть
бути, як цифровими так і аналоговими та орієнтовані відповідно до
функціональної галузі систем на кристалі. В залежності від цілей систем на
кристалі, такими вузлами можуть бути різного роду логічні елементи, лічильники
та таймери. До складу систем на кристалі входять або під’єднуються до них в
виді різноманітних зовнішніх блоків різні види модулів пам’яті (SRAM, DRAM,
Flash, ROM, EEPROM). Взаємодія із зовнішнім середовищем відбувається з
використанням паралельних або послідових портів, та комунікаційних
інтерфейсів. Конфігурація вузлів СнК визначається їх функціональним
призначенням. Типів організації зв’язків між вузлами системи безліч в вони
можуть бути різними, включаючи використання стандартизованих шин (типу
АМВА) чи спеціалізованих локальних інтерфейсів. Сьогодні системи на кристалі
займають найбільшу частину ринку мікроелектроніки. Це зумовлено великим
попитом як інженерів-розробників апаратури з використанням СнК, так і
виробників елементної бази для СнК, зокрема Texas Instruments, Analog Devices,
Altera, Atmel, Xilinx, Cirrus Logic, Cypress, NXP, RDC, Sharp, Marvell, NetSilicon
та інших.

Звична СнК складається з:

1. Мікропроцесор, мікроконтролер, або процесор, який обробляє цифрові


сингали. Схеми можуть бути обладнані великою кількістю різних процесів,
такі типисхем називають MPSoC.
2. Блок пам'яті, що працює з різними типами пам’яті, такими як: RAM,  Flash
та інші.
3. Продюсери опорної частоти, такі, як ланцюги із оберненим зв'язком,
або кварцові генератори.
4. Інструменти розрахунку затримок по типу таймерів або лічильників.
5. Дефолтні інтерфейси для різного роду зовнішніх пристроїв, таких як 
Ethernet чи USB.
11

6. Множина входів та виходів для різного роду перетворювачів,


7. Елементи, які стабілізують живлення та напругу.

Блоки з’єднуються один з одним користуючись стандартною конструкцією,


таких, як стандартизована AMBA в чіпах ARM або ж шини своєї розробки. Якщо
до складу чіпу належить контролер безпосереднього доступу пам'яті (DMA), тоді,
використовуючи його, ми можемо переносити інформацію з різного роду
зовнішніх пристроїв в безпосередню пам'ять, без витрат процесорних ресурсів.

Особливості проектування СнК

Зазвичай система на кристалі є цифровою НВІС, що має змогу при цьому


включати в себе множину аналогових блоків. Зважаючи на це, в цілях
проектування систем на кристалі використовують ті ж інструменти, які
використовують для НВІС. Цього типу кошти реалізуються в якості САПР, які
поставляються корпораціями, такими як Mentor Graphics або Synopsis. Як
елементну базу, дані САПР можуть використовувати бібліотеки з
функціональними елементами, до яких належать як макроелементи, що мають
більш складний функціонал, такі як лічильники чи суматори, а також пості
логічні тригери та вентилі.

Під час розробки мікроконтролерів в кінці ХХ століття, концепція створення


мікроконтролерних сімейств набула широкої популярності та поширення. Ці
сімейства мають ідентичне процесорне ядро і відрізняються між собою лише
множиною периферійних пристроїв і обсягом їхньої внутрішньої пам'яті. Щоб
реалізувати цю концепцію під час проектування НВІС НВІС мікроконтролерів,
помимо функціональних бібліотек в основному використовуються СФ-блоки та
інтерфейсні блоки. Такі блоки формують верхній рівень для функціональних
бібліотек, які використовуються девелоперами і виробниками мікроконтролерів
та систем на кристалі. Розробники, в такому випадку явно орієнтовані на
визначені технології конкретної компанії-виробника.
12

Ускладнення проектування НВІС, необхідність постійної оптимізації(в першу


чергу це стосується зменшення часу виходу вироби на ринок) створило масу
нових проблем для розробників. В сучасних умовах розвитку і диверсифікації
ринку праці, проектування девелопером СнК усіх СФ-блоків, які до неї належать,
зазвичай неефективно. Саме через це останнім часом широкого поширення
набула практика створення окремих СФ-блоків з ціллю їхньго постачання на
ринок елементів проектування систем на кристалі. Складно-функціональні, які
використовуються в різного роду проектах, називають IP (Intellectual Property)
модулями, вказуючи на те, що вони являються елементом інтелектуальної
власності.

Складно-функціональні блоки, зазвичай мають дві форми подання:

- як топологічні фрагменти, такі фрагменти вносяться безпосередньо в систему на


кристалі - апаратно реалізовані (hard) СФ-блоки;

- як моделі, що описують апаратуру (Verilog, VHDL), що можуть, в результаті


взаємодії з САПР перероблені в топологічні фрагменти.

Тобто, розробник може використовувати дану модель складно-функціонального


блоку і виконати його схемотехнічне та топологічне проектування в якості
частини реалізованої НВІС системи на кристалі, або ж безпосередньо внести до
структури НВІС, яка проектується готовий, з топологічної точки зору, складно-
функціональний блок.

Під час проектування СНК розробник може вибирати з:

- Розробляти складно-функціональний блоки самостійно;

- Купити складно-функціональний блоки в провідних девелоперів мікросхем;

- Знайти складно-функціональний блоки в відкритому доступі, «опенсорсі»


(www.opensource та інші джерела).
13

Кожен з цих варіантів має свої переваги і недоліки. Як уже зазначалося,


самостійна розробка всіх СФ-блоків може привести до збільшення термінів
проектування і затримки випуску кінцевого виробу. Купівля СФ-блоків пов'язана
з певними фінансовими витратами, що підвищують вартість розробки.
Застосування СФ-блоків, наявних у вільному доступі, можливо тільки після їх
ретельного верифікації, що вимагає зазвичай значних тимчасових витрат. При
виконанні кожного проекту розробник повинен провести оцінку поставлених
вимог і наявних ресурсів, щоб вибрати оптимальний варіант реалізації СНК.

Таким чином, основна особливість проектування СнК - можливість використання


досить широкої номенклатури синтезованих СФ-блоків, наявних на ринку і в
вільному доступі, які потенційно реалізуються на базі різних функціональних
бібліотек та різного роду технологій та інтегровані в кристал засобами сучасних
САПР.

Можливості реалізації СнК.

Сучасна мікроелектронна технологія дозволяє реалізовувати системи на кристалі


таким чином :

- В якості замовного НВІС (ASIC);

- Користуючись базою ПЛІС з високою інтеграцією (FPGA).

І перший, і дургий варіант, мають свої плюси і мінуси, Їх було б доцільно


зрівняти зі звичним способом монтажу різного роду систем з друкованою платою
з конкретних мікросхем - СнП.

Під час реалізації систем на кристалі в якості ASIC, використовується звичний


маршрут проектування, користуючись апаратно реалізованими та інтегрованими
в структуру НВІС складно-функціональних блоків, та синтезованих блоків,
транслюються виробником в фізичну структуру, за допомогою наявних бібліотек
функціональних елементів. Користуючись засобами САПР, множина потрібних
СФ-блоків та провідні технології, можуть бути реалізованими в якості ASIC
14

електронних елементів, які вмонтовуються на друковані плати. Тобто, існує


можливість змінити систему на платі, системою на кристалі. Існує альтернатива -
створення СнП або розробка аналогічної, в плані функцій, СнК у вигляді ASIC.

Переваги СнП:

- використання надійних компонентів;

- менш складне тестування і внесення правок;

- проста можливість поміняти несправні компоненти;

- дешевизна у створенні тестових зразків та невеликах серій.

Переваги систем на кристалі:

- наявність вищих технічних результатів та краща оптимізація.

- економічна ефективність при масовому випуску.

Потрібно замітити, що реалізація систем на кристалі, як спеціалізованої ASIC


вимагає значних фінансових витрат. Виготовлення дослідної партії
спеціалізованих НВІС (кілька тисяч зразків) за технологією 0,13 - 0,18 мкм
коштує кілька сотень тисяч доларів, а за технологією 0,09 мкм - понад мільйон
доларів. При цьому наявний досвід розробки СнК показує, що тільки в 25%
проектів спочатку отримані дослідні зразки відповідають заданим вимогам. У
більшості випадків для отримання необхідного результату потрібно декілька
ітерацій, що значно збільшує вартість проекту. Можна сподіватися, що розвиток
засобів САПР дозволить знизити ризики при виконанні таких проектів. Однак в
даний час реалізація СнК у вигляді ASIC є прийнятною тільки для обмеженого
числа високобюджетних проектів. У всіх випадках, коли можна досягти заданих
характеристик, реалізуючи системи на платі, цей варіант є більш привабливим з
огляду на названих переваг.
15

Альтернативою може бути реалізація системи на кристалі на базі


високоінтегрованих FPGA, які містять в собі велику кількість еквівалентних
логічних вентилів.

Переваги реалізації систем на кристалі на базі FPGA:

- низькі витрати на розробку та проектування тестових зразків;

- можливість внесення динамічних правок в проект;

- використання надійних компонентів, які знаходяться в серійному виробництві;

- більш простий спосіб тестування (Можливе, так назване, «тестування


частинами» ).

Тобто, система на кристалі на базі FPGA володіє практично ідентичними


перевагами, як і СнП, та відрізняється помітно кращими технічними атрибутами,
такими як більш низьке енергоспоживання, менші габарити та маса. Але,
параметрами по типу як продуктивності та енергоспоживання, СнК на базі FPGA
є гіршими, ніж СнК, які реалізовані, як ASIC.

Виходячи зі сказаного, ми можемо зробити висновок, що системи на кристалі на


базі FPGA можуть конкурувати і, навіть, поступово витісняти СнП. А замість
мікропроцесорів та мікроконтролерів, в цих СнК, будуть використовуватися різні
варіанти СФ-блоків для процесорів.

Мікроконтролер , який також називають однокристальним мікрокомп’ютером —


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

Використовується він в цілях керування електронікою. Грубо кажучи, це —


простий  комп'ютер з одним кристалом, який здатний робити елементарні
16

завдання. Мікроконтролер є важливим елементом для оптимізації побудованих


на його базі елементів, оскільки він знижує вартість та розмір останніх.

Мікроконтролери зустрічаються в великій кількості сучасних пристроїв масового


використання, таких, як смартфони, посудомийні машини та сучасні автомобілі.
Крім цього вони застосовуються в системах захисту інформації та її збору. В
сучасному світі, найбільш поширеним типом процесорів являються саме
мікроконтролери.

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


оптимальний компроміс між розмірами та ціною з одного боку і універсальністю
та швидкодією з іншого. Вибір цього компромісу залежить від типу застосунку і
може сильно відрізнятись. Через це, на ринку представлена широка вибірка
мікроконтролерів, які різняться видом процесорного модуля, величиною і типом
інтегрованої пам'яті, вибіркою периферійних елементів, та корпусом.

Тоді, коли, восьми-розрядні мікроконтролери мають широку галузь застосування,


що можна пояснити тим, що на ринку наявна велика кількість застосунків різного
роду, де основним критерієм є низька вартість. При цьому, існують
мікроконтролери, з широкими можливостями в плані обчислень, так, як
сигнальні процесори.

2.2 Огляд баз даних

База даних – являє собою впорядковану множину логічно зв’язаних даних,


що використовуються в якості однієї сутності, та мають на цілі задоволення
необхідності користувачів в інформації. База даних зазвичай технічно
реалізується в виді СУБД.

     Система управління базами даних - являється цілим набором засобів(в


основному програмних), які необхідні з метою розробки і підтримки баз даних та
створення додаткового функціоналу і систем запитів.
17

  Необхідність в адміністраторі випливає із самого характеру управління


інформацією в БД та його високої централізації. Основною ціллю бази
даних являється гарантія збереження великих масивів інформації і надання
зручного доступу до цих даних користувачеві чи спеціальній програмі. Тобто,
БД включає в себе дві основні частини: множину збереженої в БД інформації і,
також, різного роду системи управління цією інформацією. В цілях забезпечення
високої ефективності доступу, дані подаються, в якості множини фактів. В
наявності є велика кількість різновидів БД, які відрізняються відповідно до
критеріїв.

Основними прийнятими класифікаціями є наступні:

Класифікація баз даних по критерію моделі даних:

 ієрархічні,
 мережеві,
 реляційні,
 об'єктні,
 об'єктно-орієнтовані,
 об'єктно-реляційні.

Класифікація баз даних по критерію технологій фізичного зберігання:

 БД у вторинній пам'яті (звичні);


 БД в оперативній пам'яті (in-memory db);
 БД у третинній пам'яті (tertiary db).

Класифікація баз даних в залежності від вмісту:

 географічні.
 історичні.
 наукові.
18

 мультимедійні.

Класифікація баз даних в залежності від ступеня розподіленості:

 централізовані (зосереджені);
 розподілені.

     Окреме місце в питанні класифікації займають просторові, або темпоральні та


просторово-темпоральні бази даних.

     Ієрархічні БД представляються у виді дерев, що мають у собі множини


об’єктів відмінних рівнів. В верхньому рівні, знаходиться лише один об'єкт, в
другому – набір об’єктів другого рівня.   Будь-який об’єкт може включати в себе
множину об’єктів нижнього рівня. Подібне відношення називається відношенням
предка (об'єкту, який знаходиться на більш високому рівні) до нащадка (об’єкт,
який знаходиться далі від кореню), предок не з необхідністю мусить мати
нащадків, а їхня кількість може різнитись, але у об'єкта, який є нащадком
обов'язково існує лише один предок. Ті об’єкти, які мають одного спільного
предка, називають близнюками. Ієрархічні бази даних схожі до мережевих, але в
останніх існують покажчики в двох напрямках, які існують для з’єднання
споріднених даних.  Серед основних термінів ієрархічних БД виділяють: рівень,
зв'язок та вузол.  Вузол – являє собою множину атрибутів даних, які описують
певний об'єкт. В схемі ієрархічної БД у деревоподібній формі, вузли являються
вершинами цього графа. В мережевій структурі будь-який елемент може
являтись зв’язаним із будь-яким іншим системним елементом. Не дивлячись на
можливість такої моделі вирішувати деякі проблеми ієрархічної моделі,
надсилання елементарних запитів все ще залишається досить непростим
процесом.   Крім цього, через те, що логіка процедури вибору даних залежить
лише від фізичної організації конкретної інформації, модель не являється
незалежною в повній мірі від програми. Тобто, у випадку коли потрібно поміняти
структуру конкретних даних, необхідна і зміна додатку.
19

     Реляційна модель організовує масив даних в якості двовимірних таблиць.


Будь-яка реляційна таблиця є двовимірним масивом та має такі властивості:

 кожен елемент таблиці є одиницею даних;


 Вся множина елементів елементи в одному стовпчику має ідентичний тип
(числовий, дату, тощо);
 Всі стовпчики мають свою унікальну назву;
 В таблиці немає одинкових рядків;
 Порядок, в якому відбувається проходження рядків та стовпців є
довільним.

     Об'єктна система управління базами даних добре підходить в цілях


інтерпретації непростих даних, саме це відрізняє її від реляційних систем
управління базами даних, в яких внесення іншого типу даних завдає удару по
продуктивності чи ускладнює розробку додатків. Така база, відрізняється від
реляційної тим, що не вимагає перероблення ядра у випадку додавання нового
типу даних. Новий клас та його об’єкти прямо надходять через зовнішні
структури в базу даних. Системне управління ними не змінюється.

     Об'єктно-орієнтована база даних – це така база даних, де усі дані є


оформленими у якості об’єктних моделей, які включають в себе функціональні
програми, що управляються за допомогою зовнішніх подій. В результаті
поєднання особливостей БД та функціоналу мов програмування, які підтримують
ООП, існують об'єктно-орієнтовані моделі управління БД. ООСУБД дають змогу
працювати із об'єктами БД так само, як з об'єктами у випадку програмування за
допомогою об'єктно-орієнтованих мов програмування. Така система розширює
функціонал мови програмування, через введення довготривалих даних, а також
управління паралелізмом, можливості відновлення видалених даних, асоціацію
запитів та набір інших можливостей.
20

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


високопродуктивна обробка конкретних даних, що вирізняються структурною
складністю.  Така система, що допомагає забезпечити наявність об'єктної
інфраструктури та вибірку реляційних розширювачів, яку саме так і називають
-"об'єктно-реляційною".     Подібні системи поєднують в собі як плюси сучасних
об'єктно-орієнтованих мов програмування, так і властивості, які характерні для
реляційних систем, наприклад множинні представлення наборів інформації та
непроцедурні мови запитів високих рівнів.

     В залежності від технології обробки даних,  БД діляться на централізовані та


розподілені бази.  Централізована БД знаходиться в пам’яті всього лиш одної
системи. Коли у цій системі існує можливість доступу до мережі, можливо
створити розподілений доступ до даних подібної бази. Подібний спосіб
використання БД нерідко застосовують в різного роду локальних мережах
персонального комп’ютера.   Розподілена БД, в свою чергу, містить декілька,
часто пересічних та, навіть, дублюючих один одного елементів, що зберігаються
в різних обчислюваних системах. Взаємодія з подібною базою здійснюється
використовуючи системи управління взаємодіями з розподіленою базою
даних.   Поділяються такі бази і за типом доступу – на ті, в яких доступ
локальний та на бази наявністю мережевого доступу.

2.3 Огляд засобів розробки

Microsoft SQL Server - являє собою систему управління реляційними БД від


Microsoft. Найбільш поширеною мовою запитів для серверу є Transact-SQL, яку
було розроблено в тандемі корпорації Microsoft і компанії, яка розробляє СУБД -
Sybase . Ця мова являє собою реалізацію вимог ANSI / ISO відповідно до SQL з
набором необхідних додатків та розширень. Цілі використання подібного
застосунку можуть бути різними, як і розмір БД – від невеликих тестових баз
даних, до БД для обслуговування великих корпорацій.
21

     Взаємодіючи з мережею, MSS використовує спеціальний протокол TDS на


рівні додатків. В рамках проекту FreeTDS, даний протокол був розроблений для
забезпечення різного роду рограм можливістю взаємодії з БД.

     Щоб забезпечити кращий доступ до інформації, MSS, помимо іншого


функціоналу, підтримує ODBS, що представляє собою спеціальний інтерфейс,
який допомагає програмам взаємодіяти з системою управління базами даних.

2.4 Огляд засобів візуалізації

Microsoft Visio — є редактором широкого спектру діаграм в операційній


системі Windows , також за його допомогою можна займатись векторною
графікою. Існує дві основні версії – стандартна і професійна.

Обидві версії користуються ідентичним інтерфейсом, але професійна версія має


набір додаткових шаблонів для більш складних та професійно-орієнтованих
застосунків, крім цього в професійну версію входить унікальний функціонал по
типу пришвидшення з’єднання з користувачем та більших наборів форматів
даних, які відображає діаграма.

Застосунок був розроблений в 1992 році розробниками із компанії Shapewere, а


через вісім років – придбаний Microsoft. Того ж року, остання добавила програму
до пакету MO, який залишається одним із найбільш популярних офісних пакетів
станом на 2020 рік. В якості частини фреймворку, Enterprise Architect, застосунок
являвся частиною середовища Visual Studio в деяких редакціях.

Microsoft Visio зазвичай допомагає вирішувати три значні завдання: аналіз


складних даних, нативне графічне зображення даних та обмін конкретними
даними між різними користувачами та компаніями. Найбільш поширений засіб
візуалізації інформації в Visio являє собою векторні фігури, які складають ту чи
іншу діаграму чи план. В цілях зручності, подібні фігури групуються по
спеціальних категоріях, в яких можна знайти схожі по функціоналу та вигляду
елементи. Подібні фігури не є єдиним можливим засобов візуалізації, крім них
22

існують текстові елементи, стрілки, числові елементи та кольорове


форматування. можна також використовувати текст і числові дані, графічні
елементи і форматування кольором.

Erwin Data Modeler - це застосунок для проектування та документації базових


даних. Моделі даних дозволяють візуалізувати структуру даних, забезпечивши
ефективні процеси організації, управління та адміністрування таких аспектів
діяльності підприємств, як рівень рівнів даних, технологій базових даних та
срібло розширення. Ідентично розробляючи компанію Logic Works, Ервін був
відомим приватним компаніям Parallax Capital Partners, який приєднався і
об'єднав свою компанію в колекції, Erwin, Inc., з загальним директором Адама
Фамуларо.

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


також підтримує діаграми, показані з альтернативною інженерною нотацією для
інформаційних технологій, а також нотацією для розмірних моделей.

Windows Forms – являє собою спеціальний інтерфейс для програмування


засосунків, який відповідає за питання, які стосуються графічного інтерфейсу
користувача та є однією із найпопулярніших частин Microsoft .NET Framework,
яка в свою чергу підтримується у Visual Studio. Використання подібного
інтерфейсу спрощує отримання доступу до різного роду елементів інтерфейсу у
Microsoft Windows, зазвичай через створення своєї обгортки для стандартного
Win32 API в коді з керуванням. Цей код являє собою набір класів, які займаються
реалізацією API у Windows Forms, а це не залежить від мови розробки. Це
означає, що розробник з однаковим успіхом може користатись Windows Forms і
при написанні ПЗ на C #, С ++, і на менш відомих VB.Net, J #.

WF в першу чергу э заміною для менш ефективних і складних бібліотек у .NET,


але при цьому , цей інтерфейс не надає нової парадигми по типу MVC, через що
не надто популярна в професійних розробників і зазвичай використовується у
навчальних цілях. Щоб виправити цю ситуацію, можна застосуваи спеціальні
23

сторонні бібліотеки, наприклад UIPAB, яка була розроблена спеціальною групою


розробників із Microsoft.
24

РОЗДІЛ 3. СИСТЕМНИЙ АНАЛІЗ

3.1 Побудова дерева проблем


Зазвичай, для підвищення якості виконання проекту та формалізації
проблем, потрібно побудувати структуру та уважно проаналізувати
проблематику даного проекту, за допомогою діагностики проблем. Діагностика
проблем - це аналіз основних причинно-наслідкових зв'язків конкретної ситуації.
Існує два способи розгляду проблеми: по-перше, проблемою вважається ситуація,
коли поставлені цілі не досягнуті; по-друге, проблемою вважають ситуацію
потенційної можливості (щось мало статися, але не сталося). При цьому під
ситуацією розуміється реальний стан справ (стан об'єкта управління) щодо
поставленої мети.
Для реалізації діагностики будується дерево проблем, що представляє
собою ієрархічну структуру, отриманої шляхом поділу загальної проблематики
на основний тип проблематики (корінь), інші присутні типи (гілки), підтипи
(відгалуження) і проблеми (листи).

Рис. 3.1 Структура дерева проблем для розробки імітаційної моделі вбору
елементної бази
25

До першої складової віднесено інформацію про найбільш загальну


проблематику

1.1) Мета проекту

1.2) Достатні та необхідні критерії роботи системи

1.3) Варіанти реалізації мети в рамках обмежень критеріями системи

До другої складової віднесено проблеми вибору алгоритмів,


інструментарію та створення БД

2.1) Концептуальний аналіз

2.2) Вибір інструментарію

2.3) Алгоритми вибору елементної бази

2.2) Логічна та фізична моделі БД

До третьої складової віднесено проблематику розробки застосунку та його


тестування.

3.1) Підключення застосунку до БД

3.2) Застосування алгоритмів в застосунку

3.3) Тестування застосунку

3.2 Побудова дерева цілей


Дерево цілей – це ієрархічна структура, яка зображає взаємозв'язок і
підпорядкованість цілей, що відображає розподіл мети на цілі, під цілі, завдання
та дії. Згадану структуру можна визначити, як «цільовий каркас» явища,
діяльності чи організації. Декомпозиція – метод роздріблення структури системи,
при якому її поділяють на окремі складові за однією ознакою, є основною ідеєю
побудови дерева цілей.
26

Рис. 3.2 Структура дерева цілей для розробки імітаційної моделі вбору
елементної бази

1) Постановка задачі та пошук інформації;

1.1) Формулювання мети

1.2) Характеристика імітаційної моделі

1.3) Огляд літератури

1.4) Формулювання вимог до імітаційної моделі

2) Системний аналіз та вибір інструментарію;

2.1) Розробка дерева проблем

2.2) Розробка дерева рішень

2.3) Вибір мови програмування

2.4) Вибір середовища розробки

3) Концептуальна модель та розробка алгоритмів


27

3.1) Розробка концептуальної моделі

3.2) Розробка алгоритмів вибору елементної бази

3.3) Розробка логічної моделі БД

3.4) Розробка UML діаграм та їх візуалізація

4) Розробка застосунку реалізації імітаційної моделі

4.1) Розробка фізичної моделі БД

4.2) Розробка дизайну інтерфейсу

4.3) Реалізація алгоритмів в застосунку

4.4) Тестування та правки

3.3 Вибір мови програмування


C # - являє собою багатопарадигмальну мову програмування із загальним
призначенням, що охоплює велику кількість різних дисциплін програмування, які
відносяться до типізації, функціональності та компонентів, крім цого мова
підтримує імперативні, декларативні та загальні дисципліни і парадигму ООП. В
2000 році, компанія Microsoft розробила мову C# в рамках свого
фреймворку .NET та затвердила її в рамках стандарту Ecma. Існує вільний проект
з наявністю відкритого коду з компілятором – Mono. C # - є однією із мов
програмування, які були розроблені CLI, тобто загальної мовної інфраструктури..

Мова була розроблена Андерсом Хейлсбергом, а Мадс Торгерсен являється


головою її розробки на даний момент. Остання версія мови - 8.0, вона вийшла у
2019 році в один момент з версією 16.3 середовища Visual Studio 2019.

В стандартні Ecma існують такі цілі C #:

1. По задумці, мова є сучасною, об’єктно-орієнтованою мовою


програмування із загальним призначенням.
28

2. Реалізація мови, та сама мова мусять підтримувати такі принципи


інженерії ПЗ, як сильна перевірка типу, перевірка меж масиву,
використання і виявлення змінних, які не були ініціалізовані та
автоматизування збірки сміття. Важливими показниками є надійність
ПЗ, продуктивність розробника та довговічність додатку.
3. Серед функцій мови є можливість використовувати її під час розробки
компонентів програми, які можуть бути розміщені в розподілених
середовищах.
4. Переносимість є важливим компонентом для тих програмістів, які
знайомі із мовами програмування С та С++.
5. Мова мусить підтримувати інтернаціоналізації
6. Дана мова може використовуватись для написання і розміщених і
вбудованих систем різного типу, починаючи від складних та великих за
розміром і до найменших, спеціалізованих систем.
7. Попри те, що мова забезпечує економність у пам’яті та швидкості
обробки інформації, дана мова не може бути хорошим конкурентом тих
мов, які спеціально націлені на ці критерії, такі як Асемблер та С.

Microsoft .NET являється запропонованою Microsoft програмною технологією в


якості платформи розробки різного роду прогам – від звичайних додатків до веб
програм. Розробники керувались принципами та ідеями, які були вкладені в Java.
Сумісність різних служб, без залежності від мов, на яких вони написані, є
важливою ідеєю .NET. Попри те, що дана можливість є об’єктом реклами
Microsoft в якості одної із основних переваг .NET, хоча інша платформа - Java
також має такий функціонал

Можливі конфлікти між різними версіями усуваються через те, що усі бібліотеки
у фреймворку вміщають свідчення про версію збірки.
29

.NET являється багатоплатформеною технологією, причому існує реалізація для


платформи Windows – FreeBSD та варіант цієї технології для Linux за допомогою
проекту Mono.

Компілятори для серидовища існують для різних мов та виробляється різними


компаніями, а захист інтелектуальної власносні відноситься до створення
середовищ екзекуції (CLR — Common Language Runtime) спеціально для програм
на .NET.

.NET можна розділити на дві великі частини, а саме на середовище виконання


(яке представляє віртуальну машину) та на інструментарій розробки.

Середовищами створення .NET-програм: Visual Studio .NET (C++, C#,


J#), SharpDevelop, Borland Developer Studio (Delphi, C#) тощо. А
середовище Eclipse має спеціальний додаток для девелопінга .NET-програм.
Застосовні програми, при цьому, ми можемо розроблювати використовуючи
текстовий редактор та користуватись консольним компілятором.

Так само, як і середовище Java, технологія .NET видає байт-код, який


призначений, щоб його виконувала машина. CIL (Common Intermediate Language)
є віхдною мовою цієї машини у фреймворку, також вона відома в якості MSIL
(Microsoft Intermediate Language), яку також називають IL. Застосування байт-
коду допомагає в отриманні багатоплатформеності на рівні проекту, який вже був
скомпільований, тобто збірки, при цьому не на рівні сирцевого тексту, що
відбувається у тій же С. Перед стартом збірки в середовищі екзекуції (CLR),
байт-код стає вбудованим в даному середовищі JIT-компілятором напряму у
машинні коди потрібного процесора.

Потрібно замітити, що перший із JIT-компіляторів, які використовуються для


Java, насправді був теж придуманий фірмою Microsoft. Та технологія динамічної
компіляції, якою користуються зараз досягла можливостей, коли вона може
досягти одного рівня швидкодії разом із звичайними статичними компіляторами,
як в С++ чи С. А сама швидкодія зазвичай залежить лише від якості компілятора.
30

3.4 Вибір середовища розробки


Microsoft Visual Studio являє собою серидовище розробки від компанії
Microsoft. Дане серидовище використовується з ціллю розробки різного роду
програм, мобільних застосунків та веб-сайтів. VS користується платформами
Microsoft з ціллю розробки ПЗ, такого як API Windows, Windows Forms,
Foundation Presentation Foundation, Windows Store і Microsoft Silverlight. Подібне
серидовеще може користуватись керованим кодом і придумувати свій, власний
код.

VS вміщає в себе, підтримуючий IntelliSense редактор коду, крім цього він


підтримує рефакторинг коду. Наголаджувач, який є інтегрованим працює в якості
налагоджувача і на рівні джерела, і на рівні машини. Іншого роду інтегровані
інструменти включають, наприклад, кодовий профілер чи конструктор з ціллю
побудови програм GUI, також включає дизайнер класів та дизайнер логічної
структури БД. Він може приймати різного роду плагіни, що покращують рівень
функціональності на більшості рівнів – включаючи, наприклад, додавання
підтримки для систем управління джерелами (наприклад, Subversion і Git) та
додавання різного роду наборів нових інструментів, наприклад редакторів та
візуальних дизайнерів для мов, які мають відповідність до дому, чи
інструментних наборів для іншого роду аспектів розробки ПЗ життєвий цикл
(таких як Azure DevOps: Team Explorer).

VS підтримує близько 36 різних мов кодингу та дає дозвіл редактору коду і


тестеру підтримувати (різною мірою) майже будь-яку мову програмування, якщо
існують такі послуги, які залежить від цієї мови. Вбудовані мови включають C, C
++, C ++ / CLI, Visual Basic .NET, C #, F #, JavaScript, TypeScript, XML, XSLT,
HTML та CSS. Підтримка інших мов, таких як Python, Ruby, Node.js та M в тому
числі, доступна за допомогою плагінів. Java (і J #) колись підтримувались. На
даний момент підтримується версія Visual Studio 2019 .
31

РОЗДІЛ 4. РОЗРОБКА СТРУКТУРИ ТА АЛГОРИТМІВ РОБОТИ


СИСТЕМИ

4.1. Побудова Use-case діаграми

Діаграма прецедентів має вигляд графу можливих способів використання, в


який входить множина агентів(акторів), прецедентів(можливих способів
застосування), замкнутої системи у вигляді прямокутника, яка включає в себе усі
прецеденти, асоціацій між способами застосування та агентами, різних типів
відносин між прецедентами та узагальнюючих відношень між агентами. Подібні
діаграми показують елементи моделі можливих варіантів експлуатації системи.
Ідея діаграми прецедентів наступна: створена система представлена в виді
множини сутностей чи агентів, які взаємодіють із системою а допомогою
використання прецедентів. Варіант використання описує послугу в системі, якою
користується агент. Тобто, кожен прецедент являє собою конкретний набір дій,
які система виконує за запитами агента. Існує певний набір стандартних, для
мови UML, видів відношень між агентами та прецедентами: асоціація,
виключення, узагальнення та розширення.

Рис 4.1. Use-case діаграма


32

На рис. 4.1. зображена діаграма прецедентів для імітаційної моделі вибору


елементної бази синтезу засобів нейромережевого захисту даних.
Агенти:
1. Користувач
2. Експерт
3. База даних
Прецеденти:
1. Знайти оптимальну елементну базу. За допомогою імітаційної моделі,
користувач може знайти оптимальну елементну базу для синтезу засобів
нейромережевого захисту даних. Основний прецедент, який відповідає
функції системи.
2. Отримати інформацію про елементи. Для вибору оптимальної елементної
бази необхідно отримати перелік всіх можливих елементів. Множину всіх
елементів надає база даних.
3. Внести обмеження пошуку. Мінімальні критерії для необхідної елементної
бази вводяться, як множина достатніх критеріїв для оптимальної.
4. Провести експертну оцінку. Експерти оцінюють важливість кожного
критерію, що необхідно для їхнього порівняння. Кількість можливих
експертів необмежена.
5. Отримати результат. Після обчислення оптимальних варіантів елементної
бази, користувач може отримати інформацію про них.
6. Висвітлити помилку. У разі некоректного використання програми, система
може висвітлити помилку, вказавши на це користувачу. Цей прецедент є
виключенням.

4.2 Побудова діаграми діяльності

Діаграма діяльності – візуалізація діяльностей у виді графу, який подається у


виді безлічі станів скінченного автомату, вершинами графа являються певні дії, а
завершення дій, відповідно, ініціює перехід мі ж ними. На рис. 4.2 зображено
33

діаграму діяльності імітаційної моделі вибору елементної бази синтезу засобів


нейромережевого захисту даних.

Рис. 4.2. Діаграма діяльності для вибору елементної бази


Дії:
 Відобразити початкову форму. Додаток відображає початкову форму з
полями, в які можна внести мінімальні критерії, можливість продовження
та виходу із додатку.
 Внести значення мінімальних критеріїв. Користувач вносить параметри
мінімальних характеристик елементів, які будуть достатньою умовою для
оптимальності елементу в якості частини елементної бази.
34

 Відкрити другу форму. Додаток відкриває другу форму з можливістю


додати нову експертну оцінку або перейти на наступну форму
 Внести нову експертну оцінку. Експерт оцінює кожен параметр по
вагомості для синтезу засобів нейромережевого захисту даних в рельному
часі.
 Знайти оптимальну елементну базу. Програма знаходить оптимальну
елементну базу, використовуючи агреговану оцінку експертів та нормовані
критерії ефективності.
 Вивести результат на дисплей. Додаток виводить оптимальну елементну
базу на дисплей.

4.3 Побудова моделей бізнес-процесів за допомогою діаграм IDEF0

Однією з найпростіших та найдоступніших для моделювання являється нотація


IDEF0. Невелика кількість можливих елементів, в поєднанні з простотою
створення кожної моделі дозволяє цій нотації бути зручною навіть для
початківців у справі бізнес аналітики. Для моделювання використовують всього
лиш стрілки, які символізують передачу даних між функціями та блоки, які
являються функціями. Завдяки сукупності функцій і переданих даних, можна
описати всю модель з достатньою деталізацією для застосування та аналізу.
Найбільш популярна на сьогоднішній день нотація для моделей бізнес-процесів
базується на методології структурного аналізу SADT. Методологія IDEF0 [15] –
являється набором методів які допомагають створити функціональну модель та
відобразити функціональні особливості системи та її структуру, а також показати
потоки інформації та об’єктів, які відбуваються між цими функціями. Бізнес-
процеси малюються в виді прямокутника в IDEF0, а зв’язки між ними та
середовищем подаються у формі стрілок. В цій нотації існує можливість
декомпозиції – розділення процесу на множину підпроцесів, що дозволяє
35

створювати ієрархічні функціональні структури. Виділяються чотири види


стрілок в залежності від функцій: вихід, управління, механізм та вхід.
Основним принципом створення IDEF0 моделі є декомпозиція. Декомпозиція –
являє собою деталізацію функцій діаграми верхнього рівня на діаграмах
нижнього рівня. Принцип декомпозиції дає змогу послідовного описання всіх
процесів в організації, від верхнього рівня до робіт, які відбуваються на
нижньому рівні.
Структурно першою та основною діаграмою в IDEF0 є контекстна діаграма, яка
носить назву А-0. Діграма представляє собою один функціональний блок, який
описує всю організацію та множину стрілок, які мають різний функціонал, та
відображають інтеракції з навколишнім середовищем(вихід, управління,
механізм, вхід).
Для кращого відображення та уточнення і деталізації процесів і потоків даних
між ними, контекстна діаграма може бути розкладена в дочірню. Дочірня
діаграма, в сою чергу, теж може бути розкладена в нову дочірню діаграму і так
далі для досягнення необхідної глибини, доки не буде отримана ієрархічна
система з необхідною деталізацією. Потрібно відмітити, що, кожна дочірня
діаграма мусить деталізувати тільки функції, які розташовані у батьківській
діаграмі, уточнюючи процеси батьківської діаграми.
Таким чином, у моделі повинна бути присутня лише одна контекстна діаграма.
Функціональні блоки на діаграмі повинні розташовуватись по діагоналі відносно
один одного, починаючи від верхнього лівого і до правого нижнього кутів. У
лівому верхньому кутку потрібно розташовувати блоки, які мають з найбільший
вплив на інші. Оптимальна кількість блоків на дочірніх діаграмах складає від
трьох до семи. Більша кількість ускладнює розуміння моделі. Якщо кількість
блоків виходить більше семи, то деякі блоки функцій необхідно відобразити у
виді одного блоку та декомпозувати цей блок для деталізції. Для проектування
системи було використано AllFusion Process Modeler 7 - це інструмент, за
допомогою якого можна моделювати, аналізувати, докоментувати та редагувати
36

бізнес - процеси. Зручно використовувати AllFusion PM [16] для графічного


подання бізнес - процесів.

З метою функціонального моделювання та створення моделей головних бізнес-


процесів, було використано методологію IDEF0.

Контекстна діаграма головного бізнес-процесу імітаційної моделі вибору


елементної бази зображена на Рис. 4.3. Ця діаграма описує основний напрямок
діяльності спроектованої системи.

Рис. 4.3. Контекстна діаграма системи


На Рис. 4.3. висвітлено IDEF0 діаграму функціонування імітаційної моделі
вибору елементної бази. В систему, входить множина мінімальних критеріїв
вибору, інформація про елементи та експертна оцінка значимості критеріїв.
Інструментом постає база даних, а управління відбувається завдяки експертним
навичкам, алгоритмам пошуку оптимальної елементної бази та системним
вимогам. На виході ми отримуємо інформація про оптимальну елементну базу.

Для деталізації процесів та збільшення якості подачі необхідно зробити


декомпозиції. Декомпозиція першого рівня зображена на рис 4.4, декомпозиція
другого рівня зображена на рис 4.5
37

Рис. 4.4. Діаграма декомпозиції першого рівня


Діаграма складається із трьох функцій:

 Отримання даних про елементи та внесення обмежень пошуку. В функцію


надходить множина критерїв вибору, які визначаються за допомогою
системних вимог, та інформація про елементи з бази даних. Функція
відправляє множину всіх елементів, які відповідають мінімальним вимогам в
наступну функцію.
 Оцінка вагомості критеріїв експертами. В функцію надходить множина всіх
елементів, які відповідають мінімальним вимогам та експертна оцінка
значимості критеріїв, користуючись експертними навичками. Функція
відправляє значення вагових коефіцієнтів та множину всіх елементів, які
відповідають вимогам в наступну функцію.
 Пошук оптимальної елементної бази. В функцію надходить значення вагових
коефіцієнтів та множина всіх елементів, які відповідають вимогам, за
допомогою алгоритмів пошуку оптимальної елементної бази, на виході ми
отримуємо інформацію про оптимальну елементну базу.
38

Рис. 4.4. Діаграма декомпозиції першого рівня


Діаграма являється декомпозицією «Пошук елементної бази» та складається із
трьох функцій:

 Обчислення інтегрованої оцінки елементів. В функцію надходять значення


вагових коефіцієнтів та множина всіх достатніх елементів, за допомогою
пошуку оптимальної бази ми знаходимо інтегровану оцінку елементів.
Функція відправляє інтегровану оцінку та вагові коефіцієнти в наступну
функцію.
 Пошук оптимальної елементної бази на основі інтегрованої оцінки та значень
вагових коефіцієнтів. В функцію надходить інтегрована оцінка та вагові
коефіцієнти, на основі яких, користуючись алгоритмами функція знаходить
оптимальну елементну базу. Функція відправляє множину оптимальних
елементів в наступну функцію.
 Візуалізація оптимальної елементної бази на дисплеї. В функцію надходить
множина оптимальних елементів, яка візуалізується на дисплеї, в результаті
чого, користувач отримує інформацію про оптимальну елементну базу на
виході з функції.
39

4.4. Проектування бази даних

В якості програмного забезпечення для баз даних, було використано Microsoft


SQL Server. Він являє собою застосунок для комплексного  управління
множиною баз даних, який розробляється і підтримується корпорацією Microsoft.
В якості серверу даних, він допомагає виконувати основні функції для надання
даних у відповідь на запити інших застосунків та користувачів, які функціонують
на в рамках того ж сервера або у тій же мережі, та їхнє збереження.

Для запитів використовують мову Transact-SQL, ця мова була створена і


використовується спільними зусиллями Microsoft і  Sybase, та являється одною з
основних реалізацій сучасних вимог ANSI / ISO на рахунок структурованої
декларативної мови SQL та усіх її розширень.

Маючи широку функціональність, сервер може використовуватись і для не дуже


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

Цей сервер, при цьому, підтримує Open Database Connectivity (ODBC)—, що


являє собою інтерфейс для взаємодії різних програм з сервером БД. Сучасний
SQL Server 2018 дозволяє користувачу можливість підключатися за допомогою
різного роду веб-сервер-сервісів, які користуються протоколом SOAP. Це надає
змогу клієнтським програмам, які не призначені для експлуатації в
системі Windows, незалежно від платформи з'єднуватися з сервером. Крім цього,
Microsoft випустила сертифікований драйвер JDBC, який надає змогу
застосункам, що використовують Java (наприклад IBM Websphere) можливість
з’єднання програми із Microsoft SQL Server починаючи з версії 2005 року.

SQL Server, при цьому, підтримує, як кластеризацію баз даних так і їхню
дзеркаляцію. Кластером у сервері SQL—є множина серверів із аналогічною
40

конфігурацією; подібна схема допомагає з оптимізацією робочого навантаження,


через його розподілення між кількома різними серверами. Всі ці сервери можуть
мати лише одну можливу адресу, а необхідні дані розподіляються, відповідно, за
різними IP-адресами усіх машин в системі кластеру протягом робочого циклу.
Також у разі помилки, яка може виражатись у відмові або збоях у роботі у
одному з можливих серверів у кластері, доступна функція автоматичного
перенесення усього навантаження в інший системний сервер.

В схемі бази даних елементів, яка зоображена на рис 4.5 можна виділити дві
головні сутності, які є повністю логічно незалежними одна від одної: «SOCs»
(системи на кристалі), «Microcontrs» (мікроконтроллери).

Рис. 4.5. Схема бази даних елементів


Обидві сутності мають по шість атрибутів:
SOCs:
 Id. Первинний ключ.
 RAM. Оперативна пам’ять системи на кристалі.
 Frequency. Частота процесора системи на кристалі.
 Flash. Флеш-пам’ять системи на кристалі.
 Price. Ринкова ціна системи на кристалі.
 Name. Назва моделі системи на кристалі.
Microcontrs:
41

 Id. Первинний ключ


 Frequency. Частота мікроконтролера.
 Voltage. Мінімальний вольтаж для роботи мікроконтролера.
 Flash. Флеш-пам’ять мікроконтролера.
 Price. Ринкова ціна мікроконтролера.
 Name. Назва моделі мікроконтролера.

Обидві сутності являються повністю логічно-незалежними і надають інформацію


про елементи необхідні для пошуку оптимальної елементної бази.

4.4. Блок-схеми алгоритмів

Вибір елементної бази. Із множини елементної бази, що відповідає вимогам


технічного завдання, вибирається та елемента база інтегрована оцінка

E ІКкj max E ІКзj max E max


ефективності якої є найбільшими , та ІКдj .

Запропонований метод дає змогу автоматизувати вибір найоптимального


варіанту елементної бази для синтезу компонент системи нейромережевого
захисту даних згідно з вимогами технічного завдання. Особливістю розробленого
методу є врахування вимог конкретного застосування, що забезпечує вибір
найефективнішої елементної бази для синтезу складових системи
нейромережевого захисту даних.

На практиці зручніш для інтегральної оцінки ефективності її елементної


бази, використати мультиплікативну згортку, що дає змогу усунути компенсацію
одних часткових критеріїв енергоефективності за рахунок інших, або максімінну
чи мінімаксну форми згортки для обчислення інтегральної оцінки ефективності.

Відповідно, вирази (4.4.1 – 4.4.3) необхідно записати у наступній формі:

EІЕлкj = λП ЕнПj * λQ ЕнQj * λP ЕнPj * λC ЕнCj * λM ЕнMj * λS ЕнSj * λH ЕнHj


, (4.4.1)
42

E ІЕлзj = λV Е нVj * λP Е нPj * λC ЕнCj * λM Е нMj * λS ЕнSj *λH Е нHj


, (4.4.2)

E ІЕлдj = λD Е нDj * λG Е нGj * λC Е нCj * λM Е нMj * λS Е нSj * λH Е нHj


. (4.4.3)

Для загального випадку інтегральна оцінка, яка визначається виразом для


мультиплікативної згортки має визначатися наступним виразом:

n
maxEІЕБj =  λi ЕнЕлi
i 1 На рис 4.6 зоображений алготрим вводу даних та створення
масиву елементів, які відповідають мінімальним критеріям.

Рис. 4.6. Алгоритм отримання масиву елементів, які відповідають мінімальним


критеріям
43

При запуску створюється об’єкт класу ElemBase, який включає в себе масиви класів
елементів, після чого користувач вносить обмеження ElemCheck, а застосунок
підключається до бази даних. Дані про елементи з БД порівнюються із ElemCheck, і
у випадку, якщо елемент із БД більший – він заноситься у ElemBase.

На рис 4.7 зоображений алготрим отримання коефіцієнтів експертної оцінки

Рис. 4.6. Алгоритм отримання масиву елементів, які відповідають мінімальним


критеріям
Після старту, новий експерт вносить свою оцінку ваги критеріїв, після чого вона
заноситься в масив оцінок, якщо при введені не було помилок. Процес
повторяється, поки експерти не закінчаться, після чого в циклі рахуються
44

коефіцієнти ваги кожного атрибуту за допомогою ділення агрегатної оцінки


даного атрибуту поділеної на агрегатну оцінку усіх інших елементів, кожен з цих
коефіцієнтів заноситься у масив L.

На рис 4.8 зоображено алготрим пошуку оптимального елемента

Рис. 4.8. Алгоритм пошуку оптимального елемента


На старті ми маємо масив обмежень Elemcheck, масив елементів Elembase та
масив вагових коефіцієнтів L, після чого, відбувається циклічне формування
масиву Final arr, елементами якого буде інтегральна оцінка кожного елементу,
яка вираховується сумою добутків нормованих оцінок, які є відношенням
значення атрибута конкретного елементу до його мінімального можливого
значення, та вагового коефіцієнту цього атрибуту. Після чого, за допомогою
подвійного циклу ми знаходимо елемент масиву із найбільшим значеннм
інтегральної оцінки, елемент, який відповідає цій оцінці – буде оптимальним
елементом.
45

РОЗДІЛ 5. РОЗРОБКА ПРОГРАМНОГО РІШЕННЯ

5.1. Структура програмного продукту (діаграма компонентів)

Основою для того, щоб розпочати розробку системи є чітке розуміння усіх
компонентів, з яких ця система мала б складатись, та проведення чіткої
демаркації між ними. Користуючись моїм застосунком, користувач системи буде
з програмою за допомогою внесення достатніх критеріїв для пошуку елементної
бази та отримуватиме на виході інформацію про оптимальну базу. Застосунок
буде робити запит в базу даних для отримання даних про можливі елементи та
запит до експертів, та отримувати від них множину експертних оцінок, яку сам
застосунок перетворить на агрегатну оцінку вагових коефіцієнтів, після чого,
застосунок вирахує інтегровану оцінку елементів та знайде оптимальні елементи.
Множину оптимальних елементів, застосунок виведе на дисплей, таким чином
надаючи інформацію користувачу. Для опису всіх цих процесів ми будуємо
діаграму компонентів, яка зображена на рис. 5.1.

Рис. 5.1. Діаграма компонентів


Актори:

 Користувач. Являється користувачем застосунку.


46

 Експерт. Людина, яка володіє необхідними експертними навичками для


оцінки.

Сутності:

 Застосунок. Основна сутність, представляє собою програму, яка знаходить


оптимальну елементну базу для синтезу засобів нейромережевого захисту
даних в реальному часі.
 База даних. Являє собою базу даних усіх елементів, з яких формується
елементна база.

5.2. Опис використаних сторонніх бібліотек і модулів

Для розробки було використано середовище Microsoft Visual Studio, інтерфейс


Windows Forms та мова програмування С#. Для оперування модулями та
бібліотеками було використано систему керування пакетами NuGet, вшиту в
функціонал Visual Studio.

Єдиним стороннім модулем, який було використано при розробці застосунку був
Entity Framework 6.

Рис. 5.2. модуль Entity Framework 6, відкритий за допомогою NuGet

Entity Framework - це сукупність технологій в ADO.NET, які підтримують


розробку програмно-орієнтованих програм. Архітектори та розробники повинні
моделювати сутності, відносини та логіку бізнес-проблем, які вони вирішують, а
також вони повинні працювати з двигунами даних, які використовуються для
зберігання та отримання даних. Дані можуть охоплювати декілька систем
47

зберігання даних, кожна з яких має власні протоколи; навіть додатки, які
працюють із єдиною системою зберігання, повинні співвідносити вимоги
системи зберігання даних з вимогами написання ефективного та бездоганного
коду програми.

Entity Framework дозволяє розробникам працювати з даними у вигляді об'єктів і


властивостей, що стосуються домену, таких як клієнти та адреси клієнтів, без
необхідності стосуватися самих базових таблиць та стовпців бази даних, де
зберігаються вказані дані. Користуючись Entity Framework девелопери мають
змогу працювати з більш високим рівнем абстрагування, під час обробки даних, і
можуть розробляти та підтримувати орієнтовані на дані додатки з менш
громіздким кодом, ніж той, який використовується у традиційних програмах. [4]

5.2. Опис використаних сторонніх бібліотек і модулів

Структуру програмних модулів було зображено на Рис. 5.3.

Рис. 5.3. Структура програмних модулів системи

Програмний продукт складається з таких внутрішніх модулів:

 Form1
48

 Form2
 Expert
 End
 ElemBase
 SOC
 ProjectDbContext
 Microcontr
 ElemCheck

Модуль Form1 являється стартовою формую і містить в собі можливість


переходу до Form 2, а також поля для внесення мінімальних критеріїв пошуку,
можливість завершити роботу застосунку і інструкції до застосування.

Модуль Form2 являється перехідною формою, яка відкривається через перехід


від Form1 та Expert. Модуль містить у собі можливість переходу до Expert та End,
можливість завершити роботу застосунку а також інструкції до застосування.

Модуль Expert є перехідною формою, яка відкривається із Form2 та викликає


Form2. Функція модулю полягає в отримані експертної оцінки, кількість яких
необмежена. Всі ці оцінки записуються в масив і перетворюються в агрегатну
оцінку вагомості критеріїв.

Модуль End є кінцевою формую, яка відкривається із Form2. Він дозволяє


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

Модуль SOC являється описом однойменного класу, що відповідає системам на


кристалі і складається із п’яти змінних типу int: id, RAM, Frequency, Flash, Price
та змінною типу string: Name. Атрибути класу відповідають атрибутам сутності
SOCs в БД.
49

Модуль Microcontr являється описом однойменного класу, що відповідає


мікроконтролерам і складається із п’яти змінних типу int: id, Voltage, Frequency,
Flash, Price та змінною типу string: Name. Атрибути класу відповідають
атрибутам сутності Microcontrs в БД.

Модуль ElemBase являється описом однойменного класу, що відповідає множині


елементів. Клас складається із двох масивів класів SOC і Microcontr. Клас
застосовується для створення об’єктів, що містять набір елементів з яких
потрібно вибрати оптимальну елементну базу.

Модуль ElemCheck є описом однойменного класу, який містить два атрибути


класів SOC та Microcontr. Клас застосовується для перенесення елементів в
ElemBase.

Модуль ElemCheck є описом однойменного класу, який містить два атрибути


класів SOC та Microcontr. Клас застосовується для перенесення елементів в
ElemBase.

Модуль ProjectDbContext застосовується для зв’язку з сервером бази даних. Він


являє собою клас, який дозволяє отримувати елементи з БД і є дочірнім класом
DbContext.

5.4. Розробка та опис інтерфейсу користувача

Розробка користувацького інтерфейсу являє собою використання


заготовлених графічних елементів у середовищі Visual Studio у виді Windows
Forms. До множини подібних елементів належать списки, кнопки, зображення,
текстові поля, меню і т. д.

Під час розробки інтерфейсу користувача було прийнято рішення прив’язати


його до окремих модулей системи, які являють собою форми: Form1, Form2,
Expert та End. На рис. 5.4 зображено Form1.
50

Рис. 5.4. Form1

Це перша частина інтерфейсу системи. Для створення цієї форми було


використано наступні елементи:

 Button. Дві кнопки: «input», яка викликає наступну форму і підтверджує


введені дані, та «exit», яка закриває застосунок.
 Textbox. Вісім полів, в які необхідно занести інформацію про мінімальні
критерії вибору елементної бази
 Label. Декілька надписів, які є або інструкціями, або вказівниками на те, що
потрібно вписати в Textbox.
51

Рис. 5.5. Form2

В Form2 можна перейти за допомогою кнопки «input» із Form1. Для створення


цієї форми було використано наступні елементи:

 Button. Три кнопки: «new expert», яка викликає форму Expert і закриває
дану форму, «exit», яка закриває застосунок. та «Next», яка викликає форму
End та надсилає туди усі необхідні дані.
 Label. Три надписи, які є інструкціями.

Рис. 5.6. Expert


52

В Expert можна перейти за допомогою кнопки «New Expert» із Form2. Для


створення цієї форми було використано наступні елементи:

 Button. Одна кнопка: «Done», яка викликає Form2.та надсилає туди дані про
експертну оцінку.
 Textbox. Вісім полів, в які необхідно занести інформацію про вагу
критеріїв(Від 1 до 4 в порядку зростання ваги)
 Label. Декілька надписів, які є або інструкціями, або вказівниками на те, що
потрібно вписати в Textbox.

Рис. 5.7. End

В End можна перейти за допомогою кнопки «Next» із Form2. Для створення цієї
форми було використано наступні елементи:

 Button. Дві кнопки: «Show results», яка виводить на екран назви та


характеристики оптимальних елементів та «end», яка закриває застосунок
 Textbox. Два поля, які після використання «Show results» видають назви
оптимальних елементів.
 Label. Декілька надписів, які вказують на характеристики та виводять
значення цих характеристик після використання «Show results»
53

5.5. Опис альтернативних підходів, які розглядались під час розробки

На етапі проектування системи розглядалась альтернативні можливі елементи в


якості елементів для елементної бази, альтернатива не була прийнята через те, що
вибрані елементи здались більш підходящими. Також розглядались альтернативні
можливості дизайну форм, але вибрані мною варіанти дизайну виявились одночасно
практичними, через включення туди інструкцій, та простими в розробці.

5.6. Опис проблем і нестандартних ситуацій, які виникали під час розробки

Під час розробки було знайдено декілька проблем:

Проблеми з переходом між формами


Під час розробки було виявлено, що при переході між формами, програма не
передає значення параметрів із одної форми в іншу. З ціллю усунення цієї
проблеми було змінено модифікатори доступу цих параметрів на public.

Розрахунок оптимальної бази


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

Помилка сумісності класу із застосунку з сутністю в БД


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

РОЗДІЛ 6. ЕКПЕРИМЕНТАЛЬНА ЧАСТИНА

6.1. Інструкції з використання для Адміністратора

Для встановлення системи на необхідно завантажити папку з файлами


програми на свій ПК.

Для синхронізації застосунку з базою даних, необхідно мати створену БД на


Microsoft SQL Server та вписати адресу, яка вказана на Рис 6.2. в файл App.config,
який показано на Рис. 6.1.

Рис. 6.1. App.config

Рис. 6.2. Connect to server


55

В десятий рядок App.config необхідно вписати Server name із вікна Connect to


Server і назву БД із Object Explorer, який показана на Рис 6.3.

Рис. 6.3. Object Explorer

6.2. Інструкції з використання для Користувача

Для роботи з імітаційною моделлю вибору елементної бази, користувачу


необхідно:

 Завантажити папку з файлами програми на свій ПК.


 Відкрити Bak.exe, як це вказано на рис 6.4 .

Рис. 6.4. Запуск Bak.exe

 Внести інформацію про обмеження пошуку, як це вказано на рис 6.5.


56

Рис. 6.5. Внесення інформації про обмеження вибірки

 Натиснути кнопку «Input» та при переході на наступну форму натиснути


«New expert», як це вказано на Рис. 6.6.

Рис. 6.6. Вибір «New expert» в Form2

 З допомогою експерта внести пріоритетність атрибутів , як це вказано на


Рис. 6.7, та настиснути «Done».
57

Рис. 6.7. Експертна оцінка

 Повторити два попередні кроки відповідно до кількості експертів.


 Натиснути «Next» в Form2, після того, як усі експерти виставлять свої
оцінки.
 Натиснути «Show results» і отримати інформацію про оптимальну
елементну базу, як це показано на Рис 6.8.

Рис. 6.8. Результат роботи програми


58

6.3. Інструкції з використання для Програміста

Для взаємодії з системою в якості програміста з ціллю подальшої розробки та


написання нового функціоналу, девелоперу потрібно всього-лиш відкрити проект
з програмним кодом на комп’ютері, із встановленим середовищем Visual Sudio.
Після цього, розробник зможе користуватись кодом та взаємодіяти з системою в
повному обсязі. Приклад відкривання проекту за допомогою Visual Studio 19
зображено на рис. 6.4.

Рис. 6.9. Відкриття проекту в Visual Studio

6.4. Вимоги до апаратного забезпечення

Для коректного функціонування системи з середньою кількістю 50 користува-


чів сервер має відповідати мінімальним вимогам:

 Процесор Intel Core i3 з тактовою частотою 2.0 GHz


 Оперативна пам'ять об'ємом мінімум 4GB класу
 DDR3 Вільного місця на жорсткому диску від 500 mb
 Встановлену операційну систему Windows
 Мінімальна швидкість інтернет з’єднання – 512 Kbit/s
59

6.5. Тестування

Тестування – одна із основних стадій розробки ПЗ. В сучасних компаніях, будь-


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

Тестування ПЗ – являє собою перевірку того, наскільки програмне забезпечення


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

Тестування ПЗ охоплює:

 То, наскілки кінцевий продукт відповідає вимогам, які були поставлені при
проектуванні.
 Наскільки вихідні дані відповідають тим, які мали би бути при коректній
роботі програми.
 Оптимальність застосунку в плані швидкодії
 Практичність в застосуванні, зручність інтерфейсу.
 Якість синхронізації програми з допоміжним ПЗ, операційною системою,
тощо
 Відповідність продукту запитам покупця

Через те, що множина усіх можливих тестів дуже велика, навіть для, здавалось
би, простих застосунків, існує стратегія таргетування тестів, яка полягає в
проведенні усіх можливих тестів з оптимізацією відносно часу та ресурсів, щоб
провести всі можливі тести з урахуванням наявного часу та ресурсів. В
результаті, тестування виглядає, як звичайне використання програми з ціллю
знайти помилки та баги.

Тестування, в свою чергу, надає інформацію про стан застосунку, його якість,
практичність та відповідність вимогам.
60

Починати тестування можна зразу, як тільки у тестера є доступ до початкового


коду програми. Місце тестування в порядку розробки пз залежить від
конкретного процесу розробки, який було вибрати. Наприклад, при методології
гнучкої розробки, тестування відбувається одночасно із розробкою, а при більш
лінійних процесах – після написання всього коду і отримання системних вимог.

Існує велика кількість методологій та стратегій тестування, які можуть


класифікуватись в залежності від різних параметрів, таких як ступінь
автоматизації, рівень підготовленості до тестування, знання системи, ступінь
ізольованості компонентів, час проведення тестування та багато інших.

Відповідно існують декілька рівнів тестування:

 Модульне тестування. Являє собою процес розробки програмного


забезпечення, який включає в себе множину синхронізованих один з одним
застосувань широкого спектра з ціллю знаходження дефектів та для
пошуку стратегій з ціллю зменшення можливих ризиків розробки ПЗ, а
також часу та грошових витрат. Виконується воно самим розробником, або
спеціалістом-тестувальником під час будівельного етапу розробки БД. Ціль
модульного тестування полягає в усуненні помилок при проектуванні. За
допомогою цієї стратегії, виробник матиме змогу підвищити якість ПЗ до
відповідного нормам. Методи модульного тестування можуть бути різними
і залежать від організації розробки, тестування може складатись із
статичного аналізу коду та потоків даних, метричного аналізу, експертних
оцінок коду програми, та іншими методами, які використовуються для
перевірки програмного забезпечення.

 Інтеграційне тестування. Являє собою тип тестування програмного


забезпечення, та виконує перевірку інтерфейсів та компонентів, які
відносяться до дизайну застосунку. Інтеграція компонентів може
проводитись ітеративно, або одноразово. Ціллю ітераційного тестування є
пошук проблем в інтерфейсах та компонентах програми, які до них
61

належать. Тестування закінчується, коли логічно зв’язані групи елементів


інтерфейсу починають злагоджено працювати в рамках системи.

 Системне тестування. Являється типом тестування програмного


забезпечення, який перевіряє застосунок на відповідність всім вимогам.
Крім цього, такий рівень тестування гарантує, що застосунок працює саме
так, як було заплановано, а також захищена від збоїв, які можуть привести
її у неробочий стан. Тестування робить перевірку системи на критерії
можливості інтеграції в яку-небуть зовнішню систему, як це зазначено у
вимогах системи.

 Приймальне тестування. Даний процес тестування звіряє те, наскільки


система відповідає вимогам і має на меті визначити рівень задовільності
системи критеріям замовника, або спеціально уповноваженої особи.: При
такому тестуванні, тестер керується набором типових випадків для
тестуванні та окремих сценаріїв, які розроблені на основі вимог до
тестованого додатку. Щоб було прийняте рішення про проведення такого
рівня тестування, продукт має відповідати усім необхідним вимогам
попередніх рівнів тестування, а замовник ознайомлений з документом, де
описана процедура тестування. Тестування закінчується при прийнятті
замовником рішення про внесення правок, або випуску застосунку.

Оскільки тестером в нашому випадку постає розробник, а спеціальні програми


для тестування відсутні, то дане тестування буде ручним тестуванням білої
скриньки.
62

Рис. 6.10. Ввід букв в поля для чисел в формі Form1

Однією із основних та найбільш очевидних перевірок можна назвати тест полів


вводу інформації в виді числових змінних на інші значення. Тест пройшов
успішно, оскольки в програмі заздалегідь були продумані міри для протидії
подібним проблемам. Програма видала вікно з поясненням щодо проблеми, як ми
можемо побачити на рис 6.10.

Рис. 6.11. Пусті поля в формі Form1

Не менш важливою є перевірка на випадок, коли поля залишились пустими. В


цьому випадку, тест також пройшов успішно, оскольки в програмі заздалегідь
63

були продумані міри для протидії цій проблемі. Програма видала вікно з
поясненням щодо проблеми, як ми можемо побачити на рис 6.11.

Рис. 6.12. Ввід букв в поля для чисел при експертній оцінці

На Рис 6.12 показано, як програма реагує на введення нечислових знаків в форму


Expert. Програма викликає вікно з поясненнями.

Рис. 6.13. Пусті поля в формі Expert

На Рис 6.13 показано, як програма реагує на натиснення кнопки «Done» без


заповнення хочаб одного поля в формі Expert. Програма викликає вікно з
поясненнями.
64

Рис. 6.14. Некогерентні числа в формі Expert

На Рис 6.14 показано, як програма реагує на натиснення кнопки «Done», коли


цифри в полях некогерентні(Користувачу необхідно внести числа від 1 до 4 для
кожного елемента). Програма викликає вікно з поясненнями.

Рис. 6.15. Результат при критеріях, які не задовільняє ні один елемент

Останньою перевіркою, є тест застосунку на результат в тому випадку, коли для


синтезу засобів нейромережевого захисту даних не підходить ні один із
65

елементів. В цьому випадку, програма вказує, що ні один із елементів не є


оптимальним(а значить і достатнім), що ми можемо бачити на Рис. 6.15.
66

РОЗДІЛ 7. ЕКОНОМІЧНА ЧАСТИНА

7.1. Економічна характеристика імітаційної моделі вибору елементної бази


для синтезу засобів нейромережевого захисту даних в реальному часі

Метою моєї бакалаврської є розробка імітаційної моделі вибору оптимальної


елементної бази для синтезу засобів нейромережевого захисту даних в реальному
часі з реалізацією у виді застосунку.

Економічна доцільність мого проекту полягає в наступних пунктах:

 Ринок мікроконтролерів та систем на кристалі є одним із найбільш


конкретних в галузі електроніки та представляє широку пропозицію.
 Щорічно росте попит на захист інформації у різних галузях.
 Дослідження штучного інтелекту та нейромереж – одні з
найперспективніших в сучасних комп’ютерних науках.
 Нейромережеві системи захисту інформації стають все більш ефективними і
відносний попит на них росте порівняно з іншими
Множина цих пунктів вказує на високу актуальність розробки імітаційної
моделі вибору елементної бази для синтезу засобів нейромережевого захисту
даних в реальному часі

7.2. Інформаційне забезпечення та формування гіпотези щодо потреби у


розробці імітаційної моделі вибору елементної бази

Проблема захисту інформації: надійне забезпечення її збереження і


встановлення статусу використовування - є однією з найважливіших проблем
сучасності.

Цілями системи захисту інформації підприємства є:

 - запобігання витоку, розкраданню, втраті, спотворенню, підробці


інформації;

 - запобігання погрозам безпеці особи, підприємства, суспільства, держави;


67

 - запобігання несанкціонованим діям із знищення, модифікації,


спотворення, копіювання, блокування інформації;

 - запобігання іншим формам незаконного втручання в інформаційні


ресурси і системи, забезпечення правового режиму документованої інформації як
об'єкту власності;

 - захист конституційних прав громадян на збереження особистої таємниці і


конфіденційності персональних даних, наявних в інформаційних системах;

- збереження, конфіденційності документованої інформації відповідно до


законодавства.  
На сьогоднішній день пропонується безліч способів забезпечення безпеки
інформації, але не всі вони є ефективними. Відомо, що тільки «комплексна
система може гарантувати досягнення максимальної ефективності захисту
інформації, оскільки системність забезпечує необхідні складові захисту і
встановлює між ними логічний і технологічний зв'язок, а комплексність, що
вимагає повноти цих складових, всеосяжності захисту, забезпечує її надійність»

Предметною областю є імітаційна модель елементної бази для синтезу засобів


нейромережевого захисту даних в реальному часі, попит на яку росте з розвитком
досліджень штучного інтелекту в комп’ютерних науках. Все більшій кількості
компаній, які мають потребу в захисті інформації, стає вигідно використовувати
максимально інноваційні технології з використанням нейромереж, відповідно –
отримують необхідність вибрати оптимальну елементну базу для реалізації
нейромережевого захисту інформації.

Аналогів імітаційної моделі на ринку я не знайшов, отже продукт повністю


унікальний, що означитиме наявність високого попиту на продукт. Також одним
з визначних факторів для користувачів при користуванні моєю системою буде
простота у доступі до неї. Користувачу необхідно лише мати доступ до мережі
Інтернет та програму на ПК.
68

Проаналізувавши всі ці фактори, я дійшов до висновку, що розробка


імітаційної моделі є необхідною для користувачів, а отже доцільно буде її
розробити.

7.3. Оцінювання та аналіз факторів зовнішнього та внутрішнього середо-


вища

Зовнішні фактори оцінюються за шкалою [-5;5], де – 5 найбільший


негативний вплив, а оцінка +5 – позитивний. 0 демонструє, що фактор впливає
нейтрально.

Внутрішні фактори оцінюються за шкалою [0;5], 0 за цією шкалою показує


погано розвинутий, відсутній чи катастрофічний стан фактора внутрішнього се-
редовища, а оцінка 5 показує, що даний фактор має високий рівень розвинутості.

Сума вагомостей усіх факторів становить одиницю, тобто рівень вагомості


для кожного фактора визначається за допомогою коефіцієнтів. Зважений рівень
впливу факторів розраховується як добуток впливу фактора в балах та рівня
ваго-мості. Результати експертних оцінок впливу факторів зовнішнього
середовища на організацію показано у (табл. 7.1).

Таблиця 7.1

Середня Середня Зважений


Фактори експертна вагомість рівень впливу,
оцінка, бали факторів бали
1 2 3 4
Фактори зовнішнього
середовища
Споживачі 5 0,11 0,55
Постачальники 0 0,1 0
Конкуренти 4 0,1 0,4
69

Державні органи влади 0 0,05 0


Інфраструктура 2 0,06 0,12
Законодавчі акти -3 0,1 -0,3
Профспілки, партії та інші
0 0,05 0
громадські організації
Система економічних
0 0,06 0
відносин в державі
Організації-сусіди 0 0,01 0
Міжнародні події -1 0,01 -0,01
Міжнародне оточення 0 0,03 0
Науково-технічний
5 0,07 0,30
прогрес
Політичні обставини 0 0,06 0
1 2 3 4
Соціально-культурні
2 0,05 0,1
обставини
Рівень техніки та
5 0,04 0,20
технологій
Особливості міжнародних
0 0,02 0
економічних відносин
Стан економіки -4 0,08 -0,32
Загальна сума — 1 1,04
Фактори внутрішнього
   
середовища
Цілі 2 0,11 0,22
Структура 1 0,16 0,16
Завдання 3 0,07 0,21
70

Технологія 5 0,2 1
Працівники 2 0,21 0,42
Ресурси 2 0,25 0,50
Загальна сума — 1 2,51

Отже, з наведених результатів можна зробити висновок, що найбільший


негативний вплив на розробку помічника має стан економіки .

Якщо дивитись на фактори внутрішнього середовища, то низький рівень


розвинутості мають тільки фактори цілей і структури. Всі інші фактори мають
рівень розвитку від середнього до високого.

Проаналізувавши зважені рівні впливу факторів зовнінього та внутрінього се-


редовища, видно, що вони позитивно характеризують продукт. Обидва значення
рівнів впливу позитивні, а отже можна зробити висновок, що сформувалась
потреба у даному продукті.

7.4. Формування стратегічних альтернатив

7.4.1. Перша група стратегічних альтернатив

Поділ продукту на альтернативні стратегію розвиту залежить від наявності


аналогів та супутніх послуг.
71

Рис. 7.1. Перша група стратегічних альтернатив


Стратегія розробки нового програмного продукту характеризується
створенням абсолютно нового програмного забезпечення, яке дає змогу вирішити
ново-утворені потреби людини, суспільства, економіки тощо.

Стратегія розвитку існуючого програмного продукту означає модифікацію


програмного забезпечення, його якісних характеристик.

Стратегія розвитку існуючого програмного рішення з супутніми послугами


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

Стратегія нового продукту з супутніми послугами означає розроблення нового


програмного забезпечення та пропонування при його експлуатації додаткових по-
слуг.

7.4.2. Друга група стратегічних альтернатив

Поділ на альтернативні стратегії розвитку в цій групі відбувається завдяки


двом показникам: існування чи відсутність ринку і програмного продукту.
72

Рис. 7.2. Друга група стратегічних альтернатив


Стратегія глибокого проникнення продукту - загальна маркетингова стратегія;
полягає в знаходженні фірмою шляхів збільшення збуту своїх товарів, що
випускаються на вже освоєних ринках за допомогою більш агресивного маркетингу.
Така стратегія ефективна, коли ринок ще розширюється або ще не насичений. Слід
зазначити, що кожен ринок за обсягом має свій ліміт і якщо підприємство
прагнутиме розвиватись, то воно повинно використовувати інші запропоновані
стратегії.

Стратегія «розвиток ринку» спрямована на вже існуючий програмний продукт


і займається пошуком нових ринків збуту, а також розвитком системи продажів і
пошуків чогось нового в політиці збуту. Стратегія розвитку ринку є стратегією
екстенсивного зростання і пропонує компанії освоювати нові ринки для існуючих
програмних продуктів, і за рахунок залучення нової аудиторії до продукту
збільшити свій дохід і прибуток в довгостроковому періоді. Є стратегією
зростання з найбільшим потенціалом.

Стратегія «розвиток продукту» передбачає реалізацію нових програмних


продуктів на існуючих ринках, існуючим споживачам. При такій стратегії
інтенсивного зростання споживачі вже знайомі з брендом або основним товаром
компанії, вже є сформований імідж бренду або компанії. Основне джерело
зростання доходів і прибутку в стратегії розвитку товару - розширення товарних
ліній бренду і вихід в нові споживчі сегменти.

Стратегія «диверсифікації» втілюється за допомогою виходу на нові сфери


бізнесу. Вихід на нову сферу можна пояснити як розширення послуг, що
надаються, номенклатури товарів тощо. Дана стратегія є найбільш ризикованою
із запропонованих стратегій розвитку.
73

7.4.3. Вибір стратегії

З першої групи стратегічних альтернатив, для мене найкраще підходить


стратегія розробки нового продукту без супутніх послуг, оскільки мій продукт не
має аналогів, на ринку. При цьому, через високий попит на подібну продукцію,
шанс появи конкурентів дуже високий. Імітаційна модель вибору елементної бази
буде вирішувати нові проблеми у своїй предметній області – нейромережевому
захисті інформації в реальному часі. В зв’язку з цим планується завоювання
максимальної кількості цільової аудиторії за рахунок відсутності будь-яких
альтернатив та росту попиту.

З другої групи стратегічних альтернатив найбільше підходить стратегія розвиток


продукту - стратегія, яка дозволяє компанії реалізувати нові програмні продукти на
існуючих ринках. Сьогоднішній сегмент ринку послуг із захисту інформації стрімко
розвивається, а нейромережевий захист – одна із провідних галузей, що означає
високий попит на допоміжний продукт в виді моделі вибору елементної бази. В
умовах відсутності конкуренції на даний момент, але високому потенціалі її
виникнення, стратегія розвитку ринку виробництва стає відмінним інструментом
для управління ризиками. Створення нових продуктів на існуючому ринку тільки
збільшує конкуренцію, тим самим стимулює виробників покращувати свої
застосунки. Ризики з’являються з появою конкурентів з аналогічним
функціоналом на ринку. Отже, якщо вийде розробити якісний та недорогий
продукт, то вийде завоювати велику кількість користувачів і якщо підтримувати і
розвивати мій програмний продукт, то можна зайняти провідну нішу на, поки ще
свіжому, ринку.

7.5. Бюджетування

Бюджетування – комплексна система розрахунку кількості витрат, що


пов’язані з виготовленням та реалізацією дослідження, яке надає можливість
проаналізувати витрати та створення відповідних заходів, з метою підвищення
рентабельності виробництва.
74

Таблиця 7.2

Бюджет витратних матеріалів та комплектуючих виробів

Назва матеріалів Ціна за


Фактична Разом,
та Марка, тип, модель одиницю,
кількість, шт. грн.
комплектуючих грн.
Дошка
«Стандарт», MDF,
магнітно- 1 500 500
75х100
маркерна
Capitan Universal
Папір 1 90 90
A4 500 арк.
Набір маркерів
Rexel 1 225 225
для білих дошок
Ручки чорні Exonomix First 4 5 20
Buromax, “Classic”
Блокнот 2 41 82
A4
USB Flash 128 GB Kingston
1 520 520
накопичувач DT100 Black
Разом: 1437

Для проведення проектування та розробки потрібні троє спеціалістів:


Для проведення проектування та розробки потрібні троє спеціалістів:
- Програміст (П);

- Тестер (Т);

- PM-спеціаліст(Project manager) (P);

Витрати на оплату праці:


- Місячний оклад програміста складає 17000 грн/міс.
75

- Місячний оклад тестера складає 8000 грн/міс.

- Місячний оклад PM-спеціаліста складає 27000 грн/міс.

Отримаємо такі значення денної заробітної плати працівників (з розрахунку на


20 робочих днів у місяць):

- СП= 17000/20 = 850 грн/день.

- СТ= 8000/20 = 400 грн/день.

- СP= 27000/20 = 1350 грн/день.

Таблиця 7.3

Бюджет витрат на оплату праці


Денна
Кількість заробітна Сума витрат
Посада, Час роботи,
працівників, плата на оплату
спеціальність дні
осіб працівників, праці, грн.
грн.
Основна заробітна плата
Програміст 1 5 850 4250
Тестер 1 2 400 800
PM-спеціаліст 1 5 1350 6750
Разом: 10900

Обчислюю обов’язкові відрахування та податки і фіксую їх у табл. 7.4.


Таблиця 7.4
Бюджет обов’язкових відрахувань та податків
Посада, Сума Сума Разом Сума Сума Військови
76

спеціальніст основної додатково витра єдиного податку й збір, грн.


ь заробітно ї т на внеску на з 1,5%
ї плати, заробітної оплат соціальне доходів
грн плати, у страхуванн фізични
грн. праці, я, грн. 22% х осіб*,
грн. грн.
18%
1 2 3 4 5 6 7
Програміст 4250 - 4250 935 765 66,75
Тестер 800 - 800 176 144 12
РМ- 6750 - 6750 1485 1215 101,25
спеціаліст
Разом 11800 - 11800 2596 2124 180

*Нарахування ставки податку з доходу фізичних осіб відповідає діючій


ставці на момент виконання бакалаврської роботи.

Фіксую загальновиробничі витрати у табл. 7.5.


Таблиця 7.5

Бюджет загальновиробничих витрат


Статті витрат Сума, грн.
Змінні загальновиробничі витрати, у т.ч.:
Заробітна плата допоміжного персоналу 600
Витрати на МШП 120
Нарахування на заробітну плату(ЄСВ 22%) 2596
Витрати на електроенергію 270
Витрати на ремонт 140
Інші змінні витрати 130
Разом змінних витрат: 3856
Постійні загальновиробничі витрати, у т.ч.:
Комунальні послуги 350
Витрати на оренду 100
77

Інші постійні витрати 170


Разом постійних витрат: 1520
Разом загальновиробничих витрат: 5376

Фіксую Всі отримані вище дані у табл. 7.6.

Таблиця 7.6
Бюджет адміністративних витрат та витрат на збут
Статті витрат Одиниці Фактична Ціна Разом, грн.
виміру кількість, шт. одиниці, грн
Матеріали та грн 9 - 460
комплектуючі
вироби
Додаткові витрати - 0 - 0
Електроенергія на кВт*год 200 0.42 84
технологічні
цілі(від 100
кВт*год до 600
кВт*год)
Основна заробітня грн/міс 1 - 11800
плата
Додаткова грн/міс 0 0,00 0,00
заробітна плата
Витрати на грн. 2 25 50
утримання й
експлуатацію
устаткувння
Загальновиробничі
витрати, у т.ч.
-змінні грн. 1 3856
-постійні грн. 1 1520
Разом виробничих грн. 1 17770
витрат(Собівартіст
ь продукту)
Адміністративні грн. 1 180
витрати
Витрати на збут грн. 1 100
Інші операційні - - - -
витрати
78

Разом виробничих і грн. 1 18050


операційних витрат

Щоб визначити фінансові результати, потрібно обчислити собівартість (ціну)


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

Ц=Сб∗(1+Р) (1)
де Ц – ціна продукту, грн.
Р – рентабельність виробництва, %
Сб – собівартість продукту, грн.
При рентабельності 40%, вартість проведеного дослідження обраховується за
формулою (3):

Ц=17770*(1+0,4) = 24878 (грн)


Чистий дохід від реалізації продукції=24878-(24878/6)= 20732 (грн)
Собівартість реалізованої продукції= 17770*1 =17770 (грн)
Валовий прибуток= 20732 – 17770 = 2962 (грн)
Фінансовий результат від операційної діяльності=2962 - 180 - 100=2682 (грн)
Податок на прибуток= 2682*0,18=483 (грн)
Чистий прибуток (збиток)= 2682 - 483 = 2199 (грн)
Фіксую дані в таблиці 7.7 обраховані вище дані фінансових результатів.
Таблиця 7.7
Бюджет фінансових результатів

Показники Сума, грн.


Дохід від реалізації продукції (20 шт.) 24878
Податок на додану вартість (20%) 4146
Чистий дохід від реалізації продукції 20732
Собівартість реалізованої продукції 17770
79

Валовий прибуток 2962


Операційні витрати
Адміністративні витрати 180
Витрати на збут 100
Фінансовий результат від операційної діяльності 2682
Податок на прибуток (25%) 483
Чистий прибуток (збиток) 2199

7.6. Висновки до економічної частини

Завершивши експертне оцінювання факторів зовнішнього та внутрішнього


середовищ, я визначив, що зважений рівень впливу факторів зовнішнього
виробництва складає 1,04, а внутрішнього виробництва – 2,51. Отже, розробка
імітаційної моделі вибору оптимальної елементної бази для синтезу засобів
нейромережевого захисту даних в реальному часі на ринку застоснуків для
нейромережевого захисту даних в реальному часі.

З першої групи стратегічних альтернатив, для мене найкраще підходить


стратегія розробки нового продукту без супутніх послуг, оскільки мій продукт не
має аналогів, на ринку, крім цього усе ПЗ буде створюватись з «нуля». При
цьому, через високий попит на подібну продукцію, шанс появи конкурентів дуже
високий. В умовах відсутності конкуренції на даний момент, але високому
потенціалі її виникнення, стратегія розвитку ринку виробництва стає відмінним
інструментом для управління ризиками. Створення нових продуктів на
існуючому ринку тільки збільшує конкуренцію, тим самим стимулює виробників
покращувати свої застосунки. Ризики з’являються з появою конкурентів з
аналогічним функціоналом на ринку. Отже, З другої групи стратегічних
альтернатив найбільше підходить стратегія розвиток продукту - стратегія, яка
дозволяє компанії реалізувати нові програмні продукти на існуючих ринках.

В кінці я порахував кількість витрат на виготовлення та реалізацію задуму:


80

 Витрати на матеріали та комплектуючі вироби склали 1437 (грн.)


 Витрати на оплату праці склали 11800 (грн.)
 Загальновиробничі витрати склали 5376 (грн.)
 Собівартість продукту (1 шт.) = 17770 (грн.)
 Собівартість з операційними витратами (1 шт.) = 18050 (грн.)
 Дохід від реалізації (1 шт.) = 20732 (грн.).
 Для того щоб переконатися, що розробка даного продукту у майбутньому
не принесе збитків, було обраховано очікуваний прибуток: Чистий
прибуток = 2199 (грн.).

Отже, розробка даної системи є доцільною і матиме попит на ринку.


81

СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ

1. Теслюк Т. В. Методи та засоби збору і опрацювання даних в системах


управління енергоефективністю підприємтсва : дис. канд. техн. наук : 122 /
Теслюк Тарас Васильович – Львів, 2019. – 200 с.
2. Цмоць І. Г. Методи проектування спеціалізованих комп’ютерних систем
управління та обробки сигналів у реальному часі [Електронний ресурс] / І.
Г. Цмоць, Б. А. Демида, М. Р. Подольский – Режим доступу до ресурсу:
http://aaecs.org/cmoc--g-demida-ba-podolskii-mr-metodi-proektuvannya-
specalzovanih-kompyuternih-sistem-upravlnnya-ta-obrobki-signalv-u-realno-
mu-chas.html.
3. Що таке систений аналіз [Електронний ресурс] – Режим доступу до
ресурсу: http://ba-ds.lviv.ua/system-analysis/.
4. Грудінін О. В. Реферат магістерської роботи за темою Дослідження
алгоритмів побудови контролерів з використанням систем на кристалі
[Електронний ресурс] / Олексій Васильович Грудінін – Режим доступу до
ресурсу: http://masters.donntu.org/2011/fknt/grudinin/diss/indexu.htm.
5. Роберт Виейра. Програмування баз даних Microsoft SQL Server 2005.
Базовий курс  — М. : «Діалектика», 2007. — С. 832. — ISBN 0-7645-8433-2.
6. Організація баз даних: практичний курс: Навч. посіб. для студ. /
А. Ю. Берко, О. М. Верес; Нац. ун-т «Львів. політехніка». — Л., 2003. —
149 c. — Бібліогр.: 8 назв.
7. Microsoft Visual Studio [Електронний ресурс] – Режим доступу до ресурсу:
https://uk.wikipedia.org/wiki/Microsoft_Visual_Studio.
8. C Sharp [Електронний ресурс] – Режим доступу до ресурсу:
https://uk.wikipedia.org/wiki/C_Sharp.
9. Теслюк Т.В., Цмоць І.Г., Ємець В.Ф., Зелінський А.Я., Коваль В.Я. Метод
синтезу структур компонентів системи управління технологічними
процесами. Моделювання та інформаційні технології: Збірник наукових
82

праць. Київ : Інститут моделювання в енергетиці ім. Г. Є. Пухова НАН


України. 2018.
10.Шаругин И. Системы на кристале. Особенности реализации и перспекивы
применения [Електронний ресурс] / Игорь Шаругин – Режим доступу до
ресурсу: http://masters.donntu.org/2011/fknt/grudinin/library/article3.htm.
11.Побудова дерева цілей [Електронний ресурс] – Режим доступу до ресурсу:
https://pidruchniki.com/18180520/ekonomika/pobudova_dereva_tsiley.
12. The Unified Modeling Language [Електронний ресурс]. Режим доступу до
ресурсу: https://www.uml-diagrams.org/
13.Теслюк Т. В. Методи та засоби збору і опрацювання даних в системах
управління енергоефективністю підприємтсва : автореф. дис. на здобуття
наук. ступеня канд. техн. наук : спец. 122 "Інформаційні технології" /
Теслюк Тарас Васильович – Львів, 2019. – 26 с.
14. Microsoft Visio [Електронний ресурс] – Режим доступу до ресурсу:
https://uk.wikipedia.org/wiki/Microsoft_Visio.
15. .NET Framework [Електронний ресурс] – Режим доступу до ресурсу:
https://uk.wikipedia.org/wiki/.NET_Framework.
16. What is Software Testing? Introduction, Definition, Basics & Types
[Електронний ресурс] – Режим доступу до ресурсу:
https://www.guru99.com/software-testing-introduction-importance.html.
17. Types Of Software Testing: Different Testing Types With Details
[Електронний ресурс] – Режим доступу до ресурсу:
https://www.softwaretestinghelp.com/types-of-software-testing/.
18.Тестування програмного забезпечення [Електронний ресурс] – Режим
доступу до ресурсу:
https://uk.wikipedia.org/wiki/Тестування_програмного_забезпечення.
19. Калбертсон Роберт, Браун Крис, Кобб Гэри. Быстрое тестирование. — М. :
«Вильямс», 2002. — 374 с. — ISBN 5-8459-0336-X.
20.Introducing Types of UML Diagrams [Електронний ресурс] – Режим доступу
до ресурсу: https://www.lucidchart.com/blog/types-of-UML-diagrams
83
84

ДОДАТОК А

Файл Form1.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Bak
{
public partial class Form1 : Form
{
public const int V = 8;
public SOC f;
public Microcontr fb;

public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)


{

private void label1_Click(object sender, EventArgs e)


{

private void label2_Click(object sender, EventArgs e)


{

private void label13_Click(object sender, EventArgs e)


{

private void textBox1_TextChanged(object sender, EventArgs e)


{

private void textBox2_TextChanged(object sender, EventArgs e)


{

}
85

public void button1_Click(object sender, EventArgs e)


{
bool text1 = true;
bool text2 = true;
bool text3 = true;
bool text4 = true;
bool text5 = true;
bool text6 = true;
bool text7 = true;
bool text8 = true;
for (int i = 0; i != textBox1.Text.Length; i++)
{
char c = textBox1.Text[i];
if (c != '0' && c != '1' && c != '2' && c != '3' && c != '4' && c != '5' && c != '6' && c != '7' && c != '8' &&
c != '9')
{
text1 = false;
break;
}
}
for (int i = 0; i != textBox2.Text.Length; i++)
{
char c = textBox2.Text[i];
if (c != '0' && c != '1' && c != '2' && c != '3' && c != '4' && c != '5' && c != '6' && c != '7' && c != '8' && c !
= '9')
{
text2 = false;
break;
}
}
for (int i = 0; i != textBox3.Text.Length; i++)
{
char c = textBox3.Text[i];
if (c != '0' && c != '1' && c != '2' && c != '3' && c != '4' && c != '5' && c != '6' && c != '7' && c != '8' &&
c != '9')
{
text3 = false;
break;
}
}
for (int i = 0; i != textBox4.Text.Length; i++)
{
char c = textBox4.Text[i];
if (c != '0' && c != '1' && c != '2' && c != '3' && c != '4' && c != '5' && c != '6' && c != '7' && c != '8' &&
c != '9')
{
text4 = false;
break;
}

}
for (int i = 0; i != textBox5.Text.Length; i++)
{
char c = textBox5.Text[i];
if (c != '0' && c != '1' && c != '2' && c != '3' && c != '4' && c != '5' && c != '6' && c != '7' && c != '8' &&
c != '9')
{
text5 = false;
break;
}
}
86

for (int i = 0; i != textBox6.Text.Length; i++)


{
char c = textBox6.Text[i];
if (c != '0' && c != '1' && c != '2' && c != '3' && c != '4' && c != '5' && c != '6' && c != '7' && c != '8' &&
c != '9')
{
text6 = false;
break;
}
}
for (int i = 0; i != textBox7.Text.Length; i++)
{
char c = textBox7.Text[i];
if (c != '0' && c != '1' && c != '2' && c != '3' && c != '4' && c != '5' && c != '6' && c != '7' && c != '8' &&
c != '9')
{
text7 = false;
break;
}
}
for (int i = 0; i != textBox8.Text.Length; i++)
{
char c = textBox8.Text[i];
if (c != '0' && c != '1' && c != '2' && c != '3' && c != '4' && c != '5' && c != '6' && c != '7' && c != '8' &&
c != '9')
{
text8 = false;
break;
}
}
if (text1 == true && text2 == true && text3 == true && text4 == true && text5 == true && text6 == true &&
text7 == true && text8 == true && textBox8.Text.Length != 0 && textBox7.Text.Length != 0 &&
textBox6.Text.Length != 0 && textBox5.Text.Length != 0 && textBox4.Text.Length != 0 && textBox3.Text.Length != 0
&& textBox2.Text.Length != 0 && textBox1.Text.Length != 0)
{
int r1;
int r2;
ElemCheck test = new ElemCheck();
ElemBase base1 = new ElemBase();
test.minelements1 = new SOC();
test.minelements2 = new Microcontr();
int[] g = new int[8];
test.minelements2.Frequency = Convert.ToInt32(textBox1.Text);
test.minelements2.Voltage = Convert.ToInt32(textBox2.Text);
test.minelements2.Flash = Convert.ToInt32(textBox3.Text);
test.minelements2.Price = Convert.ToInt32(textBox4.Text);
test.minelements1.Frequency = Convert.ToInt32(textBox5.Text);
test.minelements1.RAM = Convert.ToInt32(textBox6.Text);
test.minelements1.Flash = Convert.ToInt32(textBox7.Text);
test.minelements1.Price = Convert.ToInt32(textBox8.Text);
using (var context = new ProjectDbContext())
{
int j = 0;
//SOC kek = new SOC();
Microcontr kek1 = new Microcontr();
int SOC_amout = j;
for (int k = 0; k != 100; k++)
{

SOC kek = context.elem1.SingleOrDefault(x => x.id == k + 1);


if (kek == null)
{
87

SOC_amout = k;
break;
}
}
int Mcro_amout = 0;
j = 0;
for (int k = 0; k != 100; k++)
{

kek1 = context.elem2.SingleOrDefault(x => x.id == k + 1);


if (kek1 == null)
{
Mcro_amout = k;
break;
}
}

j = 0;
ElemBase based = new ElemBase();
based.elements1 = new SOC[SOC_amout];
based.elements2 = new Microcontr[Mcro_amout];
for (int i = 0; i != SOC_amout; i++)
{
SOC kek = context.elem1.SingleOrDefault(x => x.id == i + 1);
if (kek.Frequency > test.minelements1.Frequency && kek.RAM > test.minelements1.RAM && kek.Flash
> test.minelements1.Flash && kek.Price < test.minelements1.Price)
{
based.elements1[j] = kek;
j++;
}
}
j = 0;
for (int i = 0; i != Mcro_amout; i++)
{
kek1 = context.elem2.SingleOrDefault(x => x.id == i + 1);
if (kek1.Frequency > test.minelements2.Frequency && kek1.Voltage < test.minelements2.Voltage &&
kek1.Flash > test.minelements2.Flash && kek1.Price < test.minelements2.Price)
{
based.elements2[j] = kek1;
j++;
}
}
r1 = SOC_amout;
r2 = Mcro_amout;
base1 = based;
}
Form2 fm2 = new Form2();
fm2.b = base1;
fm2.soc1 = base1.elements1;
fm2.mic1 = base1.elements2;
fm2.x = r1;
fm2.y = r2;
fm2.next1[0] = test.minelements1.Frequency;
fm2.next1[1] = test.minelements1.RAM;
fm2.next1[2] = test.minelements1.Flash;
fm2.next1[3] = test.minelements1.Price;
fm2.next1[4] = test.minelements2.Frequency;
fm2.next1[5] = test.minelements2.Voltage;
fm2.next1[6] = test.minelements2.Flash;
fm2.next1[7] = test.minelements2.Price;
fm2.Show();
}
88

else
MessageBox.Show("Invalid numbers");
}
private void textBox8_TextChanged(object sender, EventArgs e)
{

private void button2_Click(object sender, EventArgs e)


{
Application.Exit();
}

private void textBox5_TextChanged(object sender, EventArgs e)


{

private void fontDialog1_Apply(object sender, EventArgs e)


{

}
}
}

Файл Form2.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Bak
{
public partial class Form2 : Form
{
public int i = -1;
public ElemBase b = new ElemBase();
public SOC[] soc1;
public Microcontr[] mic1;
public int[,] rankbase = new int[100, 8];
public double[] next = new double[8];
public int[] next1 = new int[8];
public int x;
public int y;
public double[] final1 = new double[100];
public double[] final2 = new double[100];

public Form2()
{
InitializeComponent();
}

private void Form2_Load(object sender, EventArgs e)


{
89

private void button1_Click(object sender, EventArgs e)


{
soc1 = new SOC[x];
mic1 = new Microcontr[y];
i = i + 1;
Expert fm3 = new Expert();
fm3.based = b;
fm3.soc1 = b.elements1;
fm3.mic1 = b.elements2;
fm3.rankbase = rankbase;
fm3.next1 = next1;
fm3.i = i;
fm3.x = x;
fm3.y = y;
fm3.Show();
Close();
}

private void button3_Click(object sender, EventArgs e)


{
Application.Exit();
}

private void button2_Click(object sender, EventArgs e)


{
double down = 0;
double up = 0;
for (int k = 0; k != i; k++)
{
up = up + rankbase[k, 0];
down = down + rankbase[k, 1] + rankbase[k, 2] + rankbase[k, 3];

}
next[0] = up/down;
down = 0;
up = 0;
for (int k = 0; k != i; k++)
{
up = up + rankbase[k, 1];
down = down + rankbase[k, 0] + rankbase[k, 2] + rankbase[k, 3];

}
next[1] = up / down;
down = 0;
up = 0;
for (int k = 0; k != i; k++)
{
up = up + rankbase[k, 2];
down = down + rankbase[k, 1] + rankbase[k, 0] + rankbase[k, 3];

}
next[2] = up / down;
down = 0;
up = 0;
for (int k = 0; k != i; k++)
{
up = up + rankbase[k, 3];
down = down + rankbase[k, 1] + rankbase[k, 2] + rankbase[k, 0];

}
next[3] = up / down;
90

down = 0;
up = 0;
for (int k = 0; k != i; k++)
{
up = up + rankbase[k, 4];
down = down + rankbase[k, 5] + rankbase[k, 6] + rankbase[k, 7];

}
next[4] = up / down;
down = 0;
up = 0;
for (int k = 0; k != i; k++)
{
up = up + rankbase[k, 5];
down = down + rankbase[k, 4] + rankbase[k, 6] + rankbase[k, 7];

}
next[5] = up / down;
down = 0;
up = 0;
for (int k = 0; k != i; k++)
{
up = up + rankbase[k, 6];
down = down + rankbase[k, 4] + rankbase[k, 5] + rankbase[k, 7];

}
next[6] = up / down;
down = 0;
up = 0;
for (int k = 0; k != i; k++)
{
up = up + rankbase[k, 7];
down = down + rankbase[k, 4] + rankbase[k, 5] + rankbase[k, 6];

}
next[7] = up / down;
int p = 0;
for (int k = 0; k != x; k++)
{
if (b.elements1[k] == null)
break;
final1[p] = b.elements1[k].Frequency / next1[0] * next[0] + b.elements1[k].RAM
/ next1[1] * next[1] + b.elements1[k].Flash / next1[2] * next[2] + next1[3] /
b.elements1[k].Price * next[3];
p++;
}
p = 0;
for (int k = 0; k != y; k++)
{
if (b.elements2[k] == null)
break;
final2[p] = b.elements2[k].Frequency / next1[4] * next[4] + next1[5] /
b.elements2[k].Voltage * next[5] + b.elements2[k].Flash / next1[6] * next[6] + next1[7] /
b.elements2[k].Price * next[7];
p++;
}
int chosen_one = 0;
for(int k = x; k != 0; k--)
{
if (final1[k - 1] != null)
{
if (final1[k] > final1[k - 1])
chosen_one = k;
}
91

else
break;
}
int chosen_two = 0;
for (int k = y; k != 0; k--)
{
if (final2[k - 1] != null)
{
if (final2[k] > final2[k - 1])
chosen_two = k;
}
else
break;
}
End fm13 = new End();
fm13.a = b.elements1[chosen_one];
fm13.b = b.elements2[chosen_two];
fm13.Show();

}
}
}

Файл Expert.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Bak
{
public partial class Expert : Form
{
public SOC[] soc1;
public Microcontr[] mic1;
public int i;
public ElemBase based = new ElemBase();
public int[,] rankbase = new int [100,8];
public int[] next1 = new int[8];
public int x;
public int y;
public Expert()
{
InitializeComponent();
}

private void label10_Click(object sender, EventArgs e)


{

private void button1_Click(object sender, EventArgs e)


{
bool text1 = true;
bool text2 = true;
bool text3 = true;
92

bool text4 = true;


bool text5 = true;
bool text6 = true;
bool text7 = true;
bool text8 = true;
bool text9 = true;
bool text10 = true;

if (textBox8.Text.Length != 0 && textBox7.Text.Length != 0 && textBox6.Text.Length


!= 0 && textBox5.Text.Length != 0 && textBox4.Text.Length != 0 && textBox3.Text.Length != 0 &&
textBox2.Text.Length != 0 && textBox1.Text.Length != 0)
{
if (textBox1.Text[0] != '1' && textBox1.Text[0] != '2' && textBox1.Text[0] !=
'3' && textBox1.Text[0] != '4')
text1 = false;
if (textBox2.Text[0] != '1' && textBox2.Text[0] != '2' && textBox2.Text[0] !=
'3' && textBox2.Text[0] != '4')
text2 = false;
if (textBox3.Text[0] != '1' && textBox3.Text[0] != '2' && textBox3.Text[0] !=
'3' && textBox3.Text[0] != '4')
text3 = false;
if (textBox4.Text[0] != '1' && textBox4.Text[0] != '2' && textBox4.Text[0] !=
'3' && textBox4.Text[0] != '4')
text4 = false;
if (textBox5.Text[0] != '1' && textBox5.Text[0] != '2' && textBox5.Text[0] !=
'3' && textBox5.Text[0] != '4')
text5 = false;
if (textBox6.Text[0] != '1' && textBox6.Text[0] != '2' && textBox6.Text[0] !=
'3' && textBox6.Text[0] != '4')
text6 = false;
if (textBox7.Text[0] != '1' && textBox7.Text[0] != '2' && textBox7.Text[0] !=
'3' && textBox7.Text[0] != '4')
text7 = false;
if (textBox8.Text[0] != '1' && textBox8.Text[0] != '2' && textBox8.Text[0] !=
'3' && textBox8.Text[0] != '4')
text1 = false;
if (text1 == true && text2 == true && text3 == true && text4 == true && text5
== true && text6 == true && text7 == true && text8 == true)
{

if (Convert.ToInt32(textBox5.Text) + Convert.ToInt32(textBox6.Text) +
Convert.ToInt32(textBox7.Text) + Convert.ToInt32(textBox8.Text) == 10)
text9 = false;
if (Convert.ToInt32(textBox1.Text) + Convert.ToInt32(textBox2.Text) +
Convert.ToInt32(textBox3.Text) + Convert.ToInt32(textBox4.Text) == 10)
text10 = false;
if(text9 == false && text10 == false)
{

rankbase[i, 0] = Convert.ToInt32(textBox5.Text);
rankbase[i, 1] = Convert.ToInt32(textBox6.Text);
rankbase[i, 2] = Convert.ToInt32(textBox7.Text);
rankbase[i, 3] = Convert.ToInt32(textBox8.Text);
rankbase[i, 4] = Convert.ToInt32(textBox1.Text);
rankbase[i, 5] = Convert.ToInt32(textBox2.Text);
rankbase[i, 6] = Convert.ToInt32(textBox3.Text);
rankbase[i, 7] = Convert.ToInt32(textBox4.Text);
soc1 = new SOC[x];
mic1 = new Microcontr[y];
Form2 fm4 = new Form2();
fm4.i = i;
fm4.rankbase = rankbase;
fm4.next1 = next1;
93

fm4.b = based;
fm4.soc1 = based.elements1;
fm4.mic1 = based.elements2;
fm4.x = x;
fm4.y = y;
fm4.Show();
Close();
}
MessageBox.Show("Invalid numbers");
}
else
MessageBox.Show("Invalid signs");
}
else
MessageBox.Show("You cant left any empty boxes");
}

private void textBox5_TextChanged(object sender, EventArgs e)


{

private void button2_Click(object sender, EventArgs e)


{

}
}
}

Файл End.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Bak
{
public partial class End : Form
{
public SOC a = new SOC();
public Microcontr b = new Microcontr();
public End()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)


{
Application.Exit();
}

private void label2_Click(object sender, EventArgs e)


{

}
94

private void label4_Click(object sender, EventArgs e)


{

private void textBox1_TextChanged(object sender, EventArgs e)


{

}
private void textBox2_TextChanged(object sender, EventArgs e)
{

private void button2_Click(object sender, EventArgs e)


{
if (a != null)
{
textBox1.Text = a.Name;
label2.Text = Convert.ToString(a.Frequency);
label5.Text = Convert.ToString(a.RAM);
label6.Text = Convert.ToString(a.Flash);
label7.Text = Convert.ToString(a.Price);
}
else
textBox1.Text = "None";
if (b != null)
{
textBox2.Text = b.Name;
label4.Text = Convert.ToString(b.Frequency);
label8.Text = Convert.ToString(b.Voltage);
label9.Text = Convert.ToString(b.Flash);
label10.Text = Convert.ToString(b.Price);
}
else
textBox2.Text = "None";

}
}
}

Файл SOC.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Bak
{
public class SOC
{
public int id { get; set; }
public int RAM { get; set; }
public int Frequency { get; set; }
public int Flash { get; set; }
public int Price { get; set; }
95

public string Name { get; set; }

public SOC()
{
RAM = 0;
Frequency = 0;
Flash = 0;
Price = 0;

Name = "a";
}
}
}

Файл Microcontr.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Bak
{
public class Microcontr
{
public int id { get; set; }
public int Frequency { get; set; }
public int Voltage { get; set; }
public int Flash { get; set; }
public int Price { get; set; }
public string Name { get; set; }

public Microcontr()
{
Voltage = 0;
Frequency = 0;
Flash = 0;
Price = 0;

Name = "a";
}

}
}

Файл ElemBase.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Bak
{
public class ElemBase
{
96

public SOC[] elements1;

public Microcontr[] elements2;

public bool check;


}
}

Файл ElemCheck.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Bak
{
public class ElemCheck
{
public SOC minelements1;

public Microcontr minelements2;

}
}

Файл ProjectDbContext.cs
using System;
using System.Data.Entity;

namespace Bak
{
public class ProjectDbContext : DbContext
{
public ProjectDbContext() : base("DBConnectionString")
{

public DbSet<SOC> elem1 { get; set; }


public DbSet<Microcontr> elem2 { get; set; }

}
}

Файл Program.cs
97

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Bak
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}

You might also like