• Non ci sono risultati.

In questo lavoro emerge che la programmazione visuale basata su blocchi è appropriata a questo dominio. La possibilità di creare regole complesse introduce aspetti da considerare bene. L’uso di blocchi e la creazione di regole semplici sono stati apprezzati e non hanno dato problemi ai partecipanti al test. Diversa è stata la ricezione degli aspetti avanzati, come la possibilità di creare trigger complessi. Inoltre è emerso come gli operatori di trigger e azioni dovrebbero essere il più possibile omogenei.

Dal punto di vista dell’interfaccia risulta necessario effettuare uno snellimento, rimuovendo gli elementi non utilizzati o trovati poco usabili. E’ da considerare una riprogettazione dei blocchi usati per diminuire il loro numero. Sarebbe utile mostrare degli esempi in forma di blocco. Le funzionalità simili tra trigger e azioni, come “and” e azioni sequenziali, potrebbero essere rappresentate con lo stesso blocco, o in questo caso senza nessun operatore e impilando direttamente i blocchi uno sull’altro.

Immagine 26: Aree individuate come maggiormente problematiche dai partecipanti al test.

Una diversa strutturazione dell’interfaccia permetterebbe di definire, prima della fase di creazione delle regole, dei contesti di uso (pranzo, uscire di casa, relax). Questo permetterebbe di inserire in ognuno un set di trigger e azioni, insieme ad una struttura di regola già pronta, in modo da diminuire l’impegno necessario a navigare tra le strutture di trigger e azioni. Inoltre ciò allontanerebbe da una visione troppo collegata ai dispositivi,

inserendo un layer di astrazione. Questo potrebbe essere definito da esperti di dominio, oppure direttamente dagli utenti, magari tramite profili con diversi privilegi.

Il sistema di raccomandazione, nonostante la poca maturità dato il ristretto numero di regole e di applicazioni in questo campo, è stato valutato bene. Presenta però diversi aspetti da migliorare. Dal punto di vista della presentazione, sarebbe preferibile mostrare i risultati in modo più integrato con l’area di lavoro principale, inserendo direttamente i blocchi suggeriti in questa ma con una diversa colorazione o non selezionabili, per far capire che si tratta di suggerimenti. Un’altra possibilità potrebbe essere mostrare i suggerimenti “passo passo”, ad esempio ad ogni selezione di un blocco mostrare il miglior candidato ad essere il successivo.

La parte di creazione del grafo dei trigger non tiene conto della possibile diversità delle installazioni. Sarebbe utile un layer di astrazione a questo livello, per considerare simili oggetti diversi con la stessa funzionalità. Il calcolo di quali azioni suggerire pesa allo stesso la modo similarità tra utenti, tra trigger e popolarità della regola: serve un metodo per bilanciare i pesi. Un modo potrebbe essere aumentare il peso del filtro collaborativo quando si conoscono meglio le abitudini dell’utente. Un altro potrebbe essere basarsi sul gradimento del suggerimento, inserendo la possibilità di dare feedback espliciti o rilevando quelli impliciti come quante volte una regola suggerita venga salvata. E’ da considerare, all’aumentare delle possibili azioni (ad esempio inserendo più servizi web), un diverso modo di calcolare la similarità tra utenti.

Bibliografia

[1] Ayub, Mubbashir, et al. "A Jaccard base similarity measure to improve performance of CF based recommender systems." ​2018 International Conference on Information Networking

(ICOIN)​. IEEE, 2018.

[2] Bak, Nayeon, Byeong-Mo Chang, and Kwanghoon Choi. "Smart Block: A Visual Programming Environment for SmartThings." ​2018 IEEE 42nd Annual Computer Software

and Applications Conference (COMPSAC)​. Vol. 2. IEEE, 2018.

[3] Brackenbury, Will, et al. "How users interpret bugs in trigger-action programming."

Proceedings of the 2019 CHI Conference on Human Factors in Computing Systems ​. ACM, 2019.

[4] Corno, Fulvio, Luigi De Russis, and Alberto Monge Roffarello. "My IoT Puzzle: Debugging IF-THEN Rules Through the Jigsaw Metaphor." ​International Symposium on End User

Development​. Springer, Cham, 2019.

[5] Corno, Fulvio, Luigi De Russis, and Alberto Monge Roffarello. "RecRules: Recommending IF-THEN Rules for End-User Development." ​ACM Transactions on

Intelligent Systems and Technology (TIST)​ 10.5 (2019): 58.

[6] Coutaz, Joëlle, and James L. Crowley. "A first-person experience with end-user development for smart homes." ​IEEE Pervasive Computing​ 15.2 (2016): 26-39.

[7] Danado, Jose, and Fabio Paternò. "Puzzle: A mobile application development environment using a jigsaw metaphor." ​Journal of Visual Languages & Computing 25.4

(2014): 297-315.

[8] De Russis, Luigi, and Alberto Monge Roffarello. "A debugging approach for trigger-action programming." ​Extended Abstracts of the 2018 CHI Conference on Human Factors in Computing Systems​. ACM, 2018.

[9] Desolda, Giuseppe, Carmelo Ardito, and Maristella Matera. "Specification of complex logical expressions for task automation: an EUD approach." ​International Symposium on End User Development​. Springer, Cham, 2017.

[10] Ghiani, Giuseppe, et al. "Personalization of context-dependent applications through trigger-action rules." ​ACM Transactions on Computer-Human Interaction (TOCHI) 24.2 (2017): 14.

[11] Ghiani, Giuseppe, Marco Manca, and Fabio Paternò. "Authoring context-dependent cross-device user interfaces based on trigger/action rules." ​Proceedings of the 14th

International Conference on Mobile and Ubiquitous Multimedia​. ACM, 2015.

[12] Huang, Justin, and Maya Cakmak. "Supporting mental model accuracy in trigger-action programming." ​Proceedings of the 2015 ACM International Joint Conference on Pervasive and Ubiquitous Computing​. ACM, 2015.

[13] Jannach, Dietmar, et al. ​Recommender systems: an introduction​. Cambridge University Press, 2010.

[14] Manca, Marco, Carmen Santoro, and Luca Corcella. "Supporting end-user debugging of trigger-action rules for IoT applications." ​International Journal of Human-Computer Studies

123 (2019): 56-69.

[15] Nacci, Alessandro A., et al. "BuildingRules: A Trigger-Action--Based System to Manage Complex Commercial Buildings." ​ACM Transactions on Cyber-Physical Systems 2.2 (2018): 13.

[16] Pasternak, Erik, Rachel Fenichel, and Andrew N. Marshall. "Tips for creating a block language with blockly." ​2017 IEEE Blocks and Beyond Workshop (B&B)​. IEEE, 2017.

[17] Paternò, Fabio, and Sadi Alawadi. "Towards Intelligent Personalization of IoT Platforms." ​IUI Workshops​. 2019.

[18] Paternò, Fabio, and Volker Wulf, eds. ​New Perspectives in End-User Development​.

Springer International Publishing, 2017.

[19] Ricci, Francesco, Lior Rokach, and Bracha Shapira. "Introduction to recommender systems handbook." ​Recommender systems handbook​. Springer, Boston, MA, 2011. 1-35.

[20] Srinivasan, Vijay, Christian Koehler, and Hongxia Jin. "RuleSelector: Selecting Conditional Action Rules from User Behavior Patterns." ​Proceedings of the ACM on

[21] Terrier, Lénaïc, Alexandre Demeure, and Sybille Caffiau. "CCBL: a language for better supporting context centered programming in the smart home." ​Proceedings of the ACM on Human-Computer Interaction​ 1.EICS (2017): 14.

[22] Tomlein, Matúš, et al. "CharIoT: An end-user programming environment for the IoT."

Proceedings of the Seventh International Conference on the Internet of Things​. ACM, 2017.

[23] Weintrop, David. "Block-based programming in computer science education."

Communications of the ACM​ 62.8 (2019): 22-25.

[24] Weintrop, David, et al. "Evaluating coblox: A comparative study of robotics programming environments for adult novices." ​Proceedings of the 2018 CHI Conference on Human

Factors in Computing Systems​. ACM, 2018.

[25] Zhang, Lefan, et al. "AutoTap: synthesizing and repairing trigger-action programs using LTL properties." ​Proceedings of the 41st International Conference on Software Engineering​.

Documenti correlati