Felhasználói programozás

A felhasználói fejlesztés (végfelhasználói fejlesztés – EUD ) vagy felhasználói programozás (végfelhasználói programozás – EUP ) kifejezések olyan technikák és eszközök összességét jelölik, amelyek lehetővé teszik a végfelhasználók – nem professzionális szoftverfejlesztők – általi programozást . Azok, akik nem professzionális fejlesztők, használhatják az EUD-eszközöket szoftvertermékek (automatikus műveletek leírása) és összetett adatobjektumok létrehozására vagy módosítására a programozási nyelvek ismerete nélkül .

Különféle megközelítések léteznek a felhasználói programozás problémájára – ezt a témát a számítástechnika és az ember-számítógép interakció tudománya aktívan vizsgálja . Ilyenek például a természetes nyelvű programozási rendszerek [1] [2] , a táblázatok [3] , a szkriptnyelvek (különösen az irodai programcsomagokban vagy a művészek számára készült alkalmazásokban), a vizuális programozás , a trigger akcióprogramozás és a példaprogramozás .

A legnépszerűbb felhasználói programozási eszköz a táblázatok [3] [4] Nem korlátozó jellegük miatt lehetővé teszik a meglehetősen tapasztalatlan felhasználók számára, hogy olyan programokat írjanak, amelyek összetett adatmodelleket reprezentálnak, miközben megóvják őket attól, hogy alacsonyabb szintű programozási nyelveket kell tanulniuk. [5] A táblázatkezelési készségeket az egyik leghasznosabbnak tartják az egyetemet végzettek számára, mivel a táblázatokat széles körben használják üzleti problémák megoldására. [6] 2005-ben az Egyesült Államokban a táblázatokat használó felhasználók számát 13 millióra becsülték. [7]

A példaprogramozás használata annak szükségességét, hogy a felhasználó megtanulja a klasszikus programozási nyelvek absztrakcióit. Ehelyett a felhasználó példákat ad meg a kívánt eredményekre vagy az adatokon végrehajtandó műveletekre, és maga a példa programozási rendszere ebből származtatja a kívánt kimenetet előállító programnak megfelelő absztrakciókat. Az így automatikusan létrehozott programba új adatok vihetők be, és a felhasználó a kimenet hibáit javíthatja a program javítása érdekében. kóddal rendelkező fejlesztői platformok felhasználói programozásra is lehetőséget kínálnak.

Az egyik fejlesztési terület ezen a területen a mobil eszközök használata az egyedi szoftverfejlesztés támogatására. A mobileszközök sajátosságai nem teszik lehetővé ugyanazon megközelítések alkalmazását, mint az asztali alkalmazásoknál. Az EUD asztali környezetekből hiányoznak azok az előnyök, amelyek lehetővé teszik a végfelhasználók számára, hogy amikor csak lehetséges, alkalmazásokat hozzanak létre. [nyolc]

Az utóbbi időben az is megnőtt az érdeklődés, hogy miként lehet az EUD technikákat a tárgyak internete alkalmazások fejlesztésére használni . Ezen a területen a kiváltó intézkedések programozása ígéretes megközelítésnek tekinthető. [9]

Az EUD döntései jelentős hatással lehetnek olyan területekre, mint a kereskedelmi szoftvertermékek szoftver-életciklusa , az otthoni webfejlesztés és a vállalati alkalmazások telepítése .

Fejlesztési platformok minimális kóddal

Jelenleg körülbelül 40 szállító kínál megoldásokat a végfelhasználóknak a programozási erőfeszítések csökkentésére. A bennük lévő programok létrehozásához nem szükséges a hagyományos programozás ismerete, azonban egészen speciális rendszerek létrehozására készültek, mint például szerződéskezelő rendszerek, ügyfélkapcsolat-kezelő rendszerek, hiba- és hibakövető rendszerek . Az ilyen fejlesztőrendszereket gyakran fejlesztői platformoknak nevezik, minimális kóddal . Általános szabály, hogy ezek egy interaktív útmutatók, amelyek lehetővé teszik a felhasználó számára, hogy mindössze 40-80 óra (1,7-3,3 nap) alatt dolgozzon ki egy alkalmazást.

Definíció

Lieberman és munkatársai a következő meghatározást kínálják: [10]

A felhasználói fejlesztés olyan módszerek, technikák és eszközök összességeként definiálható, amelyek lehetővé teszik a nem professzionális szoftverfejlesztők számára, hogy bizonyos mértékig szoftvertermékeket hozzanak létre, módosítsanak vagy bővítsenek.

Ko és társai a következő meghatározást kínálják: [11]

A felhasználói programozás a program eredményének elérése érdekében történő programozás, elsősorban személyes, nem pedig nyilvános használatra.

A végfelhasználók által létrehozott szoftvertermékek lehetnek automatizált viselkedés vagy vezérlőszekvenciák leírásai, például adatbázis-lekérdezések vagy nyelvtani szabályok [12] , amelyek programozási paradigmák segítségével hozhatók létre, például programozás demonstrációval , programozás példákkal , vizuális programozás vagy makrók létrehozása . [13] Ezek (termékek) olyan paraméterek halmazai is lehetnek, amelyek a program előre meghatározott működési módjára mutatnak. [14] A végfelhasználók által generált egyéb műtermékek lehetnek a felhasználók által generált tartalom formái, például megjegyzések, amelyek programszerűen értelmezhetők vagy nem (azaz megfelelő automatizált funkciókkal feldolgozhatók). [tizenöt]

Példák

Példák az egyedi fejlesztésekre:

Modellezési költségek és hasznok

Sutcliff szerint [21] az EUD lényegében a fejlesztést kiszervezi a végfelhasználónak. Az EUD-eszközök elsajátítása mindig némi erőfeszítést igényel, így a felhasználók motivációja attól függ, hogy elhiszik, hogy megkönnyítik a munkát, időt takarítanak meg vagy növelik a termelékenységet. Ebben a modellben a felhasználói előnyök marketingen, demókon és szájhagyományon alapulnak. Ha a technológiát aktívan használják, a valódi tapasztalatok és előnyök kulcsfontosságú motivációvá válnak.

A fenti tanulmány a költségeket a következők összegeként határozza meg:

Az első és a második pont költségei egyszeriek, a harmadik és negyedik pont költségei pedig minden alkalommal a fejlesztés során merülnek fel. Az előnyök (valós vagy vélt) ebben az esetben a következők:

Együttműködés egyedi fejlesztésben

A legtöbb felhasználói fejlesztési tevékenység természeténél fogva együttműködést igényel, akár maguk a felhasználói fejlesztők, akár a felhasználók és a professzionális fejlesztők között.

A kölcsönös fejlesztés [22] egy olyan technika, amelyben professzionális és felhasználói fejlesztők közösen kísérelnek meg szoftverterméket létrehozni. A professzionális fejlesztők általában létrehozzák a rendszer gerincét, és olyan eszközöket biztosítanak, amelyeket a "feladattulajdonosok [23] " szükség esetén használhatnak megfelelő megoldások létrehozására, amelyek figyelembe veszik egy adott probléma céljait és összefüggéseit [24] . A professzionális és a felhasználói fejlesztők közötti kommunikáció eredményeként ez utóbbiak konkrét módosításai szoftveres műtermékekké alakulhatnak, és teljes értékű kereskedelmi funkcionalitássá válhatnak, amely globálisan érinti a terméket.

Különféle megközelítéseket javasoltak a professzionális és felhasználói fejlesztők közötti kommunikációs szakadék áthidalására, például szoftverformázó műhelyeket [25] . Ezek a megközelítések igyekeznek transzparenciát biztosítani (a társadalmi transzparencia modelljének megfelelően [26] ), hogy a folyamat minden résztvevője tisztában legyen a többi résztvevő által végrehajtott változtatásokkal, és ennek tudatában felelősségre vonható legyen tetteikért.

Míg a professzionális fejlesztők speciális együttműködési platformokat (például GitHub) használnak, a felhasználói fejlesztők inkább wiki rendszereket használnak, ahol megosztják a létrehozott szoftvertermékeiket. Az egyéni fejlesztést gyakran használják automatizálási szkriptek vagy interaktív oktatóanyagok létrehozására is a gyakorlati ismeretek megosztására. Ilyenek például a CoScripter [27] és a HILC [28] programok . Az ilyen alkalmazásokban a felhasználó félig természetes nyelven, vagy demonstrációs programozással készíthet szkripteket. Ugyanakkor a felhasználók megoszthatják a létrehozott szkriptet egy speciális, wiki stílusban szervezett online tárhelyre való feltöltéssel. Ezen a wikioldalon a felhasználók nem csak kereshetnek az elérhető szkriptek között, hanem javíthatják is azokat további paraméterek hozzáadásával, hogy a különböző feltételekhez igazítsák, vagy más objektumokkal dolgozhassanak.

Emellett léteznek felhasználói fejlesztők online és offline közösségei, ahol közösen, kölcsönösen előnyös alapon oldhatják meg a fejlesztési problémákat. Az ilyen közösségekben helyi szakértők osztják meg tudásukat és tanácsokat adnak. A közösség tagjai gyakran társadalmilag támogatják egymást, ami segíti a nyilvános szoftverfejlesztést [29] .

Kritika

A kutatókat aggasztja, hogy a végfelhasználók gyakran nem értik, hogyan teszteljék vagy biztosítsák alkalmazásaikat. Warren Harrison, a Portland Állami Egyetem számítástechnika professzora ezt írta [30] :

Elképesztő, hogy megpróbálunk bármiféle biztonságot elvárni... az alkalmazások túlnyomó többségétől, ha azokat az általánosan elfogadott jó gyakorlatok (például a kódolás előtti egyértelmű problémameghatározás, szisztematikus tesztelés) ismerete nélkül írják. , stb.) ... Hány "X for Dummies" könyv van (ahol az "X" a kedvenc programozási nyelved)? Eleinte mulatott ez a tendencia, de mostanában nyugtalan lett a gondolat, hogy ezek a dilettánsok hol kamatoztathatják újdonsült tudásukat.

Ebből a szempontból azt feltételezik, hogy minden végfelhasználó egyformán rossz a szoftverfejlesztésben, de Pliskin és Shoval azzal érvel, hogy nem igaz, hogy a haladó felhasználók képesek minőségi fejlesztésre. [31] . A szakemberekkel ellentétben azonban a felhasználói programozóknak ritkán van ideje vagy motivációja a fejlesztés művészetének szisztematikus és fegyelmezett elsajátítására [32] , ami nagyon megnehezíti a felhasználói szoftvertermékek minőségének biztosítását.

A felhasználói szoftverfejlesztés szisztematikus kutatása erre adott választ. Olyan kérdésekkel foglalkoznak, amelyek túlmutatnak magán a fejlesztésen, különösen a felhasználó-fejlesztők motivációjával, hogy termékeik biztonságosak, ellenőrizhetők vagy újrafelhasználhatók legyenek [33] .

Alternatív megoldás, ha a végfelhasználók vagy tanácsadóik deklaratív eszközöket használnak, amelyek biztonságot és erős üzleti szabályokat biztosítanak a teljesítmény és a méretezhetőség rovására; az EUD használatával létrehozott termékek általában kevésbé hatékonyak, mint a professzionális programozási környezetekkel létrehozott termékek. A funkcionalitás és a hatékonyság szétválasztása azonban elfogadható alapelv – olyan helyzethez vezethet, amikor a fejlesztő felhasználók üzleti elemzők részvétele nélkül végeznek követelményelemzést és eszközprototípus -készítést . Így a felhasználók maguk határozzák meg a szükséges funkcionalitást, még azelőtt, hogy ezek a szakértők felmérhették volna egy adott alkalmazás vagy szoftverplatform korlátait . Az ilyen felhasználói kezdeményezéseket a menedzsment támogathatja, a szoftverszállítókkal fennálló vagy potenciális kapcsolatoktól függően .

Lásd még

Linkek

  1. Greg Little és Robert C (Miller Little, Greg és Robert C. Miller.) Kulcsszóparancsok lefordítása végrehajtható kódba Archiválva : 2017. december 10., a Wayback Machine / 19th Annual Proceedings ACM Symposium on User Interface Technologies. ACM, 2006.
  2. Bruckman, Amy és Elizabeth Edwards. " Kell-e kihasználnunk a természetes nyelvi tudást? Felhasználói hibák elemzése természetes nyelvű programozási nyelvben" Archivált 2017. augusztus 29. a Wayback Machine -nél " / Proceedings of the SIGCHI konferencia az emberi tényezőkről a számítástechnikai rendszerekben. ACM, 1999. A.P.A.
  3. 1 2 Burnett, Margaret M. Végfelhasználói fejlesztés  / Margaret M. Burnett, Christopher Scaffidi. — Interaction-Design.org. Archiválva : 2015. július 3. a Wayback Machine in Encyclopedia of Human-Computer Interaction webhelyen.
  4. Hornsby, Peter A felhasználók felhatalmazása saját szoftver létrehozására . UX Matters (2009. augusztus 3.). Letöltve: 2014. január 31. Az eredetiből archiválva : 2022. január 26..
  5. Abraham, R. Spreadsheet programozás // Wiley Encyclopedia of Computer Science and Engineering / R. Abraham, M Burnett, M ​​​​Erwig. - 2009. - P. 1–10.
  6. Kruck, S. & Sheetz, S., 2001. Spreadsheet accuracy theory Archivált : 2018. augusztus 18. a Wayback Machine -nál . Journal of Pedagogy in Information Systems (Journal of Information Systems Education).
  7. Scaffidi, C., Shaw, M. & Myers, B., 2005. A végfelhasználók és a végfelhasználói programozók számának becslése ) Archiválva : 2011. szeptember 12. a Wayback Machine -nél . 2005 IEEE Symposium on Visual Languages ​​and Human-Centric Computing (VL/HCC'05), 207–214.
  8. Paternò F., 2013, ISRN Software Engineering, End User Development: Survey of an Emerging Field for Empowering People . Letöltve: 2020. november 17. Az eredetiből archiválva : 2022. január 31.
  9. G. Giani, M. Manca, F. Paterno, S. Santoro (Ghiani, G., Manca, M., Paternò, F., Santoro, C.): Kontextusfüggő programok személyre szabása trigger műveletek segítségével (Personalization of Kontextusfüggő alkalmazások trigger-műveleti szabályokon keresztül). ACM Transactions on Computer-Human Interaction, 24. kötet, 2. szám, N.14. cikk, 2017. április.
  10. Lieberman, H., Paternò, F., Klann, M. és Wulf, V. (2006). Egyedi fejlesztés: új paradigma. In: Custom Software Development, Lieberman, H., Paternò, F., and Wulf, V. (szerk.), Springer The Netherlands, 2006, ser. Ember-számítógép interakció, 9. kötet, 1. fejezet, 1-7. oldal, doi : 10.1007/1-4020-5386-X_1
  11. Ko, ​​Andrew J.; Ábrahám, Robin; Beckwith, Laura; Blackwell, Alan; Burnett, Margaret; Erwig, Martin; Scaffidi, Chris; Lawrance, Joseph; Lieberman, Henry (2011-04-01). „A legkorszerűbb végfelhasználói szoftverfejlesztés” ACM Comput. Surv . 43 (3): 21:1–21:44. CiteSeerX  10.1.1.159.8597 . DOI : 10.1145/1922649.1922658 . ISSN  0360-0300 .
  12. H. Lieberman, B. A. Nardi és D. Wright. Grammex: Nyelvtan definiálása példával (Grammex: Nyelvtanok definiálása példával). ACM konferencia a számítógépes rendszerek emberi tényezőiről (összefoglaló és bemutatók) (CHI '98), Los Angeles, CA, USA, 11–12. o. ACM Press, 1998. április. (ACM konferencia az emberi tényezőkről a számítástechnikai rendszerekben)
  13. Maria Francesca Costabile, Daniela Fogli, Piero Mussio, Antonio Piccinno. Végfelhasználói fejlesztés: a szoftveralakító műhely megközelítése Archivált 2018. augusztus 18. a Wayback Machine -nél . In Lieberman, H., Paternò, F., Wulf, V. (szerk.) (2004) Végfelhasználói fejlesztés – Emberek felhatalmazása a fejlett információs és kommunikációs technológia rugalmas alkalmazására, © 2004 Kluwer Academic Publishers, Dordrecht, Hollandia.
  14. Costabile, MF, Fogli, D., Letondal, C., Mussio, P., Piccinno, A., Domain-Expert Users and their Needs of Software Development Archivált másolat 2022. január 31-én a Wayback Machine -ben, UAHCI konferencia , Kréta, 2003. június 22-27., 232-236.
  15. Gerhard Fischer végfelhasználói fejlesztés és meta-design: a részvétel kultúráinak alapjai Archiválva : 2018. augusztus 18. a Wayback Machine -nél . Előadásjegyzet a felhasználói programozásról a számítástechnikában, 2009, 5435/2009. évfolyam, 3-14.
  16. Scaffidi, Christopher. SIG: Felhasználói programozás / Christopher Scaffidi, Joel Brandt, Margaret Burnett … [ és mások ] . - 2012. - P. 1193-1996. — ISBN 9781450310161 . - doi : 10.1145/2212776.2212421 .
  17. Leonardi, Nicola. Műveletek programozása egy triggerre a humanoid robotok viselkedésének személyre szabására / Nicola Leonardi, Marco Manca, Fabio Paternò … [ et al. ] . - 2019. - ISBN 978-145035970-2 . - doi : 10.1145/3290605.3300675 .
  18. Sarkar, Advait. Tanulj és próbáld ki: Egyszerű interaktív technika a végfelhasználói önkényes adatmodellezéshez / Advait Sarkar, Alan Blackwell, Mateja Jamnik … [ et al. ] . - 2014. július - P. 53-56. — ISBN 978-1-4799-4035-6 . - doi : 10.1109/VLHCC.2014.6883022 .
  19. Haynes, John L. . Áramkörtervezés Lotus 1-2-3-mal , BYTE  (1985. ősz), 143–156. Letöltve: 2016. március 19.
  20. Roy Chowdhury, Soudip. Computing with Wisdom: On Interactive Recommendations Based on Data Composition  / Soudip Roy Chowdhury, Carlos Rodriguez, Florian Daniel … [ és mások ] . - 2010. - P.  144–155 . — ISBN 9783642193934 .
  21. Alistair Sutcliff (2005. július). „Veszteségek és előnyök felmérése a felhasználó fejlesztésében”. ACM SIGSOFT szoftvertervezési megjegyzések . 30 (4): 1-4. DOI : 10.1145/1082983.1083241 .
  22. Andersen, Renate. Kölcsönös fejlesztés: Esettanulmány az ügyfél által kezdeményezett szoftverfejlesztésről: [ eng. ]  / Renate Andersen, Anders I. Mørch. — 2009-03-02. — Vol. 5435.—P. 31–49. - ISBN 978-3-642-00425-4 . - doi : 10.1007/978-3-642-00427-8_3 .
  23. Fischer, Gerhard. Irányítás átadása feladattulajdonosoknak témavezérelt fejlesztői környezetekben // Felhasználó-vezérelt fejlesztői környezetek követelményei: [ eng. ] . — Springer, Berlin, Heidelberg, 1994. 01. 01. - P. 297-306. — ISBN 978-3-642-08189-7 . - doi : 10.1007/978-3-662-03035-6_23 .
  24. Fischer, Gerhard. Egyedi fejlesztés  : [ eng. ]  / Gerhard Fischer, Elisa Giaccardi. — Springer Hollandia, 2006-01-01. — P.  427–457 . — ISBN 9781402042201 . - doi : 10.1007/1-4020-5386-x_19 .
  25. Lieberman, Henry. Egyedi fejlesztés  : [ eng. ]  / Henry Lieberman, Fabio Paternò, Markus Klann … [ et al. ] . — Springer Hollandia, 2006-01-01. — P.  1–8 . — ISBN 9781402042201 . - doi : 10.1007/1-4020-5386-x_1 .
  26. Erickson, Thomas; Kellogg, Wendy A. (2000-03-01). „Társadalmi transzparencia: A társadalmi folyamatokat támogató rendszerfejlesztési megközelítés”. ACM Trans. Számít.-Hum. Interakció . 7 (1): 59-83. DOI : 10.1145/344949.345004 . ISSN  1073-0516 .
  27. Leshed, Gilly. CoScripter: A gyakorlati ismeretek automatizálása és átadása vállalati környezetben  / Gilly Leshed, Eben M. Haber, Tara Matthews … [ et al. ] . - New York, NY, USA: ACM, 2008-01-01. — P.  1719–1728 . — ISBN 9781605580111 . - doi : 10.1145/1357054.1357323 .
  28. Intharah, Thanapong. Segítség, nem tudok rájönni: Feladatok automatizálása a grafikus felületen demókkal és további kérdésekkel / Thanapong Intharah, Daniyar Turmukhambetov, Gabriel J. Brostow. — New York, NY, USA : ACM, 2017-01-01. - P. 233-243. — ISBN 9781450343480 . - doi : 10.1145/3025171.3025176 .
  29. Fischer, G.; Giaccardi, E.; Igen, Y.; Sutcliffe, A.G.; Mehandjiev, N. (2004-09-01). "Meta Design: A felhasználói fejlesztési kiáltvány". kommun. ACM . 47 (9): 33-37. DOI : 10.1145/1015864.1015884 . ISSN  0001-0782 .
  30. Harrison, Warren (2004. július-augusztus). "A felhasználói programozás veszélyei". IEEE szoftver . 21 (4): 5. DOI : 10,1109/MS.2004.13 .
  31. Pliskin, Nava; Shoval, Peretz (1987). „Egyedi prototípuskészítés: haladó felhasználók részvétele a rendszerfejlesztésben”. ACM SIGMIS adatbázis . 18. (4): 7-17. DOI : 10.1145/1017816.1017817 .
  32. Brandt, Joel. Opportunista programozás: Az ötletek gyors prototípus-készítése a gyakorlatban / Joel Brandt, Philip J. Guo, Joel Lewenstein ... [ et al. ] . - New York, NY, USA: ACM, 2008-01-01. — P. 1–5. — ISBN 9781605580340 . - doi : 10.1145/1370847.1370848 .
  33. Végfelhasználói szoftverfejlesztés: empirikus megállapítások . A végfelhasználók hatékony szoftverkonzorciumot alakítanak ki. Letöltve: 2008. május 28. Az eredetiből archiválva : 2022. március 31.

További olvasnivalók

Külső linkek