stringtranslate.com

Краудсорсинговая разработка программного обеспечения

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

Цели

Краудсорсинг программного обеспечения может преследовать несколько целей. [2] [3]

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

Быстрое приобретение : вместо того, чтобы ждать разработки программного обеспечения, организаторы краудсорсинга могут опубликовать конкурс, надеясь, что что-то идентичное или похожее уже разработано. Это сделано для сокращения времени приобретения программного обеспечения.

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

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

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

Создание идей . Одна из целей — получить новые идеи от участников, и эти идеи могут привести к новым направлениям.

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

Обучение участников : Организаторы заинтересованы в обучении участников новым знаниям. Одним из примеров является сайт nonamesite.com, спонсируемый DARPA для преподавания STEM- науки, технологий, инженерии и математики .

Привлечение средств : Цель состоит в том, чтобы стимулировать другие организации спонсировать аналогичные проекты для привлечения средств.

Маркетинг: Краудсорсинговые проекты можно использовать для узнаваемости бренда среди участников.

Экосистема

Поддержка архитектуры

Система поддержки краудсорсинга должна включать 1) Инструменты разработки программного обеспечения: инструменты требований, инструменты проектирования, инструменты кодирования, компиляторы, отладчики, IDE, инструменты анализа производительности, инструменты тестирования и инструменты обслуживания. 2) Инструменты управления проектами: системы рейтинга, репутации и награждения продуктов и участников. 3) Инструменты социальных сетей: позволяют участникам общаться и поддерживать друг друга. 4) Инструменты для совместной работы. Например, платформа «черная доска», где участники могут видеть общую область и предлагать идеи по улучшению решений, представленных в общей области.

Социальные сети

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

Организация

Процессы

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

Существующие процессы разработки программного обеспечения можно модифицировать, включив в них краудсорсинг: 1) Модель водопада; 2) Гибкие процессы; 3) Модельно-ориентированный подход; 4) Открытый подход; 5) подход «Программное обеспечение как услуга» (SaaS), при котором компоненты сервиса можно публиковать, обнаруживать, составлять, настраивать, моделировать и тестировать; 6) формальные методы: формальные методы могут быть использованы с помощью краудсорсинга.

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

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

Известные процессы краудсорсинга включают процессы AppStori и Topcoder .

Предварительный отбор участников важен для краудсорсинга качественного программного обеспечения. В конкурентном краудсорсинге участник с низким рейтингом не должен конкурировать с участником с высоким рейтингом.

Платформы

Платформы краудсорсинга программного обеспечения, включая App Store компании Apple Inc. , Topcoder и uTest, демонстрируют преимущества краудсорсинга с точки зрения расширения экосистемы программного обеспечения и улучшения качества продуктов. Apple App Store — это онлайн- рынок приложений для iOS , где разработчики могут напрямую доставлять свои творческие проекты и продукты покупателям смартфонов. Эти разработчики заинтересованы в создании инновационных разработок как для репутации, так и для оплаты с помощью механизма микроплатежей App Store. Менее чем за четыре года Apple App Store превратился в огромную экосистему мобильных приложений со 150 000 активных издателей и создал более 700 000 приложений для iOS. В App Store существует множество общественных платформ для совместной работы инкубаторов приложений для смартфонов. Например, AppStori представляет подход краудфандинга для создания онлайн-сообщества для разработки многообещающих идей о новых приложениях для iPhone. IdeaScale — еще одна платформа для краудсорсинга программного обеспечения. [5]

Другой пример краудсорсинга — Topcoder — создает модель конкурса программного обеспечения, в которой задачи по программированию публикуются в виде конкурсов, и разработчик лучшего решения получает главный приз. Следуя этой модели, Topcoder создал онлайн-платформу для поддержки своей экосистемы и собрал виртуальную глобальную рабочую силу с более чем 1 миллионом зарегистрированных участников и почти 50 000 активных участников. Все участники Topcoder соревнуются друг с другом в таких задачах разработки программного обеспечения, как анализ требований, разработка алгоритмов, кодирование и тестирование.

Примеры процессов

Процесс разработки программного обеспечения Topcoder состоит из ряда различных этапов, и на каждом этапе могут быть разные типы соревнований :

  1. Архитектура;
  2. Производство компонентов;
  3. Сборка приложений;
  1. Развертывание
Типы и этапы соревнований Topcoder

Каждый шаг может быть краудсорсинговым соревнованием.

Процесс тестирования BugFinders: [6]

  1. Задействовать BugFinders;
  2. Определить проекты;
  3. Управляется BugFinders;
  4. Обзор ошибок;
  5. Исправить ошибки; и
  6. Выпуск программного обеспечения.

Теоретические вопросы

Теория игр использовалась при анализе различных краудсорсинговых проектов программного обеспечения. [2]

Теория информации может быть основой для метрик.

Экономические модели могут стимулировать участие в краудсорсинговых проектах.

Эталонная архитектура

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

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

  1. Настраиваемый для поддержки типичных моделей процессов;
  2. Возможность настройки для создания различных функциональных компонентов;
  3. Масштабируемость для облегчения решения проблем различного размера.

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

Эталонная архитектура для краудсорсинга программного обеспечения

Требования к системам краудсорсинга программного обеспечения постоянно меняются по мере того, как завоевывают популярность новые философии и технологии разработки. Представленная выше эталонная архитектура предназначена для охвата общности во многих измерениях, включая, например, различные методологии разработки программного обеспечения, схемы стимулирования и подходы конкуренции/сотрудничества. Существует несколько четких направлений исследований, которые можно изучить для улучшения архитектуры, таких как анализ данных, предоставление услуг и обобщение структуры. По мере роста систем понимание того, что использование платформы является важным фактором, позволяет изучать данные о пользователях, проектах и ​​взаимодействии между ними для изучения производительности. Эти данные также могут дать полезную информацию при разработке задач или выборе участников. Многие из компонентов, разработанных в архитектуре, имеют общее назначение и могут предоставляться в виде размещенных служб. Благодаря размещению этих услуг барьеры для входа будут значительно снижены. Наконец, благодаря развертыванию этой архитектуры существует потенциал для создания структуры общего назначения, которую можно было бы использовать для различных краудсорсинговых проектов разработки программного обеспечения или, в более широком смысле, для других краудсорсинговых приложений. Создание таких фреймворков оказало преобразующее воздействие и на другие области, например, на преобладающее использование BOINC в добровольных вычислениях.

Аспекты и показатели

Краудсорсинг в целом — многогранная тема исследований. Использование краудсорсинга при разработке программного обеспечения связано с рядом ключевых моментов или аспектов, которые следует учитывать (см. рисунок ниже). В то же время исследование может проводиться с точки зрения трех ключевых игроков краудсорсинга: клиента, работника и платформы. [7]

Исследовательская база для краудсорсинговой разработки программного обеспечения

Декомпозиция задачи:

Координация и общение:

Планирование и планирование:

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

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

Bugcrowd показал, что участники будут следовать дилемме заключенного, чтобы выявить ошибки для тестирования безопасности. [8]

Знания и интеллектуальная собственность:

Мотивация и вознаграждение:

Уровни

Существуют следующие уровни краудсорсинга :

Уровень 1 : отдельные люди, четко определенные модули, небольшой размер, ограниченный период времени (менее 2 месяцев), качественные продукты, текущие процессы разработки, такие как процессы Topcoder и uTest. На этом уровне ранжируются программисты, веб-сайты содержат онлайн-хранилища краудсорсинговых материалов, программное обеспечение может ранжироваться участниками, иметь инструменты коммуникации, такие как вики, блоги, комментарии, инструменты разработки программного обеспечения, такие как IDE, тестирование, компиляторы, симуляция, моделирование и программы. анализ.

Уровень 2 : команды людей (< 10), четко определенные системы, средние и средние сроки (от 3 до 4 месяцев), адаптивные процессы разработки с интеллектуальной обратной связью в архитектуре «классной доски». На этом уровне краудсорсинговый веб-сайт может поддерживать процесс адаптивной разработки и даже параллельные процессы разработки с интеллектуальной обратной связью с архитектурой доски; интеллектуальный анализ кодеров, программных продуктов и комментариев; многоэтапное тестирование и оценка программного обеспечения; Аналитика больших данных, автоматическая упаковка программных услуг в SaaS (программное обеспечение как услуга), аннотации с онтологией , перекрестные ссылки на DBpedia и Wikipedia; автоматизированный анализ и классификация программных сервисов; аннотации и рассуждения онтологии, такие как связывание этих служб с совместимым вводом/выводом.

Уровень 3 : группы людей (< 100 и > 10), четко определенная система, большие системы, длительный период времени (< 2 лет), автоматизированная перекрестная проверка и перекрестное сравнение вкладов. Краудсорсинговый веб-сайт на этом уровне может содержать автоматическое сопоставление требований с существующими компонентами, включая сопоставление спецификаций, услуг и тестов; автоматическое регрессионное тестирование.

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

Значимые события

Краудсорсинг Microsoft по разработке Windows 8 . В 2011 году Microsoft запустила блоги, чтобы стимулировать дискуссии среди разработчиков и широкой публики. [9] В 2013 году Microsoft также начала краудсорсинг своих мобильных устройств для Windows 8. [10] В июне 2013 года Microsoft также объявила о краудсорсинге тестирования программного обеспечения, предложив 100 тысяч долларов за инновационные методы выявления ошибок безопасности и 50 тысяч долларов за решение этой проблемы. проблема выявлена. [11]

В 2011 году Ведомство США по патентам и товарным знакам объявило краудсорсинговый конкурс в соответствии с Законом об Америке КОНКУРСЫ на платформе Topcoder по разработке алгоритмов обработки изображений и программного обеспечения для распознавания обозначений фигур и деталей в патентных документах с призовым фондом в 50 000 долларов США. [12] В результате конкурса 70 команд в совокупности представили 1797 кодов. Решение победителя конкурса достигло высокой точности с точки зрения отзыва и точности распознавания областей рисунка и меток деталей. [13]

Oracle использует краудсорсинг в своих CRM-проектах. [14]

Конференции и семинары

В сентябре 2013 года в Дагштуле , Германия, прошел семинар по краудсорсингу программного обеспечения. [15]

Смотрите также

Рекомендации

  1. ^ Ридл, Кристоф; Вулли, Анита (декабрь 2016 г.). «Команды против толпы: полевое испытание относительного вклада стимулов, способностей участников и сотрудничества в эффективность решения проблем на основе толпы». Академия управленческих открытий . в печати (4): 382–403. дои : 10.5465/амд.2015.0097.
  2. ^ Аб Ву, Вэньцзюнь; В.Т. Цай; Вэй Ли (2013). «Схема оценки краудсорсинга программного обеспечения». Границы информатики . 7 (5): 694–709. дои : 10.1007/s11704-013-2320-2. S2CID  3352701.
  3. ^ Стол, Клаас-Ян; Фицджеральд, Брайан (2014). Компания двоих, толпа троих: пример краудсорсинговой разработки программного обеспечения. 36-я Международная конференция по программной инженерии. АКМ. стр. 187–198. дои : 10.1145/2568225.2568249. hdl : 10344/3982 .
  4. ^ Ву, Вэньцзюнь; В.Т. Цай; Вэй Ли (2013). «Краудсорсинг творческого программного обеспечения». Международный журнал творческих вычислений . 1 : 57. doi : 10.1504/IJCRC.2013.056925 .
  5. ^ «Программное обеспечение для краудсорсинга собирает более сильные идеи» . ИдеяШкала . Проверено 19 марта 2016 г.
  6. ^ Поиск ошибок. «Тестирование программного обеспечения в реальном мире» . Проверено 21 июня 2013 г.
  7. ^ Стол, К.Дж.; Фицджеральд, Б. (2014). «Исследование разработки программного обеспечения для краудсорсинга: перспективы и проблемы». Материалы 1-го Международного семинара по краудсорсингу в программной инженерии — CSI-SE 2014 . п. 7. дои : 10.1145/2593728.2593731. hdl : 10344/3853. ISBN 9781450328579. S2CID  7531317.
  8. ^ «Краудсорсинг и дилемма заключенного - Консультации Деллинга». Dellingadvisory.com. 11 апреля 2013 года . Проверено 19 марта 2016 г.
  9. Томас, Стюарт (16 августа 2011 г.). «Microsoft запускает краудсорсинговый блог для Windows 8» . Мемеберн . Проверено 21 июня 2013 г.
  10. Симпсон, Скотт (10 июня 2013 г.). «КРАУНДИСТ ВАШЕГО СЛЕДУЮЩЕГО УСТРОЙСТВА С WINDOWS 8?» . Проверено 21 июня 2013 г.
  11. Белл, Ли (20 июня 2013 г.). «Microsoft предлагает вознаграждение в размере 100 000 долларов за взлом Windows 8.1». Архивировано из оригинала 25 июня 2013 года . Проверено 20 июня 2013 г.{{cite news}}: CS1 maint: unfit URL (link)
  12. Штеффен, Робинн Штурм (16 декабря 2011 г.). «Новый центр передового опыта дает премию за помощь в модернизации инструментов патентной экспертизы». Блог Белого дома . Проверено 30 марта 2016 г.
  13. ^ Ридл, К.; Занибби, Р.; Херст, Массачусетс; Чжу, С.; Мениетти, М.; Крузан, Дж.; Метельский И.; Лахани, К. (20 февраля 2016 г.). «Обнаружение рисунков и меток деталей в патентах: конкурентная разработка алгоритмов обработки изображений». Международный журнал по анализу и распознаванию документов . 19 (2): 155–172. arXiv : 1410.6751 . дои : 10.1007/s10032-016-0260-8. S2CID  11873638.
  14. Диана, Элисон (16 марта 2011 г.). «Oracle интегрирует краудсорсинг в CRM». Информационная неделя . Проверено 21 июня 2013 г.
  15. ^ Ханс, Майкл Н.; Ли, Вэй; Цай, Вэй-Тек (2013). «Schloss Dagstuhl: Домашняя страница семинара». Отчеты Дагштуля . 3 (9). Дагштуль.де: 34–58. дои :10.4230/DagRep.3.9.34 . Проверено 19 марта 2016 г.

дальнейшее чтение

Внешние ссылки