Interested Article - Пользовательское программирование

Парадигмы программирования

Термины пользовательская разработка (End-User Developement — EUD ) или пользовательское программирование (End-User Programming — EUP ) обозначают набор методик и инструментов, которые позволяют программировать конечным пользователям — людям, не являющимся профессиональными разработчиками ПО . Люди, не являющиеся профессиональными разработчиками, могут использовать инструменты EUD для создания или модификации программных артефактов (описаний автоматических действий) и сложных объектов данных без знания языков программирования .

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

Самый популярный инструмент пользовательского программирования — это электронные таблицы В силу своей неограничивающей природы они позволяют довольно неискушенным пользователям писать программы, представляющие сложные модели данных, в то же время защищая их от необходимости изучать языки программирования более низкого уровня. Навыки работы с электронными таблицами считаются одними из самых полезных для выпускников ВУЗов из-за широкой распространённости электронных таблиц для решения задач в бизнесе По состоянию на 2005 год в США количество пользователей, использующих электронные таблицы оценивалось в 13 млн. чел.

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

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

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

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

Платформы для разработки с минимумом кода

В настоящее время существует примерно 40 производителей, предлагающих конечным пользователям решения для сокращения усилий по программированию. Создание программ в них не требует знаний традиционного программирования, однако предназначены для создания достаточно специализированных систем, таких как системы управления контрактами, системы управления взаимоотношений с клиентами , системы отслеживания багов и ошибок . Подобные системы разработки часто называют платформами разработки с минимумом кода . Как правило они представляют собой интерактивный гид, позволяющий пользователю разработать приложение всего за 40—80 часов (1,7—3,3 дня).

Определение

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

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

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

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

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

Примеры

Среди примеров пользовательских разработок можно выделить следующие:

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

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

Вышеприведённое исследование определяет затраты как сумму нижеследующих:

  • Технические затраты: цена технологии и усилия по её установке
  • Стоимость обучения: время, необходимое для понимания технологии
  • Затраты на разработку: усилия по разработке приложений с использованием данной технологии
  • Стоимость тестирования и отладки: время, затраченное на проверку системы

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

  • Функционал, обеспечиваемый технологией
  • Возможность гибко реагировать на новые требования
  • Удобство использования создаваемых приложений
  • Общее качество создаваемых приложений

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

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

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

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

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

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

Критика

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

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

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

Реакцией на это явились систематические исследования пользовательской разработки ПО. Они касаются вопросов, выходящих за рамки собственно разработки, в частности рассматривается мотивация пользователей-разработчиков к тому, чтобы их продукты были безопасными, проверяемыми или повторно используемыми .

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

См. также

Примечания

  1. Грэг Литл и Роберт Си (Миллер Little, Greg, and Robert C. Miller.) от 10 декабря 2017 на Wayback Machine / Материалы 19-го ежегодного симпозиума ACM по технологиям пользовательских интерфейсов. ACM, 2006.
  2. Эми Брюкман и Элизабэт Эдардс (Bruckman, Amy, and Elizabeth Edwards). " от 29 августа 2017 на Wayback Machine " / Материалы конференции по человеческому фактору в вычислительных системах. ACM, 1999. APA
  3. / Margaret M. Burnett, Christopher Scaffidi. — Interaction-Design.org. от 3 июля 2015 на Wayback Machine в "Энциклопедии взаимодействия человека и компьютера".
  4. Hornsby, Peter . UXmatters (3 августа 2009). Дата обращения: 31 января 2014. 26 января 2022 года.
  5. Abraham, R. Программирование электронных таблиц (Spreadsheet programming) // Энциклопедия Wiley по информатике и компьютерной инженерии (Wiley Encyclopedia of Computer Science and Engineering) / R. Abraham, M Burnett, M Erwig. — 2009. — P. 1–10.
  6. С. Крюк и С. Шитц (Kruck, S. & Sheetz, S.), 2001. от 18 августа 2018 на Wayback Machine . Журнал по педагогике в информационных системах (Journal of Information Systems Education).
  7. К. Скаффиди, М. Шоу и Б. Майерс (Scaffidi, C., Shaw, M. & Myers, B.), 2005. от 12 сентября 2011 на Wayback Machine . 2005 Симпозиум IEEE по визуальным языкам и ориентированным на пользователя вычислительным системам (IEEE Symposium on Visual Languages and Human-Centric Computing) (VL/HCC’05), стр.207–214.
  8. . Дата обращения: 17 ноября 2020. 31 января 2022 года.
  9. Lieberman, H., Paternò, F., Klann, M., and Wulf, V. (2006). Пользовательская разработка: новая парадигма. В: Пользовательская разработка ПО, Lieberman, H., Paternò, F., and Wulf, V. (eds.), Springer Нидерланды, 2006, сер. Взаимодействие человека и компьютера, том 9, Глава 1, стр. 1-7, doi :
  10. Ko, Andrew J.; Abraham, Robin; Beckwith, Laura; Blackwell, Alan; Burnett, Margaret; Erwig, Martin; Scaffidi, Chris; Lawrance, Joseph; Lieberman, Henry (2011-04-01). "Современный уровень развития в пользовательском программировании ПО (The State of the Art in End-user Software Engineering)". ACM Comput. Surv . 43 (3): 21:1–21:44. CiteSeerX . doi : . ISSN .
  11. H. Lieberman, B. A. Nardi, and D. Wright. Grammex: Определение грамматик по примеру (Grammex: Defining grammars by example). Конференция ACM по человеческому фактору в компьютерных системах (Сводка и демонстрации) (CHI ’98), Лос-Анджелес, Калифорния, США, стр. 11–12. ACM Press, апрель 1998. (ACM conference on Human Factors in Computing Systems)
  12. Maria Francesca Costabile, Daniela Fogli, Piero Mussio, Antonio Piccinno. от 18 августа 2018 на Wayback Machine . In Lieberman, H., Paternò, F., Wulf, V. (Eds) (2004) Пользовательское программирование — Предоставление людям возможности гибко использовать передовые информационные и коммуникационные технологии (End User Development — Empowering People to Flexibly Employ Advanced Information and Communication Technology), © 2004 Kluwer Academic Publishers, Dordrecht, The Netherlands.
  13. Costabile, M.F., Fogli, D., Letondal, C., Mussio, P., Piccinno, A., от 31 января 2022 на Wayback Machine ", Конференция UAHCI, Крит, 22–27 июня, 2003, 232-236.
  14. Gerhard Fischer от 18 августа 2018 на Wayback Machine . Лекционные записи по пользовательскому программрованию в информатике, 2009, том 5435/2009, 3-14,
  15. Scaffidi, Christopher. SIG: пользовательское программирование / Christopher Scaffidi, Joel Brandt, Margaret Burnett … [ и др. ] . — 2012. — P. 1193–1996. — ISBN 9781450310161 . — doi : .
  16. Leonardi, Nicola. Программирование действий по триггеру для персонализации поведения гуманоидных роботов / Nicola Leonardi, Marco Manca, Fabio Paternò … [ и др. ] . — 2019. — ISBN 978-145035970-2 . — doi : .
  17. Sarkar, Advait. Обучай и пробуй: Простая интерактивая методика для произвольного моделирования данных конечными пользователями / Advait Sarkar, Alan Blackwell, Mateja Jamnik … [ и др. ] . — Июль 2014. — P. 53–56. — ISBN 978-1-4799-4035-6 . — doi : .
  18. Haynes, John L. (Fall 1985). . BYTE . pp. 143—156 . Дата обращения: 19 марта 2016 .
  19. Roy Chowdhury, Soudip. / Soudip Roy Chowdhury, Carlos Rodriguez, Florian Daniel … [ и др. ] . — 2010. — P. . — ISBN 9783642193934 .
  20. [in английский] (July 2005). "Evaluating the costs and benefits of end-user development" [Оценка потерь и выгод при разработке пользователем]. ACM SIGSOFT Software Engineering Notes (англ.) . Association for Computing Machinery . 30 (4): 1—4. doi : . ISSN .
  21. Andersen, Renate. Взаимная разработка: тематическое исследование разработки ПО инициированной клиентом : [ англ. ] / Renate Andersen, Anders I. Mørch. — 2009-03-02. — Vol. 5435. — P. 31–49. — ISBN 978-3-642-00425-4 . — doi : .
  22. Fischer, Gerhard. Передача контроля владельцам задач в тематически ориентированных средах разработки // Требования к ориентированным на пользователей средам разработки : [ англ. ] . — Springer, Берлин, Heidelberg, 1994-01-01. — P. 297–306. — ISBN 978-3-642-08189-7 . — doi : .
  23. Fischer, Gerhard. : [ англ. ] / Gerhard Fischer, Elisa Giaccardi. — Springer Нидерланды, 2006-01-01. — P. . — ISBN 9781402042201 . — doi : .
  24. Lieberman, Henry. : [ англ. ] / Henry Lieberman, Fabio Paternò, Markus Klann … [ et al. ] . — Springer Нидерланды, 2006-01-01. — P. . — ISBN 9781402042201 . — doi : .
  25. Erickson, Thomas; Kellogg, Wendy A. (2000-03-01). "Социальная прозрачность: Подход к разработке систем, поддерживающий социальные процессы". ACM Trans. Comput.-Hum. Interact . 7 (1): 59—83. doi : . ISSN .
  26. Leshed, Gilly. / Gilly Leshed, Eben M. Haber, Tara Matthews … [ и др. ] . — Нью-Йорк, NY, США : ACM, 2008-01-01. — P. –1728. — ISBN 9781605580111 . — doi : .
  27. Intharah, Thanapong. Помогите, не могу разобраться: Автоматизация задач в GUI при помощи демонстраций и дополнительных вопросов / Thanapong Intharah, Daniyar Turmukhambetov, Gabriel J. Brostow. — Нью-Йорк, NY, США : ACM, 2017-01-01. — P. 233–243. — ISBN 9781450343480 . — doi : .
  28. Fischer, G.; Giaccardi, E.; Ye, Y.; Sutcliffe, A. G.; Mehandjiev, N. (2004-09-01). "Мета-дизайн: Манифест пользовательской разработки". Commun. ACM . 47 (9): 33—37. doi : . ISSN .
  29. Harrison, Warren (July–August 2004). "Опасности пользовательского программирования". IEEE программное обеспечение . 21 (4): 5. doi : .
  30. Pliskin, Nava; Shoval, Peretz (1987). "Пользовательское прототипирование: участие продвинутых пользователей в развитии систем". База данных ACM SIGMIS . 18 (4): 7—17. doi : .
  31. Brandt, Joel. Оппортунистическое программирование: Как на практике осуществляется быстрое прототипирование идей / Joel Brandt, Philip J. Guo, Joel Lewenstein … [ и др. ] . — Нью-Йорк, NY, США : ACM, 2008-01-01. — P. 1–5. — ISBN 9781605580340 . — doi : .
  32. . Консорциум эффективной формовки ПО конечными пользователями (End Users Shaping Effective Software Consortium). Дата обращения: 28 мая 2008. 31 марта 2022 года.

Литература

  • Цайфер, Аллен. . — Издатель: MIT Press, 1993. — ISBN 978-0-262-03213-1 .
  • Либерман, Генри. . — Издатель: Morgan Kaufmann, 2001. — ISBN 978-1-55860-688-3 .
  • Фабио Патерно (F. Paternò, 2013) , ISRN Software Engineering, том 2013, ID статьи 532659, 11 страниц, 2013. doi : , 2013
  • Б. Гуо, Д. Жанг, М. Имай (B. Guo, D. Zhang, M. Imai). Ориентированное на пользователя управлений для повсеместных вычислений: подход основанный на мета-проектировании (Enabling User-Oriented Management for Ubiquitous Computing: The Meta-Design Approach), Computer Networks, Elsevier, том. 54, нр. 16, 2010.
  • Маргарет М. Бюрнетт и Кристофер Скаффиди (Burnett, Margaret M. and Scaffidi, Christopher, 2011): . В: Soegaard, Mads and Dam, Rikke Friis (eds.). "Энциклопедия взаимодействия человека и компьютера".
  • Патрик Киркегаард (Patrick Kierkegaard, 2011) Kierkegaard, Patrick. Улучшение пользовательской разработки: правовая защита и соблюдение нормативных требований (Beefing Up End User Development: Legal Protection and Regulatory Compliance). — 2011. — Vol. 6654/2011. — P. 203–217. — ISBN 978-3-642-21529-2 . — doi : .

Ссылки

Источник —

Same as Пользовательское программирование