Том 3

Permanent URI for this collection

Browse

Recent Submissions

Now showing 1 - 20 of 27
  • Item
    Передмова
    (2020) Глибовець, Микола
    Передмова до видання Наукові записки НаУКМА. Комп'ютерні науки. Т. 3. (2020).
  • Item
    Машинне навчання та доповнена реальність на пристроях на базі iOS із фреймворком MLARKit
    (2020) Гороховський, Семен; Франків, Олександр
    Створено фреймворк MLARKit, що дає змогу легко користуватися складними для використання у мобільних пристроях алгоритмами машинного навчання та доповненої реальності, враховуючи їхні особливості. Фреймворк створено максимально гнучким, тож сторонні розробники зможуть максимально задовольнити свої потреби без самостійної реалізації.
  • Item
    Моделі узгодженості розподілених систем віртуальної реальності
    (2020) Дученчук, Володимир; Бублик, Володимир
    Ця робота фокусується на інтерактивних розподілених програмах із спільним віртуальним середовищем, що також відомі як розподілені системи віртуальної реальності. Такі системи ефективно використовують у застосунках для навчальних, імітаційних і розважальних цілей. Системи розподіленої віртуальної реальності характеризуються високим рівнем взаємодії між користувачами у режимі реального часу у спільному віртуальному середовищі. В статті розглянуто основні вимоги до таких систем, їхні функції та властивості. Автори аналізують наявні підходи до досягнення узгодженості в розподілених системах, а також пропонують власну модель узгодженості розподілених систем віртуальної реальності, що дає змогу досягти ефективного балансу між узгодженістю та швидкістю відтворення станів
  • Item
    Investigation of the Relationship Between Software Metrics Measurements and its Maintainability Degree
    (2020) Hlybovets, Andrii; Shapoval, Oleksandr
    The goal of this work is to practically apply methods of empirical engineering software, algorithms for data collection and data analysis. The results include software measurement, analysis and selection of direct and indirect metrics for research and identification of dependencies between direct and indirect metrics. Based on the received results, there were built dependencies between software metrics and software expertise properties were selected by individual variation. For measurement results analysis there were used primary statistical analysis, expert estimations, correlation and regression analysis. Expert estimation is the dominant strategy when estimating software development effort. Typically, effort estimates are over-optimistic and there is a strong over-confidence in their accuracy. Primary data analysis is the process of comprehending the data collected to answer research questions or to support or reject research hypotheses that the study was originally designed to evaluate. Correlation analysis gives possibility to make some conclusions about which metrics and expert estimations are much coupled, and which are not. Regression analysis involves both graphical construction and analytical research and gives an ability to make a conclusion about which metrics and expert estimations are the most coupled. Analyzing regression lines for metrics of normal and nonnormal distributions give an ability to identify pairs of ‘metric – expert estimation’. There have been calculated and measured metrics relations for defining relation of such quality attributes as Understandability and Functionality Completeness. Understandability expresses the clarity of the system design. If the system is well designed, new developers are able to understand easily the implementation details and quickly begin contributing to the project. Functionality Completeness refers to the absence of omission errors in the program and database. It is evaluated against a specification of software requirements that define the desired degree of generalization and abstraction. Relationship between metric and expertise includes building direct relationships between the metric and expertise, indirect metrics and expertise. Additionally, it has been determined whether they have common trends of the relationship between those direct metrics and expert estimates, indirect metrics and expert estimates. The practical results of this work can be applied for software measurements to analyze what changes in the code (affecting given metric) will cause increasing or decreasing of what quality attribute.
  • Item
    Окремі аспекти декларативності "мінус штрих-операції"
    (2020) Ющенко, Юрій
    У роботі розглянуто "мінус штрих-операцію", яку було введено як обернену до "штрих-операції" (1955 р.). Аналогом "штрих-операції" є розіменування вказівника (1964 р.). На прикладі продемонстровано, що для отримання адреси лінійного однозв’язного списку в Адресному програмуванні можна вказати порядковий номер цього вузла у списку. У цьому полягає перевага "штрих-операції" над розіменуванням вказівника. "Мінус штрих-операцію" в імперативних мовах програмування високого рівня не застосовують, оскільки за своєю сутністю вона належить до декларативної концепції програмування. У роботі досліджено динамічну (неявну) типізацію даних в Адресній мові програмування та наведено загальну класифікацію типів даних. У статті подано приклад представлення дерева в Адресній мові програмування шляхом указування "батьків" вершин дерева, без зазначення сукупності синів, як це потрібно робити в імперативних мовах програмування. В Адресному програмуванні сукупність адрес усіх синів можна отримати застосуванням до адреси вершини "мінус штрих-операції". Із цього та інших наведених прикладів випливає універсальна потужність "мінус штрих-операції" як інструменту декларативного програмування. Адресна мова програмування є багатоконцептуальною та поєднує у собі концепції імперативного та декларативного програмування. Основою декларативної концепції Адресного програмування (1955 р.) є "мінус штрих-операція".
  • Item
    Побудова та збереження у графовій базі Neo4j абстрактного семантичного графа вихідних кодів PHP-додатків
    (2020) Бабич, Трохим; Гороховський, Семен
    Здійснено реалізацію можливості багаторазового використання графів потоку керування для проведення над ними повторного статичного аналізу (можливість проведення пошуку недоброякісного коду як за стилістикою, так і щодо наявності вразливостей, що їх він створює у результаті). Проведено аналіз декількох граматик для підбору оптимальної, а також порівняння баз даних для конкретної цільової задачі (вибудови графа з великою кількістю точок).
  • Item
    Система управління клієнтською базою моделі SааS на прикладі компанії страхового брокера
    (2020) Василенко, Андрій; Глибовець, Андрій
    У роботі описано деталі аналізу вимог та реалізації системи управління базою клієнтів для брокерських компаній у сфері страхування. Така система має враховувати особливості роботи компаній і модель їх бізнесу для того, щоб повністю відповідати поставленим вимогам. Можливість роботи з великою кількістю записів із будь-якого пристрою, а також наявність форм та елементів для відображення суто специфічних для галузі показників є ключовим аспектом у проектуванні та реалізації системи. За результатами роботи отримано CRM-систему, яка повністю відповідає необхідним базовим вимогам.
  • Item
    Serverless Event-driven Applications Development Tools and Techniques
    (2020) Morenets, Ihor; Shabinskiy, Anton
    Serverless, a new cloud-based architecture, brings development and deployment flexibility to a new level by significantly decreasing the size of the deployment units. Nevertheless, it still hasn’t been clearly defined for which applications it should be employed and how to use it most effectively, and this is the focus of this research. The study uses Microsoft Azure Functions – one of the popular mature tools – because of its stateful orchestrators – Durable Functions. The tool is used to present and describe four flexible serverless patterns with code examples. The first pattern is HTTP nanoservices. The example demonstrates how flexible can be the Function-asa-Service model, which uses relatively small functions as deployment units. The second usage scenario described is a small logic layer between a few other cloud services. Thanks to its event-driver nature, serverless is well-suited for such tasks as making an action in one service after a specific event from another one. New functions easily integrate with the API from the first example. The third scenario – distributed computing – relies on the ability of Durable Functions to launch a myriad of functions in parallel and then aggregate their results. and distributed computing. A custom MapReduce implementation is presented in this section. The last pattern described in this research significantly simplifies concurrent working with mutable data by implementing the actor model. Durable Entities guarantee that messages are delivered reliably and in order, and also the absence of deadlocks. The results of this work can be used as a practical guide to serverless main concepts and usage scenarios. Main topic of future research was chosen to be the development of a full-fledged serverless application using typical patterns to study the architecture in more depth.
  • Item
    Розподілена система навантажувального тестування у безперервній інтеграції
    (2020) Глибовець, Андрій; Карпович, Артем; Ковш, Микола
    У роботі вивчено можливість побудови розподіленої системи для навантажувального тестування із використанням інструментів, що перебувають у відкритому доступі, а саме Gatling, InfluxDB, Grafana, Logstash, Docker та Jenkins. Описано підхід для подолання обмежень інструменту з автоматизації тестування продуктивності Gatling, а саме обмеження, що не дає змоги побудувати власну систему розподіленого навантаження "з коробки". Це рішення інтегровано у безперервне постачання коду на основі сервісу Jenkins і випробовувано із централізованим звітуванням результатів у реальному часі. Цю систему було розроблено на противагу представленим на ринку комерційним рішенням, що надає їй більшої гнучкості.
  • Item
    Statical and Dynamical Software Analysis
    (2020) Sosnytskyi, Serhii; Glybovets, Mykola; Pechkurova, Olena
    The development of software built with quality has become an important trend and a natural choice in many organisations. Currently, methods of measurement and assessment of software quality, security, trustworthiness cannot guarantee safe and reliable operations of software systems completely and effectively. In this article statistical and dynamical software analysis methods, main concepts and techniques families are overviewed. The article has an overview of why combination of several analysis techniques is necessary for software quality and examples how static and dynamical analysis may be introduced in a modern agile software development life cycle. As a summary of techniques for software analysis, represented on Table 1, due to the computability barrier, no technique can provide fully automatic, robust, and complete analyses. Testing sacrifices robustness. Assisted proving is not automatic (even if it is often partly automated, the main proof arguments generally need to be human provided). Model-checking approaches can achieve robustness and completeness only with respect to finite models, and they generally give up completeness when considering programs (the incompleteness is often introduced in the modeling stage). Static analysis gives up completeness (though it may be designed to be precise for large classes of interested programs). Last, bug finding is neither robust nor complete. Another important dimension is scalability. In practice, all approaches have limitations regarding scalability, although these limitations vary depending on the intended applications (e.g., input programs, target properties, and algorithms used). Already implemented code could be analysed in a continuous integration environment by a tool like SonarQube. Properly configured metrics and quality gates provide fast and detailed feedback on incremental changes starting from development machine till highload enterprise production environments. Software analysis helps to improve quality and development speed in Agile development life cycle with reasonable cost.
  • Item
    Віртуальна кімната даних як сховище конфіденційних корпоративних документів
    (2020) Торба, Тетяна; Вовк, Наталія
    У роботі розглянуто основні характеристики віртуальних кімнат даних, проведено аналіз конкурентів для визначення ключових недоліків і переваг наявних продуктів. На основі аналізу конкурентів визначено ключові вимоги до архітектурного рішення, зокрема, масштабованість, відмовостійкість і пікове навантаження системи.
  • Item
    Поведінковий підхід (BDD) як ефективний метод для організації автоматизованого тестування у безперевному доставленні продукту
    (2020) Бенюх, Лада; Глибовець, Андрій; Афонін, Андрій
    У роботі описано загальні відомості про організацію автоматизованого тестування та проаналізовано ефективність його застосування на проекті. Також досліджено різні підходи до організації автоматизованого тестування за допомогою таких методів, як написання коду через тестування, поведінковий підхід, підхід тестування за ключовими словами та набором даних. На підставі дослідження було побудовано систему автоматизованого тестування для покриття тестами графічного інтерфейсу користувача та вебсервісів (API тестування), використовуючи поведінковий підхід. Також було описано інструменти для організації поведінкового підходу тестування і переваги цього методу.
  • Item
    Distributed Systems Technical Audit
    (2020) Gorokhovskyi, Kyrylo; Zhylenko, Oleksii; Franchuk, Oleh
    Modern enterprise systems consist of many deployment artifacts, thus, microservices architecture is extremely popular now. The use of distributed systems is rapidly growing despite the increased complexity and the difficulty of building. The main reason for such a trend is that the advantages of distributed systems outweigh their disadvantages. Nevertheless, product release into the market is not a final step of software development lifecycle. Next important step is maintenance that continues much longer than development. System failures and delays in finding and fixing a problem can cause huge financial and reputational expenses. In addition, the new features introduced due to changes on the market should take place on time. Prior to releasing a product to market, we would like to know in advance possible technical gaps to understand what we can expect and maybe fix some issues in order to save time and money in future. In other words, we should be able to make a decision, if the product is ready for launch or not, relying on some data. Such analysis is as well necessary when we obtain ownership for an existing product. Technical audit helps to find out technical debt and assess risks related to maintenance and extension of the system. It should be considered as mandatory activity during release preparation and ownership transfer. Well-defined criteria would help to conduct an audit smoothly and find out most of the technical debt. Properly conducted technical audit reduces risks of problems after release but it does not guarantee commercial success of product or absence of problems at all. In this article we will define what distributed systems are, we will review Monolithic, Microservices and Serverless architectures, describe what are quality attributes and what should be taken into account during technical audits. Next, we will deep dive into the technical audit process, specify what aspects of the system must be considered during an audit. Then we will iterate over checklists items in order to provide guidelines based on the best practices in industry which helps to prepare for software system audit.
  • Item
    Image Shadow Removal Based on Generative Adversarial Networks
    (2020) Andronik, Vladyslav; Buchko, Olena
    Accurate detection of shadows and removal in the image are complicated tasks, as it is difficult to understand whether darkening or gray is the cause of the shadow. This paper proposes an image shadow removal method based on generative adversarial networks. Our approach is trained in unsupervised fashion which means it does not depend on time-consuming data collection and data labeling. This together with training in a single end-to-end framework significantly raises its practical relevance. Taking the existing method for unsupervised image transfer between different domains, we have researched its applicability to the shadow removal problem. Two networks have been used. Тhe first network is used to add shadows in images and the second network for shadow removal. ISTD dataset has been used for evaluation clarity because it has ground truth shadow free images as well as shadow masks. For shadow removal we have used root mean squared error between generated and real shadow free images in LAB color space. Evaluation is divided into region and global where the former is applied to shadow regions while the latter to the whole images. Shadow detection is evaluated with the use of Intersection over Union, also known as the Jaccard index. It is computed between the generated and ground-truth binary shadow masks by dividing the area of overlap by the union of those two. We selected random 100 images for validation purposes. During the experiments multiple hypotheses have been tested. The majority of tests we conducted were about how to use an attention module and where to localize it. Our network produces better results compared to the existing approach in the field. Analysis showed that attention maps obtained from auxiliary classifier encourage the networks to concentrate on more distinctive regions between domains. However, generative adversarial networks demand more accurate and consistent architecture to solve the problem in a more efficient way.
  • Item
    Метод кластеризації з використанням багатовимірного адресного сортування
    (2020) Крещенко, Тарас; Ющенко, Юрій
    У роботі розглянуто багатовимірне адресне сортування, зокрема декілька методів його реалізації. Описано декілька структур даних для збереження та використання результатів багатовимірного адресного сортування. На прикладі реалізованого програмного проекту продемонстровано корисність і доцільність використання багатовимірного адресного сортування для розв’язання задач класифікації сукупностей згрупованих даних. Визначено переваги використання багатовимірного адресного сортування при розв’язанні задач кластеризації порівняно з методами, які нині набули широкого використання.
  • Item
    Сучасні підходи у проектуванні високонавантажених мап для пошуку об’єктів
    (2020) Жук, Максим; Проценко, Володимир
    У роботі описано ключові аспекти, пов’язані з прикладною розробкою високонавантажених вебмап на основі мапи пошуку нерухомості. Під час розроблення системи важливо розуміти ключові вимоги та адресувати їх в архітектурному рішенні. При проектуванні архітектурного рішення було враховано такі ключові аспекти: геокодування, кластеризація, вибір провайдера мапи, фільтрація. Відображення великої кількості об’єктів є одним із ключових завдань. У результаті запропоновано технічне архітектурне рішення з обґрунтуванням використаних елементів системи, зважаючи на можливі адаптації системи та економічну доцільність.
  • Item
    Методи роботи з 3D-моделями у вебзастосунках
    (2020) Фарина, Олександр; Корнійчук, Максим
    У статті проаналізовано наявні підходи та способи відображення 3D-моделей у браузері, накладання текстури на модель, а також методи створення сучасної javascript-бібліотеки, яку можна інтегрувати в будь-який вебзастосунок. Програмна частина, описана в цій роботі, являє собою фонтенд-частини для онлайн-сервісу примірювання одягу на 3D-моделях у браузері, глобальним результатом якої буде тестова версія цього сервісу.
  • Item
    Методи роботи з текстурами за допомогою засобів оброблення зображень на мові Python
    (2020) Гамаюн, Давід; Корнійчук, Максим
    У статті проаналізовано наявні підходи й алгоритми оброблення зображень та подальшого їх використання для оброблення фото одягу, перетворення їх на фото текстури для 3D-моделей. Програмна частина, описана в цій статті, являє собою бекенд для онлайн-сервісу примірювання одягу на 3D-моделях у браузері, глобальним результатом якої буде тестова версія цього сервісу.
  • Item
    Метод BFGS для задачі побудови s-подібної кривої
    (2020) Стецюк, Петро; Ляшко, Володимир; Супрун, Антон
    Розглянуто використання методу BFGS та його проективного варіанта L-BFGS-B для мінімізації нелінійної функції, яка відповідає знаходженню розв’язків системи п’яти нелінійних рівнянь, серед яких три рівняння є інтегральними та залежать від невідомих параметрів підінтегральних функцій і невідомих верхніх границь для визначених інтегралів. Ця система відповідає задачі побудови S-подібної кривої, яка проходить через дві задані точки із заданими кутами нахилу дотичних у них та забезпечує заданий кут нахилу дотичної у проміжній точці із заданою абсцисою. Показано, що метод BFGS є ефективним, якщо стартова точка вибирається в околі точки мінімуму, де функція, що мінімізується, достатньо точно апроксимується опуклою квадратичною функцією.
  • Item
    Використання алгоритму LSA для кластеризації задач із геометрії
    (2020) Жежерун, Олександр; Борозенний, Сергій; Ніверовський, Микита
    У роботі розглянуто метод LSA (латентно-семантичного аналізу), зокрема його найпоширеніший варіант, що базується на сингулярному розкладі матриці (SVD). На його основі реалізовано алгоритм кластеризації задач і застосовано на прикладі кластеризації задач із геометрії.