La progettazione e lo sviluppo di software flessibile, in grado di rispondere ai diversi requisiti utente e di fornire una esperienza d'uso di alto livello e' un problema ancora aperto, ulteriormente complicato dalla recente esplosione della tecnologia mobile e dall'Internet delle Cose, che hanno fortemente aumentato la variabilita' e l'eterogeinita' dei possibili contesti d'uso delle applicazioni intelligenti. In questo scenario tali applicazioni devono essere in grado di supportare requisiti utente estremamente contestualizzati, pertanto il loro comportamento non puo' essere completamente programmato dagli sviluppatori durante la fase di progettazione in quanto non e' possibile prevedere tutte le possibili e a volte impredicibili situazioni che le applicazioni incontrerebbero durante l'uso e se i risultati prodotti sarebbero effettivamente significativi per gli utenti finali.
La nostra idea e' che una strada percorribile per far si' che le applicazioni dipendenti dal contesto siano effettivamente conformi alle aspettative degli utenti sia quella di fornire metodi e strumenti basati sullo Sviluppo da parte dell'Utente Finale (in inglese: End User Development o EUD), che rendano utenti non sviluppatori professionisti capaci di personalizzare autonomamente le loro applicazioni software [1], in altre parole di definire, programmare e personalizzare in modo autonomo in che modo l'applicazione dipendente dal contesto fornita dagli sviluppatori professionisti si dovrebbe comportare nei vari contesti d'uso rilevanti per gli utenti finali. Tutto questo puo' essere ottenuto adottando un paradigma di tipo "evento-azione" (trigger-action in inglese), che connette direttamente gli eventi dinamici e/o le condizioni che accadono nel contesto corrente con le reazioni attese, senza richiedere l'uso di complesse strutture di programmazione.
Nel Laboratorio HIIS (Interfacce Umane nei Sistemi Informativi) abbiamo progettato e sviluppato una metodologia ed una piattaforma [2] per permettere agli utenti finali di personalizzare le applicazioni web di modo che essi siano in grado di gestire in modo semplice gli aspetti dipendenti dal contesto. Il metodo e' supportato da uno strumento di progettazione che permette agli utenti finali di personalizzare l'applicazione originale grazie alla specifica di regole di tipo trigger-action, che indicano lo specifico comportamento atteso dall'applicazione in uno specifico contesto d'uso. All'interno di tali regole i "trigger" sono associati con modifiche dinamiche che possono accadere nel contesto d'uso considerato (in termini di utenti, dispositivi, cose, ambienti, ecc.), mentre le "azioni" vengono eseguite quando un trigger e' verificato, ed indicano dei cambiamenti da applicare al fine di ottenere l'adattamento desiderato, ad esempio nuove funzionalita' da attivare, o modifiche nell'interfaccia utente o nella logica dell'applicazione. Lo strumento di authoring e' integrato con un middleware dedicato alla gestione del contesto ed in grado di rilevare gli eventi generati dai vari sensori e dispositivi, ma disaccoppiato dall'applicazione che deve essere adattata e, in quanto tale, e' generico e puo' essere applicato a diversi domini.
La metodologia puo' essere applicata con minimo sforzo in molteplici domini, ad esempio la casa, le vendite intelligenti, il vivere autonomo assistito dall'ambiente (in inglese: Ambient-Assisted Living o AAL). Per la maggior parte, la personalizzazione per uno specific dominio applicativo richiede solo alcuni raffinamenti nel modello del contesto, il quale determina il comportamento del middleware dedicato alla gestione del contesto e, consequentemente, i trigger che possono essere rilevati. Attualmente stiamo studiando come introdurre questo tipo di supporto nel dominio AAL, dove e' importante fornire strumenti per anziani basati sul paradigma dell'intelligenza ambientale [3]. La nostra idea e' che gli addetti all'assistenza dell'anziano e i pazienti (che dovrebbero avere una anche minima familiarita' con la tecnologia) possano essere effettivamente messi in grado di facilitare la gestione di tipici compiti concernenti la configurazione di promemoria, allarmi, messaggi, avvisi sull'aderenza alle prescrizioni mediche e funzionalita' di monitoring. Confrontata con gli approcci correnti che offrono solo livelli predefiniti di personalizzazione dell'applicazione, questa soluzione permette di aggiungere nuove possibilita' di personalizzazione non previste in fase di progettazione.
L'architettura della soluzione consiste di vari moduli, come mostrato in Figura 1. Il Context Manager (Gestore del Contesto) raccoglie e gestisce i dati contestuali. E' composto da un server e da diversi 'delegati' installati in vari dispositivi (ad esempio uno smartphone puo' ospitare del software che rileva il rumore ambientale attraverso il microfono del dispositivo). I delegati raccolgono i dati e li passano al server, che li memorizza e li analizza. I dati sono raccolti dai sensori (temperature, rumore, luce, stato delle porte/finestre, ecc.) o da servizi esterni (ad esempio le previsioni del tempo). Il modulo architetturale dedicato all'Adattamento (Adaptation) fornisce supporto per abilitare le applicazioni web ad avere un comportamento adattivo, ad esempio il loro comportamento potrebbe cambiare in funzione di, ad esempio, eventi rilevanti che accadono nel contest corrente dell'anziano, anche tenendo conto delle loro specifiche necessita', requisiti, abilita', disabilita',ecc. Il modulo di Adattamento e' anche responsabile di decidere la migliore combinazione di modalita' da utilizzare per presentare i messaggi all'anziano. Il modulo dedicato all'Analisi del Comportamento (Behaviour Analysis) confronta il comportamento reale dell'utente nel contesto corrente (rilevato nel mondo reale) con il comportamento desiderato dell'utente (descritto nei cosiddetti modelli dei compiti). Il modulo dedicato alla Persuasione identifica situazioni in cui messaggi persuasivi dovrebbero essere forniti agli utenti per stimolarli a cambiare il loro comportamento corrente.
Per abilitare la personalizzazione delle applicazioni, noi forniamo all'assistente una applicazione web per definire le cosiddette "regole di personalizzazione", in funzione delle quali l'applicazione usata dall'anziano dovrebbe essere adattata nei vari contesti d'uso. Tali regole di personalizzazione sono fornite al modulo di Adattamento che dovra' effettivamente gestire gli adattamenti nella piattaforma. Il modulo di Adattamento si sottoscrive al Gestore del Contesto per essere notificato dell'occorrenza di eventi associati alle regole ricevute nel contesto corrente. Quando un evento o una condizione precedentemente sottoscritta si verifica, il Gestore del Contesto notifica il modulo di Adattamento che estrae la lista di azioni dalle regole di personalizzazione interessate e manda tali azioni all'applicazione affinche' vengano eseguite. L'editore web e' responsivo e permette la creazione di regole di tipo evento-azione in modo intuitivo. Per creare nuove regole e' anche possibile utilizzare come punto di partenza delle regole precedentemente specificate/salvate. Nell'editore, la selezione dei concetti rilevanti e' eseguita navigando nella gerarchia di concetti associati con ogni dimensione contestuale, che a sua volta e' raffinata navigando attraverso una serie di livelli concettuali fino a quando gli elementi di base non vengono raggiunti. Quando viene selezionato un elemento di base, l'applicazione lo evidenzia con un colore differente e mostra i possibili attributi, operatori e valori rilevanti per costruire il trigger della regola considerata. Viene fornito continuamente un feedback che descrive la regola correntemente editata utilizzando un sottoinsieme di linguaggio naturale di facile comprensione. Inoltre, gli utenti possono specificare in modo analogo le azioni desiderate. Quando un tipo di azione viene selezionato, il software mostra le azioni dipendenti dall'applicazione che sono correntemente supportate.
Questo approccio fa' si' che multiple, diverse e personalizzate versioni di una stessa applicazione originale vengano create dagli utenti finali, cosicche' ogni versione possa rispondere ed affrontare le uniche, individuali e spesso transienti necessita' di un particolare utente finale. Specificando le loro regole di personalizzazione, gli utenti dovrebbero essere in grado di ottenere un migliore supporto e soddisfazione nell'uso delle loro applicazioni basate sull'Internet delle Cose e dipendenti dal contesto.
Riferimenti
1. H. Lieberman, F. Paternò, M. Klann, V. Wulf, "End-user development: An emerging paradigm" In: Lieberman, Henry, Paternò, Fabio and Wulf, Volker (eds.). "End-user development (Human-Computer Interaction Series)", pp. 1-8, Springer, 2006.
2. Ghiani, G., Manca, M., Paternò, F., Santoro, C.: Personalization of Context-dependent Applications through Trigger-Action Rules. ACM Transactions on Computer-Human Interaction (ACM TOCHI), 2017.
3. Rashidi, P., Mihailidis, A.: A Survey on Ambient-Assisted Living Tools for Older Adults. IEEE Journal of Biomedical and Health Informatics, 17, 3 (2013), 579-590
Focus