121 Інженерія програмного забезпечення
Permanent URI for this collection
Освітньо-наукова програма: Інженерія програмного забезпечення
Browse
Recent Submissions
Item Огляд та дослідження засобів побудови застосунку з мікросервісною архітектурою на основі можливостей Spring Boot та Spring Cloud(2022) Чернова, Тетяна; Франчук, ОлегДана курсова робота присвячена огляду та дослідженню мікросервісного підходу при побудові веб-застосунків на базі технологій Spring Boot та Spring Cloud. В теоретичній частині роботи розглянено основні переваги та проблематику мікросервісного підходу, найпоширеніші проблеми, що зустрічаються при побудові застосунків з мікросервісною архітектурою та відомі шляхи їх вирішення, реалізація цих рішень в Spring Cloud. В практичній частині роботи було використано найбільш відомі мікросервісні патерни та наведені інструкції щодо їх впровадження до застосунку на основі фреймворку Spring.Item Автоматизація розгортання сервісу за допомогою Vagrant(2022) Іщенко, І.; Черкасов, ДмитроРезультатом курсової роботи є розроблена тестова версія онлайн блогу для обміну знаннями в організаціях невеликого розміру, яка може розгортатись на віртуальну машину для тестування. Застосунок використовує Sql Server для роботи з базами даних та Vagrant для автоматичного налаштування робочої інфраструктури. За допомогою Vagrant можливо автоматично розгортати та копіювати тестові середовища для максимальної імітації робочої інфраструктури. За допомогою логування можна відстежувати помилки, які стаються під час виконання. Було використано велику кількість технологій для розробки : ASP.NET Web App, Razor Pages, Entity Framework Core, Sql Server, Bootstrap, Dependency Injection. А також було використано інструменти та сервіси для автоматизації розгортання застосунку : Vagrant, Virtual Box, Visual Studio File Share, Shell, Apache. В рамках цієї роботи було розглянуто велику кількість сервісів, які можуть додатково покращити автоматизацію розгортання як на локальну віртуальну машину, так і в хмарне середовище, такі як : Chef, Puppet, Ansible. Робочий прототип онлайн блогу демонструє властивості сучасного підходу до розробки веб-застосунків а також тестування правильної роботи до потрапляння в робоче середовище. Застосунок складається з 2х робочих частин, кожна з яких розгортається на віртуальній машині та дозволяє в повній мірі перевірити роботу рішення.Item Розробка смарт-контракту в мережі Ethereum для продажу елементів NFT- колекцій(2022) Скрипнік, Андрій; Франчук, ОлегРоботу присвячено теоретичному огляду технології блокчейн та деяких її витоків, таких як смарт-контракти, NFT, а також, практичній імплементації смарт-контракту для продажу елементів NFT-колекцій. Практичним результатом роботи є розроблений в тестовому блокчейні Ethereum смарт-контракт за стандартом ERC-721, написаний з використанням мови програмування Solidity.Item Побудова багаторівневого веб-застосування з високою доступністю на платформі Google Cloud Platform (GCP)(2022) Возбранний, Роман; Черкасов, ДмитроВ роботі проаналізовано процес розробки, розгортання та підтримки багаторівневих застосунків. Також, описуються особливості налаштування проектів для розгортання в Google Cloud Platform. В результаті, розроблено інструкції та проаналізовано готові рішення для розробки, розгортання та підтримки застосунків.Item Створення застосунку для алгоритмічного трейдингу криптовалют з використанням машинного навчання(2022) Кушка, Михайло; Франчук, ОлегУ даній магістерській роботі розглянуто основні методи трейдингу криптовалют, що застосовуються на фінансових біржах – від традиційних, де рішення про купівлю/продаж приймається брокером в кожному конкретному випадку особисто, до повністю автоматизованих, коли трейдинг криптовалют за вихідними, заздалегідь заданими параметрами, здійснюється за певними алгоритмами без участі людини. Проаналізовано переваги та недоліки кожного з розглянутих методів. Написаний код на Node JS, який на базі машинного навчання може прогнозувати ціну на криптовалюту, а також створено комп’ютерний застосунок для можливості взаємодії з найбільшою світовою біржою криптовалют – "Бінанс" (Binance).Item Побудова багаторівневого веб-застосування з високою доступністю на платформі Google Cloud Platform(2022) Василенко, Олександр; Черкасов, ДмитроВ рамках даної роботи проведено огляд хмарної платформи Google Cloud Platform та її аналогів у якості засобу для розміщення багаторівневого веб-застосування. Проаналізовано можливості платформи для забезпечення високої доступності та розроблено веб-застосування для бібліотеки, що використовує засоби балансування навантаження для забезпечення відмовостійкості.Item Розробка методології імплементації транзакцій в розподілених системах(2023) Чернова, Тетяна; Глибовець, АндрійДана робота присвячена аналізу проблематики використання транзакцій в розподілених системах, реалізації відомого мікросервісного патерну – Transactional Outbox у вигляді Spring starter, що додається до системи, конфігурується та полегшує роботу використання транзакцій і публікацію подій, що є частинами транзакції в мікросервісній архітектурі. Також вагому частину цієї роботи було присвячено створенню загальної методології роботи розподілених транзакцій на базі черг повідомлень, з використанням вищезазначеного стартеру, опису конфігурацій та налаштування черг повідомлень для коректної роботи транзакцій в розподілених системах. Результатом роботи є стартер, опис його конфігурації та загальна методологія роботи транзакцій в розподілених системах на базі черг повідомлень.Item Розробка бібліотеки на .NET для роботи зі знімками (snapshots) для EventStoreDB(2023) Осадчук, Володимир; Франчук, ОлегРобота присвячена базі даних, яка спеціалізується на збереженні подій (events) та їх історії в EventStore, а також патернам, які вона реалізує – Event Sourcing та CQRS (Command Query Responsibility Segregation) в контексті мікросервісної архітектури. Були розглянуті недоліки EventStore та необхідність збереження проміжних подій. Був проведений аналіз існуючих бібліотек на .NET для вирішення цих проблем, а також розроблена власна бібліотека, яка вирішує проблеми EventStore. Проведено порівняння написаної бібліотеки з існуючими та виміряна продуктивність. Розроблену бібліотеку, разом з EventStore, було використано у наявному веб-застосунку для оголошень з прокату паперових книг.Item Розробка бібліотеки підвищення відмовостійкості в мікросервісній архітектурі(2023) Папроцький, Ігор; Глибовець, АндрійДана робота присвячена дослідженню сучасних практик забезпечення відмовостійкості мікросервісів. Дослідження розглядає поширені патерни для реалізації цієї задачі. Основну увагу приділено відомому патерну під назвою Circuit Breaker, а саме спробі покращення його стандартної імплементації з точки зору надійності та продуктивності. Для досягнення цієї мети запропоновано підхід, який полягає у зменшенні кількості часових затримок, які використовуються при переході між його станами, а також зменшенні кількості станів самого інструменту Circuit Breaker за рахунок переходу до моделі прогнозування стабільності системи на основі метрик, що збираються в процесі роботи застосунку. Результатом роботи є модель Circuit Breaker яка працює у двох станах, а також порівняльні експерименти для перевірки правильності припущень покладених на ефективність цієї моделі.Item Створення бібліотек на основі Spring Boot для уніфікації розробки інформаційної системи з мікросервісною архітектурою(2023) Скрипнік, Андрій; Франчук, ОлегРоботу присвячено дослідженню проблематики при використанні мікросервісної архітектури в розробці інформаційних систем, а також, імплементації ряду бібліотек, і пропозиції загального підходу щодо розв’язку виявлених проблем на основі фреймворку Spring Boot. Практичним результатом роботи є 5 бібліотек, які дозволяють привести різні компоненти системи до уніфікованого вигляду в таких аспектах як: логування, обробка помилок, безпека, асинхронна комунікація, інтеграційне тестування.Item Гарантована доставка повідомлень у мікросервісній архітектурі(2023) Смакула, Роман; Глибовець, АндрійДана робота має на меті дослідити методи, які дозволяють досягнути високого рівня гарантування доставки повідомлень у мікросервісній архітектурі. Для цього було розглянуто прикладну проблему, яка виникає в сфері розробки хмарних систем IoT. В роботі розглянуті архітектурні шаблони для збереження інформації в сховищі сервісу та надсилання її в чергу повідомлень. Також розглянуто методи резервування черги повідомлень. У практичній частині даного дослідження було розроблено бібліотеку, яка написана на мові програмування Kotlin та надає інструменти для реалізації шаблону Transactional Outbox. Було проведені заміри швидкодії даної бібліотеки та її аналогів.Item Побудова мережевого застосування з високою доступністю на хмарній платформі(2023) Возбранний, Роман; Черкасов, ДмитроРобота зосереджена на процесі розробки та розгортання багаторівневого веб-застосунку з високою доступністю на хмарній платформі. Центральна ідея полягає в тому, що хмарні обчислювальні сервіси, надаючи автоматичне масштабування та засоби моніторингу, полегшують процес розробки. Застосунок, який було створено в ході дослідження, має на меті автоматизувати процеси моніторингу, збирання, структурування та валідації даних з відкритих джерел. В роботі описано використання технологій Node.js, Nest.js, React, PostgreSQL та TypeORM для розробки застосунку, що забезпечує високий рівень стабільності, безпеки та продуктивності. Визначено ключові етапи розробки серверної та клієнтської частини застосунку з акцентом на правильне використання інструментів та бібліотек для автоматизованого збирання даних, автентифікації та управління базами даних. Також було проведено автоматизацію процесів розгортання та інтеграції CI/CD за допомогою Github, Github Actions, Docker, Google Cloud Run, Vercel та Sentry. В результаті, було розроблено надійний, високопродуктивний та легко масштабований веб-застосунок.Item Пряма та обернена задача ранжування альтернатив за сукупністю показників(2021) Безштанько, Володимир; Франчук, ОлегРобота присвячена прямій та оберненій задачі ранжування альтернатив. У межах роботи сформульовано та розв’язано пряму та обернену задачі. Перший розділ присвячено прямій задачі ранжування альтернатив за сукупністю показників. Сформульовано пряму задачу, розглянуто відомі методи її розв’язання, обґрунтовано вибір модифікованого методу ELECTRE III для виконання задачі ранжування. Другий розділ присвячено оберненій задачі ранжування альтернатив. У межах розділу сформульовано обернену задачу та описано алгоритм оптимізації розв’язку оберненої задачі. Третій розділ присвячений дослідженню роботи алгоритмів. Наведено приклад роботи прямої та оберненої задач. Досліджено роботу алгоритмів за різних умов.Item Development of a methodology for using microservice architecture in the construction of information systems(2021) Zhylenko, Oleksii; Cherkasov, DmytroIn this work will be defined what is microservice architecture, the most important quality attributes and system level requirements. We will gather guidelines grouped by quality attributes that should be used to reduce in future total cost of ownership system under develop. Created methodology will be used in synthetic Java project to demonstrate it on real example.Item Дослідження методу аналізу ієрархій для задач з великою кількістю альтернатив(2021) Якимчук, Соломія; Франчук, ОлегВ магістерській роботі досліджено фундамент і практичний механізм реалізації методу аналізу ієрархій, а також наведено алгоритм роботи методу для великої кількості альтернатив. Метод аналізу ієрархій прийнято вважати загальною теорією вимірювання, він застосовується для виведення шкал відносин як з дискретних, так і безперервних парних порівнянь в багаторівневих ієрархічних структурах. Порівняння можна провести на основі реальних величин або можливих, що відображають можливі вподобання. Метод знаходить широке застосування в задачах, пов'язаних з прийняттям багатокритеріальних рішень, стратегічне планування, прогнозування та навіть в задачах вирішення конфліктів, і призначений для аналізу нелінійних структур, які застосовуються для виконання як дедуктивного, так і індуктивного виводу без використання силогізму.Item Програмна система дослідження слабоструктурованих задач багато-критеріальної оптимізації(2021) Тригуб, Роман; Франчук, ОлегСеред багатокритеріальних задач прийняття рішень, що особливо часто виникають напрактиці, актуальними залишаються задачі вибору альтернатив. Математично такі задачі описуються набором альтернатив, для кожної з яких задаються значення певних показників (критеріїв). Розв’язком такої задачі вважається альтернатива, яка має найкращі (засукупністю) значення критеріїв, які в загальному випадку відрізняються різною вагомістю. Існуючі на сьогодні програмні продукти розв’язання наведеного класу задач обмежуються лише знаходженням найкращої альтернативи, тоді як запропонована програмна система крім вирішення цієї нетривіальної задачі ще дозволяє розробити для будь-якої з "програвших" альтернатив рекомендації (так би мовити "настанови до дій"), дотримання яких дозволить їй стати найкращою. Алгоритм, який генерує ці інструкції є основним науковим результатом роботи, а його реалізація у вигляді програмної системи – основним практичним результатом. Зауважимо, що для обраної користувачем альтернативи програмна система згенерує в певному сенсі "інтелектуальний" список рекомендацій, виконання якого дозволить даній альтернативі перемогти. Під "інтелектуальністю" розуміється формування таких інструкцій для даної альтернативи, які б, з одного боку, потре- бували якомога менше зусиль (змін) альтернативи в порівнянні з її попереднім станом, та,зіншого, цих зусиль (змін) вистачалобдлятого, щобданаальтернатива стала найкращою. Розроблена програмна система має універсальний характер, може застосовуватися в різноманітних сферах людської діяльності для розв’язання складних задач багатокритеріальної оптимізації.Item Теоретичні й прикладні аспекти аналізу даних великої розмірності(2021) Шаповал, Олександр; Глибовець, МиколаВ рамках даної роботи проведено огляд теоретичних та практичних аспектів даних великої розмірності, проаналізовано поняття якості даних та приклади сучасних механізмів їх забезпечення розроблена архітектура програмного застосунку для оцінки якості даних в системі для обробки та зберігання маркетингових матеріалів на базі хмарних технологійItem Паралельний SVD алгоритм для трьохдіагональної матриці на відеокарті з використанням архітектури Nvidia CUDA(2021) Семилітко, Микола; Малашонок, ГеннадійДана робота пропонує реалізацію паралельного алгоритму SVD на відеокарті з використання архітектури Nvidia CUDA для роботи з великими матрицями. Для цього було досліджено роботу послідовного алгоритму, розроблена модель паралельного алгоритму на Java, який враховує особливості роботи відеокарти і реалізовані та протестовані алгоритми для відеокарти з використанням різних типів пам’яті відеокарти, які можна використовувати в програмах на Java та С/C++.Item Development of CI / CD platform deployment automation module for group software development(2021) Ivanov, O; Cherkasov, DmytroIn the presented work we reviewed the main CI/CD principles and delivery workflow. We provided definition and benefits for each of part of the CI/CD. Latter we covered definition of CI and CD. Provided tools analysis and narrowed audience for expected module. We have chosen the platform base and picked up clouds for developing solution. After that we developed modules for automatics deployment into cloud as easiest for user as possible and created all necessary scripts with ability to integration in bigger system or launching out of the box. In the end test runs were done for every script and compared result and difficult of managing. Based on achieved results we provided the feedback.Item Розпізнавання обличчя з використанням нейронних мереж(2021) Гетьман, Максим; Франчук, ОлегУ даній дипломній роботі розглянуто нейронні мережі, їхні типи, сфери застосування. Розглянуто алгоритм розпізнавання обличчя з використанням нейронної мережі. У першому розгляді детально розглянуто що таке нейронна мережа, які є типи та як нейронні мережі навчаються. У другому розділі детально описано алгоритм розпізнавання обличчя. У третьому розділі наведена програма імплементація алгоритму із другого розділу.