Коваленко Л.А. ВКР на тему «Разработка конструктора нейронных сетей». Глубокая проверка на плагиат.
однострочным полем ввода и кнопками «Ок» и «Отмена».
2. Если «Ок», то в список разделов добавляется новый раздел с указанным названием. 3. Если «Отмена», то отмена действия.
«Обновить все разделы с шаблонами» Является пунктом контекстного меню списка разделов, контекстного меню раздела и контекстного меню шаблона.
1. Обновляется список всех разделов с шаблонами из директории «models/datasets», «models/architecture», «models/train_val_test». «models/visualization» или «models/export» в
зависимости от того, в каком разделе была выполнена операция. 2. Пустые разделы (без шаблонов) удаляются.
2.1.9 Функции раздела Основные функции раздела приведены в таблице 2.8.
Таблица 2.8 — Основные функции раздела Функция Описание
«Добавить шаблон по выбранным блокам в раздел» Является пунктом контекстного меню раздела и контекстного меню шаблона.
1. Отображается окно ввода названия шаблона «Введите название шаблона» с многострочным полем ввода и кнопками «Ок» и «Отмена».
2. Если «Ок», то в раздел добавляется новый шаблон с указанным названием. Выбранные блоки копируются в шаблон, который затем сохраняется на диск.
3. Если «Отмена», то отмена действия. «Удалить раздел со всеми шаблонами»
Является пунктом контекстного меню раздела и контекстного меню шаблона.
1. Отображается окно подтверждения «Вы уверены, что хотите удалить раздел [название] со всеми шаблонами» с кнопками «Да» и «Нет».
2. Если «Да», то раздел со всеми шаблонами удаляется (включая удаление шаблонов на диске). 3. Если «Нет», то отмена действия.
2.1.10 Функции шаблона Основные функции шаблона приведены в таблице 2.9.
Таблица 2.9 — Основные функции шаблона Функция Описание
«Обновить шаблон по выбранным блокам» Является пунктом контекстного меню шаблона.
1. Отображается окно подтверждения «Вы уверены, что хотите обновить шаблон [раздел шаблона]/[название шаблона]» с кнопками «Да» и «Нет».
2. Если «Да», то шаблон обновляется по выбранным блокам (включая изменение на диске). 3. Если «Нет», то отмена действия.
«Изменить название шаблона» Является пунктом контекстного меню шаблона.
1. Отображается окно ввода нового названия шаблона «Введите новое название шаблона» с многострочным полем ввода и кнопками «Ок» и «Отмена». В многострочном поле ввода должно быть исходное название шаблона.
2. Если «Ок», то шаблон меняет название (включая изменение на диске). 3. Если «Отмена», то отмена действия.
«Удалить шаблон» Является пунктом контекстного меню шаблона.
1. Отображается окно подтверждения «Вы уверены, что хотите удалить шаблон [раздел шаблона]/[название шаблона]» с кнопками «Да» и «Нет».
2. Если «Да», то шаблон удаляется (включая удаление на диске).
16
Коваленко Л.А. ВКР на тему «Разработка конструктора нейронных сетей». Глубокая проверка на плагиат.
3. Если «Нет», то отмена действия.
2.1.11 Взаимодействие приложения со средой исполнения Обобщенная схема взаимодействия проектов и сред исполнения продемонстрирована на рисунке 2.2.
Рисунок 2.2 — Схема взаимодействия проектов и сред исполнения
Последовательность работы пользователя, приложения и среды исполнения продемонстрирована на рисунке 2.3.
Рисунок 2.3 — UML диаграмма последовательности работы пользователя, приложения и среды исполнения 2.2 Требования к эргономике и технической эстетике
2.2.1 Общие требования к внешнему виду Термины, используемые для обозначения типовых операций, а также последовательности
действий пользователя при их выполнении, должны быть унифицированы.
Графические элементы без текстового сопровождения должны иметь всплывающие подсказки. Пользователь должен получать информацию, как об успешном завершении операций, так и о возникновении сбоев в ходе их выполнения или невозможности выполнения.
При выполнении длительных операций, требующих значительного времени для выполнения, пользователь, по возможности, должен получать информацию о текущем ходе выполнения операции.
2.2.2 Требования по обработке исключительных ситуаций Сообщения об ошибках или аварийных ситуациях должны быть на русском или английском языках, точно отражающими проблему.
Приложение должно обеспечивать корректную обработку аварийных ситуаций, вызванных неверными действиями пользователей, неверным форматом или недопустимыми значениями входных данных. После вывода пользователю соответствующего сообщения, система должна возвращаться в рабочее состояние, предшествовавшее неверной (недопустимой) команде или некорректному вводу данных.
2.2.3 Требования по вводу и контролю данных Для данных, имеющих установленные форматы, должен осуществляться логический контроль
ввода данных с выдачей сообщений об ошибках ввода. 2.2.4 Требования по организации экранных форм
Наименование полей в диалоговых окнах и формах системы должны приводиться с минимумом сокращений и аббревиатур. Допускается использование общепринятых сокращений при невозможности отображения полнотекстовых наименований.
2.3 Требования к техническому обеспечению Рекомендуемые требования к прикладному программному обеспечению:
•CPython 3.10.4 (tags/v3.10.4:9d38120, Mar 23 2022, 23:13:41) [MSC v.1929 64 bit (AMD64)] on win32.
Рекомендуемые требования к системному программному обеспечению:
•Windows 8, 8.1, 10 64-разрядной версии / Debian 11.3 «bullseye».
Рекомендуемые требования к аппаратному обеспечению:
•AMD Ryzen 5 5500U with Radeon Graphics.
•Оперативная память: 16 Гбайт.
•Число ядер процессоров: 6.
2.4 Выводы по разделу Во втором разделе определена функциональная структура приложения; подробно описаны
требования к функциям, к эргономике и технической эстетике, а также требования к техническому обеспечению. Характеристики Jupyter-подобного ПО, описанные в 1.3, были приняты во внимание.
17
Коваленко Л.А. ВКР на тему «Разработка конструктора нейронных сетей». Глубокая проверка на плагиат.
3 ТЕХНИЧЕСКАЯ РЕАЛИЗАЦИЯ
3.1 Описание необходимых библиотек и разработанных модулей Выбранные библиотеки для разработки приложения на CPython 3.10.4:
• PySide6 версии 6.3.0 — графический фреймворк для Python.
Доступен для свободного использования как в открытых, так и закрытых, в частности, коммерческих проектах, поскольку лицензирован по LGPL.
Установка с помощью менеджера пакетов pip: pip install PySide6~=6.3.0
• python-slugify[unidecode] версии 6.1.2 — библиотека для транслитерации Unicode-символов в
ASCII.
Лицензия: MIT & GPL-2.0.
Установка с помощью менеджера пакетов pip: pip install python-slugify[unidecode]~=6.1.2
Вприложении А приведено содержимое модуля «app.py», который отвечает за запуск приложения.
Вприложении Б приведено содержимое модуля «views/app_settings_window.py», который отвечает за отображение окна настроек приложения.
Вприложении В приведено содержимое модуля «views/code_highlighter.py», который отвечает за подсветку синтаксиса кода в блоке кода.
Вприложении Г приведено содержимое модуля «views/code_item.py», который отвечает за внешний вид блок кода.
Вприложении Д приведено содержимое модуля «views/text_item.py», который отвечает за внешний вид блока текста.
Вприложении Е приведено содержимое модуля «views/mainwindow.py», который отвечает за внешний вид главного окна приложения.
Вприложении Ж приведено содержимое модуля «models/app_settings.py», который отвечает за настройки приложения.
Вприложении И приведено содержимое модуля «models/client.py», который отвечает за выполнение кода на стороне среды исполнения.
Вприложении К приведено содержимое модуля «models/code_execution.py», который отвечает за отправление блоков кода на выполнение и за получение результатов.
Вприложении Л приведено содержимое модуля «models/project.py», который отвечает за настройки проекта и операции, проводимые над ним.
Вприложении М приведено содержимое модуля «models/template.py», который отвечает за добавление, редактирование и удаление шаблонов блоков.
Вприложении Н приведено содержимое файла настроек приложения «settings.ini».
Главный модуль «app.py» запускается при помощи интерпретатора CPython 3.10.4 только после установки всех необходимых библиотек следующим образом: python3.10 app.py
Основные графические элементы приложения (рис. 3.1).
Рисунок 3.1 — Основные графические элементы приложения
3.2 Результаты разработки В результате разработки в соответствии с требованиями было разработано приложение со
следующими характеристиками:
•В основной рабочей области отображаются вкладки проектов;
•Проект содержит блоки с текстом (для комментирования) и блоки с кодом и выводом на языке CPython;
•Блоки с кодом можно запускать в любом порядке любое количество раз, причем состояния переменных сохраняются, т.е. переменные запущенного ранее блока доступны в следующем запускаемом блоке;
18
Коваленко Л.А. ВКР на тему «Разработка конструктора нейронных сетей». Глубокая проверка на плагиат.
•Имеется функция остановки выполнения блока;
•Имеется функция перезапуска ядра, которая сбрасывает состояние интерпретатора к исходному (память освобождается).
•Выполнение блоков кода происходит в среде проекта. В Jupyter-подобном ПО проекты не разделяются по средам (рис. 3.2), а в разработанном приложении могут разделяться и объединяться (рис. 3.3).
•Имеются вкладки в скрываемой левой панели: «Наборы данных», «Архитектуры», «Обучение, валидация и тестирование», «Визуализация», «Экспорт» (рис. 3.4).
На каждой вкладке представлены соответствующие разделы (в виде блоков с названиями) с шаблонами (в виде кнопок). Пользователь может добавлять разделы и шаблоны, изменять их и удалять.
•Поддерживаются все возможные на CPython графические приложения.
Jupyter-подобное ПО отображает графику в браузере и позволяет работать только с теми графическими библиотеками, для которых имеется соответствующая поддержка. Разработанное ПО выполняет код в естественной среде (рис. 3.5).
•Приложение также работает в Linux Debian 11.3 (рис. 3.6-3.7).
•В текстовых блоках помимо поддержки формата Markdown, также поддерживается формат HTML (в том числе изображения) (рис. 3.8).
Рисунок 3.2 — Jupyter-подобное ПО, одно виртуальное окружение на несколько проектов
Рисунок 3.3 — Разработанное ПО, у каждого проекта может быть как свое виртуальное окружение, так и общее с другим проектом
Рисунок 3.4 — Вкладки в левой панели с разделами и шаблонами (в виде кнопок), а также рабочее окружение
Рисунок 3.5 — Оконное приложение в двух экземплярах на основе библиотеки PySide6 для анализа тональности англоязычного текста на основе модели из библиотеки transformers (исполняется в естественной среде, не требуя доп. поддержки)
Рисунок 3.6 — Приложение в ОС Linux Debian 11.3 (1)
Рисунок 3.7 — Приложение в ОС Linux Debian 11.3 (2)
Рисунок 3.8 — Поддержка форматов HTML и Markdown в текстовых блоках
3.3 Выводы по разделу В третьем разделе приведено описание необходимых библиотек и разработанных модулей,
кратко представлены результаты разработки.
4 ДЕМОНСТРАЦИЯ РАБОТЫ ПРИЛОЖЕНИЯ
4.1 Обзор функций списка проектов Главное окно приложения представлено на рисунке 4.1.
Рисунок 4.1 — Главное окно приложения
Главное меню приложения представлено на рисунке 4.2.
Рисунок 4.2 — Главное меню приложения
Элементы панели инструментов представлены на рисунке 4.3.
19
Коваленко Л.А. ВКР на тему «Разработка конструктора нейронных сетей». Глубокая проверка на плагиат.
Рисунок 4.3 — Элементы панели инструментов
Элементы панели инструментов повторяют элементы главного меню, но изображаются в виде иконок.
4.1.1 Функция списка проектов «Новый проект» Открывается диалоговое окно сохранения файла нового проекта (рис. 4.4).
Рисунок 4.4 — Диалоговое окно сохранения файла нового проекта
Если в диалоговом окне выбран файл уже открытого проекта и нажата кнопка «Сохранить», то в поле со статусом, в логгер и во всплывающем сообщении об ошибке выводится: «Проект по пути [путь] уже открыт» с кнопкой «Ок» (рис. 4.5).
Рисунок 4.5 — «Новый проект», «Проект по пути уже открыт» Если в диалоговом окне было введено корректное имя файла (либо выбран файл на
перезапись) и нажата кнопка «Сохранить», то создается новый проект (рис 4.6).
Рисунок 4.6 — Новый проект «temp/project»
Если в диалоговом окне была нажата кнопка «Отмена», то отмена действия; в поле со статусом выводится «Отмена создания проекта» (рис. 4.7).
Рисунок 4.7 — «Отмена создания проекта»
В случае ошибки выводится сообщение об ошибке «Не удалось создать проект: [описание ошибки]». Например, если не хватает прав доступа (рис. 4.8).
Рисунок 4.8 — Ошибка создания проекта «Permission denied» (отказано в доступе)
4.1.2 Функция списка проектов «Открыть проект» Открывается диалоговое окно открытия файла существующего проекта (рис. 4.9).
Рисунок 4.9 — Диалоговое окно открытия файла существующего проекта
Если в диалоговом окне был выбран существующий файл проекта и нажата кнопка «Открыть», то файл проекта открывается (рис. 4.10).
Рисунок 4.10 — Открыт проект «temp/project6»
4.1.3 Функция списка проектов «Сохранить проект» Если хотя бы один открытый проект есть, то файл текущего проекта сохраняется (рис. 4.11).
Рисунок 4.11 — Сохранен проект «temp/project6»
В случае ошибки выводится сообщение об ошибке «Не удалось сохранить проект: [описание ошибки]». Например, если не хватает прав доступа (рис. 4.12).
Рисунок 4.12 — Ошибка сохранения проекта «Permission denied» (отказано в доступе)
4.1.4 Функция списка проектов «Дублировать текущий проект» Если хотя бы один открытый проект есть, то открывается диалоговое окно сохранения файла
20
| 14 |
| 1511 |
| 2N4264RE |
| 3773 |
| 3901 |
| 4 Врожд ВГ. Фульмин |
| 4 ПРАКТИКА |
| 4 работа |
| 49 |
| 4лаба (с данными) |