Научная статья на тему 'КОДОГЕНЕРАТОР ГРАФИЧЕСКОГО ПРЕДСТАВЛЕНИЯ ДЕТЕРМИНИРОВАННОГО КОНЕЧНОГО АВТОМАТА ДЛЯ СИСТЕМ АВТОМАТИКИ'

КОДОГЕНЕРАТОР ГРАФИЧЕСКОГО ПРЕДСТАВЛЕНИЯ ДЕТЕРМИНИРОВАННОГО КОНЕЧНОГО АВТОМАТА ДЛЯ СИСТЕМ АВТОМАТИКИ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
118
19
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ГЕНЕРАЦИЯ КОДА / АВТОМАТНОЕ ПРОГРАММИРОВАНИЕ / ПЛК / КОНЕЧНЫЙ АВТОМАТ / АЛГОРИТМ / ГРАФ / СОСТОЯНИЕ / ПЕРЕХОД / ПРОГРАММА

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Тутов Иван Андреевич, Гительман Владислав Сергеевич, Воскобойникова Ольга Борисовна

В целях улучшения восприятия программного обеспечения программируемого логического контроллера (ПЛК) предлагается использование автоматической генерации кода на языке ST в парадигме автоматного программирования из графического представления детерминированного конечного автомата (диаграмм). В данной работе подробно описаны возможности автоматической генерации кода на языке ST разработано программное обеспечение, дающее возможность автоматической генерации кода на основе созданных схем, и автоматического заполнения различных таблиц для работы с графами.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Тутов Иван Андреевич, Гительман Владислав Сергеевич, Воскобойникова Ольга Борисовна

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

CODE GENERATION FOR AUTOMATION SYSTEMS BASED ON THE GRAPHICAL REPRESENTATION OF DETERMINISTIC FINITE STATE MACHINE

In order to simplify the software development for programmable logic controllers (PLCs) and to improve the program perception, it is proposed to use automatic code generation in ST language in the automata-based programming paradigm from the graphical representation of the deterministic finite state machine (diagrams). This programming concept has advantages over classical OOP and IEC 61131 (IEC 61131-3) languages. Due to the fact that the code generation is based on diagrams (directed graphs), the PLC programming process is greatly simplified and accelerated, potentially minimizing the number of errors. This paper describes in detail the possibilities of automatic code generation in the ST language. Developed software that gives the possibility of both automatic code generation based on the created schemes and automatic filling of various tables to work with graphs.

Текст научной работы на тему «КОДОГЕНЕРАТОР ГРАФИЧЕСКОГО ПРЕДСТАВЛЕНИЯ ДЕТЕРМИНИРОВАННОГО КОНЕЧНОГО АВТОМАТА ДЛЯ СИСТЕМ АВТОМАТИКИ»

МАТЕМАТИЧЕСКОЕ И ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ВЫЧИСЛИТЕЛЬНЫХ МАШИН, КОМПЛЕКСОВ И КОМПЬЮТЕРНЫХ СЕТЕЙ

УДК 681.3.068

КОДОГЕНЕРАТОР ГРАФИЧЕСКОГО ПРЕДСТАВЛЕНИЯ ДЕТЕРМИНИРОВАННОГО КОНЕЧНОГО АВТОМАТА ДЛЯ СИСТЕМ АВТОМАТИКИ

И.А. Тутов, В.С. Гительман, О.Б. Воскобойникова

В целях улучшения восприятия программного обеспечения программируемого логического контроллера (ПЛК) предлагается использование автоматической генерации кода на языке БТ в парадигме автоматного программирования из графического представления детерминированного конечного автомата (диаграмм). В данной работе подробно описаны возможности автоматической генерации кода на языке БТразработано программное обеспечение, дающее возможность автоматической генерации кода на основе созданных схем, и автоматического заполнения различных таблиц для работы с графами.

Ключевые слова: генерация кода, автоматное программирование, ПЛК, конечный автомат, алгоритм, граф, состояние, переход, программа.

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

Успешное выполнения данной задачи требует, чтобы программист имел представление о процессах на производстве, а заказчик на определённом уровне обладал навыками программирование. Но так ли это рационально? Ведь программисту для изучения технологических процессов требуется время и определенная степень квалификации, при этом и заказчику для того, чтобы успешно разобраться в принципах работы программы необходимо как время, так и соответствие квалификации. Более того, в процессе программирования программист способен совершать ошибки вследствие человеческого фактора.

Первоначально структурировать задачу и решить проблему взаимопонимания заказчика и программиста призвана граф-схема алгоритма (ГСА), но данный метод является устаревшим, разработан на этапе становления цифровой вычислительной техники и не удовлетворяет современным требования представления алгоритмов [1]. Следовательно, описанная проблема требует новых подходов к её решению.

Создание программ для программируемых логических контроллеров (ПЛК) реализуется с использованием различных языков LD, FBD, ST, SFC, ^ стандарта ГОСТ Р МЭК 611313-2016.

Использование языка FBD для проектирования блоковых диаграмм не является удобным методом программирования, поскольку отличается громоздкостью схем и затрудненностью внесения корректировок при изменениях в последовательную логику работы алгоритма.

Написание кода на языке ST при разработке кода для ПЛК является монотонным процессом и не обладает наглядностью для технолога (заказчика).

Язык LD хоть и является наглядным средством программирования последовательных операций (срабатывания реле, ключей), но при возрастании сложности алгоритма значительно затруднено понимание программы на данном языке [2].

В свою очередь язык ^ считается устаревшим и в данный момент не рекомендуется к использованию (исключен в третьей редакции (1ЕС 61131-3:2013)) [3].

Ещё одним языком современного стандарта ГОСТ Р МЭК 61131-3-2016 является SFC. Данный язык программирования хоть и обладает наглядностью и в некоторой степени упрощает взаимодействие технолога и программиста, но не является самостоятельным языком программирования, а служит лишь для организации кода. Таким образом, не исключается возможность допущения ошибок при написании кода.

Анализ существующих проблем заставляет задуматься о некотором другом подходе к организации программ ПЛК. Рассмотрим подход к разработке ПО на основе детерминированных конечных автоматов (далее КА), используя визуальное представление направленных графов, с последующей автоматической генерацией кода. Такой подход позволяет наглядно отображать заказчику работу создаваемой программы и обеспечивать программисту понимание производственных процессов того или иного предприятия.

Разработка программного обеспечения требует применения той или иной методологии программирования. Как известно, популярный сегодня объектно-ориентированный подход пришел на смену процедурному программированию, имея такие преимущества, как наследование, полиморфизм, инкапсуляция. Объектно-ориентированный подход успешно используется для реализации программ. Но создание сложной программы и описание систем со сложным поведением - довольно нетривиальная задача. Без использования диаграмм приводит к трудностям на всех этапах жизненного цикла [4]. Более того, затрудняется поддержание кода, так как все уникальные черты проектируемого программного обеспечения необходимо помнить в течение всего времени написания программы. Вместо этого можно отобразить их на диаграммах, графах, что даст возможность на время забыть особенности проектируемого ПО.

Автоматное программирование позволяет решать вышеприведенные проблемы, возникающие при использовании объектно-ориентированного подхода. Автоматное программирование - это метод разработки программного обеспечения, основанный на расширенной модели конечных автоматов и ориентированный на создание широкого класса приложений [5]. Реализация программ в автоматном стиле обладает преимуществом простоты внесения изменений в них специалистами в предметной области, не являющимися профессиональными программистами.

Основная часть. Для решения описанных во введении проблем, разрабатывается программное обеспечение. Построение диаграмм реализуется через направленный граф: автомат Мура.

Автомат Мура - конечный автомат, выходной сигнал которого определяется состоянием, в которое автомат перешел, поэтому выходные сигналы приписаны прямо к состояниям [6]. В программе используется модель КА, устройства, имеющего входы, выходы и при этом в каждый момент времени находящегося в одном состоянии из множества возможных. Детерминированным конечным автоматом называется такой конечный автомат, который исключает самопроизвольные переходы из состояния в состояние без внешних воздействий. При этом переход из любого состояния по любому условию возможен не более, чем в одно состояние. То есть, в детерминированном конечном автомате каждое состояние имеет ровно один переход для каждого возможного входа. Работа КА заключается в подаче на него входных воздействий с последующим формированием выходных сигналов.

С применением концепции автоматного программирования разрабатывается ПО, целью которого является упрощение задачи взаимопонимания технолога и программиста, что позволяет разделить сферы их деятельности. Описанная методология дает возможность значительно снизить требования к погружённости в производственные процессы программисту при создании программ для ПЛК [7]. Программисту не требуется глубокое знание производственных процессов предприятия, а заказчику не обязательно разбираться в программировании. При этом проблема рутинного написания кода сильно упрощается: программист при помощи программных средств графически задаёт определенную схему на основе графов-переходов и генерирует в автоматическом режиме код для той или иной задачи. Следовательно, данный подход сводит к минимуму возможность ошибки при реализации программы КА для ПЛК. В разрабатываемом ПО в качестве объектов реализованы состояние и переход. При создании состояния рисуется прямоугольник со скруглёнными углами, описываемый именем состояния и действием в нем. Переход реализуется стрелкой, начинающейся и заканчивающейся на границе состояния.

С использованием разработанной программы создан КА, описывающий модель холодильника и принципы его работы [8]. Пример построенной в программе модели детерминированного конечного автомата представлен на рис. 1. По умолчанию работа КА начинается с состояния S0.

Paint I "New project" — □ X

Файл Генерация Правка

При размещении состояний в них указывается имя переменной, например, S0, а также описание принципов работы оборудования в данном состоянии (COMPRESSOR_WORK или выполнение функций компрессором). На стрелках задаются имена (условия перехода), которые наряду с переменными, описывающими состояния, используются при генерации кода. Ситуация, когда из одного перехода может существовать несколько состояний, отображается в программе так, как показано на рис. 1 (см. состояние S5).

Добавлено состояние EMERGENCY_TREATMENT, обрабатывающее случай аварийной ситуации при невозможности впрыскивания хладагента в испаритель холодильника. При включении в модель данного состояния (в случае, если число стрелок, выходящих из одного состояния, больше одной), происходит отображение знака приоритета, позволяющего задавать очередность проверки выполнения условий. В данном случае при переходе из состояния ГNJECTЮN_TO_EVAPORAT первым выполняется проверка условия

REFRIDG_NOT_INJECTED.

Разработанное ПО позволяет редактировать состояния и переходы, то есть, менять условие перехода, его направление, название состояния и его описание (действия, выполняемые в этом состоянии). Реализуется это через двойной щелчок левой кнопкой мыши на объекте. Более того, существует возможность перетаскивания состояний, при этом входящие и выходящие стрелки привязаны к данному состоянию и по мере переноса перемещаются за ним. Также при входе в режим редактирования перехода можно осуществлять перемещение условия перехода в любую точку формы. Данная возможность позволяет более удобно и наглядно располагать описание условий рядом с переходами.

Реализация процесса создания состояний происходит по умолчанию при клике левой кнопкой мыши на форме. При этом, если пользователь пожелает создать состояние рядом с уже существующим (в таком месте, где прямоугольники будут накладываться друг на друга), в программе предусмотрен алгоритм, ограничивающий данную возможность. Для создания стрелок необходимо провести курсором по границе состояния. При перемещении курсора по границе появляется окружность малых размеров, помогающая пользователю программы понимать, в каком месте существует потенциальная возможность создать переход. При клике на эту окружность (таких же размеров окружность используется и для задания приоритетов) происходит начало процесса рисования перехода. При аналогичном клике в выбранной на границе другого состояния точке, завершается процесс создания перехода. Таким образом, пользователю не требуется нажатие дополнительных кнопок или использование горячих клавиш для создания объектов, что позволяет повысить скорость реализации конечного автомата (КА).

Также осуществлена программная реализация удаления объектов: переходов и состояний. При удалении одного состояния, в которое входит несколько переходов, вместе с прямоугольником удаляются все связанные с ним стрелки. Более того, можно по отдельности удалять переходы. Удаление реализуется путем двойного нажатия левой кнопкой мыши на объекте. В результате отображается красный крестик, при нажатии на который, объект будет удален. После построения модели конечного автомата в программе существует возможность отображения графа в виде списка ребер [9]. Для этого в пунктах меню реализована возможность автоматического получения списка рёбер - таблицы, отображающей созданный на рис. 1 граф.

Список ребер на основе созданного графа

Начальное Условие Конечное

S0 COMPRES IS WORKING S1

S1 REFRIDG PUMPED S2

S2 REFRIDG CONDENDSED S3

S3 REFRIDG CLEARED S4

S4 INJECTION TO EVAPORAT S5

S5 REFRIDG INJECTED S0

S5 REFRIDG NOT INJECTED S6

В программе создана возможность генерации кода на языке ST. При выборе генерации кода предусмотрена возможность выбора наименования файла и директории, где он будет сохранен. Пример сгенерированного кода на языке программирования ST для рассмотренного на рис. 1 КА холодильника приведен на рис. 2.

l. TYPE STATE: 11. 40. S4:

2. S8} Si, S2, S3, S3, SS, S6 22. SI: 41. IF THROTT_OCCURED

3. ENDJTYPE 21. IF REFRIDG. .PUMPED 42. THEN

4. 24. THEN 43. STATE SS;

5. VAR 2S. STATE :- 44. ENDIF;

6. COMPRES IS WORKIMG : BOOL; 26. EtlDJF; 4S.

7. REFRIDG_PUMPED : BOOL; 27. 46. S5:

3. REFRIDG_CONDENSE0 - BOOL; 28. S2: 47, IF REFRIDGJNJEiTED

9- REFRIDG_CLEAKED : BOOL; 29. IF REFRIDG. .COHDEMSED 46. THEN

10. THRQTTJJCCUREQ : BOOL; 30. THEM 49, STATE SB;

11. REFRIDG INJECTEO : BOOL; 31. STATE :- S3; 50, END_IF;

12. REFRIDG_N0T_IH)ECTE0 ; BOOL; 32. EHDIF; 51.

13. EtDVAR 33. 52. IF REFRIDG JBTINJECTEO

14. 31 S3: 53. THEN

15. CASE STATE OF 35, IF REFRIDG. _CLEA4ED 54, STATE S6;

16. S9: 36, THEM 55. END IF;

17. IF C0HPRES_IS_W0RKIMG 37, STATE :- S4j

18. THEN 38, EW>_IF;

19. STATE :- SI; 35.

20, END IF;

Рис. 2. Сгенерированный код на языке ST

Для генерации кода выбран именно язык ST, поскольку он имеет возможность переноса кода из одной среды программирования ПЛК в другую и возможность создания программ ST в любом текстовом редакторе. Помимо описанного интерфейса при работе с программой реализовано сохранение проектов посредством выбора пункта меню «Сохранить как». Сохранённый проект находится в выбранной директории. Данная функция позволяет использовать возможность его загрузки посредством использования пункта меню «Открыть». Таким образом, не нужно заново создавать один и тот же проект с нуля. Также в пункте меню реализованы функции изменения имени проекта и выхода: «Переименовать» и «Выход» соответственно.

Осуществлена возможность автоматического создания таблицы представления конечного автомата с закодированными состояниями (рис. 3), в которой состояния кодируются 0 и 1. Например, если количество состояний меньше двух, тогда кодирование состояний происходит только через 0 и 1. Если число состояний больше двух, но меньше 5, тогда они кодируются 00, 01, 10, 11. (00 - первое состояние, 01 - второе состояние, 10 - третье, 11 - четвертое). С возрастанием числа состояний разрядность возрастает. Если количество состояний больше 5, то в таком случае кодирование происходит восемью различными способами: 000, 001, 010, 011, 100, 101, 110, 111. Аналогичный принцип работает и для большего количества состояний.

Для более наглядного отображения таблицы представления конечного автомата с закодированными состояниями в программе названия условий переходов заменены следующим образом: X0 - COMPRES_IS_WORKING, X1 - REFRIDG PUMPED, X2 - REFRIDG_CONDENSED, X3 -REFRIDG_CLEARED, X4 - THROTT_OCCURED, X5 - REFRIDG_INJECTED, X6 -REFRIDG_NOT_INJECTED.

Если происходит переход из заданного состояния (есть стрелка), то может быть несколько вариантов: либо стрелка перешла из исходного состояния, либо осталась в нём. В таблице это описывается при помощи 0 и 1. В случае, если переходов из одного состояния несколько, тогда проверяются всевозможные варианты переходов: 00 (оба перехода не осуществляются), 01 (второй переход осуществляется, первый неактивен), 10 (первый переход осуществляется, второй неактивен), 11 (осуществляются оба перехода).

Таблица состояний и перекодов Файл Алгоритм

Таблица представления конечного автомага с закодированными состояниями:

52 SI SD X6 X5 X4 X3 X2 XI XO S 2 SI S'O л

D 0 0 X X X X X X 0 D 0 0

D 0 0 X X X X X X 1 D 0 1

D 0 1 X X X X X D X D 0 1

D 0 1 X X X X X 1 X D 1 0

D 1 0 X X X X 0 X X D 1 0

D 1 0 X X X X 1 X X D 1 1

D 1 1 X X X 0 X X X D 1 1

D 1 1 X X X 1 X X X 1 0 0

1 0 0 X X D X X X X 1 0 0

1 0 D X X 1 X X X X 1 D 1

1 0 1 D 0 X X X X X 1 D 1

1 0 1 D 1 X X X X X D D 0

1 0 1 1 0 X X X X X 1 1 0

1 0 1 1 1 X X X X X 1 1 0

1 1 D X X X X X X X 1 1 0

V

Рис. 3. Таблица представления КА с закодированными состояниями

Система не может быть в двух состояниях одновременно, поэтому важную функцию выполняет приоритетность перехода, описанная раннее. Если у перехода №1 приоритет равен единице, а у перехода №2 двум, тогда используется переход №1. В таблице на рис. 3 S2, S1, S0 - биты, использующиеся для кодировок состояния. S'2, S' 1, S'0 - биты, характеризующие состояние, в которое переходит система. Ячейки, помеченные символом 'х', означают, что при перемещении системы из заданного состояния, кодируемого S2, S1, S0, нет смысла рассматривать данные переходы, поскольку сигналы не влияют на переход между состояниями, то есть, их исходная точка не затрагивает данные состояния.

Заключение. В результате создания программного обеспечения реализованы возможности графического создания и редактирования детерминированного конечного автомата, автоматической генерации кода на языке ST, вывод в автоматическом режиме различных таблиц, необходимых для работы с графами. На основе таблицы отображения конечного автомата с закодированными состояниями можно представить логические функции (выражения). В связи с тем, что генерация кода происходит на основе диаграмм (направленных графов), значительно упрощается и ускоряется процесс программирования ПЛК, что позволяет потенциально свести к минимуму количество ошибок. В дальнейшем можно добавить генерации кода для других языков программирования, улучшить функциональную составляющую программы (в частности, внедрить возможности использования кривых Безье).

Подход автоматного программирования успешно применен для перехода от релейно-контактных схем автоматики на ПЛК для реализации системы управления установкой автоматической наплавки под слоем флюса пятника грузового вагона [10][11], а алгоритм реализован с помощью разработанного генератора программ. Создана программа управления ПЛК на языке ST для данной установки.

Список литературы

1. Паронджанов В.Д. Как улучшить работу ума: Алгоритмы без программистов — это очень просто! М.: Дело, 2001. 360 с.

2. Денисенко В.В. Компьютерное управление технологическим процессом, экспериментом, оборудованием. М.: Горячая линия-Телеком, 2014. 606 с.

3. IEC 61131-3: 2013 // Webstore International Electrotechnical Commission [Электронный адрес]. -URL: https://webstore.iec.ch/puЫicatюn/4552(дата_обращения:01.10.2021).

478

4. Шалыто А.А. Парадигма автоматного программирования // Научно-технический вестник Санкт-Петербургского государственного университета информационных технологий, механики и оптики. 2008. №53. С. 6-7.

5. Поликарпова Н.И., Шалыто А.А. Автоматное программирование. СПБ: Санкт-Петербургский государственный университет информационных технологий, механики и оптики, 2008. 168 с.

6. Конечный автомат - Finite-state machine // wikiboard [Электронный адрес]. -URL: https://wikiboaгd.гu/wiki/Finite-state_machine(дата_обращения:3 1.10.2021).

7. Шалыто А.А. Использование граф-схем и графов переходов при программной реализации алгоритмов логического управления. II // Автомат. и телемех, 1996. Вып. 7. С. 144 - 169.

8. FreshMAG [Электронный ресурс]. -URL: https://blog.liebherr.com/holodilniki/ru/kak-rabotaet-holodilnik(дата доступа:14.10.2021).

9. Граф. Структуры данных / Граф. [Электронный ресурс]. -URL: https://prog-срр^иАМа^гарЫдата доступа:14.10.2021).

10.УН-3/ Установка для автоматической наплавки под слоем флюса пятника грузового вагона // Технад. [Элекктронный ресурс]. -URL: https://tehnad.ru/view 141.ЫтКдата обраще-ния:31.10.2021).

П.Афанасьев Н.А, Тутов И.А. Разработка системы управления станком наплавки пятников железнодорожных вагонов // Международная научная студенческая конференция. 2020. №58. С. 63-64.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Тутов Иван Андреевич, студент, ivantutov@tpu.ru, Россия, Томск, Национальный исследовательский Томский политехнический университет,

Гительман Владислав Сергеевич, студент, vsg16@tpu.ru, Россия, Томск, Национальный исследовательский Томский политехнический университет,

Воскобойникова Ольга Борисовна, старший преподаватель, vostok@tpu.ru, Россия, Томск, Национальный исследовательский Томский политехнический университет

CODE GENERATION FOR AUTOMATION SYSTEMS BASED ON THE GRAPHICAL REPRESENTATION OF DETERMINISTIC FINITE STATE MACHINE

I.A. Tutov, V.S. Gitelman, O.B. Voskoboynikova

In order to simplify the software development for programmable logic controllers (PLCs) and to improve the program perception, it is proposed to use automatic code generation in ST language in the automata-based programming paradigm from the graphical representation of the deterministic finite state machine (diagrams). This programming concept has advantages over classical OOP and IEC 61131 (IEC 61131-3) languages. Due to the fact that the code generation is based on diagrams (directed graphs), the PLC programming process is greatly simplified and accelerated, potentially minimizing the number of errors. This paper describes in detail the possibilities of automatic code generation in the ST language. Developed software that gives the possibility of both automatic code generation based on the created schemes and automatic filling of various tables to work with graphs.

Key words: code generation, automata-based programming, PLC, finite automata, algorithm, graph, state, transition, program.

Tutov Ivan Andreevich, student, ivantutov@tpu. ru, Russia, Tomsk, National Research Tomsk Polytechnic University,

Gitelman Vladislav Sergeevich, student, vsg16@tpu.ru, Russia, Tomsk, National Research Tomsk Polytechnic University,

Voskoboinikova Olga Borisovna, senior lecturer, vostok@tpu.ru, Russia, Tomsk, NationalRe-search Tomsk Polytechnic University

УДК 004.7

DOI: 10.24412/2071-6168-2021-12-480-487

РАЗРАБОТКА ЭКСПЕРТНОЙ СИСТЕМЫ ПОДБОРА НАПРАВЛЕНИЯ ДЛЯ ПОСТУПАЮЩИХ В МАГИСТРАТУРУ

А.В. Козловский, Я.Э. Мельник, В.И. Волощук, А.С. Хлусова

В работе описаны этапы разработки системы для решения проблем, связанных с поступлением в магистратуру. В частности, проведен анализ аналогичных решений, сформулированы принципы построения системы и организации пользовательского интерфейса, определён набор инструментов разработки «MERN». Также создан алгоритм тестирования, отвечающий за «экспертность» системы, распределены соответствующие предметные сущности, реализующие само тестирование. Представленная система позволяет формировать рекомендации поступающим студентам по направлениям магистратуры в соответствии с их личными предпочтениями. При этом особенностью системы является возможностьпроведения настройки процедуры тестирования, что обеспечивает формирование более точных рекомендаций.

Ключевые слова: экспертная система, веб-разработка, магистратура, кафедры, направления, рекомендация, тестирование, алгоритм.

2021 год президент объявил годом науки и технологий, а это значит, что особое внимание будет уделяется сфере образования. Именно поэтому сейчас как никогда актуальны вопросы, связанные с улучшением как качества самого образования, так и удобства поступления в ВУЗы. Более того, стоит отметить, что одним из аспектов, влияющих на дальнейшую судьбу человека, является этап становления и обучения. Именно поэтому важно сразу правильно определиться с выбором направления обучения. Данной проблеме в настоящее время уделяется большое внимание [1-4]. Поступление на бакалавриат или специалитет не требует слишком глубокого анализа различных вариантов, так как не сильно сужает вектор потенциальных сфер деятельности человека. И последствия такого решения не являются фатальными, так как программы бакалавриата и специалитета по одной направленности имеют достаточно схожие предметы и формируют личность как специалиста или инженера. Следующая ступень - магистратура - позволяет погрузиться в научную деятельность. И уже этот этап играет определяющую роль в том, в какой сфере, на каких должностях и где именно сможет работать человек. Даже если магистратура будет успешно окончена, в случае выбора не предпочтительного направления обучения, то с большой вероятностью производительность такого сотрудника не будет высокой. При этом и сам человек не будет доволен своей работой и не будет чувствовать себя счастливым.

Другой немаловажной деталью является то, что зачастую в институтах существуют схожие по подготовке и предметам направления обучения. Однако какие-то из них более востребованы. Это обуславливает то, что большое количество абитуриентов подают заявление на более популярную специальность, создавая огромный конкурс и лишая другие практически идентичные направления студентов. В итоге в ВУЗах существенно уменьшается контингент студентов.

Решить поставленную задачу с помощью личной беседы с каждым достаточно проблематично, так как потребуется достаточно много времени, которое здесь тоже играет немаловажную роль. Поэтому наиболее практичным решением является создание системы, которая сможет учитывать сферы интересов каждого абитуриента, предлагая несколько вариантов поступления. Система должна рекомендовать несколько (оптимальное количество - три) наиболее подходящих направлений обучения. Так, например, не пройдя на одно направление, у человека будут варианты, которые позволят ему остаться в желаемом ВУЗе. Шансы на поступление в магистратуру будут напрямую зависеть от выбора специальности, которая в большей мере отражает интересы и компетенции абитуриента.

Таким образом, и поступающие, и образовательные организации смогут улучшить свои результаты и показатели.

Выделение проблем. Одной из наиболее актуальных проблем является высокая разрозненность информации. Так, на одном интернет-ресурсе невозможно получить полноценную информацию, которой однозначно хватило бы для принятия хотя бы первичного решения. Это приводит к неоправданным временным затратам. Аналогичная ситуация с информацией и о

i Надоели баннеры? Вы всегда можете отключить рекламу.