Разработка программной системы автоматизации подбора сотрудников в IT-компаниях

Анализ предметной области подбора персонала разрабатываемой системы, процесс формализации требований и автоматизируемые бизнес-процессы. Проектирование поведения системы, модели данных, проектирование нейросети для определения подходящих кандидатов.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 01.12.2019
Размер файла 4,7 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Разработка программной системы автоматизации подбора сотрудников в IT-компаниях

Аннотация

подбор персонал нейросеть модель

Выпускная квалификационная работа содержит описание исследования «Разработка программной системы автоматизации подбора сотрудников в IT-компаниях». Программное решение позволяет автоматизировать процесс подбора сотрудников, выполнить сбор данных из других приложений в области подбора сотрудников, принимать решения с помощью нейронных сетей, генерировать отчеты о деятельности пользователей в системе и др. Система имеет трехзвенную архитектуру с разделением приложения на 3 уровня: клиент, сервер приложений и сервер баз данных. Front-end часть системы разработана в среде разработки WebStorm с помощью технологии Angular. Для реализации back-end компоненты системы использовалась технология .Net Core. В качестве системы управления базами данных использовалась PostgreSQL.

Работа состоит из введения, 3 глав, заключения, библиографического списка и приложений.

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

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

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

Введение

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

В процессе управления трудовыми ресурсами важным этапом является их поиск и подбор. Успешно подобранным сотрудником является кандидат, в котором будут сочетаться навыки и квалификация, которые требуются для занимаемой им должности, и личные характеристики, которые могут позволить ему выстраивать коммуникации внутри организации и ответственно подходить к выполнению поставленных задач [17].

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

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

Объектом исследования является процесс подбора персонала с проверкой характеристик кандидата на соответствие заявленным требованиям, предмет исследования - средства автоматизации данного процесса.

Цель выпускной квалификационной работы: разработка программной системы, позволяющей выполнять поиск и подбор персонала в IT-компаниях путем мониторинга онлайн-порталов и сопоставления характеристик кандидата и требований, заявленных в вакансии. Разрабатываемой системе присваивается название Human Resources Helper (HR Helper).

Для достижения поставленной цели были выявлены следующие задачи:

1. Рассмотрение существующих программных решений, выполняющих автоматизированный поиск сотрудников, выявление достоинств и недостатков рассматриваемых решений.

2. Выявление и формализация требований к системе, автоматизирующей подбор персонала в IT-компаниях.

3. Описание бизнес-процессов, которые будет автоматизировать система HR Helper.

4. Проектирование системы HR Helper, выбор технологий для реализации системы.

5. Реализация системы HR Helper.

6. Тестирование и оценка качества разработанной системы HR Helper.

7. Написание документации для разработанной системы HR Helper.

Степень разработанности темы автоматизации подбора персонала путем мониторинга достаточно высока, что подтверждается существованием большого числа HRM_систем (Human Resources Management) для управления трудовыми ресурсами (например, система 1С в различных конфигурациях), которые зачастую не обладают возможностью анализа вакансий через Internet, а также систем мониторинга онлайн-порталов (например, Oracle HCM Cloud [32], Talantix), которые не предусматривают автоматизацию процессов управления персоналом, требующих определенной квалификации и доступных, зачастую, лишь специалистам и др. Следовательно, необходимость создания универсального, гибкого, быстрого и качественного программного продукта существует до сих пор.

Методы исследования:

· Анализ собранных материалов по теме исследования.

· Методы объектно-ориентированного проектирования и программирования.

· Методы анализа и сбора данных в Internet.

· Методы проектирования, обучения и тестирования нейронных сетей.

· Методы гибкой разработки web-проектов.

· Методы компонентного и модульного тестирования.

Практическая значимость: реализуемое приложение может значительно упростить процесс поиска сотрудников в различных онлайн-сервисах. Программное решение должно будет быть развернуто на серверах группы IT-компаний «Simpl», в случае успешной эксплуатации систему можно будет распространять для других компаний.

Структура работы: данная работа состоит из введения, 3 глав, заключения, библиографического списка и 7 приложений.

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

Во второй главе выполняется описание процесса проектирования: определение поведения системы, создание модели данных, определение структуры приложения, описание процесса анализа данных в Internet и проектирование нейросети для определения подходящих кандидатов.

Третья глава содержит информацию о разработке системы: обзор используемых технологий, описание архитектуры системы, рассмотрение разработки front-end и back-end компонентов системы, описание результатов тестирования и развертывание системы на серверах группы IT-компаний Simpl.

В заключении формулируются достигнутые результаты исследования.

Глава 1. Анализ предметной области процесса подбора сотрудников

Цель анализа предметной области процесса подбора сотрудников заключается в выявлении потребностей пользователей разрабатываемой информационной системы. Основные задачи анализа:

· изучить основные понятия, связанные с подбором персонала, разобраться в основных терминах данной предметной области, рассмотреть современные методики рекрутмента;

· провести анализ существующих приложений данной предметной области, выявить их положительные и отрицательные стороны;

· выявить основные требования к разрабатываемой программной системе, формализовать их с помощью диаграммы прецедентов;

· описать автоматизируемые бизнес-процессы в области подбора персонала с помощью UML диаграмм активностей.

1.1 Подбор сотрудников в IT-сфере

Одной из главных целей компании в любой сфере деятельности является рациональное использование своих сотрудников, позволяющее достичь увеличения производительности труда, уменьшения затрат на персонал, оптимизации кадрового обеспечения [12]. Среди наиболее важных задач управления человеческими ресурсами можно выделить подбор персонала (или рекрутинг). Рекрутинг - это процесс отбора лучших кандидатов из большого числа претендентов на определенную должность [17]. Жизненный цикл данного процесса включает в себя следующие этапы:

· анализ текущей ситуации в компании с целью выявления нехватки кадров в определенных сферах деятельности компании [5];

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

· публикация сформированной вакансии в различных информационных источниках;

· формирование базы потенциальных кандидатов, откликнувшихся на вакансию, рекомендованных сторонними источниками или найденных посредниками по поиску трудовых ресурсов;

· отбор кандидатов, путем анализа их резюме, интервьюирования, тестирования и применения других методов оценки претендента на вакансию;

· анализ результатов отбора, выявление наиболее подходящих кандидатов.

Этап формирования базы кандидатов с последующим отбором является наиболее тяжелым этапом в процессе рекрутинга.

Он включает в себя анализ огромного числа информационных источников, в которых потенциальный соискатель мог разместить свое резюме. Современные тенденции показывают, что наиболее распространенной площадкой для размещения вакансий и резюме является Internet [21], в частности специальные Internet-порталы (HH.ru или Superjob.ru) и социальные сети (Facebook, Linkedln.com, «ВКонтакте» и пр.). Преимуществами такого онлайн-рекрутинга [21] является оповещение большого количества заинтересованных людей о наличии вакансии, а также предоставление полной структурированной информации от потенциальных кандидатов.

Сфера IT (information technologies) является одной из наиболее динамично развивающихся и перспективных сфер деятельности. Рекрутинг в данной сфере имеет особенную значимость, т.к. данный процесс требует учета многих аспектов жизнедеятельности компании: используемые технологии и предметные области в разрабатываемых программных решениях, иерархия должностей компании, применяемые методики управления командой и т.д.

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

· разработчик ПО, программист, программный инженер (developer или software engineer) - специалист, занимающийся разработкой программного обеспечения;

· тестировщик или специалист по обеспечению качества (tester или QA_инженер) - сотрудник, задачей которого является проверка готового продукта соответствие требованиям и ошибок в системе, с последующим документированием обнаруженных недостатков;

· бизнес-аналитик - специалист, разбирающийся в предметной области, выявляющий и описывающий основные требования от заказчика, занимающийся написанием документации;

· руководитель проекта - сотрудник, основной задачей которого является управление всем проектом, планирование итераций и необходимых для выполнения задач, расставление приоритетов, организация рабочего процесса, коммуникация с заказчиком и т.д.;

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

Должности разработчика, тестировщика и бизнес-аналитика, как правило, обладают определенной иерархией, которая зависит от опыта работы специалиста (senior, middle, junior). Профессия также обладает рядом специализаций, в число которых входят направление (front-end, back-end, базы данных, BI и др.) и методологии разработки (Agile, MSF и др.), языки программирования и др.

1.2 Анализ информационных систем, используемых для подбора сотрудников

Современный рынок информационных технологий может представить ряд систем, называемых HRM (Human Resources Management), которые специализируются на управлении трудовыми ресурсами, обеспечении организации качественным персоналом и планировании его качественного использования. Данные программные решения широко используются многими компаниями, в том числе выступающими посредниками в процессе подбора сотрудников. К недостаткам таких систем можно отнести наличие платного сервиса для организации, такого как взнос за регистрацию компании на портале или платный доступ к банку резюме. Этим обосновывается частое использование IT-компаниями собственных или узко распространённых программных решений для рекрутинга [4].

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

Первая система является разработкой ведущего портала по подбору персонала HeadHunter. Talantix (рис. 1.1) состоит из нескольких модулей, которые направлены на решение различных задач по работе с персоналом. Для предметной области наиболее важным является модуль подбора персонала, который решает задачи рекрутинга и позволяет оценивать эффективность каждого из каналов привлечения кандидатов в графическом интерфейсе. Кроме того, он содержит функцию запроса разрешения от соискателей на обработку персональных данных с помощью онлайн-формы. Процесс сбора информации осуществляется через интеграцию данной системы с hh.ru, Avito.ru, SuperJob.ru, Job-MO.ru, Zarplata.ru и другими сайтами по поиску работы. Подбор персонала в системе осуществляется с помощью тестов CEB SHL.

Рисунок 1.1. Пример работы в веб-сервисе Talantix

Программный продукт E-Staff Рекрутер (рис. 1.2) автоматизирует большинство операций, выполняемых в процессе подбора персонала, таких как размещение вакансии сразу на 30 ведущих сайтах в Internet за одну операцию, собирает отклики с сайтов, ведет поиск на всех сайтах по одному запросу, собирает данные, добавляет их в единую базу, отслеживает повторно найденных кандидатов, а также позволяет импортировать резюме пользователей в систему для их учета. Недостатком данной системы является ограниченность взаимодействия работодателя с кандидатом в системе (изменение статуса кандидата на различных этапах собеседования).

Рисунок 1.2. Пример работы в сервисе E-Staff Рекрутер

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

Примером системы, позволяющей формировать вакансию путем анализа текущей кадровой ситуации в организации, является система «1С: Зарплата и управление персоналом 8» (рис. 1.3). Данная система предназначена для реализации кадровой политики предприятия и денежных расчётов с персоналом по таким направлениям как планирование потребностей в персонале, решение задач обеспечения бизнеса кадрами - подбор, анкетирование и оценка, учёт кадров и анализ кадрового состава, начисление и выплата заработной платы и т.д. [31].

Рисунок 1.3. Структура системы «1С: Зарплата и управление персоналом 8»

В качестве аналогов последнего модуля подбора персонала через анализ данных являются результаты двух исследований: windows-приложение, позволяющее на основе указанных данных (опыта работы, навыков, которыми владеет кандидат, и ожидаемой зарплаты) вычисляет в процентном соотношении, насколько кандидат подходит на должность программиста [15] (рис. 1.4), а также нейросеть, разработанная американским ученым Стивеном Траверсом, которая позволяет на основе предоставленных данных определить, насколько кандидат подходит на должность медицинского стажера [24].

Рисунок 1.4. Интерфейс системы для подбора программиста

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

Итоги анализа: проанализированные аналоги значительно отличаются друг от друга, так как направлены на разные аспекты одного большого бизнес-процесса. Результаты проведенного анализа представлены в таблице 1.1.

Таблица 1.1. Результаты сравнения аналогов информационной системы

Сравнительная характеристика

Talantix

E-Staff Рекрутер

«1C: Зарплата и управление персоналом 8»

Windows-приложение для подбора программиста

Нейросеть для подбора стажеров-медиков

Удобный и понятный пользовательский интерфейс

+

-

-

+

-

Простота обучения и пользования

+

+

-

+

-

Возможность формирования вакансии на основе реальных данных компании

-

-

+

-

-

Сбор данных с популярных сайтов для поиска работы

+

+

-

-

-

Добавление найденных данных в БД системы

+

+

-

-

-

Отслеживание ранее найденных пользователей

-

+

-

-

-

Возможность публикации вакансии в других системах

+

+

-

-

-

Отслеживание текущего состояния кандидата в процессе отбора

-

+

+

-

-

Импорт данных

-

+

+

-

-

Экспорт данных

-

-

+

-

-

Подбор персонала через анализ данных

-

-

-

+

+

Возможность провести тестирование кандидата в системе

+

-

-

-

-

Для анализа данных используется нейросеть

-

-

-

-

+

Интерфейс на русском языке

+

+

+

-

-

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

1.3 Выявление требований для системы подбора персонала

Для разрабатываемой системы необходимо сформировать требования, основываясь на результатах проведенного сравнительного анализа. Следует выделить функциональные требования (основные функции системы и действия пользователей) и нефункциональные требования (как должна работать программная система, какие инструментальные средства необходимы для ее реализации и использования, внешний вид пользовательского интерфейса и доступ к внутренней функциональности системы).

Функциональные требования:

1. Добавление новых вакансий в систему.

2. Генерация вакансий на основе загружаемых данных о текущей кадровой ситуации в организации.

3. Импорт вакансий.

4. Импорт резюме с добавлением пользователей в систему.

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

6. Разделение пользовательских ролей в системе на администратора, работодателя и соискателя, а также пользователя в гостевом режиме (для не идентифицированного пользователя).

7. Экспорт резюме пользователей из системы (в том числе всех найденных в результате сопоставления).

8. Отслеживание и оповещение о дублируемых записях.

9. Хранение текущих статусов кандидатов до следующего запроса на данную должность.

10. Запуск обновления данных о кандидатах и их резюме по требованию.

11. Формирование и экспорт отчетов по сопоставленным вакансиям.

12. Формирование и экспорт отчетов по деятельности пользователей, востребованности вакансий.

13. Отслеживание действий пользователей в системе и успешности выполняемых ими операций для ведения статистики по самым востребованным операциям и выявления неисправностей системы.

Нефункциональные требования:

1. Разрабатываемая система должна быть веб-приложением.

2. Back-end системы должен быть разработан на языке C# с использование технологии .NET Core.

3. Front-end системы должен быть реализован как single-page application с помощью языка TypeScript, фреймворка - Angular.

4. Система должна иметь удобный, интуитивно понятный пользовательский интерфейс.

5. Поиск и сбор данных в развернутом приложении должен выполняться регулярно по расписанию (1 раз в день), не должен тормозить работу системы.

6. Источником собираемых данных являются онлайн-порталы для размещения вакансий и социальные сети.

7. Система должна работать стабильно, без сбоев.

8. Собранные данные должны храниться в базе данных PostgreSQL.

9. Интерфейс должен быть на русском языке.

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

11. Процесс сопоставления должен выполняться параллельно работе пользователя.

1.4 Формализация требований

Для описания действий, которые предпринимают пользователи в процессе работы с системой, создана диаграмма прецедентов [6] (рис. 1.5).

Акторы: Пользователь, Работодатель, Кандидат, Источник данных о кандидатах.

Главные прецеденты: Идентификация, Регистрация, Передача данных о кандидатах, Сопоставление вакансии и резюме, Создание вакансии.

Второстепенные прецеденты: Учет данных в системе, Импорт данных, Импорт резюме, Импорт вакансии, Запуск сбора данных, Создание резюме, Экспорт резюме кандидата, Отслеживание действий пользователей, Формирование статистических отчетов, Изменение статуса кандидата.

Дополнительные прецеденты: Экспорт результатов сопоставления, Генерация вакансии, Отслеживание уникальных резюме, Очистка неактуальных данных, Скачивание руководства пользователя.

Рисунок 1.5. Диаграмма прецедентов системы HR Helper

Название: Идентификация.

Акторы: Пользователь.

Краткое описание: Пользователь идентифицируется в системе.

Триггер: Запущено приложение, открыта страница идентификации.

Основной поток: табл. 1.2.

Таблица 1.2. Прецедент «Идентификация»

Действие акторов

Отклик системы

1. Пользователь вводит логин.

2. Пользователь вводит пароль.

3. Пользователь нажимает на кнопку «Войти» (Е1, Е2).

4. Система открывает его профиль в данной системе.

Альтернативные потоки:

Е1: Если логин или пароль не введены, то выводится сообщение «Пропущены логин или пароль», переход к пункту 1.

Е2: Если пользователя с введенным логином в системе не существует, или введенный пароль не соответствует паролю указанного пользователя, то выводится сообщение «Логин или пароль заполнены некорректно», переход к пункту 1.

Название: Регистрация.

Акторы: Пользователь.

Краткое описание: Пользователь регистрируется в системе.

Триггер: Запущено приложение, открыта страница идентификации.

Основной поток: табл. 1.3.

Таблица 1.3. Прецедент «Регистрация»

Действие акторов

Отклик системы

1. Пользователь нажимает на кнопку «Регистрация».

2. Система открывает страницу «Регистрация» в режиме «Кандидат» (S1).

3. Пользователь вводит логин.

4. Пользователь вводит пароль.

5. Пользователь заполняет личную информацию о себе.

6. Пользователь предоставляет контактные данные.

7. Пользователь нажимает на кнопку «Сохранить» (Е1, Е2).

8. Система добавляет нового пользователя в базу данных.

Подпотоки:

S1: Если пользователь решает сменить режим на «Работодатель», то система откроет страницу «Регистрация» в режиме «Работодателя», где пользователю будет необходимо ввести логин, пароль, информацию об организации, указать сферу деятельности, контактные и географические данные, после чего перейти к шагу 7.

Альтернативные потоки:

Е1: Если обязательные поля не заполнены или заполнены некорректно, система выводит сообщение «Данные заполнены некорректно», переход к шагу 3.

Е2: Если пользователь с таким логином уже зарегистрирован в системе, то система выведет сообщение «Такой пользователь в системе уже есть. Логин пользователя должен быть уникальным». Переход к шагу 3.

Название: Создание вакансии.

Акторы: Работодатель.

Краткое описание: Работодатель создает новую вакансию в системе.

Триггер: Пользователь идентифицирован как работодатель, открыт блок создания вакансии.

Основной поток: табл. 1.4.

Таблица 1.4. Прецедент «Создание вакансии»

Действие акторов

Отклик системы

1. Работодатель указывает должность в вакансии.

2. Работодатель устанавливает граничные параметры (размер зарплаты, график работы, необходимый опыт работы).

3. Работодатель описывает обязанности сотрудника.

4. Работодатель перечисляет навыки, которыми должен обладать кандидат, а также дополнительные навыки.

5. Работодатель нажимает кнопку «Сохранить» (Е1).

6. Система сохраняет вакансию в базу данных.

Альтернативные потоки:

Е1: Если введенные данные заполнены некорректно, система выводит соответствующее сообщение, переход к шагу 1.

Название: Передача данных о кандидатах.

Акторы: Источник данных о кандидатах.

Краткое описание: Сторонний источник по запросу системы передает данные о кандидатах.

Триггер: Приложение по расписанию обновляет данные в системе.

Основной поток: табл. 1.5.

Таблица 1.5. Прецедент «Передача данных о кандидатах»

Действие акторов

Отклик системы

1. Система отправляет запрос к хранилищу данных в сторонней системе.

2. Стороннее приложение анализирует запрос (E1).

3. Стороннее приложение передает данные о кандидатах.

4. Система приводит данные к формату, определенному внутри данной системы.

5. Система сохраняет данные в БД.

Альтернативные потоки:

Е1: Если стороннее приложение не обладает открытым хранилищем данных, то система отправляет запрос к странице приложения, а затем считывает веб_страницу с записями о кандидатах, переход к шагу 4.

Название: Сопоставление вакансии и резюме.

Акторы: Работодатель.

Краткое описание: Работодатель запускает процесс сопоставления кандидатов с вакансией и отображает наиболее подходящих на данную должность.

Триггер: Открыт блок «Отбор кандидатов».

Основной поток: табл. 1.6.

Таблица 1.6. Прецедент «Сопоставление вакансии и резюме»

Действие акторов

Отклик системы

1. Работодатель указывает вакансию, для которой должно выполниться сопоставление.

2. Работодатель нажимает на кнопку «Запустить отбор».

3. Система сопоставляет желаемую должность кандидата с вакансией.

4. Система сравнивает предлагаемую зарплату с затребованной в резюме.

5. Система сравнивает количество полученных образований, изученных языков, пройденных курсов повышения квалификации.

6. Система сопоставляет навыки, отмеченные в резюме кандидата, с требуемыми и желаемыми навыками.

7. На основе выполненных сопоставлений на шагах 3-6 формируется оценка в процентах (S1).

8. Сортирует кандидатов в порядке уменьшения оценки.

9. В зависимости от оценки профили кандидатов подсвечиваются.

Подпотоки:

S1: В процессе сопоставления (шаги 3-7) ведется параллельное отображение состояния проверки кандидатов.

Описание и формализация второстепенных и дополнительных прецедентов представлены в приложении А.

1.5 Описание автоматизируемых бизнес-процессов

При рассмотрении бизнес-процессов, которые автоматизируются разрабатываемой системой, их описание выполнялось в нотации диаграмм активностей UML [6].

Бизнес-процесс «Идентификация» описывает процесс аутентификации пользователя в системе. Его описание представлено на рисунке 1.6.

Рисунок 1.6. Диаграмма активностей «Идентификация»

Процесс регистрации пользователя в системе с дальнейшим разграничением ролей на «Кандидат» и «Работодатель» представлен на рисунке 1.7.

Рисунок 1.7. Диаграмма активностей «Регистрация»

При необходимости определения новой вакансии в системе, будет выполняться бизнес-процесс «Создание вакансии», описание которого представлено на рисунке 1.8.

Рисунок 1.8. Диаграмма активностей «Создание вакансии»

Диаграмма, описывающая процесс сопоставления вакансии с резюме кандидатов (или «отбор претендентов»), представлена на рисунке 1.9.

Рисунок 1.9. Диаграмма активностей «Сопоставление вакансии и резюме»

Процесс передачи данных от сторонних источников в разрабатываемую систему описан на рисунке 1.10.

Рисунок 1.10. Диаграмма активностей «Передача данных о кандидатах»

Для бизнес-процессов, основанных на второстепенных и дополнительных прецедентах были созданы диаграммы активностей, представленные на рисунках B.1-B.14 (см. приложение B).

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

Глава 2. Проектирование системы автоматизации подбора сотрудников в IT_компаниях

Цель проектирования информационной системы автоматизации подбора сотрудников в IT-компаниях заключается в выборе технологий, которые будут использоваться при разработке программной системы, построении логической и физической модели данных, проектировании классов и интерфейса, а также рассмотрении процесса анализа данных в Internet и проектировании нейронной сети для подбора сотрудников. Основные задачи проектирования:

· выполнить анализ существующих методов и технологий для разработки веб-приложений, сбора Internet-данных, анализа данных;

· определить поведение системы и описать его с помощью UML диаграмм последовательностей;

· на основе анализа области подбора персонала сформировать концептуальную модель предметной области;

· на основе проведенного ранее анализа спроектировать классы для системы автоматизации подбора сотрудников в IT-компаниях;

· основываясь на спроектированных классах и определенном поведении системы спроектировать нейросеть для анализа резюме сотрудников и подбора подходящих.

2.1 Обзор существующих технологий для разработки веб-приложения HR Helper

Создание веб-приложения подразумевает использование различных технологий и подходов для реализации клиентской и серверной частей приложения. Для реализации single-page систем, как правило, отдельно разрабатываются клиентское и серверное приложения. Для успешной разработки системы подбора персонала в IT_компаниях необходимо проанализировать и выявить наиболее подходящие технологии для разработки [9].

Наиболее популярными технологиями для разработки клиентского приложения являются React, Angular, AngularJS и Vue.js. Каждая технология обладает рядом положительных и негативных сторон. Для принятия решения об используемой технологии необходимо проанализировать данные технологии, принимая в учет технологии, используемые на предприятии, для которого разрабатывается система, чтобы в дальнейшем систему могли развивать и поддерживать в рамках проекта компании.

React - это специальная JavaScript библиотека, предназначенная для разработки пользовательских интерфейсов [30]. Данная библиотека не поддерживает разработку одностраничных приложений, однако разрабатываемые в рамках системы компоненты могут переиспользоваться на различных страницах систем. Данная технология по статистике является наиболее популярной и в сравнении с Angular и Vue используется 67% front-end разработчиков согласно опросам 2017 года [34]. Данная технология использует JSX и XML-подобный язык, построенный поверх JavaScript, вместо классических шаблонов. Такой подход позволяет писать разметку приложения в JavaScript коде. Такой подход позволяет мгновенно обнаруживать ошибки при компиляции приложения. Также React чаще всего применяется в комбинации с библиотекой Redux, которая позволяет динамически отслеживать текущие состояния компонент приложения. Данная технология дает широкий выбор собственных библиотек, а также адаптировать стек технологий к конкретным требованиям разрабатываемого проекта.

Angular - это JavaScript фреймворк, основанный на строго типизированном языке TypeScript [26]. Данный фреймворк позволяет разрабатывать хорошо структурированные проекты с разделением логики приложения на разрабатываемые компоненты приложения, сервисы, с помощью которых осуществляется взаимодействие с сервером, модули, с помощью которых осуществляется внедрение зависимостей компонент и реализация одностраничных приложений. В данном фреймворке поддерживаются Ajax-запросы с помощью библиотеки angular/http и маршрутизация через библиотеку angular/router. Для реализации разметки приложения применяются шаблоны, основанные на расширенной версии HTML (ngIf, ngSwitch, ngFor). Одной из наиболее используемых библиотек при разработке Angular-приложения является библиотека RxJS - реактивная библиотека программирования, реализующая гибкое управление асинхронными событиями и операциями через комбинирование шаблонов Observer и Iterator [36]. Язык TypeScript [28], применяемый в разработке таких приложений, является подходящим инструментом для улучшения работы проектов со сложной структурой и бизнес_логикой и большой кодовой базой. Такой код является наиболее наглядным и понятным для других разработчиков, а также при компиляции язык TypeScript преобразуется в JavaScript. Angular также поддерживает использование компонентов Material Design (стиль дизайна программного обеспечения и приложений, разработанный компанией Google). Данная технология широко применяется в российских IT-компаниях, в частности группе компаний Simpl, для которой выполняется разработка системы.

Vue.js - JavaScript фреймворк для создания интерактивных пользовательских интерфейсов, поддерживающий шаблон проектирования MVVM (Model-View-View-Model), который позволяет разделить модель и представление с возможностью их изменения отдельно друг от друга [18]. Данный фреймворк из названных по статистике (рис. 2.1) является наименее применяемым, однако обладает рядом положительных качеств, например, разделение ответственности за стили, шаблоны и скрипты за счет хранения их в различных упорядоченных секциях. Данный подход позволяет использовать предпроцессоры, например, Jade и SCSS. Данный фреймворк является наиболее производительным благодаря применению виртуального DOM. Данный фреймворк является достаточно простым для обучения начинающих разработчиков из-за чего многие компании переходят именно к этому фреймворку. Дополнительными преимуществами, в сравнении с Angular, является легковесность приложений, основанных на данной технологии, и поддержка ее версионирования, т.е. при появлении новой версии языка переход к ней будет произведен значительно легче, в сравнении с Angular, в котором переход от прежней версии фреймворка занимает много времени.

Рисунок 2.1. Сравнение востребованности front-end технологий

Все описанные технологии основываются на компонентной разработке. Компонент получает на вход определенные данные и после внутренних вычислений и рендеринга возвращает шаблон UI (область вход/выход с сайта). Разрабатываемые компоненты можно переиспользовать на различных страницах приложения, что упрощает структуру и размер кода. Angular позволяет реализовать более сложные компоненты, в то время как React и Vue.js применяются для разработки простых компонент с небольшими функциями без сохранения состояния. Результаты сравнительного анализа представлены в таблице 2.1.

Таблица 2.1. Результаты сравнения технологий front-end разработки

Сравнительная характеристика

React

Angular

Vue.js

Разработка single-page приложений

-

+

+

Простота обучения

+

+

+

Понятность и наглядность кода

-

+

+

Разделение шаблонов, скриптов и стилей

-

+

+

Легковесность фреймворка/библиотеки

+

-

+

Простота перехода к новой версии фреймворка/библиотеки

+

-

+

Возможность внедрения зависимостей

-

+

-

Возможность внедрения предпроцессоров

+

+

+

Поддержка компонентного программирования

+

+

+

Поддержка Virtual DOM

+

-

+

Поддержка Material Design

-

+

-

Удобство тестирования и выявления ошибок

+

+

+

Поддержка маршрутизации внутри приложения

+

+

+

Наличие документация технологии и ее поддержка

+

+

-

Структурированность

-

+

+

Популярность среди разработчиков

+

+

-

Применение в компании, для которой выполняется разработка

-

+

-

Результаты сравнительного анализа показывают, что каждая описанная технология обладает рядом положительных качеств и подходит для разработки front-end части веб-приложения, однако для разработки системы подбора персонала в IT-компаниях будет использоваться фреймворк Angular, так как он обладает наибольшим числом преимуществ, поддерживает разработку одностраничных приложений, разделяет шаблоны, скрипты и стили, поддерживает внедрение зависимостей и предпроцессоров, и позволяет создавать хорошо структурированный и удобный для тестирования и понимания код.

Для разработки серверного приложения, основанного на платформе .Net, можно выявить две технологии: .Net Framework и .Net Core, применение которых существенно зависит от поставленной задачи. Framework применяется для продолжения разработки системы, которая уже разработана с использованием данной технологии, а также для разработки систем, которые используют сторонние библиотеки, пакеты NuGet, технологии и платформы, неподдерживаемые .Net Core. В свою очередь использование Core обусловлено реализацией кроссплатформенных систем, а также решений, ориентированных на микрослужбы [27]. Данный фреймворк позволяет разрабатывать масштабируемые системы с высокой производительностью и поддержкой различных версий .Net. Так как разрабатываемое приложение не является продолжением проекта, основанного на .Net Framework, а также существует необходимость разработки высокопроизводительной серверной части приложения, back-end будет реализован с использованием технологии .Net Core.

Выбор СУБД для осуществления хранения данных будет основан на технологиях, используемых на предприятии, а также их сочетании с выбранным фреймворком для реализации серверной части приложения. Решения группы компаний Simpl применяют два вида СУБД: Oracle и PostgreSQL. Для разработки некоммерческого приложения наиболее подходящим является PostgreSQL, так как данная система представляет пользователям бесплатный сервис с возможностью масштабирования за счет расширений и кластерных решений. Положительным элементом Oracle является высокая производительность, что позволяет работать с большими данными. Последние версии PostrgreSQL также повысили свою производительность от 10 до 30% на ЭВМ с большим объемом памяти за счет внедрения huge pages. Также отличительной особенностью PostgreSQL в сочетании с .Net Core является возможность динамичного изменения схемы данных и обновления структуры БД через код без утраты ранее заполненных данных, что позволит при дальнейшем расширении модели данных обновлять хранилище, сохраняя ранее внесенные данные. Таким образом, наиболее подходящей СУБД является PostgreSQL.

Важным этапом также является выбор технологий для сбора данных из сторонних источников. Существует несколько способов получения данных с веб_сайтов: это использование API (application programming interface), с помощью которых можно получать данные из стороннего приложения, и веб-скрапинг - метод парсинга html страницы с целью выделения и структурирования данных [19]. Определяющим фактором для выбора методики является наличие у веб-приложения открытого, доступного для получения данных API, а также список методов, который API позволяет выполнять из сторонних приложений. Примерами систем, которые предназначены для публикации вакансий и резюме, являются HeadHunter и SuperJob.ru. Данные решения имеют доступные API, с помощью которых можно считывать резюме пользователей и заносить их в разрабатываемую систему [16]. Несмотря на то, что сбор данных с использованием API выполняется значительно быстрее в сравнении с веб_скрапингом, данное решение обладает рядом ограничений. Практически во всех API доступ к данным через сторонние приложения осуществляется через регистрацию приложения и получения полей user_token и user_secret, после чего они позволяют авторизовать приложение с ограниченным доступом к данным. Например, API системы HeadHunter дает возможность считывать пользовательские резюме только после регистрации приложения на оплаченный аккаунт работодателя, при этом приложение сможет получать только те резюме, создатели которых откликнулись на вакансию работодателя [35]. При этом не идентифицированный в системе пользователь может свободно просматривать резюме претендентов в системе. Таким образом, сбор данных через веб_скрапинг позволит получать данные из сторонних источников без регистрации аккаунтов работодателя и их оплаты, что является подходящим методом сбора данных для некоммерческого приложения.

Необходимым элементом веб_скрапинга в веб-приложениях является скорость его выполнения. Существует большое количество методов проведения веб_скрапинга: от использования сторонних приложений (например, Scraper, VisualScraper, ParseHub и т.д.), которые позволяют проводить веб_скрапинг внутри приложения и экспортировать полученные данные в нужный формат, до разработки собственного парсера сайтов на таких языках как Python и C#. Первый способ является недостаточно удобным для разрабатываемой системы, так как вызывает необходимость дополнительной интеграции с существующим приложением или регулярного ручного парсинга с последующей загрузкой полученных данных. Для сокращения количества действий для сбора данных необходимо разработать веб_парсер. Выбор технологии для разработки парсера сайтов поиска работы полностью определяется основным фреймворком серверной части приложения.

Наиболее быстрыми и удобными для освоения технологиями являются AngleSharp и ScrapySharp, применяемые в языке C#, фреймворках .Net. AngleSharp - это .Net библиотека, которая позволяет анализировать гипертексты на основе угловых скобок HTML и SVG-тегов, а также выполнять анализ CSS. ScrapySharp - это фреймворк, который обладает встроенным веб-клиентом и позволяет эмулировать реальный веб-браузер и выполнять парсинг HTML с помощью CSS-селекторов и языка интегрированных запросов LINQ. Подключение данного фреймворка осуществляется через соответствующий nuget-пакет, контроль над которым существенно удобнее реализован в .Net Core. Таким образом, ScrapySharp подходит для реализуемой системы больше за счет встроенного эмулятора веб_браузера и совместимости с .Net Core.

Последним элементом разрабатываемой системы является модуль принятия решений. Для этого, согласно выявленным требованиям от заказчика необходимо использовать нейронные сети [14]. Задача принятия решения, основанного на сравнении вакансии с резюме, попадает в список основных задач нейронных сетей, в частности классификация (распределение по параметрам). В данной задаче система должна принять решение для конкретной вакансии, кто из претендентов имеет большие шансы на получение работы, для которой составлена вакансия. Примерами библиотек, позволяющих работать с нейронными сетями, являются AForge.Net и Accord.Net Framework [33]. Первая библиотека применяется для решения задач, связанных с компьютерным зрением, обработкой изображений, применение генетических алгоритмов, а также отдельная библиотека AForge.Neuro, с помощью которой можно реализовать возможности нейронных сетей. Вторая библиотека является сравнительно новым решением, которое использует новые методы обучения нейронных сетей. Данная технология представляет собой более унифицированный API для обучения машинным моделям с возможностью дальнейшего расширения. Данная технология подходит для разработки системы подбора персонала, так как возможные изменения вакансий, добавление новых параметров потребует динамического расширения параметров нейросети.

Таким образом, можно подвести итоги по выбранным технологиям для реализации системы. Разработка back-end компоненты реализуется с помощью фреймворка .Net Core, позволяющего создавать кроссплатформенные приложения и выполнять сбор данных из сторонних приложений, используя сторонние API. Реализация front-end компоненты будет выполнена с использованием фреймворка Angular, наиболее подходящего для разработки одностраничных приложений и реализующего компонентный подход веб-разработки. Базы данных будут созданы с применением СУБД PostgreSQL, доступной для некоммерческих приложений и позволяющих хранить достаточно большие объемы данных. Модуль принятия решений будет реализован с использованием технологии Accord.Net, поддерживающей динамическое расширение параметров созданной нейросети.

2.2 Построение концептуальной модели предметной области подбора персонала

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

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

О сущности «Администратор» в системе должна храниться следующая информация: логин (ключевой параметр), пароль администратора в системе, ФИО, информация, изображение администратора для профиля, а также показатель, является ли данный администратор главным в системе, т.е. обладающим расширенным спектром возможностей в сравнении с другими администраторами (создание новых администраторов и их удаление).

В системе будет храниться следующая информация для сущности «Работодатель»: логин как ключевой параметр, пароль работодателя в системе, ФИО, информация о компании, ИНН, тип и сфера деятельности организации, телефон и электронная почта, по которым с работодателем можно будет связаться, а также ссылка на веб_сайт компании, на которую можно будет перейти напрямую через систему.

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

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

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

Для каждой вакансии выполняются сопоставления с резюме. Эти сопоставления формируются в отчеты, состоящие из отсортированных в порядке убывания результата сопоставлений. Таким образом можно выявить 2 сущности: «Отчет» с полями название, описание отчета, нижняя и верхняя граница, с помощью которых для конкретного отчета можно отметить границы положительного, нейтрального и отрицательного результата сопоставления, а также сущность «Сопоставление», который включает в себя результат сопоставления. «Вакансия» связывается с «Отчетом» отношением один ко многим, т.е. для одной вакансии может быть создано более одного отчета. Между классами «Отчет» и «Сопоставление» также существует связь один ко многим, таким образом в одном отчете может быть более одного сопоставления, в то время как сопоставления существуют только для одной вакансии. Между «Резюме» и «Сопоставление» также реализуется связь один ко многим.

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

...

Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.