Репозитории программного обеспечения для майнинга
Эта статья нуждается в дополнительных цитатах для проверки . ( май 2017 г. ) |
В области разработки программного обеспечения репозитории программного обеспечения для майнинга [1] ( MSR ) поле [2] анализирует обширные данные, доступные в репозиториях программного обеспечения, таких как репозитории контроля версий , списков рассылки архивы , системы отслеживания ошибок , системы отслеживания проблем и т. д., чтобы выявить интересную и полезную информацию о программных системах, проектах и разработке программного обеспечения .
Определение
[ редактировать ]Херциг и Целлер определяют «архивы программного обеспечения для майнинга» как процесс «получения множества первоначальных доказательств» путем извлечения данных из репозиториев программного обеспечения. Кроме того, они определяют «источники данных» как артефакты, основанные на продукте, такие как исходный код, артефакты требований или архивы версий, и утверждают, что эти источники являются объективными, но зашумленными и неполными. [3]
Техники
[ редактировать ]Анализ связанных изменений
[ редактировать ]Идея связанного анализа изменений заключается в том, что разработчики часто вместе меняют объекты кода (например, файлы) для исправления дефектов или внедрения новых функций. Эти связи между сущностями часто не выражаются явно в коде или других документах. Особенно разработчики, впервые участвующие в проекте, не знают, какие сущности необходимо изменить вместе. Анализ связанных изменений направлен на выявление связи из системы контроля версий проекта. По коммитам и времени внесения изменений мы могли бы определить, какие объекты часто изменяются вместе. Эта информация затем может быть представлена разработчикам, собирающимся изменить одну из сущностей, чтобы поддержать их в дальнейших изменениях. [4]
Анализ фиксации
[ редактировать ]В системах контроля версий существует множество различных типов коммитов, например коммиты для исправления ошибок, коммиты новых функций, фиксации документации и т. д. Чтобы принимать решения на основе данных на основе прошлых коммитов, необходимо выбрать подмножества коммитов, которые соответствуют заданному критерию. Это можно сделать на основе сообщения фиксации. [5]
Генерация документации
[ редактировать ]Из репозиториев программного обеспечения для майнинга можно создать полезную документацию. Например, Jadeite вычисляет статистику использования и помогает новичкам быстро идентифицировать часто используемые классы. [6]
Данные и инструменты
[ редактировать ]Первичные данные майнинга поступают из систем контроля версий. Первые эксперименты по майнингу проводились в репозиториях CVS. [7] Затем исследователи тщательно проанализировали репозитории SVN. [8] Сейчас репозитории Git доминируют. [9] В зависимости от характера требуемых данных (размер, домен, обработка) можно загрузить данные из одного из этих источников. Однако управление данными и сбор данных ради построения больших языковых моделей изменили правила игры за счет интеграции использования веб-сканеров для получения данных из нескольких источников и доменов.
См. также
[ редактировать ]- Эволюция программного обеспечения
- Программная аналитика
- Обслуживание программного обеспечения
- Программная археология
- Кураторский список репозиториев программного обеспечения с GitHub .
Ссылки
[ редактировать ]- ^ Хасан, Ахмед Э. (2008). «Путь развития репозиториев программного обеспечения для майнинга» . Границы сопровождения программного обеспечения 2008 года . IEEE. стр. 48–57.
- ^ Рабочая конференция по репозиториям программного обеспечения для майнинга , главная конференция по разработке программного обеспечения в этой области.
- ^ К.С. Герциг и А. Зеллер, «Извлечение собственных доказательств», в журнале Making Software, стр. 517–529, Севастополь, Калифорния, США: O'Reilly, 2011.
- ^ Галл, Х.; Хаек, К.; Джазайери, М. (1998). «Обнаружение логической связи на основе истории выпуска продукта». Слушания. Международная конференция по сопровождению программного обеспечения (кат. № 98CB36272) . стр. 190–198. CiteSeerX 10.1.1.199.7754 . дои : 10.1109/icsm.1998.738508 . ISBN 978-0-8186-8779-2 .
- ^ Хиндл, Абрам; Герман, Дэниел М.; Годфри, Майкл В.; Холт, Ричард К. (2009). «Автоматическая классификация крупных изменений по категориям обслуживания». 2009 17-я Международная конференция IEEE по пониманию программ . стр. 30–39. дои : 10.1109/ICPC.2009.5090025 . ISBN 978-1-4244-3998-0 .
- ^ Стилос, Джеффри; Фолринг, Эндрю; Ян, Цзычжуан; Майерс, Брэд А. (2009). «Улучшение документации API с использованием информации об использовании API». Симпозиум IEEE 2009 г. по визуальным языкам и человеко-ориентированным вычислениям (VL/HCC) . стр. 119–126. дои : 10.1109/VLHCC.2009.5295283 . ISBN 978-1-4244-4876-0 .
- ^ Канфора, Г.; Серуло, Л. (2005). «Анализ воздействия программного обеспечения для майнинга и репозиториев запросов на изменения». 11-й Международный симпозиум по метрикам программного обеспечения IEEE (METRICS'05) . п. 29. дои : 10.1109/METRICS.2005.28 . ISBN 978-0-7695-2371-2 .
- ^ д'Амброс, Марко; Галл, Харальд; Ланца, Мишель; Пинцгер, Мартин (2008). «Анализ репозиториев программного обеспечения для понимания эволюции программного обеспечения». Эволюция программного обеспечения . стр. 37–67. дои : 10.1007/978-3-540-76440-3_3 . ISBN 978-3-540-76439-7 .
- ^ Каллиамваку, Эйрини; Гусиос, Георгиос; Блинко, Келли; Певец, Лейф; Герман, Дэниел М.; Дамиан, Даниэла (2014). «Обещания и опасности майнинга GitHub». Материалы 11-й рабочей конференции по репозиториям программного обеспечения для майнинга — MSR 2014 . стр. 92–101. дои : 10.1145/2597073.2597074 . ISBN 9781450328630 .