Programiranje za krajnjeg korisnika

Krajnje-korisničko razvijanje (KKR) ili krajnje-korisničko programiranje (KKP) odnosi se na aktivnosti i alate koji omogućavaju krajnjim korisnicima - ljudima koji nisu profesionalni programeri - za programiranje računara. Ljudi koji nisu profesionalni programeri mogu da koriste alate KKR da kreiraju i menjaju softver artefakata (opisi automatizovanog ponašanje) i složene predmete podataka bez značajnog znanja programskog jezika. Različiti pristupi postoji, a to je aktivna istraživačka tema u oblasti računarstva i interakcija čovek-računar. Primeri uključuju tabele, skripte jezika (posebno u kancelariji, apartmanu ili umetničkim aplikacijama), a programiranje kroz primere.

Najpopularniji KKR alat je tabela.[1] [2] Zbog svoje neograničene prirode, tabele omogućavaju relativno UN-sofisticiranijim korisnicima računara da pišu programe koji predstavljaju složene modele podataka, dok ih štite od potrebe da uče programske jezike na nižem nivou.[3] Zbog njihovog zajedničkog korišćenja u poslovanju, veštine tabele su među korisnim veštinama koje diplomirani zaposleni imaju, i zbog toga ih najčešće traže[4] Sjedinjene Američke Države, tamo ima oko 13 miliona krajnje korisničkih programera sa tabelama.[5]

Rani pokušaji u krajnjem korisničkom razvijanju su fokusirani na dodavanje jednostavnog skript programskog jezika da se proširi i prilagodi postojeće aplikacije, kao što je poslovan paket.

Mnogo nedavnih istraživanja pokušava da dovede programiranje bliže potrebama krajnjih korisnika. Programiranje kroz primere (PkP) pristup smanjuje potrebu da korisnici nauče apstrakcije od klasičnog programskog jezika. Korisnik uvodi neke primere željenih rezultata ili operacija koje treba da se vrši na podacima, a PkP sistem zaključuje ispravne apstrakcije koje odgovaraju programu koji proizvodi ovaj izlaz. Novi podaci mogu zatim biti predstavljeni na automatski kreirani program, a korisnik može da ispravi greške koje je program napravi u cilju poboljšanja definicije.

Postoje dva osnovna razloga zašto je KKR postala popularna. Jedan je jer se organizacije suočavaju sa kašnjenjem na projektima, a korišćenje KKR-a može efikasno smanjiti vreme završetka projekta. Drugi razlog je što su softverski alati moćniji i lakši za korišćenje.

Naučne lekcije iz delegacije KKR-a rešenja mogu značajno uticati na softverske životne cikluse za komercijalne softverske proizvode, kućna intranet/ektranet dešavanja i primene aplikacija preduzeća.

Definicija uredi

Lieberman et al. predlaže sledeću definiciju:[6]

Krajnji korisnik razvoj može se definisati kao skup metoda, tehnika i alata koji omogućavaju korisnicima softverskih sistema, koji se ponašaju kao ne-profesionalni programeri, u nekom trenutku da stvore, izmene ili produže softverske artefakte.

Artefakti definisani krajnjim korisnikom mogu biti objekti koji opisuju neka automatizovana ponašanja ili kontrolnu sekvencu, kao što su zahtevi baze podataka ili gramatička pravila,[7] koja se može opisati sa programskim paradigmama kao što je demonstracija programiranja, programiranje sa primerima, vizuelno programiranje, ili makro generacije.[8] Oni takođe mogu biti parametri koji se opredele između alternativnih definisanih ponašanja aplikacije.[9] Ostali predmeti razvoja krajnjih korisnika takođe mogu da se odnose na stvaranje korisničkog generisanog sadržaja kao što napomena, koje mogu biti ne računski interpretirane (tj mogu se obraditi u vezi automatske funkcije).[10]

Primeri uredi

Primeri razvoja krajnjeg korisnika uključuju stvaranje i modifikaciju:

Trošak-benefit modeliranje razvoja krajnjeg korisnika uredi

Prema Sutcliffe-u,[15] KKR suštinski angažuje razvoj napora do krajnjeg korisnika. Jer, uvek postoji neki napor da se nauče KKR funkcije, motivacija korisnika zavisi od njihovog poverenja da će osnažiti njihov rad, uštedeli vreme na poslu ili podizanju produktivnosti. U ovom modelu, koristi za korisnike su prvobitno zasnovani na marketingu, demonstracije i reč-od-usta. Kada se tehnologija stavlja u upotrebu, iskustvo stvarnih beneficija postaje ključni motiv.

Ova studija definiše troškove kao zbir:

  • Tehnička cena: cena tehnologije i napor da ga instalirate
  • Učenje cena: vreme potrebno da se razumeju tehnologiju
  • Troškovi razvoja: nastojanje za razvoj aplikacija pomoću tehnologije
  • Testiranje i otklanjanje grešaka cena: vreme potrebno da se proveri sistem

Prvi i drugi troškovi nastaju jednom prilikom nabavke, dok treći i četvrti nastaju svaki put kada se aplikacija razvija. Prednosti (koje mogu biti subjektivne ili stvarne) se smatraju:

  • Funkcionalnost isporučuje tehnologije
  • Fleksibilnost da odgovori na nove zahteve
  • Upotrebljivost aplikacijskih proizvoda
  • Generalno kvalitet proizvedenih aplikacija

Zamerka uredi

Komentatori su zabrinuti da krajnji korisnici ne razumeju kako da testiraju i obezbede njihovu primenu. Varren Harrison, profesor računarskih nauka na Portland State Univerzitetu, je napisao:[16]

To je jednostavno nedokučivo da očekujemo bezbednost ... od ogromne većine softverskih aplikacija tamo kada su pisani sa malo, ako ga ima, znanja opšte prihvaćane dobre prakse, kao što se navodi pre kodiranja, sistematskog ispitivanja, i tako dalje. ... Koliko X za kompletne idiote (gde je "X" vaš omiljeni programski jezik) knjige su tamo? U početku sam se zabavljao ovim trendom, ali nedavno sam postao zabrinut razmišljanjem gde ovaj dabblers primenjuje svoje novostečeno znanje.

Ovo gledište pretpostavlja da svi krajnji korisnici su podjednako naivni kada je u pitanju razumevanje softvera, iako Pliskin and Shoval tvrde da to nije slučaj, da sofisticirani krajnji korisnici su sposobni za razvoj krajnjeg korisnika.[17]

Kao odgovor na to, pojavilo se proučavanje krajnjeg korisnika softverskog inženjeringa. Bavi se pitanjima izvan razvoj krajnjeg korisnika, pri čemu krajnji korisnici postaju motivisani da razmotre pitanja kao što su upotrebljivost, bezbednost i mogućnosti za verifikaciju kada razvijaju svoje rješenja.[18]

Alternativni scenario je da krajnji korisnici i njihovi savetnici koriste deklarativne alate koji podržavaju rigorozna poslovna i bezbednosna pravila na uštrb performansi i skalabilnosti; alati kreirani pomoću KKR će obično imati lošiju efikasnost od onih napravljenih sa profesionalnim programskim okruženjima. Iako odvajanje funkcionalnost od efikasnosti je validno razdvajanje problema, to može dovesti do situacije u kojoj će krajnji korisnici završi i dokumentovati analizu potreba i izradu prototipova alata, bez uključivanja poslovnih analitičara. Dakle, korisnici će definisati funkcije potrebne pre nego što ovi stručnjaci imaju priliku da razmotre ograničenja određene aplikacije ili softverskih okvira. Viša podrška menadžmenta za takve inicijative krajnjeg korisnika zavise od njihovog odnosa sa postojećim ili potencijalnim prodavcima brava.

Vidi još uredi

Reference uredi

  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. Pristupljeno 31. 1. 2014. 
  3. ^ Abraham, R.; Burnett, M; Erwig, M (2009). „Spreadsheet programming”. Wiley Encyclopedia of Computer Science and Engineering. str. 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). str. 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. str. 1-7, Lieberman, Henry; Paternò, Fabio; Klann, Markus; Wulf, Volker (2006). „End-User Development: An Emerging Paradigm”. End User Development. Human-Computer Interaction Series. 9. str. 1—8. ISBN 978-1-4020-4220-1. S2CID 15559793. 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, Fischer, Gerhard (2009). „End-User Development and Meta-design: Foundations for Cultures of Participation”. End-User Development. Lecture Notes in Computer Science. 5435. str. 3—14. ISBN 978-3-642-00425-4. 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. ISBN 9781450310161. S2CID 17748945. doi:10.1145/2212776.2212421. 
  12. ^ Sarkar, Advait; Blackwell, Alan; Jamnik, Mateja; Spott, Martin (2014). „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). str. 53—56. ISBN 978-1-4799-4035-6. S2CID 14845341. 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. Springer. str. 144—155. ISBN 9783642193934. 
  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). Arhivirano iz originala (PDF) 03. 03. 2016. g. Pristupljeno 10. 01. 2016. 
  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. Pristupljeno 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. Pristupljeno 2. 3. 2009. 
  17. ^ Pliskin, Nava; Shoval, Peretz (1987). „End-user prototyping: sophisticated users supporting system development”. ACM SIGMIS Database. 18 (4): 7—17. S2CID 18183262. doi:10.1145/1017816.1017817. Pristupljeno 29. 5. 2008. 
  18. ^ „End-User Software Engineering: Empirical Findings”. End Users Shaping Effective Software Consortium. Pristupljeno 28. 5. 2008. 

Literatura uredi

Spoljašnje veze uredi