stringtranslate.com

Разработка для конечного пользователя

Разработка для конечного пользователя ( EUD ) или программирование для конечного пользователя ( EUP ) относится к действиям и инструментам, которые позволяют конечным пользователям — людям, которые не являются профессиональными разработчиками программного обеспечения — программировать компьютеры . Люди, которые не являются профессиональными разработчиками, могут использовать инструменты EUD для создания или изменения программных артефактов (описаний автоматизированного поведения) и сложных объектов данных без значительных знаний языка программирования . В 2005 году было подсчитано (с использованием статистики Бюро трудовой статистики США ), что к 2012 году в Соединенных Штатах будет более 55 миллионов разработчиков для конечных пользователей по сравнению с менее чем 3 миллионами профессиональных программистов. [1] Существуют различные подходы EUD, и это активная тема исследований в области компьютерных наук и взаимодействия человека с компьютером . Примерами являются программирование на естественном языке , [2] [3] электронные таблицы , [4] языки сценариев (особенно в офисном пакете или приложении для рисования), визуальное программирование , программирование с использованием триггерного действия и программирование на примерах .

Самым популярным инструментом EUD является электронная таблица . [4] [5] Благодаря своей неограниченной природе электронные таблицы позволяют относительно неискушенным пользователям компьютеров писать программы, которые представляют собой сложные модели данных, при этом избавляя их от необходимости изучать низкоуровневые языки программирования. [6] Из-за их широкого применения в бизнесе навыки работы с электронными таблицами являются одними из самых полезных для выпускника навыков и, следовательно, наиболее востребованными [7] Только в Соединенных Штатах Америки насчитывается около 13 миллионов разработчиков конечных пользователей, программирующих с помощью электронных таблиц [8]

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

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

В последнее время возрос интерес к тому, как эксплуатировать EUD для поддержки разработки приложений Интернета вещей. В этой области программирование триггерного действия кажется многообещающим подходом. [10]

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

Платформы для разработки приложений с малым объемом кода

Около 40 поставщиков в настоящее время предлагают решения, ориентированные на конечных пользователей, разработанные для сокращения усилий по программированию. Эти решения не требуют традиционного программирования и могут быть основаны на относительно узкой функциональности, например, управление контрактами, управление взаимоотношениями с клиентами, отслеживание проблем и ошибок. Часто называемые платформами разработки с малым кодом, веб-взаимодействия помогают пользователю разрабатывать приложение всего за 40–80 часов. [11] [ циклическая ссылка ]

Определение

Либерман и др. предлагают следующее определение: [12]

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

Ко и др. предлагают следующее определение: [13]

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

Артефакты, определяемые конечными пользователями, могут быть объектами, описывающими некоторое автоматизированное поведение или последовательность управления, например, запросы к базе данных или правила грамматики, [14] которые могут быть описаны с помощью парадигм программирования, таких как программирование путем демонстрации , программирование с примерами , визуальное программирование или генерация макросов . [15] Они также могут быть параметрами, которые выбирают между альтернативными предопределенными поведениями приложения. [16] Другие артефакты разработки для конечных пользователей могут также относиться к созданию пользовательского контента, например, аннотаций, которые могут быть или не быть интерпретируемыми вычислительно (т. е. могут обрабатываться связанными автоматизированными функциями). [17]

Примеры

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

Моделирование затрат и выгод

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

В этом исследовании затраты определяются как сумма:

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

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

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

Взаимная разработка [24] — это метод, при котором профессиональные разработчики и разработчики для конечных пользователей работают вместе над созданием программных решений. При совместной разработке профессиональные разработчики часто «разрабатывают» систему и предоставляют инструменты, позволяющие «владельцам проблем [25] » создавать подходящее решение во время использования для своих нужд, целей и ситуативных контекстов. [26] Затем общение между профессиональными разработчиками и разработчиками для конечных пользователей часто может стимулировать формализацию специальных изменений, вносимых конечными пользователями, в программные артефакты, преобразуя решения, разработанные конечными пользователями, в коммерческие функции продукта с последствиями, выходящими за рамки локальных решений.

В этом сотрудничестве предлагаются различные подходы, такие как Software Shaping Workshop [27] , чтобы преодолеть разрыв в коммуникации между профессиональными разработчиками и разработчиками конечных пользователей. Эти подходы часто обеспечивают прозрачность в соответствии с моделью социальной прозрачности [28] , позволяя каждому в сотрудничестве быть в курсе изменений, внесенных другими, и нести ответственность за свои действия из-за осведомленности.

Помимо платформ совместной работы с программированием, таких как GitHub, которые в основном используются опытными разработчиками из-за их крутой кривой обучения, сотрудничество между разработчиками конечных пользователей часто происходит на вики-платформах, где созданные программные артефакты являются общими. Разработка конечных пользователей также часто используется для создания скриптов автоматизации или интерактивных руководств для обмена знаниями «как сделать». Примерами таких приложений являются CoScripter [29] и HILC. [30] В таких приложениях пользователь может создавать скрипты для задач, используя псевдоестественный язык или посредством программирования путем демонстрации. Пользователи могут выбрать загрузку скрипта в репозиторий скриптов в стиле вики. На этой вики пользователи могут просматривать доступные скрипты и расширять существующие скрипты для поддержки дополнительных параметров, обработки дополнительных условий или работы с дополнительными объектами.

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

Критика

Комментаторы были обеспокоены тем, что конечные пользователи не понимают, как тестировать и защищать свои приложения. Уоррен Харрисон, профессор компьютерных наук в Портлендском государственном университете, написал: [32]

Просто непостижимо, что мы могли бы ожидать безопасности... от подавляющего большинства программных приложений, когда они написаны с небольшим знанием общепринятых хороших практик, таких как указание перед кодированием, систематическое тестирование и т. д.... Сколько книг X for Complete Idiots (где «X» — ваш любимый язык программирования) существует? Поначалу меня забавляла эта тенденция, но в последнее время мне стало не по себе, когда я думаю о том, где эти дилетанты применяют свои новые знания.

Эта точка зрения предполагает, что все конечные пользователи одинаково наивны, когда дело доходит до понимания программного обеспечения, хотя Плискин и Шоваль утверждают, что это не так, что опытные конечные пользователи способны к разработке для конечных пользователей. [33] Однако, по сравнению с опытными программистами, программисты для конечных пользователей редко имеют время или интерес к систематической и дисциплинированной деятельности по разработке программного обеспечения, [34] что делает обеспечение качества программного артефакта, созданного разработкой для конечных пользователей, особенно сложной задачей.

В ответ на это возникло исследование инженерии программного обеспечения для конечного пользователя . Оно занимается вопросами, выходящими за рамки разработки конечного пользователя, посредством чего конечные пользователи становятся мотивированными для рассмотрения таких вопросов, как возможность повторного использования, безопасность и проверяемость при разработке своих решений. [35]

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

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

Ссылки

  1. ^ Scaffidi, C.; Shaw, M.; Myers, B. (2005-09-01). «Оценка количества конечных пользователей и программистов конечных пользователей». Симпозиум IEEE 2005 года по визуальным языкам и человеко-ориентированным вычислениям (VL/HCC'05) . стр. 207–214. doi :10.1109/VLHCC.2005.34. ISBN 978-0-7695-2443-6. S2CID  14608501.
  2. ^ Литтл, Грег и Роберт С. Миллер. «Трансляция ключевых команд в исполняемый код». Труды 19-го ежегодного симпозиума ACM по программному обеспечению и технологиям пользовательского интерфейса. ACM, 2006.
  3. ^ Брукман, Эми и Элизабет Эдвардс. «Стоит ли нам использовать знания естественного языка? Анализ ошибок пользователя в языке программирования в стиле естественного языка». Труды конференции SIGCHI по человеческому фактору в вычислительных системах. ACM, 1999. APA
  4. ^ ab Burnett, Margaret M. ; Scaffidi, Christopher (январь 2024 г.). End-User Development. Interaction-Design.org.в «Энциклопедии взаимодействия человека и компьютера».
  5. ^ Хорнсби, Питер (2009-08-03). «Предоставление пользователям возможности создавать собственное программное обеспечение». UXmatters . Получено 2014-01-31 .
  6. ^ Абрахам, Р.; Бернетт, М.; Эрвиг, М. (2009). «Программирование электронных таблиц». Энциклопедия компьютерных наук и инженерии Wiley . С. 1–10.
  7. ^ Kruck, S. & Sheetz, S., 2001. Теория точности электронных таблиц Архивировано 18 августа 2018 г. в Wayback Machine . Журнал образования в области информационных систем.
  8. ^ Scaffidi, C., Shaw, M. & Myers, B., 2005. Estimating the Numbers of End Users and End User Programmers. Архивировано 12 сентября 2011 г. на Wayback Machine . Симпозиум IEEE 2005 г. по визуальным языкам и человеко-ориентированным вычислениям (VL/HCC'05), стр. 207–214.
  9. ^ Патерно Ф., 2013, ISRN Software Engineering, End User Development: Survey of an Emerging Field for Empowering People
  10. ^ Гиани, Г., Манка, М., Патерно, Ф., Санторо, К.: Персонализация контекстно-зависимых приложений с помощью правил действия триггера. Труды ACM по взаимодействию компьютера и человека, том 24, выпуск 2, статья № 14, апрель 2017 г.
  11. ^ Платформы разработки с малым объемом кода
  12. ^ Либерман, Х., Патерно, Ф., Кланн, М. и Вульф, В. (2006). Разработка конечного пользователя: новая парадигма. В: Разработка конечного пользователя, Либерман, Х., Патерно, Ф. и Вульф, В. (ред.), Springer Netherlands, 2006, сер. Серия «Взаимодействие человека и компьютера», т. 9, глава 1, стр. 1-7, doi :10.1007/1-4020-5386-X_1
  13. ^ Ко, Эндрю Дж.; Абрахам, Робин; Беквит, Лора; Блэквелл, Алан; Бернетт, Маргарет; Эрвиг, Мартин; Скаффиди, Крис; Лоуренс, Джозеф; Либерман, Генри (01.04.2011). «Современное состояние дел в области разработки программного обеспечения для конечных пользователей». ACM Comput. Surv . 43 (3): 21:1–21:44. CiteSeerX 10.1.1.159.8597 . doi :10.1145/1922649.1922658. ISSN  0360-0300. S2CID  9435548. 
  14. ^ H. Lieberman, BA Nardi и D. Wright. Grammex: Определение грамматик на примере. На конференции ACM по человеческим факторам в вычислительных системах (резюме, демонстрации) (CHI '98), Лос-Анджелес, Калифорния, США, страницы 11–12. ACM Press, апрель 1998 г.
  15. ^ Мария Франческа Костабиле, Даниэла Фольи, Пьеро Муссио, Антонио Пиччинно. Разработка конечного пользователя: подход к формированию программного обеспечения . В Lieberman, H., Paternò, F., Wulf, V. (ред.) (2004) Разработка конечного пользователя — предоставление людям возможности гибко использовать передовые информационные и коммуникационные технологии, © 2004 Kluwer Academic Publishers, Дордрехт, Нидерланды.
  16. ^ Костабиле, М. Ф., Фольи, Д., Летондаль, К., Муссио, П., Пиччинно, А., Пользователи-эксперты в области разработки программного обеспечения и их потребности в разработке программного обеспечения, конференция UAHCI, Крит, 22–27 июня 2003 г., стр. 232–236.
  17. ^ Герхард Фишер Разработка конечного пользователя и метадизайн: основы культур участия . Конспект лекций по разработке конечного пользователя в информатике, 2009, том 5435/2009, 3-14,
  18. ^ Scaffidi, Christopher; Brandt, Joel; Burnett, Margaret; Dove, Andrew; Myers, Brad (2012). "SIG: End-user programming". CHI '12 Extended Abstracts on Human Factors in Computing Systems . Chi Ea '12. pp. 1193–1996. doi :10.1145/2212776.2212421. ISBN 9781450310161. S2CID  17748945.
  19. ^ Леонарди, Никола; Манка, Марко; Патерно, Фабио; Санторо, Кармен (2019). «Программирование триггерного действия для персонализации поведения гуманоидного робота». Труды конференции CHI 2019 года по человеческому фактору в вычислительных системах . стр. 1–13. doi :10.1145/3290605.3300675. ISBN 978-145035970-2. S2CID  140220651.
  20. ^ Саркар, Адвайт; Блэквелл, Алан; Джамник, Матея; Спотт, Мартин (июль 2014 г.). «Обучай и пробуй: простая методика взаимодействия для исследовательского моделирования данных конечными пользователями». Симпозиум IEEE 2014 г. по визуальным языкам и человеко-ориентированным вычислениям (VL/HCC) . стр. 53–56. CiteSeerX 10.1.1.695.2025 . doi :10.1109/VLHCC.2014.6883022. ISBN  978-1-4799-4035-6. S2CID  14845341.
  21. ^ Хейнс, Джон Л. (осень 1985 г.). «Проектирование схем с Lotus 1-2-3». BYTE . стр. 143–156 . Получено 19 марта 2016 г. .
  22. ^ Рой Чоудхури, Саудип; Родригес, Карлос; Дэниел, Флориан; Касати, Фабио (2010). Вычисления, основанные на мудрости: об интерактивной рекомендации знаний о составе. Icsoc'10. С. 144–155. ISBN 9783642193934.
  23. ^ Сатклифф, Алистер (июль 2005 г.). «Оценка затрат и выгод разработки для конечного пользователя». ACM SIGSOFT Software Engineering Notes . 30 (4): 1–4. doi :10.1145/1082983.1083241.
  24. ^ Андерсен, Ренате; Мёрч, Андерс И. (2009-03-02). «Взаимная разработка: исследование случая разработки программного продукта по инициативе заказчика». Разработка для конечного пользователя . Конспект лекций по информатике. Том 5435. С. 31–49. CiteSeerX 10.1.1.598.9066 . doi :10.1007/978-3-642-00427-8_3. ISBN  978-3-642-00425-4.
  25. ^ Фишер, Герхард (1994-01-01). «Возложение ответственности на владельцев проблем с помощью предметно-ориентированных сред проектирования». Требования к средам разработки программного обеспечения, ориентированные на пользователя . Springer, Берлин, Гейдельберг. стр. 297–306. CiteSeerX 10.1.1.310.8814 . doi :10.1007/978-3-662-03035-6_23. ISBN  978-3-642-08189-7.
  26. ^ Фишер, Герхард; Джаккарди, Элиза (2006-01-01). Либерман, Генри; Патерно, Фабио; Вульф, Фолькер (ред.). Разработка конечного пользователя. Серия «Взаимодействие человека и компьютера». Springer Netherlands. стр. 427–457. doi :10.1007/1-4020-5386-x_19. ISBN 9781402042201.
  27. ^ Либерман, Генри; Патерно, Фабио; Кланн, Маркус; Вульф, Волкер (1 января 2006 г.). Либерман, Генри; Патерно, Фабио; Вульф, Волкер (ред.). Развитие конечных пользователей. Серия «Взаимодействие человека и компьютера». Спрингер Нидерланды. стр. 1–8. дои : 10.1007/1-4020-5386-x_1. ISBN 9781402042201. S2CID  15559793.
  28. ^ Эриксон, Томас; Келлог, Венди А. (2000-03-01). «Социальная прозрачность: подход к проектированию систем, поддерживающих социальные процессы». ACM Trans. Comput.-Hum. Interact . 7 (1): 59–83. doi :10.1145/344949.345004. ISSN  1073-0516. S2CID  5943805.
  29. ^ Leshed, Gilly; Haber, Eben M.; Matthews, Tara; Lau, Tessa (2008-01-01). "CoScripter". Труды конференции SIGCHI по человеческому фактору в вычислительных системах . CHI '08. Нью-Йорк, штат Нью-Йорк, США: ACM. стр. 1719–1728. doi :10.1145/1357054.1357323. ISBN 9781605580111. S2CID  5989563.
  30. ^ Интара, Танапонг; Турмухамбетов, Данияр; Бростоу, Габриэль Дж. (2017-01-01). «Помогите, это выглядит запутанно». Труды 22-й Международной конференции по интеллектуальным пользовательским интерфейсам . IUI '17. Нью-Йорк, штат Нью-Йорк, США: ACM. стр. 233–243. doi :10.1145/3025171.3025176. ISBN 9781450343480. S2CID  16596496.
  31. ^ Фишер, Г.; Джаккарди, Э.; Йе, Й.; Сатклифф, AG; Механджиев, Н. (1 сентября 2004 г.). «Метадизайн: Манифест развития конечных пользователей». Коммун. АКМ . 47 (9): 33–37. дои : 10.1145/1015864.1015884. ISSN  0001-0782. S2CID  11675776.
  32. ^ Харрисон, Уоррен (июль–август 2004 г.). «Опасности программирования для конечного пользователя». IEEE Software . 21 (4): 5. doi :10.1109/MS.2004.13.
  33. ^ Плискин, Нава; Шовал, Перец (1987). «Прототипирование конечных пользователей: опытные пользователи, поддерживающие разработку систем». База данных ACM SIGMIS . 18 (4): 7–17. doi : 10.1145/1017816.1017817 . S2CID  18183262.
  34. ^ Брандт, Джоэл; Го, Филип Дж.; Левенштейн, Джоэл; Клеммер, Скотт Р. (2008-01-01). «Оппортунистическое программирование». Труды 4-го международного семинара по программной инженерии для конечных пользователей . WEUSE '08. Нью-Йорк, штат Нью-Йорк, США: ACM. стр. 1–5. doi :10.1145/1370847.1370848. ISBN 9781605580340. S2CID  17479074.
  35. ^ "End-User Software Engineering: Empirical Findings". End Users Shaping Effective Software Consortium . Получено 28.05.2008 .

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

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