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

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

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

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

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

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

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

Дефиниција

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

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

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

Примери

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

  • 3D модели креирани са крајњих корисничких оријентисаних алата и приступа, као што је Sketchup
  • Анимационе скрипте које користе графичара да опишу ликове, окружење и како се ликови крећу и произведе намераване анимацију
  • Конфигурацијаске датотеке које замагљују границу између програма и података (нпр, е-маил филтери су поређане листе критерија и радњи долажења)
  • Пример-центрираног програмирања алата[11]
  • Наводно, доприноси да се отвори код пројеката у којима корисници софтверског пакета уносе своју шифру за укључивање у главни пакет - у неким случајевима, крајњи корисници учествују као пуноправни програмери
  • Модификације игре да се уведу сопствени ликови корисника, окружења, итд - многе недавне игре су распоређене са модификацијом на уму
  • Интеракција скрипти за коришћење у ЦРМ позивним центрима
  • Процес модели који се користе у процесу рада апликација
  • Прототипови и програми специфичних домена написаних од пословних људи, инжењера, научника да се покажу или тестирају специфичне теорије
  • Научни модели који се користе у рачунарској симулацији
  • Скрипте и макрои се додају да би се продужиле или аутоматизовале канцеларије продуктивности апартмана и графичке апликације.
  • Симулације креиране помоћу дефиниције апликативног софтвера
  • Истовремено уређивање од многих сличних предмета или кроз серијске процесе одређене од стране крајњег корисника или непосредном манипулацијом, попут оних на располагању у едитору Лапис текста и више измена.
  • Модели табела, нпр, који се користе за буџетирање, анализа ризика, или интерактивног учења машине[12]
  • Визуелно програмирање у виду визуелних језика, као што су AgentSheets, LabVIEW, Скрач (програмски језик) или LEGO Mindstorms.
  • Крајњи кориснички алатки за развој мобилних уређаја као што је Апп Инвентор
  • Веб странице - обичан HTML или HTML и скриптирање
  • Викији - процес заједничког крајњег корисничког развоја
  • Веб Mashups у виду визуелних језика, као што је Yahoo! Pipes.[13]
  • Визуелни системи упита као што је OptiqueVQS.[14]

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

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

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

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

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

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

Замерка

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

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

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

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

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

Види још

Референце

Литература

Спољашње везе