Аналитика программного обеспечения — это аналитика, специфичная для области систем программного обеспечения, учитывающая исходный код , статические и динамические характеристики (например, метрики программного обеспечения ), а также связанные с ними процессы их разработки и эволюции . Она направлена на описание, мониторинг, прогнозирование и повышение эффективности и результативности разработки программного обеспечения на протяжении всего жизненного цикла программного обеспечения , в частности, во время разработки и обслуживания программного обеспечения . Сбор данных обычно осуществляется путем анализа репозиториев программного обеспечения , но также может быть достигнут путем сбора данных о действиях пользователей или производственных данных.
Определения
- «Программная аналитика направлена на получение содержательной и полезной информации из программных артефактов, которая помогает специалистам выполнять задачи, связанные с разработкой программного обеспечения, системами и пользователями». [1] --- сосредотачивается на аналитике, применяемой к артефактам, из которых состоит программная система.
- «Аналитика программного обеспечения — это аналитика данных программного обеспечения для менеджеров и инженеров-программистов с целью предоставления возможности отдельным лицам и группам разработчиков программного обеспечения получать и обмениваться информацией из своих данных для принятия более обоснованных решений». [2] — усиливает основные цели методов и приемов аналитики программного обеспечения, уделяя особое внимание как программным артефактам, так и действиям вовлеченных разработчиков и групп.
- «Программная аналитика (SA) представляет собой раздел аналитики больших данных . SA занимается анализом всех программных артефактов, а не только исходного кода. [...] Эти уровни варьируются от более высокого уровня правления и установления видения предприятия и управления портфелем, проходящего через планирование управления проектами и реализацию разработчиками программного обеспечения». [3] --- отражает широкий охват, включающий различных заинтересованных лиц.
Цели
Аналитика программного обеспечения направлена на поддержку принятия решений и получение информации, т. е. выводов, заключений и оценок относительно систем программного обеспечения и их реализации, состава, поведения, качества, эволюции, а также относительно деятельности различных заинтересованных сторон этих процессов.
- Проницательная информация, полученная с помощью аналитики программного обеспечения, передает осмысленное и полезное понимание или знания для выполнения целевых задач. Как правило, ее нельзя легко получить путем прямого изучения необработанных больших данных без помощи аналитических методов и приемов.
- Пригодная для принятия мер информация, полученная с помощью аналитики программного обеспечения, направляет или предписывает решения, которые могут принимать заинтересованные стороны в процессах разработки программного обеспечения (например, специалисты по разработке программного обеспечения, руководители разработки или руководители высшего звена).
Подход
Методы, приемы и инструменты аналитики программного обеспечения обычно опираются на сбор, измерение, анализ и визуализацию информации, найденной в многочисленных источниках данных, хранящихся в средах разработки программного обеспечения и экосистемах. Системы программного обеспечения хорошо подходят для применения аналитики, поскольку, с одной стороны, доступны в основном формализованные и точные данные, а с другой стороны, системами программного обеспечения чрезвычайно сложно управлять --- в двух словах: «программные проекты в высшей степени измеримы, но часто непредсказуемы». [2]
Основные источники данных включают исходный код , «регистрации, рабочие элементы, отчеты об ошибках и тестовые выполнения [...], записанные в репозиториях программного обеспечения, таких как CVS, Subversion, GIT и Bugzilla». [4] Также могут учитываться данные телеметрии , а также трассировки или журналы выполнения.
Автоматизированный анализ, массивные данные и систематическое рассуждение поддерживают принятие решений практически на всех уровнях. В целом, ключевые технологии, используемые аналитикой программного обеспечения, включают аналитические технологии, такие как машинное обучение , интеллектуальный анализ данных , статистика , распознавание образов , визуализация информации , а также масштабные вычисления и обработка данных. Например, инструменты аналитики программного обеспечения позволяют пользователям отображать полученные результаты анализа с помощью карт программного обеспечения , которые поддерживают интерактивное исследование системных артефактов и коррелированных метрик программного обеспечения. Существуют также инструменты аналитики программного обеспечения, использующие аналитические технологии поверх моделей качества программного обеспечения в компаниях по гибкой разработке программного обеспечения , которые поддерживают оценку качеств программного обеспечения (например, надежности) и выведение действий по их улучшению. [5]
История
В мае 2009 года аналитика программного обеспечения была впервые придумана и предложена, когда Дунмэй Чжан основал группу аналитики программного обеспечения (SA) в Microsoft Research Asia (MSRA). Этот термин стал хорошо известен в сообществе исследователей программной инженерии после серии учебных пособий и докладов по аналитике программного обеспечения, которые Чжан и ее коллеги провели в сотрудничестве с Тао Сье из Университета штата Северная Каролина на конференциях по программной инженерии, включая учебное пособие на Международной конференции IEEE/ACM по автоматизированной программной инженерии (ASE 2011), [6] доклад на Международном семинаре по технологиям машинного обучения в программной инженерии (MALETS 2011), [7] учебное пособие и основной доклад, представленные Чжан на Конференции IEEE-CS по образованию и обучению в области программной инженерии, [8] [9] учебное пособие на Международной конференции по программной инженерии - Программная инженерия на практике, [10] и основной доклад, представленный Чжан на Рабочей конференции по репозиториям программного обеспечения для майнинга. [11]
В ноябре 2010 года аналитика разработки программного обеспечения (аналитика программного обеспечения с упором на разработку программного обеспечения) была предложена Томасом Циммерманном и его коллегами из Empirical Software Engineering Group (ESE) в Microsoft Research Redmond в их статье FoSER 2010. [12] Панельная дискуссия «Золотой аквариум» по аналитике разработки программного обеспечения была организована Циммерманном и Тимом Мензисом из Университета Западной Вирджинии на Международной конференции по программной инженерии, Программная инженерия на практике. [13]
Смотрите также
Ссылки
- ^ Д. Чжан, С. Хан, И. Дан, Дж.-Г. Лу, Х. Чжан: «Программная аналитика на практике». IEEE Software, сентябрь/октябрь 2013 г., стр. 30-35.
- ^ ab Raymond PL Buse и Thomas Zimmermann. «Информационные потребности в аналитике разработки программного обеспечения». В трудах 34-й Международной конференции по программной инженерии (ICSE 2012), Программная инженерия на практике, Цюрих, Швейцария, июнь 2012 г., стр. 987-996.
- ^ TM Abdellatif, LF Capretz, D. Ho. «Программная аналитика для программной практики: систематический обзор литературы». 1. Международный семинар по проектированию больших данных, 2015, стр. 30-36.
- ^ Харальд Галл, Тим Мензис, Лори Уильямс и Томас Циммерман. «Анализ разработки программного обеспечения». Dagstuhl Reports, том 4, выпуск 6, стр. 64-83.
- ^ Мартинес-Фернандес, Сильверио; Фоллмер, Анна Мария; Едличка, Андреас; Франч, Хавьер; Лопес, Лидия; Рам, Прабхат; Родригес, Пилар; Аарамаа, Санья; Баньято, Алессандра (2019). «Непрерывная оценка и улучшение качества программного обеспечения с помощью инструментов аналитики программного обеспечения: пример» (PDF) . IEEE Access . 7 : 68219–68239. Bibcode : 2019IEEEEA...768219M. doi : 10.1109/ACCESS.2019.2917403 . ISSN 2169-3536.
- ^ Дунмей Чжан и Тао Се. «xSA: eXtreme Software Analytics — объединение eXtreme Computing и Software Analytics». В трудах 26-й Международной конференции IEEE/ACM по автоматизированной программной инженерии (ASE 2011), Учебное пособие, Лоуренс, Канзас, ноябрь 2011 г.
- ^ Dongmei Zhang, Yingnong Dang, Jian-Guang Lou, Shi Han, Haidong Zhang и Tao Xie. «Программная аналитика как пример обучения на практике: подходы и опыт». В материалах Международного семинара по технологиям машинного обучения в программной инженерии (MALETS 2011), Лоуренс, Канзас, ноябрь 2011 г. PDFSlides
- ^ Дунмэй Чжан. «Программная аналитика на практике и ее значение для образования и обучения». Основной доклад. В трудах 24-й конференции IEEE-CS по образованию и обучению в области программной инженерии (CSEE&T 2012), Учебное пособие, Нанкин, Китай, апрель 2012 г.
- ^ Дунмэй Чжан, Иннун Дан, Ши Хан и Тао Се. «Преподавание и обучение аналитике программного обеспечения». В трудах 24-й конференции IEEE-CS по образованию и обучению в области программной инженерии (CSEE&T 2012), Учебное пособие, Нанкин, Китай, апрель 2012 г.
- ^ Dongmei Zhang и Tao Xie. "Software Analytics in Practice: Mini Tutorial". В трудах 34-й Международной конференции по программной инженерии (ICSE 2012), Software Engineering in Practice, Mini Tutorial, Цюрих, Швейцария, июнь 2012 г., стр. 997. Слайды
- ^ Дунмей Чжан. «MSR 2012 основной доклад: Аналитика программного обеспечения на практике — подходы и опыт». В трудах 9-й рабочей конференции по репозиториям программного обеспечения для горнодобывающей промышленности (MSR 2012), Цюрих, Швейцария, июнь 2012 г., стр. 1.
- ^ Рэймонд ПЛ Бьюз и Томас Циммерман. «Анализ для разработки программного обеспечения». В трудах семинара по будущему исследований в области программной инженерии (FoSER 2010), Санта-Фе, Нью-Мексико, США, ноябрь 2010 г., стр. 77-80.
- ^ Тим Мензис и Томас Циммерман. «Золотая рыбка: Аналитика разработки программного обеспечения». В трудах 34-й Международной конференции по программной инженерии (ICSE 2012), Программная инженерия на практике, Цюрих, Швейцария, июнь 2012 г., стр. 1032-1033.
Внешние ссылки
- InfoWorld: превратите показатели приложений в ценность для бизнеса
- Группа аналитики программного обеспечения Microsoft Research Asia (ЮАР)
- Группа эмпирической разработки программного обеспечения (ESE) исследовательского центра Microsoft в Редмонде
- Аналитика программного обеспечения на практике и ее значение для образования и обучения, основной доклад Дунмей Чжана на 24-й конференции IEEE-CS по образованию и обучению в области программной инженерии (CSEE&T 2012)
- Аналитика программного обеспечения на практике – подходы и опыт, основные слайды доклада Дунмей Чжана на 9-й рабочей конференции по репозиториям программного обеспечения для майнинга (MSR 2012)
- Аналитика программного обеспечения на практике. Мини-слайды с обучающими материалами от Дунмей Чжан и Тао Се на 34-й Международной конференции по программной инженерии (ICSE 2012)
- Аналитика программного обеспечения Pinterest
- Microsoft Azure — аналитика приложений в Azure