Moskva, Moscow, Russian Federation
Moskva, Moscow, Russian Federation
This study is devoted to one of the stages of developing an automated system for selecting specialists for enterprises in the mechanical engineering sector, namely to the preparatory stage of the application development. At the preparation stage, basic interaction schemes are worked out, the stages of system operation are described, and the tools that will be used for further implementation are determined. The paper describes the components included in the system, which allows one to automate selecting specialists into expert groups, and identifying their main functions, conditions of use, methods of interaction, graphical diagrams, as well as the advantages and disadvantages of the tools applied. A detailed description and analysis of component interactions provide opportunities for further coding of the program and designing the application interface. Detailed descriptions of the terms used to depict the program operation are given. Graphic diagrams make it possible to clearly demonstrate the use of components and the result of the work. The advantages and disadvantages of applying WSGI servers are also stated. The main types of production at machine-building enterprises are shown. Arguments are given that indicate the need to develop software that automates the process of selecting a candidate at machine-building enterprises. The paper objective is to develop an automated sys-tem for selecting specialists. The research methods are analysis, observation. The article contains developments and diagrams, the description of which will help to write code to continued operation of the program. A schematic diagram of the program operation is built, and the sequence of processes required to launch the application is described. The article is one of the stages of developing a web application, which confirms the possibility of creating such a product.
experts, automated system, data analysis, automation, expert groups
Введение
Машиностроительные предприятия, вне зависимости от типа производства (единичное, серийное, массовое) имеют сложную структуру. Для обеспечения бесперебойного функционирования предприятия необходимо обеспечить соблюдение следующих условий:
- соблюдение законов и подзаконных актов страны, в которой располагается предприятие;
- наличие материально-технической базы (помещение, оборудование (в том числе и сменное), склады, хозяйственный инвентарь, рабочие и энергетические машины и т.д.);
- производство востребованного продукта для его дальнейшей реализации и выпускаемой прибыли;
- обеспечение качества выпускаемого продукта;
- наличие квалифицированных сотрудников (в том числе и приглашенных экспертов) [1].
Специалисты, работающие на предприятии – это главная его ценность. Без грамотных технологов, инженеров, руководства, экспертов невозможно будет обеспечить развитие и эффективное функционирование. Подбором кандидатов занимаются сотрудники отдела кадров и руководство отделений [2]. Хорошо развитое машиностроение позволяет производить более качественные товары, а также выполнять нестандартные заказы поставщиков. Это трудоемкий процесс, при котором может возникнуть ряд следующих затруднений:
– специалисты отдела кадров могут иметь недостаточно квалификации для оценки кандидата, привлекаемого для решения нестандартной задачи. Как правило, чтобы оценить узкопрофильных специалистов необходимо иметь профильное образование или достаточный опыт в смежной сфере;
– руководитель и/или специалист отдела имеют ограниченный временной ресурс, автоматизированная система поможет сократить время на подбор специалиста;
– коррупционная составляющая. Согласно Федеральному закону от 25.12.2008 N 273-ФЗ (ред. от 19.12.2023) «О противодействии коррупции» существует следующее определение слова «коррупция». Это злоупотребление служебным положением, дача взятки, получение взятки, злоупотребление полномочиями, коммерческий подкуп, либо иное незаконное использование физическим лицом своего должностного положения вопреки законным интересам общества и государства в целях получения выгоды в виде денег, ценностей, иного имущества или услуг имущественного характера, иных имущественных прав для себя или для третьих лиц, либо незаконное предоставление такой выгоды указанному лицу другими физическими лицами.
Некоторые руководители и/или сотрудники отдела кадров могут использовать своё служебное положение и приглашать экспертов вне зависимости от их качеств и навыков, а опираясь на личные предпочтения с целью получения выгоды. Автоматизированная система позволяет избежать таких ситуаций и оценивать кандидатов исключительно исходя из их профессиональных качеств.
Автоматизация процесса подбора специалистов может помочь решить вышеперечисленные проблемы.
Материалы, модели, эксперименты и методы
Для полного понимания функционирования программы опишем её работу на высоком уровне. Работа программы представлена на рис. 1.
Рис. 1. Принципиальная схема функционирования программы
Fig. 1. Principal scheme of the program functioning
Для начала автоматизированного подбора кандидатов нужно выполнить два условия:
– присутствие пользователя, который сможет запустить программу и внести необходимые, для решения его задачи, критерии;
– наличие корректно оформленного шаблона о кандидатах в формате .xlsx. Шаблон и инструкция для формирования базы данных находятся внутри программы.
Пользователь посредством клиента обращается к приложению (в нашем случае клиент – это браузер, т.к. разрабатывается веб-приложение). Клиент, по протоколу HTTP (вариант передачи информации между двумя компьютерами, формат текстового сообщения), с переданным ему IP-адресом запрашивает необходимую веб-страницу. Данный запрос, попадая на сервер, будет перехвачен нашим приложением, которое вернет запрашиваемую информацию. Как правило такая информация представлена в виде HTML страницы.
Система расположена к масштабируемости и даже число пользователей не будет влиять на эффективность и скорость расчета, но для этого необходимо использовать специальное программное обеспечение, которое принимает запросы по протоколу HTTP. В нашем случае это NGINX. Это веб-сервер с открытым исходным кодом, который позволяет осуществлять работу в режиме высокой нагрузки и большого числа пользователей.
Для того, чтобы у пользователя была возможность увидеть начальную страницу и провести подбор экспертов интерпретатору необходимо выполнить ряд обязательных действий. Последовательность которых представлена на рис. 2.
Разрабатываемое программное обеспечение использует структуризатор, возможность применения которого возникает благодаря использованию ключевого слова import (анг. import – импортирование, извлечение). Импорт функций, классов и модулей в Python необходим для того, чтобы у разработчика появилась возможность использовать код, из открытых источников, ссылаясь на названия его классов, функций, модулей и переменных. Этот подход упрощает код и делает его более понятным. Кроме того, использование импорта позволяет избежать конфликтов имен, потому что Python будет искать нужные функции и классы только в импортированных модулях.
Рис. 2. Последовательность процессов, необходимая для запуска приложения
Fig. 2. The sequence of processes required to launch the application
На данном этапе предполагается, что код проекта будет состоять из трех частей: веб-приложение, алгоритм подбора и перечень констант. В части веб-приложения импортируется FastAPI и описывается бизнес-логика. В алгоритме подбора реализована методика первичной обработки и оптимизации данных методом Парето-доминирования. Перечень констант будет задействован в обеих предыдущих частях с целью исключения дублирования собственного кода и уменьшения размера программы.
В коде алгоритма подбора будет описана главная функция, непосредственно применяющая алгоритм. Эта функция будет импортирована в код веб-приложения и вызвана каждый раз, когда пользователь нажмет кнопку «рассчитать».
При расчетах возникает необходимость пользоваться константами и во избежание их повсеместного использования создаются переменные, которые на уровне оперативной памяти компьютера являются «ячейками». В дальнейшем для подстановки значения переменной достаточно написать её название.
Логгирование (от англ. logging – ведение журнала) – это процесс записи информации о работе программы в стандартное устройство вывода или текстовый файл (лог). В логах обычно записываются ошибки, предупреждения и сообщения информационного уровня. Формат лога может быть любой, но, как правило, в него включают временную метку, содержащую дату и время, уровень сообщения (ошибка, предупреждение и инфо), источник сообщения (строка кода, которая сделала эту запись) и текст сообщения. Данная информация может быть полезной при диагностике и устранении проблем, которые могут возникнуть у пользователей в режиме реального времени.
Чтение кода на этапе интерпретации происходит сверху вниз построчно. Когда интерпретатору на строке попадается ключевое слово def (от англ. Define – определить), то он определяет слово, идущее после def как название функции, запоминает его, после чего пропускает тело функции и двигается построчно далее. То же самое происходит и с классами.
WSGI сервер – это интерфейс, обеспечивающий взаимодействие между python-кодом и веб-сервером. WSGI сервер имеет ряд следующих преимуществ:
- универсальность – WSGI является стандартом для взаимодействия между веб-сервером и приложением, что позволяет использовать его с любыми веб-серверами, поддерживающими этот стандарт;
- производительность – WSGI позволяет оптимизировать производительность приложения, так как он может обрабатывать множество запросов одновременно;
- масштабируемость – WSGI серверы могут быть легко масштабированы для обработки большего количества запросов;
- совместимость – WSGI совместим с различными языками программирования, что позволяет создавать приложения на разных языках и использовать их совместно;
- безопасность – WSGI обеспечивает безопасность приложений, так как позволяет изолировать приложения друг от друга и ограничивать доступ к ресурсам.
Также WSGI серверы имеют следующие недостатки:
- сложность настройки – настройка WSGI может быть сложной для начинающих разработчиков, так как требует понимания работы сервисов в операционных системах семейства Linux;
- ограниченная поддержка – не все веб-серверы поддерживают WSGI, что может ограничить выбор сервера для разработки приложения.
Несмотря на это использование данного протокола, является необходимым для функционирования проекта на удаленном сервере и его взаимодействия с веб-сервером.
После выполнения всех вышеперечисленных шагов происходит запуск приложения.
Результаты
Написание программы, как правило состоит из нескольких этапов, они представлены на рис. 3.
Рис. 3. Этапы разработки программы
Fig. 3. Stages of program development
В данной статье описан третий этап, то есть описание функционирования. Это один из наиболее трудоемких этапов, т.к. именно в процессе описания нужно учесть ошибки, которые могут возникнуть при функционировании.
Система обеспечивает обработку и анализ данных. Метод оценивания компетенции студентов имеет много общего с методом оценки экспертов. Например, так же учитывается уровень образования и отрасль деятельности.
Заключение
Привлечение экспертов для решения различных задач всегда применялось на машиностроительных производствах. Именно благодаря привлечению сторонних специалистов возможно развитие, вовлечение инновационных технологий и проведение независимого анализа технологических, экономических и иных процессов.
Благодаря описанию всех вышеперечисленных процессов, связанных с программой для подбора экспертов, будет возможна дальнейшая реализация веб-приложения. В качестве основной особенности данной системы можно отметить применение экспертно-статистического и человеко-машинного подхода, что позволяет минимизировать ошибки при выборе эксперта (двойной контроль).
Структура системы обеспечивает высокую эффективность решения производственных задач, т.к. основывается на анализе большого количества данных.
1. Zhenzhebir VN. Current State and Location Features of General Mechanical Engineering in the Russian Federation. In: Proceedings of the International Scientific and Practical Conference on Scientific Foundations of Modern Progress; Yekaterinburg: 2016, vol. 1. p. 92-98.
2. Feofanov A.N., Busheva A.G. Fundamentals of Developing a Method for Selecting Specialists in Expert Groups. Moscow: Janus-K; 2022.
3. Feofanov A.N., Busheva A.G. Development of an Algorithm for an Automated System for Selecting an Expert for Corrective Measures to Improve the Charac-teristics of the Drilling Jig. Automation and Simulation in Design and Control. 2021;1(11):52-60.
4. Azgaldov G.G., Kostin A.V. Metrology and Qualimetry: Issues of Identification. Measurements World. 2010;1: 4-7.
5. Boytsov BV, Zhetesova GS, et al. The Architecture of the Analytical System for Evaluating Educational Programs of Groups. Quality and Life. 2018;2:24-28.
6. Strebkov D.O. Cognitive Capabilities of Online Surveys in Russian Research Practice (the Case of Survey of Internet Freelancers). Sociology 4M. 2010;31:135-161.
7. Busheva A.G., Feofanov A.N. Selection of Participants of Expert Groups Using the Method of Multicriteria Optimization. Vestnik MSTU “Stankin”. 2021;3(58):22-27.
8. Feofanov A.N., Busheva A.G. Software Implementation of the Algorithm for Selecting Experts. Mechanical Engineering. 2021;8:48-53.
9. Dalkey N.C. The Delphi Method: An Experimental Study of Group Opinion. Rand Corporation; 1969. p. 79.
10. Farooq M, Khan HU, et al. Finding the Top Conferences Using Novel Ranking Algorithm. International Journal of Advanced and Applied Sciences. 2017;4(6):148-152.
11. Maybury M.T. Expert Finding Systems. Technical Report MTR06B000040. MITRE Corporation; 2006. p. 64.
12. Earl M. Knowledge Management Strategies: Toward a Taxonomy. Journal of Management Information Systems. 2001;18(1):215-233.