Научная статья на тему 'АНАЛИЗ МЕТРИКИ ВЛИЯТЕЛЬНОСТИ РАЗРАБОТЧИКОВ НА ЯЗЫКЕ R В ССП GITHUB'

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

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

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

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

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

ANALYSIS OF THE INFLUENCE METRIC OF DEVELOPERS IN THE R LANGUAGE IN THE GITHUB

Social Programming Sites (SPSs) are social networking services for sharing software development projects on the Internet. Many open source projects are currently being developed on the SPSs. One of the characteristics of SPSs is that they provide a social media platform that encourages collaboration between developers with similar interests and goals. The article proposes an approach to the formation of a Github SPSs graph as a heterogeneous network. On the basis of this approach, the metric of determining the developers of the most used R packages is investigated.

Текст научной работы на тему «АНАЛИЗ МЕТРИКИ ВЛИЯТЕЛЬНОСТИ РАЗРАБОТЧИКОВ НА ЯЗЫКЕ R В ССП GITHUB»

6. Родзин С.И., Родзина О.Н. Сравнение программных реализаций эволюционных вычислений для задач многомерной оптимизации // Программная инженерия. 2019. т. 10. № 11-12. С. 451-456.

Сведения об авторах Сергей Иванович Родзин

канд. техн. наук, профессор

Южный федеральный университет

Таганрог, Россия

Эл. почта: srodzin@sfedu.ru

Ольга Николаевна Родзина

старший преподаватель

Южный федеральный университет

Таганрог, Россия

Эл. почта: orodzina@sfedu.ru

Information about authors

Sergey Rodzin

PhD, Professor

Southern Federal University, http://www.sfedu.ru/

Taganrog, Russian Federation

E-mail: srodzin@sfedu.ru

Olga Rodzina

Senior Teacher

Southern Federal University

Taganrog, Russian Federation

E-mail: orodzina@sfedu.ru

УДК 004.822 К.Х.Т. Зыонг, А.Г.Кравец, Т.В. Нгуен, И.В. Струкова

ГРНТИ 20.23.17 Волгоградский государственный технический университет

DOI: 10.47501/ITN0U.2021.1.14-19

АНАЛИЗ МЕТРИКИ ВЛИЯТЕЛЬНОСТИ РАЗРАБОТЧИКОВ НА ЯЗЫКЕ R В ССП GITHUB

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

Ключевые слова: Сайты социального программирования, Социальные сети, Анализ данных, GitHub, влиятельные разработчики.

Q.H.T.Duong, A.G. Kravets, T.V.Nguyen, I.V. Strukova

Volgograd State Technical University

ANALYSIS OF THE INFLUENCE METRIC OF DEVELOPERS IN THE R LANGUAGE IN THE GITHUB

Social Programming Sites (SPSs) are social networking services for sharing software development projects on the Internet. Many open source projects are currently being developed on the SPSs. One of the characteristics of SPSs is that they provide a social media platform that encourages collaboration between developers with similar interests and goals. The article proposes an approach to the formation of a Github SPSs graph as a heterogeneous network. On the basis of this approach, the metric of determining the developers of the most used R packages is investigated.

Keywwork: Social Coding Sites, Social networks, Data analysis, GitHub, influential developers. 14 HTHOY. 2021. № 1.

1. Введение

Сайты социального программирования (ССП) - это службы социальных сетей для обмена проектами разработки программного обеспечения (ПО) в Интернете. Типичными ССП являются GitHub и Bitbucket. Эти ССП предоставляют среды для разработки и визуализации действий разработчиков и истории изменений программного обеспечения в Интернете. Количество пользователей ССП, включая организации, быстро увеличивается.

На ССП разработчики могут бесплатно начинать проекты и разрабатывать программное обеспечение для каждого проекта. Разработку можно осуществлять, сотрудничая с несколькими разработчиками. Одной из характеристик ССП является то, что они предоставляют платформу, которая поощряет сотрудничество между разработчиками с одинаковыми интересами и целями. Например, внешние разработчики могут сообщать об ошибках и улучшениях или просить участников проекта изменить программное обеспечение. Это очень выгодно с точки зрения открытости проектов для общественности. ССП имеют социальную сеть разработчиков. Деятельность разработчиков, такая как создание проектов, участие в проектах и закладки, распространяется через социальную сеть. Социальная сеть полезна для поиска проектов и создания новых совместных работ. [1][2]

В данной статье рассматривается ССП Github, способы организации данных в этой сети, а также представлен анализ тенденций разработчиков на языке R в 2020 году на основе данных Github.

2. ССП GitHub

GitHub [3] - это серверная служба, которая управляет несколькими версиями кода, помогая хранить их и проектировать контент для двух или более учетных записей разработчиков. Это также сайт, где программисты могут опубликовать свой код ПО и планы разработки, чтобы другие члены проектной группы могли отслеживать, копировать этот код и продолжать свою работу. Хотя GitHub изначально был запущен для разработки программного обеспечения через миллионы свободно доступных репозиториев, он также стал ресурсом для обмена знаниями по всему миру как для промышленности, так и для академических кругов. GitHub - это комбинация двух слов:

- Git - система управления проектами и версиями кода;

- Hub - превращает команды Git в социальную сеть для разработчиков.

Модель графа СПП GitHub как гетерогенной сети

GitHub добавляет богатое социальное измерение к набору репозиториев Git, каждый из которых сам по себе уже представляет собой сложную сеть, описывающую историю исходного дерева кода ПО. GitHub отслеживает все вилки (forks, форки) одного проекта, в то время как каждый проект может включать другие проекты в качестве подмодулей [4]. Разработчики владеют, просматривают и помечают несколько проектов и ответвлений, и они могут создавать коммиты, запросы на извлечение, задачи и комментарии к ним. Хотя GitHub позволяет разработчикам явно следить за другими разработчиками, которые их интересуют, можно установить косвенные отношения между ними по следам, которые они оставили в репозиториях GitHub. [5]

На рисунке 1 показаны различные типы узлов и ребер графа, которые GitHub явно предоставляет через API.

аи1ИогО!

Рис.1. Схема гетерогенной сети GitHub

Среди них два наиболее важных типа узлов: пользовательский узел; репозитории (repo) для разработчиков и проектов. Существует множество других типов сущностей для записи следов взаимодействия между разработчиками и истории изменений в исходном дереве, например, запросы на извлечение, коммиты. Существует много различных типов ребер, которые (а) напрямую связывают узлы пользователя и (б) связывают репозитории, что позволяет нам рассматривать его как двудольный граф. [6]

Алгоритм построения графа СПП GitHub как гетерогенной сети

Построение графа гетерогенной социальной сети с открытым исходным кодом GitHub позволяет получить схожих разработчиков. Алгоритм реализован для трех типов узлов и трех типов взвешенных ребер двудольного графа.

Узел разработчика (Д). Люди, связанные с конкретным проектом. GitHub позволяет разработчикам разветвлять родительский проект, фактически не внося в него вклад. При построении графа рассматриваются только разработчики, постоянно работающие с родительским проектом, и собственно авторы этого проекта.

Узел проекта (П). Проект, содержащий файлы репозитория, и связанные с ними разработчики.

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

Ребро разработчик-проект (Д - П). На первом этапе алгоритма формируется двудольный граф на узлах разработчика и проекта, где есть связь между разработчиком Д и

проектом П, если Д вносит вклад в П. Кроме того, вес ребер ДП является количество обязательств (например, форков, коммитов) Д к П (указывает на силу отношения П к Д).

Ребро разработчик-файл (Д - Ф) На втором этапе строится аналогичная дихотомия между разработчиком и файлом (где файл - это модуль, а библиотека принадлежит одному проекту). Проверяются файловые узлы во всех проектах, и между разработчиком Д и файлом Ф существует связь, если Д работал над Ф. Это ребро используется для расчета сходства между разработчиками на основе следующего предположения: проект может включать разные темы, и разработчики могут захотеть работать с файлами с той же темой в разных проектах, что позволит определить похожих разработчиков.

Ребро разработчик-разработчик (Д - Д) На третьем этапе строится такой тип ребра, для которого возможно получить веса различными методами. Можно предположить, что два разработчика более похожи, потому что они работали над большим количеством общих файлов в одном проекте или просто над большим количеством проектов в более широком контексте [9].

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

3. Экспериментальное определение рейтинговой метрики разработчиков на языке R в ССП Github

В качестве датасета использована коллекция всех репозиториев GitHub в наборах данных Google BigQuery. Набор данных BigQuery всех общедоступных репозиториев Github содержит более 3 ТБ данных. Извлекаются только проекты, написанные на языке программирования R.

На первом шаге извлекаются идентификаторы R-файлов в bigquery-public-data: github_repos.files. На втором шаге эти идентификаторы используются для извлечения содержимого файлов из bigquery-public-data: github_repos.contents.

Разработчики наиболее используемых пакетов R и их функции

Необходимо найти все функции в пакетах, а затем проверить их вид в файлах GitHub. Для реализации использованы Google Таблицы и формула (= ImportHtml (URL, "table", num), чтобы импортировать дату с веб-страницы для разметки всех пакетов. В рейтинг включены 100 лучших пакетов и функций R в датасете из 12 000 пакетов (рис.2).

Затем ранжируются влиятельные разработчики и проекты в полученной подсети GitHub из 100 лучших пакетов с помощью алгоритма PageRank. [5]

4. Заключение

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

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

В будущем планируется разработка рекомендательной системы [8], чтобы выбрать подходящих разработчиков для совместной работы над конкретными проектами на GitHub. Затем необходимо повторно исследовать предложенную метрику после того, как рекомендательная система будет применена к подмножеству разработчиков и проектных групп, чтобы понять, есть ли существенные изменения в свойствах подсети. Ре-крутерам также может быть интересна информация о самых влиятельных проектах и разработчиках [9].

ggptoe dplyr plyr sniny data table reshape?

sinngr RCotorftrewer knttr lidyr testthat stales MASS gridExtra grid

rgi

, tubrrdate Matrix [> rgdal

caret rgraph l raster lattice magrittr parallel h2o

devtoa^ readr isonilte

tidyverse Hmrsc RCurt rarKjomForest XML foreach maptools reshape car QpenMx

5000 «ООО

Usage on Github

Рис 2. 100 лучших пакетов R из 12 000 пакетов.

15000

Исследование выполнено при финансовой поддержке РФФИ в рамках научных проектов № 19-07-01200 и 20-37-90092.

Литература

1. Oskar Jarczyk, Szymon Jaroszewicz, Adam Wierzbicki, Kamil Pawlak, Michal Jankowski-Lorek, "Surgical Teams on GitHub: Modeling Performance of GitHub Project Development Processes", Information and Software Technology (2018), https://doi.org/10.1016/j.infsof.2018.03.010

2. Nguyen, T. V. Analyzing Recent Research Trends of Computer Science from Academic Open-access Digital Library / T. V. Nguyen, A. G. Kravets // System Modeling and Advancement in Research Trends : 8th International Conference (SMART 2019), Moradabad, 22-23 ноября 2019 года. - Moradabad: Institute of Electrical and Electronics Engineers Inc., 2019. - P. 31-36.

3. Rajdeep Kaura, Kuljit Kaur Chahala, Munish Sainib, "Understanding community participation and engagement in open source software Projects: A systematic mapping study",

Journal of King Saud University - Computer and Information Sciences (2020), https://doi.Org/10.1016/j.jksuci.2020.10.020

4. Z. Liao, Y. Zhao, S. Liu, Y. Zhang, L. Liu et al., "The measurement of the software ecosystem's productivity with github," Computer Systems Science and Engineering, vol. 36, no.1, pp. 239-258, 2021, https://www.techscience.com/csse/v36n1/40894

5. Укустов, С. С. Подход к решению задачи идентификации влиятельных разработчиков в социальной сети Гитхаб / С. С. Укустов, А. Г. Кравец // Известия Волгоградского государственного технического университета. 2012. № 15(102). С. 61-66.

6. Укустов, С.С. Комментарий к структуре двудольного графа социальной сети ГитХаб / С.С. Укустов, А.Г. Кравец // Информационные технологии в науке, образовании, телекоммуникации и бизнесе IT+SE'2013 (майская сессия) : матер. XLI междунар. конф. и XI междунар. конф. молодых учёных (Украина, Крым, Ялта-Гурзуф, 25 мая - 4 июня 2014 г.): прилож. к журналу «Вестник Московского ун-та им. С.Ю. Витте. Серия 1, Экономика и управление» / РАН, ИПУ РАН, ГУ - ВШЭ [и др.]. - [Запорожье], 2013. С.193-195.

7. Ramya Akula, Niloofar Yousefi, Ivan Garibay, "DeepFork: Supervised Prediction of Information Diffusion in GitHub", Conference: Proceedings of the International Conference on Industrial Engineering and Operations ManagementAt: Bangkok, Thailand, March 57, 2019, https://www.researchgate.net/publication/332530684_DeepFork_ Super-vised_Prediction_of_ Information_Diffusion_in_GitHub

8. Quyen, L. X. Development of a Protocol to Ensure the Safety of User Data in Social Networks, Based on the Backes Method / L. X. Quyen, A. G. Kravets // Communications in Computer and Information Science (см. в книгах). 2014. Vol. 466 CCIS. P. 393-399. -DOI 10.1007/978-3-319-11854-3_33.

9. Social networks message posting support module / A. A. Chumak, S. S. Ukustov, A. G. Kravets, J. F. Voronin // World Applied Sciences Journal. 2013. Vol. 24. No 24. P. 191-195. - DOI 10.5829/idosi.wasj.2013.24.itmies.80038.

Сведения об авторах Зыонг Куок Хоанг Ту

Аспирант ВолГУ

Волгоград, Россия

Эл. почта: citdqhtu@gmail.com

Алла Григорьевна Кравец

Д-р техн. наук, профессор, ВолГУ

Волгоград, Россия Эл. почта: agk@gde.ru Нгуен Тхань Вьет

аспирант ВолГУ

Россия, Волгоград

Эл. почта: vietqn1987@gmail.com

Инна Владимировна Струкова

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

гл.специалист ВолГУ

Волгоград, Россия

Эл. почта: vicinnaa@gmail.com

Information about authors Duong Quoc Hoang Tu

postgraduate student,

Volgograd State Technical University,

Volgograd, Russia

E-mail: citdqhtu@gmail.com,

Alla Grigorievna Kravets

Doctor of Technical Sciences, Professor,

Volgograd State Technical University,

Russia. Volgograd

E-mail: agk@gde.ru

Nguyen Thanh Viet

postgraduate student

Volgograd State Technical University,

Russia. Volgograd

E-mail: vietqn1987@gmail.com

Inna Vladimirovna Strukova

chief specialist,

Volgograd State Technical University,

Volgograd, Russia.

E-mail: vicinnaa@gmail.com

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