АННОТАЦИЯ 3
ВВЕДЕНИЕ 3
1. ОСНОВНЫЕ ОПРЕДЕЛЕНИЯ 5
1.1 КОНЕЧНЫЕ АВТОМАТЫ 5
1.2 ФУНКЦИИ ДЛЯ РАБОТЫ С КОНЕЧНЫМИ АВТОМАТАМИ 10
2. ПРОЕКТИРОВАНИЕ ИНТЕРФЕЙСА СИСТЕМЫ ДЛЯ РАБОТЫ С
КОНЕЧНЫМИ АВТОМАТАМИ 12
2.1 ОБЗОР СУЩЕСТВУЮЩИЙ ПРОЕКТОВ 12
2.2 ОПРЕДЕЛЕНИЕ ТРЕБОВАНИЙ К ИНТЕРФЕЙСУ 16
2.3 ВЫБОР ТЕХНОЛОГИИ РАЗРАБОТКИ 18
3. РЕАЛИЗАЦИЯ ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА 22
3.1 СТРУКТУРА ВЕБ-ПРИЛОЖЕНИЯ 22
3.2 РЕАЛИЗАЦИЯ ИНТЕРФЕЙСА СИСТЕМЫ 23
ЗАКЛЮЧЕНИЕ 30
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ И ЛИТЕРАТУРЫ 32
В современном мире информационные технологии играют ключевую роль в различных областях деятельности человека. Одним из важных направлений является разработка и применение алгоритмов, основанных на теории автоматов. Отдельного внимания заслуживают конечные автоматы (КА).
Конечные автоматы — это инструмент позволяющий автоматизировать и оптимизировать множество процессов и сегодня они находят применения во многих сферах, а именно: в финансовых рынках, производстве, маркетинге, управлении рисками, страховании и многие другие [1].
Из ярких примеров можно выделить: применение КА торговых алгоритмах, определение и выполнение операции по заданным параметрам, машина анализирует рыночные данные распознает шаблонные ситуации и принимают решение - купить или продать активы [1]. КА также могут анализировать запасы и историю спроса, учитывать сезон и определять оптимальный уровень закупок и выдавать заказы на поставки. КА могут моделировать и оценивать риски путем анализа данных, факторов и затем разрабатывать новые стратегии для предотвращения нежелательной ситуации как потеря прибыли или не реализованный товар.
Однако для эффективного использования конечных автоматов в практических задачах необходимо разработать удобные инструменты и методы работы с ними. В связи с этим возникает необходимость создания специализированных систем и интерфейсов, которые позволят упростить процесс разработки алгоритмов и синтеза систем на основе конечных автоматов.
Актуальность темы исследования обусловлена растущим интересом к применению конечных автоматов в различных сферах деятельности, а также необходимостью разработки удобных инструментов для работы с ними. Благодаря данному интерфейсу люди, изучающие тему конечных автоматов, смогут проводить исследования эффективнее за счет функций автоматизации тестирования, и сохранять результаты в удобном текстовом варианте. Люди более углубленные в тему исследования, смогут получить исходный код программы и доработать программу для своих нужд.
Целью данной научно-исследовательской работы является разработка интерфейса системы для работы с конечными автоматами.
Для достижения поставленной цели необходимо решить следующие задачи:
• Изучить основные понятия и принципы работы с конечными автоматами;
• Изучение основ веб - разработки;
• Обзор существующих решений;
• Изучение требований к интерфейсу системы;
• Реализация прототипа интерфейса системы.
Результаты исследования могут быть полезны для специалистов в области информационных технологий, разработчиков программного обеспечения и исследователей, занимающихся применением конечных автоматов в своих работах.
В ходе выполнения выпускной квалификационной работы были разработаны: функции оценки тестового покрытия, симуляции автомата с выводом трасс, а также веб - интерфейс. Реализация проекта осуществлялась на языке Python с использованием фреймворка Flask, что позволило создать гибкое и масштабируемое веб-приложение с открытым исходным кодом.
В первой главе работы были рассмотрены теоретические основы конечных автоматов, их свойства и функции, что заложило фундамент для дальнейшего проектирования системы. Во второй главе проведён анализ существующих решений, а именно: JFLAP, Stateflow, IAR visual state, Fsm test online, были сформулированы требования к интерфейсу. Третья глава посвящена непосредственной реализации веб-приложения, в ней был обоснован выбор технологий разработки , изучены основы разработки веб - интерфейсов, структура веб - приложений. Были описаны функциональные модули и их представление в пользовательском интерфейсе.
Разработанная система предоставляет пользователю интуитивно понятный интерфейс с базовыми функциями для работы с файлами формата .fsm, .efsm, .fa, а именно: загрузка автомата из файла формата ".fsm’”, ".efsm", “.fa””, скачивание автомата в файл формата ".fsm“, “.efsm””, “.fa””, проверка корректности описания автомата в формате “.fsm””, “.efsm””, “.fa””, [4]
доопределение частичного конечного автомата, симуляция конечного автомата с выводом трасс, симуляции расширенного автомата, симуляция полуавтомата, функция построения l - эквивалента для расширенного автомата. Данные функции помогут студентам, начинающим исследовать сферу конечных автоматов. Применение веб - фреймворка Flask обеспечило простоту разработки и дальнейшего расширения функционала системы, благодаря простоте структуры веб - приложения, система будет полезна и для исследователей, занимающихся синтезом систем, а также алгоритмов, построенных с использованием конечных автоматов.
Проделанная работа подтверждает актуальность темы и демонстрирует практическую значимость системы для учебных и исследовательских целей. В перспективе проект может быть дополнен новыми возможностями, такими как поддержка визуализации результатов работы конечных автоматов, симуляция автомата, при помощи заданной пользователем, диаграммы состояний, построение таблицы переходов -выходов.
Таким образом, поставленные цели и задачи выпускной квалификационной работы достигнуты, что позволяет считать проект успешно завершённым.