Програмирање за крајњег корисника

Из Википедије, слободне енциклопедије
Иди на навигацију Иди на претрагу

Крајње-корисничко развијање (ККР) или крајње-корисничко програмирање (ККП) односи се на активности и алате који омогућавају крајњим корисницима - људима који нису професионални програмери - за програмирање рачунара. Људи који нису професионални програмери могу да користе алате ККР да креирају и мењају софтвер артефаката (описи аутоматизованог понашање) и сложене предмете података без значајног знања програмског језика. Различити приступи постоји, а то је активна истраживачка тема у области рачунарства и интеракција човек-рачунар. Примери укључују табеле, скрипте језика (посебно у канцеларији, апартману или уметничким апликацијама), а програмирање кроз примере.

Најпопуларнији ККР алат је табела.[1] [2] Због своје неограничене природе, табеле омогућавају релативно УН-софистициранијим корисницима рачунара да пишу програме који представљају сложене моделе података, док их штите од потребе да уче програмске језике на нижем нивоу.[3] Због њиховог заједничког коришћења у пословању, вештине табеле су међу корисним вештинама које дипломирани запослени имају, и због тога их најчешће траже[4] Сједињене Америчке Државе, тамо има око 13 милиона крајње корисничких програмера са табелама.[5]

Рани покушаји у крајњем корисничком развијању су фокусирани на додавање једноставног скрипт програмског језика да се прошири и прилагоди постојеће апликације, као што је послован пакет.

Много недавних истраживања покушава да доведе програмирање ближе потребама крајњих корисника. Програмирање кроз примере (ПкП) приступ смањује потребу да корисници науче апстракције од класичног програмског језика. Корисник уводи неке примере жељених резултата или операција које треба да се врши на подацима, а ПкП систем закључује исправне апстракције које одговарају програму који производи овај излаз. Нови подаци могу затим бити представљени на аутоматски креирани програм, а корисник може да исправи грешке које је програм направи у циљу побољшања дефиниције.

Постоје два основна разлога зашто је ККР постала популарна. Један је јер се организације суочавају са кашњењем на пројектима, а коришћење ККР-а може ефикасно смањити време завршетка пројекта. Други разлог је што су софтверски алати моћнији и лакши за коришћење.

Научне лекције из делегације ККР-а решења могу значајно утицати на софтверске животне циклусе за комерцијалне софтверске производе, кућна интранет/ектранет дешавања и примене апликација предузећа.

Дефиниција[уреди]

Лиеберман et al. предлаже следећу дефиницију:[6]

Крајњи корисник развој може се дефинисати као скуп метода, техника и алата који омогућавају корисницима софтверских система, који се понашају као не-професионални програмери, у неком тренутку да створе, измене или продуже софтверске артефакте.

Артефакти дефинисани крајњим корисником могу бити објекти који описују нека аутоматизована понашања или контролну секвенцу, као што су захтеви базе података или граматичка правила,[7] која се може описати са програмским парадигмама као што је демонстрација програмирања, програмирање са примерима, визуелно програмирање, или макро генерације.[8] Они такође могу бити параметри који се определе између алтернативних дефинисаних понашања апликације.[9] Остали предмети развоја крајњих корисника такође могу да се односе на стварање корисничког генерисаног садржаја као што напомена, које могу бити не рачунски интерпретиране (тј могу се обрадити у вези аутоматске функције).[10]

Примери[уреди]

Примери развоја крајњег корисника укључују стварање и модификацију:

Трошак-бенефит моделирање развоја крајњег корисника[уреди]

Према Sutcliffe-у,[15] ККР суштински ангажује развој напора до крајњег корисника. Јер, увек постоји неки напор да се науче ККР функције, мотивација корисника зависи од њиховог поверења да ће оснажити њихов рад, уштедели време на послу или подизању продуктивности. У овом моделу, користи за кориснике су првобитно засновани на маркетингу, демонстрације и реч-од-уста. Када се технологија ставља у употребу, искуство стварних бенефиција постаје кључни мотив.

Ова студија дефинише трошкове као збир:

  • Техничка цена: цена технологије и напор да га инсталирате
  • Учење цена: време потребно да се разумеју технологију
  • Трошкови развоја: настојање за развој апликација помоћу технологије
  • Тестирање и отклањање грешака цена: време потребно да се провери систем

Први и други трошкови настају једном приликом набавке, док трећи и четврти настају сваки пут када се апликација развија. Предности (које могу бити субјективне или стварне) се сматрају:

  • Функционалност испоручује технологије
  • Флексибилност да одговори на нове захтеве
  • Употребљивост апликацијских производа
  • Генерално квалитет произведених апликација

Замерка[уреди]

Коментатори су забринути да крајњи корисници не разумеју како да тестирају и обезбеде њихову примену. Варрен Харрисон, професор рачунарских наука на Портланд Стате Универзитету, је написао:[16]

То је једноставно недокучиво да очекујемо безбедност ... од огромне већине софтверских апликација тамо када су писани са мало, ако га има, знања опште прихваћане добре праксе, као што се наводи пре кодирања, систематског испитивања, и тако даље. ... Колико X за комплетне идиоте (где је "X" ваш омиљени програмски језик) књиге су тамо? У почетку сам се забављао овим трендом, али недавно сам постао забринут размишљањем где овај dabblers примењује своје новостечено знање.

Ово гледиште претпоставља да сви крајњи корисници су подједнако наивни када је у питању разумевање софтвера, иако Pliskin and Shoval тврде да то није случај, да софистицирани крајњи корисници су способни за развој крајњег корисника.[17]

Као одговор на то, појавило се проучавање крајњег корисника софтверског инжењеринга. Бави се питањима изван развој крајњег корисника, при чему крајњи корисници постају мотивисани да размотре питања као што су употребљивост, безбедност и могућности за верификацију када развијају своје рјешења.[18]

Алтернативни сценарио је да крајњи корисници и њихови саветници користе декларативне алате који подржавају ригорозна пословна и безбедносна правила на уштрб перформанси и скалабилности; алати креирани помоћу ККР ће обично имати лошију ефикасност од оних направљених са професионалним програмским окружењима. Иако одвајање функционалност од ефикасности је валидно раздвајање проблема, то може довести до ситуације у којој ће крајњи корисници заврши и документовати анализу потреба и израду прототипова алата, без укључивања пословних аналитичара. Дакле, корисници ће дефинисати функције потребне пре него што ови стручњаци имају прилику да размотре ограничења одређене апликације или софтверских оквира. Виша подршка менаџмента за такве иницијативе крајњег корисника зависе од њиховог односа са постојећим или потенцијалним продавцима брава.

Види још[уреди]

Референце[уреди]

  1. ^ Burnett, Margaret M. and Christopher Scaffidi. „End-User Development”. Interaction-Design.org.  at "Encyclopedia of Human-Computer Interaction".
  2. ^ Hornsby, Peter (3. 8. 2009). „Empowering Users to Create Their Own Software”. UXmatters. Приступљено 31. 1. 2014. 
  3. ^ Abraham, R.; Burnett, M; Erwig, M (2009). „Spreadsheet programming”. Wiley Encyclopedia of Computer Science and Engineering. стр. 1—10. 
  4. ^ Kruck, S. & Sheetz, S., 2001. Spreadsheet accuracy theory. Journal of Information Systems Education.
  5. ^ Scaffidi, C., Shaw, M. & Myers, B., 2005. Estimating the Numbers of End Users and End User Programmers. 2005 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC’05). стр. 207–214.
  6. ^ Lieberman, H., Paternò, F., Klann, M., and Wulf, V. (2006). End-User Development: An Emerging Paradigm. In: End-User Development, Lieberman, H., Paternò, F., and Wulf, V. (eds.), Springer Netherlands, 2006, ser. Human-Computer Interaction Series, vol. 9, Chapter 1. стр. 1-7, doi:10.1007/1-4020-5386-X_1
  7. ^ H. Lieberman, B. A. Nardi, and D. Wright. Grammex: Defining grammars by example. In ACM conference on Human Factors in Computing Systems (Summary, Demonstrations) (CHI ’98), Los Angeles, California, USA, pages 11–12. ACM Press, Apr. 1998.
  8. ^ Maria Francesca Costabile, Daniela Fogli, Piero Mussio, Antonio Piccinno. End-user development: the software shaping workshop approach. 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.
  9. ^ Costabile, M.F., Fogli, D., Letondal, C., Mussio, P., Piccinno, A., Domain -Expert Users and their Needs of Software Development", UAHCI Conference, Crete, June 22–27, 2003, 232-236.
  10. ^ Gerhard Fischer End-User Development and Meta-Design: Foundations for Cultures of Participation. End-User Development Lecture Notes in Computer Science, 2009, Volume 5435/2009, 3-14, doi:10.1007/978-3-642-00427-8_1
  11. ^ 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: 1193—1996. doi:10.1145/2212776.2212421. 
  12. ^ Sarkar, Advait; Blackwell, Alan; Jamnik, Mateja; Spott, Martin. „Teach and Try: A simple interaction technique for exploratory data modelling by end users”. 2014 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC 2014): 53—56. doi:10.1109/VLHCC.2014.6883022. 
  13. ^ Roy Chowdhury, Soudip; Rodriguez, Carlos; Daniel, Florian; Casati, Fabio (2010). „Wisdom-aware computing: on the interactive recommendation of composition knowledge”. 
  14. ^ Soylu, Ahmet; Giese, Martin; Jimenez-Ruiz, Ernesto; Kharlamov, Evgeny; Zheleznyakov, Dmitry; Horrocks, Ian (2013). „OptiqueVQS – Towards an Ontology-based Visual Query System for Big Data” (PDF). 
  15. ^ Sutcliffe, Alistair (2005). „Evaluating the costs and benefits of end-user development” (PDF). ACM SIGSOFT Software Engineering Notes. ACM. 30 (4): 1—4. doi:10.1145/1082983.1083241. Приступљено 29. 5. 2008. 
  16. ^ Harrison, Warren (2004). „The Dangers of End-User Programming” (PDF). IEEE Software. 21 (4): 5. doi:10.1109/MS.2004.13. Приступљено 2. 3. 2009. 
  17. ^ Pliskin, Nava; Shoval, Peretz (1987). „End-user prototyping: sophisticated users supporting system development”. ACM SIGMIS Database. 4 (4): 7—17. doi:10.1145/1017816.1017817. Приступљено 29. 5. 2008. 
  18. ^ „End-User Software Engineering: Empirical Findings”. End Users Shaping Effective Software Consortium. Приступљено 28. 5. 2008. 

Литература[уреди]

Спољашње везе[уреди]