Проекты производственной практики и ВКР, связанные с разработкой свободной системы RunaWFE Free (Андрей Михеев, OSEDUCONF-2021)

Материал из 0x1.tv

Версия от 08:02, 12 октября 2021; StasFomin (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Докладчик
Андрей Михеев.jpg
Андрей Михеев

Проект RunaWFE Free в течение нескольких лет привлекает студентов — программистов к разработке системы. Задачи на производственную практику и ВКР ставятся так, чтобы студент получил опыт решения какой-то небольшой проблемы «в целом». То есть, проблема формулируется на языке предметной области, детальное ТЗ на кодирование отсутствует, при этом проблема является реальной, её программное решение (если оно будет успешным) войдёт в один из следующих релизов системы. Во время решения задачи студенту даётся большая степень свободы. Предполагается, что он будет решать задачу «без начальника», только с консультантами.

Я надеюсь, что пройдя такую практику, студентам в дальнейшем будет легче самим находить интересные востребованные проблемы и ставить задачи как себе, так и другим разработчикам. СПО помогает «мягко» войти в эту деятельность: Все желающие знакомятся с кодом системы и только те, кто готов взяться за решение задачи, привлекаются в проект.

Видео

Презентация

Проекты производственной практики и ВКР, связанные с разработкой свободной системы RunaWFE Free (Андрей Михеев, OSEDUCONF-2021).pdf Проекты производственной практики и ВКР, связанные с разработкой свободной системы RunaWFE Free (Андрей Михеев, OSEDUCONF-2021).pdf Проекты производственной практики и ВКР, связанные с разработкой свободной системы RunaWFE Free (Андрей Михеев, OSEDUCONF-2021).pdf Проекты производственной практики и ВКР, связанные с разработкой свободной системы RunaWFE Free (Андрей Михеев, OSEDUCONF-2021).pdf Проекты производственной практики и ВКР, связанные с разработкой свободной системы RunaWFE Free (Андрей Михеев, OSEDUCONF-2021).pdf Проекты производственной практики и ВКР, связанные с разработкой свободной системы RunaWFE Free (Андрей Михеев, OSEDUCONF-2021).pdf Проекты производственной практики и ВКР, связанные с разработкой свободной системы RunaWFE Free (Андрей Михеев, OSEDUCONF-2021).pdf Проекты производственной практики и ВКР, связанные с разработкой свободной системы RunaWFE Free (Андрей Михеев, OSEDUCONF-2021).pdf Проекты производственной практики и ВКР, связанные с разработкой свободной системы RunaWFE Free (Андрей Михеев, OSEDUCONF-2021).pdf Проекты производственной практики и ВКР, связанные с разработкой свободной системы RunaWFE Free (Андрей Михеев, OSEDUCONF-2021).pdf Проекты производственной практики и ВКР, связанные с разработкой свободной системы RunaWFE Free (Андрей Михеев, OSEDUCONF-2021).pdf Проекты производственной практики и ВКР, связанные с разработкой свободной системы RunaWFE Free (Андрей Михеев, OSEDUCONF-2021).pdf

Thesis

Проблемы современного обучения

В настоящее время обучение как слушателей на коммерческих курсах, так и студентов во многих ВУЗах от принципа «know why» всё больше приближается к принципу «know how». То есть, задачей обучающегося является — очень хорошо выучить уже существующую, не им придуманную технологию (в большинстве случаев — иностранную) и в дальнейшем применять её к решению соответствующего класса задач.

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

То, что мы разрабатываем свободный продукт, оказывается для этого удобным. Задачи у нас достаточно сложные, не у всех студентов получается их делать. Поэтому студентам, проявившим интерес к проекту, мы сразу даём ссылку на открытый репозиторий проекта[1], ссылку над документацию (пользователя, администратора и разработчика)[2] , описание предметной области[3] и примеры решаемых задач[4]. После знакомства с этими материалами студенты уже имеют некоторое представление об ожидающей их деятельности и принимают решение более ответственно.

Завершённые и текущие «студенческие» проекты

В настоящем докладе предполагается рассказать о следующих «студенческих» проектах:

  1. Создание внутреннего хранилища данных
  2. Реализация элемента «бизнес-правило»
  3. Создание чата участников экземпляра бизнес-процесса
  4. Интеграция системы с Искусственным Интеллектом
  5. Создание глобальных разделов
  6. Создание специального бота для внутреннего хранилища данных
  7. Реализация событийного подпроцесса

Первые четыре из этих проектов реализованы, пятый и шестой выполняются, а седьмой ещё только предложен студентам.

Создание внутреннего хранилища данных

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

Эта задача реализована студентом университета ИТМО. Примеры разработанных интерфейсов приведены на Рис. 1.

Примеры интерфейсов, разработанных для решения задачи создания внутреннего хранилища.
[mikheev-img001]

Реализация элемента «бизнес-правило»

Цель работы — реализация в системе элемента графической нотации BPMN «Бизнес-правило». Функциональность элемента заключается в исполнении определённой формулы, при выполнении заданного условия.

Эта задача реализована студентом ИАТЭ НИЯУ МИФИ. Примеры разработанных интерфейсов приведены на Рис. 2. и Рис. 3.

Пример использования элемента «бизнес-правило» в экземпляре бизнес-процесса.
[mikheev-img002]
Конфигурация элемента «бизнес-правило».
[mikheev-img003]

Создание чата участников экземпляра бизнес-процесса

Чат участников экземпляра бизнес-процесса позволяет участникам экземпляра бизнес-процесса во время исполнения бизнес-процесса обмениваться друг с другом сообщениями, не изменяя состояние бизнес-процесса (т.е. не перемещая точки управления по его схеме).

Задача реализована студентами НИУ МИЭТ. Примеры разработанных интерфейсов приведены на Рис. 4.

Чат участников экземпляра бизнес-процесса.
[mikheev-img004]

Интеграция системы с Искусственным Интеллектом

Было реализовано взаимодействие системы с двумя свободными библиотеками, реализующими Искусственный Интеллект в виде деревьев решений. Так как API к этим библиотекам реализован для Python, а система RunaWFE Free разработана на Java, для взаимодействия был создан Python сервер, соответствующие коннекторы и разработан протокол взаимодействия RunaWFE Free и Python сервера.

Интеграция RunaWFE Free с Искусственным Интеллектом.
[mikheev-img005]

Библиотеки были обучены, запросы к ним «вставлены»в бизнес-процессы через соответствующие элементы бизнес-процесса (задачи — сценарии). Данное решение показало результаты, оценённые бизнесом. На основе этого решения планируется организовать стартап.

Задача реализована студентами НИУ ВШЭ. Схема взаимодействия бизнес-процессов системы RunaWFE FREE с Искусственным Интеллектом приведена на Рис. 5.

Создание глобальных разделов

В этой задаче для того, чтобы не заводить во многих бизнес-процессах одни и те же объекты, надо добавить в графический дизайнер глобальные роли, глобальные переменные и глобальные типы переменных. Команда создания глобального раздела приведена на Рис. 6.

Команда создания глобального раздела.
[mikheev-img006]

В настоящее время задача реализуется в НИУ МИЭТ.

Создание специального бота для внутреннего хранилища данных

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

В данной задаче предлагается вводить эти параметры не «руками», а выбирать из списков. Ошибки неправильного ввода с клавиатуры будут в этом случае исключены. Объекты-параметры заданий бота внутреннего хранилища предлагается выбирать из присоединённых к боту глобального раздела.

В настоящее время эта задача реализуется в НИУ МИЭТ.

Реализация событийного подпроцесса

Цель работы — реализация в системе элемента графической нотации BPMN «Событийный подпроцесс» (как в графическом дизайнере, так и на сервере). Этот элемент похож на элемент «внутренний подпроцесс», но граница этого элемента — пунктирная.

У элемента не может быть ни входящих, ни исходящих переходов. Он должен находиться на схеме изолировано от основного графа процесса. Стартовыми элементами событийного подпроцесса могут быть только непрерывающие событийные элементы нотации BPMN. Все остальные элементы в палитре событийного подпроцесса — такие же, как в обычном внутреннем подпроцессе. На схеме событийного подпроцесса всё располагается так же, как в обычном внутреннем подпроцессе.

Событийный подпроцесс «работает» следующим образом:

Если в процессе, на схеме которого расположен событийный подпроцесс, находится хотя бы одна точка управления, то стартовый узел событийного подпроцесса находится в ожидании возникновения события, на которое он настроен. Если все точки управления покинули процесс, в котором находится событийный подпроцесс, то стартовый узел подпроцесса перестаёт быть активным и все наступающие события игнорирует.

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

Эта задача пока ещё не назначена никому из студентов.

Преимущества для студентов от выполнения курсовых, производственной практики и ВКР в свободном проекте RunaWFE Free

  1. Не нужно сложным образом получать доступ к коду. Познакомиться с кодом студент может ещё до того, как обратится в команду проекта.
  2. Работа в проекте удалённая, происходит через интернет, студенту не требуется куда-то ездить и тратить на это время.
  3. Студенту легко включить результаты работы в портфолио своих проектов. Репозиторий открытый, любой желающий может посмотреть коммиты студента.
  4. Студенты имеют возможность продемонстрировать качество своего кода будущему работодателю при устройстве на работу
  5. Мы стараемся составлять задачи для студентов таким образом, чтобы они соответствовали учебной программе ВУЗа, в котором обучается студент. Чтобы эту работу можно было зачесть как курсовые, производственную практику и ВКР. То есть, студенту не нужно искать «дополнительное» время на участие в проекте, работа в проекте войдёт в «учебное» время, которое студенту в любом случае надо будет потратить.
  6. Стажировка у нас оплачивается студенту. «Студенческая» ставка небольшая, но даёт некоторые средства к существованию, что для студента может быть важно.
  7. Работая в свободном проекте, студент может участвовать в конференциях по использованию СПО в учебном процессе и (если у него получится сделать что-то серьёзное) — в конференциях разработчиков открытого кода, где он сможет показать свои решения и обменяться опытом с серьёзными разработчиками-профессионалами.
Проекты производственной практики и ВКР, связанные с разработкой свободной системы RunaWFE Free (Андрей Михеев, OSEDUCONF-2021)!.jpg

Примечания и ссылки

  1. https://github.com/processtech
  2. https://runawfe.ru/документация2
  3. https://runawfe.ru/TrainingMaterials_4_4_1_Theory
  4. https://sourceforge.net/p/runawfe/discussion/426100

Plays:0   Comments:0