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

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

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык украинский
Дата добавления 11.12.2024
Размер файла 501,4 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://allbest.ru

Чорноморський національний університет імені Петра Могили

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

Кандиба Ігор Олександрович PhD, старший викладач

кафедри інженерії програмного забезпечення,

Фісун Микола Тихонович доктор технічних наук,

професор кафедри інженерії програмного забезпечення,

м. Миколаїв

Анотація

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

Визначено специфіку застосування різноманітного інструментарію роботи з графовими моделями для реалізації Precedence Diagramming Method та Critical path method. Наведено опис досліджень систем керування базами даних (СКБД) побудованих на основі графової моделі та можливість застосування цих СКБД для обробки мережевих графіків.

Описано переваги застосування операцій декомпозиції і синтезу для роботи з мережевими графіками при застосуванні типових фрагментів. Розглянуто можливість застосування СКБД Neo4j для збереження, редагування та відображення мережевих графіків. Визначено можливість застосування мови запитів Cypher при обробці мережевих графіків. Проаналізовано особливості застосування та реалізації предметно-орієнтованих мов програмування.

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

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

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

Ключові слова: Python, Neo4j, Cypher, предметно-орієнтовані мови програмування, мережеві графіки.

Abstract

Development of language tools for decomposition and synthesis of graph models

Kandyba Ihor Oleksandrovych PhD, senior lecturer at the Department of Software Engineering, Petro Mohyla Black Sea National University, Mykolaiv

Fisun Mykola Tykhonovych Doctor of Technical Science, professor at the Department of Software Engineering, Petro Mohyla Black Sea National University, Mykolaiv

The article investigates the peculiarities of implementing the operations of decomposition and synthesis of graph models based on the use of domain-specific programming languages. The analysis of modern publications on the peculiarities of using, creating and manipulating project network diagram is carried out. The specifics of using various tools for working with graph models to implement the Precedence Diagramming Method and Critical path method are determined. A description of the research of database management systems (DBMS) built on the basis of a graph model and the possibility of using these DBMS for processing project network diagram is given. The advantages of using decomposition and synthesis operations to work with project network diagram using typical fragments are described. The possibility of using the Neo4j DBMS for saving, editing and displaying project network diagram is considered. The possibility of using the Cypher query language for processing project network diagram is determined. The features of the application and implementation of domain-specific programming languages are analyzed. The tools necessary for creating programming languages of this class are determined. The advantages of using the Unicc parser generator are described, and the possibility of using the generated parsers with the general-purpose Python language is investigated. The syntax of a domain-specific programming language for implementing the operations of decomposition and synthesis of graph structures is proposed. A study of the means of creating a user interface for applications developed in the Python programming language is carried out. The possibility of using adjacency lists as a structure that stores the graph for the current display is described. The possibility of importing and exporting this structure to Neo4j is considered. The option of using the Graphviz toolkit to display the results of decomposition and synthesis operations in the user interface is proposed. The possibility of applying graphodynamic operations to the developed toolkit for implementing decomposition and synthesis operations using typical fragments is analyzed.

Keywords: Python, Neo4j, Cypher, Domain-specific language, project network diagram.

Вступ

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

Прикладом такої моделі є мережні графіки (МГ) - це математичні структури, що складаються з вершин (вузлів) і ребер (зв'язків), які відображають взаємодії між об'єктами. В таких моделях, крім зв'язків між вершинами, задаються характеристики вершин або ребер залежно від обраної форми представлення МГ: Precedence Diagramming Method (PDM) чи Critical path method (CPM).

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

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

Спростити процес створення МГ можливо використавши при побудові типові фрагменти. Типові фрагменти або шаблонні фрагменти (типові підграфи) в мережевих графіках широко використовуються для спрощення моделювання та аналізу складних проєктів. Ці фрагменти представляють собою певні часто зустрічаються підструктури в графах, які можна багаторазово використовувати.

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

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

Використання графових структур для моделювання предметних галузей досліджено в роботі [2]. Авторами досліджено можливість реалізації сценарного аналізу на основі когнітивної карти, що є графовою структурою. У якості інструментарію обробки цієї структури запропоновано застосування предметно-орієнтованої мови програмування. Проаналізовано особливості роботи сучасних засобів математичного моделювання з підтримкою обробки графів та інструментарій систем керування базою даних (СКБД) на основі графових структур. Однак питання реалізації операції декомпозиції та синтезу компонентів графу вимагає подальшого дослідження.

Дослідження [3] присвячено аналізу можливостей сучасних СКБД, що базуються на графовій моделі даних. Проведено порівняльний аналіз двох найбільш актуальних засобів: Neo4j та Tigergraph databases. Розглянуто можливості вбудованих мов маніпуляцій даними, описано способи інтеграції зазначеного інструментарію з мовами програмування загального призначення. Проте, питання можливості впровадження операції декомпозиції та синтезу графової моделі з використанням типових фрагментів потребує подальшого аналізу.

Важливим напрямком досліджень графових структур є бази знань. Граф є основною моделлю даних при реалізації онтологічного аналізу [4]. В програмному забезпечення для вирішення задач цього класу використовуються спеціалізовані СКБД з підтримкою формату даних Resource Description Framework. В роботі [5] детально досліджено особливості цього формату та можливості застосування мови SPARQL для роботи з графовими структурами. Однак, задача реалізації операції синтезу та декомпозиції на базі використання типових фрагментів спеціалізованими засобами вимагає подальшого дослідження.

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

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

Виклад основного матеріалу

Мережні графіки (МГ), а точніше Precedence Diagramming Method (PDM) є актуальним інструментом планування складних проєктів, що дають змогу врахувати багато перешкод, які впливають на пізнє завершення проєкту, такі як: погода, пізнє затвердження генерального плану, пізнє надходження матеріалів, менша кваліфікація працівників тощо [1]. В МГ вершини нижніх рівнів містить характеристики (час виконання, трудомісткість, вартість, кількість потрібних ресурсів, тощо). При проведенні розрахунків характеристик верхніх необхідним є реалізація синтезу зазначених характеристик вершин нижніх рівнів. Спеціалізоване ПЗ для математичного моделювання або графові СКБД типу Neo4j дозволяють автоматизувати ці розрахунки, але через відсутності групових операцій декомпозиції та агрегації вершин, такі перетворення графів потребують додаткових запитів та часу на обробку.

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

Рис. 1 Приклад графа Gi за топологією PDM

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

Припустимо, що процес виконання роботи W4 треба деталізувати шляхом заміни її мережним графіком Fi (рис.2).

Сучасний інструментарій роботи з МГ не підтримує можливостей декомпозиції та синтезу з використанням деяких типових фрагментів.

Використовуючи у якості типових фрагментів деталізовані роботи можливо спростити процес побудови МГ.

Наприклад, виконавши вже згадану заміну роботи W4 на типовий фрагмент F і верхній рівень МГ Gi зазнає значних змін (рис. 3).

Використання у якості засобу збереження та обробки МГ інструментарію СКБД Neo4j має декілька значних переваг: підтримка великої кількості вузлів та ребер, можливість графічного відображення збережених графів, наявність засобів інтеграції Neo4j з мовами програмування загального призначення [6]. Neo4j підтримує кластеризацію та розподілені обчислення, що дозволяє обробляти великі обсяги даних та забезпечувати високу доступність.

Рис. 3 Мережний графік F і

Окрім зберігання та маніпуляції даними у графовій СКБД Neo4j реалізовані різні алгоритми на графових структурах: пошук в глибину, Дейкстри, алгоритми кластеризації тощо. Реалізація цих алгоритмів робить це СКБД доцільним для застосування у розв'язані різних задач, наприклад при використанні у якості у якості сховища для зберігання МГ можливе використання алгоритмів пошуку найкоротшого шляху для імплементації методу Critical path method.

Графічний інтерфейс користувача СКБД Neo4j дозволяє відображати збережені МГ у настільному застосунку або за допомогою вебінтерфейсу (рис. 4). Цей інтерфейс дозволяє виконувати запити спеціалізованою мовою запитів Cypher. Ця мова запитів, розроблена спеціально для роботи з графовою базою даних Neo4j. Вона дозволяє ефективно робити вибірку та маніпулювати даними у графовій структурі, що складається з вузлів (вершин) та ребер (зв'язків). Cypher надає спеціалізований синтаксис для написання складних запитів, що суттєво відрізняється від SQL.

Рис. 4 Інтерфейс Neo4j

Реалізувати операції декомпозиції і синтезу графових можливо кількома послідовними операціями Cypher, але при цьому використання типових фрагментів не можливо. Для поєднання механіки виконання згаданих операцій з можливістю застосування типових фрагментів необхідно доповнити мову маніпуляції даними або додатково застосувати предметно-орієнтовану мову (ПОМ), що підтримуватиме ці механізми.

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

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

Розробка аналізаторів для ПОМ є складний процес, який можна спростити використавши спеціальні програмні засоби: ANTLR, Unicc JLanguageTool, LLVM, PLY, PyParsing тощо. Вибір інструментарію цього класу залежить від поставлених задач. В розрізі реалізації синтезу та декомпо- зиції в МГ для застосування PDM необхідною є підтримка мультиалфавітності для коректного опису робіт та швидка обробка великих об'ємів вхідного коду. Перераховані властивості притаманні інструментарію Unicc [8].

Unicc є представником класу універсальних генераторів лексичних та синтаксичних аналізаторів. Розроблений на мові програмування загального призначення С та підтримує генерацію вихідного коду для мов: С, С++, С#, Java, Python, php тощо. Отже окрім швидкодії та мультиалфавістності використання Unicc забезпечує крослатформовість ПОМ [8].

Основою для генерації аналізаторів є формальний опис синтаксису вхідною мовою. При використанні Unicc синтаксис вхідної мови описується за допомогою розширеної форми Бекуса-Наура (РБНФ).

РБНФ є розширенням стандартної форми Бекуса-Наура (БНФ), що в свою чергу є нотацією для опису синтаксису формальних мов, таких як мови програмування або розмітки. Основна відмінність РБНФ від БНФ полягає в тому, що вона дозволяє використовувати додаткові конструкції, такі як символи квантифікації, варіанти, групи символів та інші. Це робить РБНФ більш потужним та зручним інструментом для опису складних граматик. Інструментарій Unicc потребує збереження РБНФ у файлі спеціалізованого формату par.

За допомогою РБНФ синтаксис операцій синтезу та декомпозиції можна представити наступним чином:

expression := replace_opper | compose_opper; expression -> replace_opper | compose_opper; replace_opper -> "replace " list_of_replaces; compose_opper -> "compose " list_of_composes+; list_of_replaces -> full_edge_name " by " @template_name; full_edge_name -> @template_name "." @template_name; list_full_edge_name -> full_edge_name ("," full_edge_name)*; full_edge_name_char -> full_edge_name "." @template_name; list_edge_name_char -> full_edge_name_char (", " full_edge_name_char)*; list_of_composes -> list_full_edge_name " as " full_edge_name " set " edge_name_func (", " edge_name_func)* ;

edge_name_func -> full_edge_name "=" aggregate_functions "(" list_edge_name_char ")";

aggregate_functions -> "SUM" | "COUNT" | "AVG" | "MIN" | "MAX";; template_nam := [A-Za-z0-9_]+;

Генератор аналізаторів Unicc побудований на основі алгоритму LALR(1), який базується на методі LR(1). Основна перевага алгоритму LALR(1) полягає в тому, щоб об'єднати стани, які є однаковими за своїми діями, що дозволяє зменшити кількість станів та відповідно пам'яті, не втрачаючи при цьому потрібної потужності аналізатора. Це прискорює аналіз вхідного коду та зменшує кількість необхідних обчислювальних ресурсів для проведення аналізу [8].

Потрібно врахувати, що результатом роботи генератора Unicc є код мови програмування загального призначення. Мова якою буде згенерований код задається в файлі формату pam, який містить опис граматики. Серед широкого спектра підтримуваних Unicc мов варто виділити Python.

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

Запропонований синтаксис операцій синтезу та декомпозиції дозволяє ввести виконати об'єднання вершин наступним чином:

Compose G1.F0,G1.F1,G1.F2 as G1.W4 set W4.r0=SUM(G1.F1.r0, G1.F2.r0, G1.F0. r0), w4.r1=SUM(G1.F1.r1, G1.F2.r1, G1.F0.r1),

W4.r2=SUM(G1.F1.r2, G1.F2.r2, G1.F0.r2);

Де G1 - граф; F0, F1, F2 - вершини, що будуть об'єднанні (операція синтезу) та W4 - вершени, що буде створена при виконанні операцій синтезу, г0, г1, г2 - властивості (характеристики) вершин, SUM( ) - застосована функція агрегації.

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

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

Рис. 5 Робота обробника помилок генерованого Unicc

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

Створити інтерфейс введення запитів ПОМ та відображення графових структур можливо використавши інструментарій мови Python. Серед доступних засобів побудови графічного інтерфейсу найбільш розповсюдженими є: Tkinte, PyGTK, PyQt тощо. Серед перерахованого варто виділити PyQt, що базується на Qt framework та є найбільш функціональним та гнучким [9]. Qt framework - це потужний набір інструментів для розробки кросплатформових клієньских, мобільних застосунків з графічним інтерфейсом.

Незважаючи на широкі можливості PyQt відображення графових структур потребує додаткового використання спеціалізованого інструментарію. Прикладом такого інструментарію є Graphviz - бібліотека для створення та візуалізації графів. Graphviz містить інструменти для створення графічних представлень графових структур даних, таких дерева і мережі. Ця бібліотека використовує мову DOT для опису графів і інших структур даних [10]. DOT є декларативною мовою, яка дозволяє зручно визначати вершини, ребра, атрибути та інші характеристики графів.

Згадана мов DOT дозволяє реалізувати взаємодію між графовою СКБД, що міститиме детальний опис робіт та сформованих МГ та користувацьким інтерфейсом в якому користувач зможе переглянути та відредагувати збережені МГ. Graphviz надає можливості автоматичного розташування вершин та ребер графа, що дозволяє уникнути необхідності ручної розстановки елементів (рис. 6).Окрім того зазначений інструментарій підтримує різноманітні формати вихідного файлу, такі як PNG, SVG, PDF, PostScript тощо [10], що дозволяє реалізувати функцію експорту та повторного використання створених МГ.

Рис. 6 Інтерфейс відображення МГ засобами PyQt та Graphviz

Відкритим залишається питання використання проміжного формату між СКБД Neo4j, що зберігає розроблені МГ з характеристиками робіт та інтерфейсом користувача, який відображає графічне представлення і дозволяє вносити зміни в МГ.

Графи можуть бути подані різними способами: матриця інцидентності, матриця суміжності, список суміжності [11] тощо. У цьому контексті доцільним є застосування списків суміжності. У цій структурі кожній вершині графа відповідає список суміжних вершин. Це може бути зроблено за допомогою масиву списків або хештаблиці, де ключі - вершини, а значення - списки суміжних вершин.

Підключення СКБД Neo4j до застосунку розробленого на Python можливо шляхом використання відповідної бібліотеки «neo4j». Бібліотека наявна в офіційному репозиторії та може бути встановлена за допомогою вбудованого менеджере керування пакунків pip.

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

Отримати список суміжності з СКБД Neo4j можливо засобами мови Cypher. Для генерації списку суміжності достатньо виконання простого запиту вибірки вершин без параметрів:

MATCH (a)-[n]->(b)

RETURN a.name, b.name

Вивід отриманого списку суміжності можливо переглянути у інтерфейсі користувача СКБД Neo4j або за допомогою використання об'єкту GraphDatabase в ПЗ, що розробляється.

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

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

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

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

Висновки

Проведено дослідження ПЗ для побудови мережних графіків для планування з врахуванням ризиків та перешкод. Визначено інструментарій необхідний для побудови системи обробки МГ. Проведено аналіз можливостей СКБД Neo4j та засобів її інтеграції з мовами загального призначення. Описано методи створення ПОМ та інструментарій генерації аналізаторів для їх роботи. Запропоновано синтаксис ПОМ для реалізації операцій декомпозиції та синтезу МГ.

Література

1. Novitasari A. D., Sandora R., Lestari R. L. Project scheduling analysis using precedence diagram method (PDM). JEMIS (Journal of Engineering \& Management in Industrial System). Vol. 6, Issue 1. P. 36-45.

2. Кандиба І. О., Фісун М. Т., Горбань Г. В., Антіпоква, К. О. Генерація сценаріїв вступної кампанії закладу вищої освіти на основі когнітивної карти та предметно- орієнтованої мови програмування. Вчені записки Таврійського національного університету імені В.І. Вернадського. Серія: Технічні науки. Том. 3, № 32. С. 96-104.

3. Chicho B., Mohammed A. O. An empirical comparison of Neo4j and Tigergraph databases for network centrality. Science Journal ofUniversity ofZakho. Vol. 11, Issue 2. P. 190-201.

4. Ланде Д. В., Пучков О. О., Субач І. Ю. Cистема аналізу великих обсягів даних з питань кібербезпеки із соціальних медіа. Collection" Information Technology and Security". Том 8, № 1. С. 4-18.

5. Hogan A. Resource description framework. The Web of Data. 2020. P. 59-109.

6. Robinson I., Webber J., Eifrem E. Graph Databases. New opportunities for connected data. O'Reilly Media, 2015. 238 p.

7. Fowler M. Domain-Specific Languages. Boston : Addison-Wesley Professional, 2010. 640 p.

8. Фісун М. Т., Кандиба І. О., Горбань Г. В, Фаленкова М. В. Використання методу аналізу ієрархій для вибору засобів розробки синтаксичних аналізаторів при створенні DSL. Наукові праці Вінницького національного технічного університету. Випуск 1. URL: https ://praci. vntu.edu.ua/index.php/praci/arti cl e/vi ew/ 628

9. Harwani B. M. Qt5 Python GUI Programming Cookbook: Building responsive and powerful cross-platform applications with PyQt. Packt Publishing Ltd, 2018. 462 p.

10. Ariyanti G., Sari A. Graph Applications Using Graphviz in Drainage System: The Case in Madiun City, Indonesia. Graph Applications Using Graphviz in Drainage System: The Case in Madiun City, Indonesia. Vol. 19, Issue 2. 2022 P. 27-35.

11. Лавренчук С. В., Здолбіцька Н. В., Хамула Н. М. Програмний комплекс для візуалізації алгоритмів на графах. Вісник Хмельницького національного університету. 2021. Вип. 303, № 6. С. 81-85.

12. Коваленко І. І., Пугаченко К. С. Інформаційна технологія графодинамічного моделювання організаційних структур проектів. Збірник наукових праць Національного університету кораблебудування. Том 2. С. 84-88.

References

1. Novitasari, A. D., Sandora, R., & Lestari, R. L. (2018). Project scheduling analysis using precedence diagram method (PDM). JEMIS (Journal of Engineering \&Management in Industrial System), 6(1), 36-45.

2. Kandyba, I. O., Fisun, M. T., Horban, H. V., & Antipokva, K. O. (2021). Heneratsiia stsenariiv vstupnoi kampanii zakladu vyshchoi osvity na osnovi kohnityvnoi karty ta predmetno- oriientovanoi movy prohramuvannia. Vcheni Zapysky Tavriiskoho Natsionalnoho Universytetu Imeni V.I. Vernadskoho. Seriia: Tekhnichni Nauky, 3(32), 96-104.

3. Chicho, B., & Mohammed, A. O. (2023). An empirical comparison of neo4j and tigergraph databases for network centrality. Science Journal of University of Zakho, 11(2), 190-201.

4. Lande, D., Puchkov, O., & Subach, I. (2020). Systema analizu velykykh obsiahiv danykh z pytan kiberbezpeky iz sotsialnykh media. Collection" Information Technology and Security", 8(1), 4-18.

5. Hogan, A. (2020). Resource description framework. The Web of Data, 59-109.

6. Robinson, I., Webber, J., & Eifrem, E. (2015). Graph Databases. New opportunities for connected data. In Joe Celko's Complete Guide to NoSQL. O'Reilly Media. 238.

7. Fowler M. (2010) Domain-Specific Languages. Boston : Addison-Wesley Professional, 640.

8. Fisun, M. T., Kandyba, I. O., Horban, H. V., Falenkova, M. V. (2021). Vykorystannia metodu analizu iierarkhii dlia vyboru zasobiv rozrobky syntaksychnykh analizatoriv pry stvorenni DSL. Naukovi Pratsi Vinnytskoho Natsionalnoho Tekhnichnoho Universytetu, 1. https://praci. vntu.edu.ua/index.php/praci/arti cle/view/628

9. Harwani B. M. (2018) Qt5 Python GUI Programming Cookbook: Building responsive and powerful cross-platform applications with PyQt. Packt Publishing Ltd, 462.

10. Ariyanti, G., & Sari, A. (2022). Graph Applications Using Graphviz in Drainage System: The Case in Madiun City, Indonesia. Graph Applications Using Graphviz in Drainage System: The Case in Madiun City, Indonesia, 19(2), 27-35.

11. Lavrenchuk, S. V., Zdolbitska, N. V., & Khamula, N. M. (2021). Prohramnyi kompleks dlia vizualizatsii alhorytmiv na hrafakh. Visnyk Khmelnytskoho Natsionalnoho Universytetu, 303(6), 81-85.

12. Kovalenko, I. I., & Puhachenko, K. S. (2013). Informatsiina tekhnolohiia hrafodynamichnoho modeliuvannia orhanizatsiinykh struktur proektiv. Zbirnyk Naukovykh Prats Natsionalnoho Universytetu Korablebuduvannia, 2, 84-88.

Размещено на Allbest.ru

...

Подобные документы

  • Використання баз даних та інформаційних систем. Поняття реляційної моделі даних. Ключові особливості мови SQL. Агрегатні функції і угрупування даних. Загальний опис бази даних. Застосування технології систем управління базами даних в мережі Інтернет.

    курсовая работа [633,3 K], добавлен 11.07.2015

  • Основні підходи до проектування баз даних. Опис сайту Інтернет-магазину, характеристика його підсистем для обробки анкет і запитів користувачів. Розробка концептуальної, інфологічної, даталогічної, фізичної моделей даних. Побудова ER-моделі в CASE-засоби.

    курсовая работа [2,3 M], добавлен 01.02.2013

  • Модель аналізу-синтезу компіляції. Формальний опис вхідної мови програмування. Вибір технології програмування, проектування таблиць транслятора та вибір структур даних. Опис програми реалізації лексичного аналізатора. Розробка дерев граматичного розбору.

    курсовая работа [75,8 K], добавлен 26.12.2009

  • Широкі можливості по використанню комп'ютерних навчальних систем. Розробка навчальної системи мультимедійного посібника з дисципліни "Інформатика і ОТ" на тему "Особливості мови програмування С++. Вказівники". Вимоги до розробки навчальної програми.

    курсовая работа [2,9 M], добавлен 23.11.2010

  • Можливості застосування середовища MySQL для роботи з базами даних. Завдання системи SQL Server. Розробка концептуальної моделі бази даних "Сервісний центр". Створення таблиць phpmyadmin, заповнення їх даними. Створення запитів і зв’язків у phpmyadmin.

    курсовая работа [2,3 M], добавлен 27.05.2015

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

    курсовая работа [1,6 M], добавлен 30.01.2013

  • Класифікація інформаційних систем. Дослідження особливостей мови UML як засобу моделювання інформаційних систем. Розробка концептуальної моделі інформаційної системи поліклініки з використанням середи редактора програмування IBM Rational Rose 2003.

    дипломная работа [930,4 K], добавлен 26.10.2012

  • Системи автоматичного керування. Описання методу стикування розв'язків на основі теореми по n-інтервалів. Застосування методу динамічного програмування (рівняння Р. Белмана). Моделювання задачі синтезу та аналізу на електронній обчислювальній машині.

    контрольная работа [632,5 K], добавлен 31.03.2014

  • Поняття бази даних та основне призначення системи управління. Access як справжня реляційна модель баз даних. Можливості DDE і OLE. Модулі: Visual Basic for Applications програмування баз даних. Система управління базами даних Microsoft SQL Server 2000.

    реферат [41,2 K], добавлен 17.04.2010

  • Проектування інформаційної системи для супроводу баз даних. Моделі запиту даних співробітником автоінспекції та обробки запиту про машини та їх власників. База даних за допомогою SQL-сервер. Реалізація запитів, процедур, тригерів і представлення.

    курсовая работа [1,7 M], добавлен 18.06.2012

  • Розробка бази даних для меблевої фірми. Обстеження і аналіз предметної області та побудова концептуальної, логічної та фізичної моделі цієї бази даних. Використання мови програмування Visual Basic при написанні програмного коду, що обслуговує базу даних.

    курсовая работа [1,4 M], добавлен 24.10.2010

  • Основні принципи об’єктно-орієнтованого програмування. Типові середовища програмування та особливості мови С++. Етапи проектування БД. Розробка програмного забезпечення для реалізації створення бази відеофільмів. Основні положення та моделі БД.

    курсовая работа [2,7 M], добавлен 24.03.2011

  • Аналіз сучасного стану технологій програмування. Засоби реалізації об'єктів в мові C++, структура даних і функцій. Розробка програмного продукту - гри "трикутники", з використовуванням моделей, класів і функцій об’єктно-орієнтованого програмування.

    курсовая работа [117,8 K], добавлен 14.03.2013

  • Створення табличних документів і їх опис. Побудова графіків та діаграм. Робота з базами даних в табличному процесорі Excel. Створення екранних форм, таблиці бази даних, звітних форм, запитів, макросів та головної кнопочної форми. Проектування презентації.

    курсовая работа [1,9 M], добавлен 10.04.2015

  • Створення гнучкої клієнт-серверної системи інформаційної підтримки підвищення кваліфікації персоналу ДП № 9 з застосуванням мови програмування PHP, системи керування базами даних MySQL. Розробка алгоритмів, програмна реалізація основних процедур системи.

    дипломная работа [1,8 M], добавлен 26.10.2012

  • Використання системи керування базами даних (СКБД) Microsoft Access на реляційній моделі. Основні об’єкти баз даних: таблиці, запити, форми, звіти, макроси і модулі. Виконання обрахунків у запитах, підсумкові та перехресні запити, їх використання.

    курсовая работа [569,6 K], добавлен 01.11.2011

  • Методологія застосування можливостей середовища MySQL для роботи з базами даних. Реляційна основа та інтерактивні запити. Динамічне визначення даних. Вигляд таблиць після заповнення. Встановлення зв’язків, проектування схеми. Створення запитів та форм.

    курсовая работа [2,0 M], добавлен 10.04.2015

  • Дослідження проблеми пошуку автомобілів та постановка задачі створення автокаталогу з використанням мови програмування PHP і JаvаScrіpt. Дослідження моделей прецедентів системи та їх класової архітектури. Моделювання розподіленої конфігурації систем.

    курсовая работа [3,7 M], добавлен 11.10.2010

  • Області застосування і реалізації інформаційних систем, вимоги до них. Призначення та класифікація систем управління базами даних. Основні достоїнства мови SQL. Програмний код додатку. Створення база даних "Мебельний магазин". Лістинг даної програми.

    курсовая работа [747,0 K], добавлен 19.04.2015

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

    дипломная работа [2,8 M], добавлен 22.06.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.