Persuasive and game elements have become more common in utilitarian applications in recent years. Persuasive applications focus on engagement and user experience to attract users and induce behavioural changes. The development of gamified applications is a complex and challenging task. It requires a multi-disciplinary group of experts to generate prototypes as fast as possible, test them, evaluate their effects. This cycle of activities should be carried on continuously during the project's life-cycle. Model-driven development could bring the needed agility to the development process of these applications. However, current MDD methods need to be adapted to cover the complex requirements of gamification, many of which cannot be modelled, such as usability, presentation, etc. Such non-modelled requirements are typically covered by integrating hand-written code into the code generated by the MDD tool, causing conflicts at each iteration of the development cycle. This thesis proposes methods, architectures, and components to integrate the non-modelled requirements that characterize gamified applications into the model-driven development life-cycle. We present a model-driven pattern-based methodology for gamified applications, which separates the game logic from the presentation layer by introducing a gamification data model and a gamification engine in charge of keeping the game status and executing the rules. We introduce a novel MDD work-flow to enable the collaboration between MDD tools and human developers with a model and code co-evolution approach. A reference implementation of the approach is presented and evaluated. We discuss how it impacts the integration effort by reducing the collision between the hand-written and the generated code. We describe a data-driven approach for automatic conflict resolution based on the synthesis of conflict resolution rules from similar conflicts observed in previous iterations integration process. A references implementation is presented and evaluated on a large dataset of conflicts. The results of the performed experiments show how the proposed methods and components can reduce the effort needed to develop real-life gamified applications by using reusable patterns and components and reducing the integration effort of the non-modelled requirements.
Negli ultimi anni, gli elementi persuasivi e di gioco sono diventati più comuni nelle applicazioni utilitarie. Le applicazioni persuasive si concentrano sul coinvolgimento e sull'esperienza utente per attrarre utenti e indurre cambiamenti comportamentali. Lo sviluppo di applicazioni gamificate è un compito complesso e impegnativo. Richiede un gruppo multidisciplinare di esperti per generare prototipi il più velocemente possibile, testarli e valutarne gli effetti. Questo ciclo di attività dovrebbe essere svolto continuamente durante il ciclo di vita del progetto. Lo sviluppo basato su modelli (MDD) potrebbe apportare l'agilità necessaria al processo di sviluppo di queste applicazioni. Tuttavia, gli attuali metodi MDD devono essere adattati per coprire i complessi requisiti della ludicizzazione, molti dei quali non possono essere modellati, come l'usabilità, la presentazione, ecc. Tali requisiti non modellati sono in genere coperti integrando codice scritto a mano nel codice generato dallo strumento MDD, causando conflitti ad ogni iterazione del ciclo di sviluppo. Questa tesi propone metodi, architetture e componenti per integrare i requisiti non modellati che caratterizzano le applicazioni gamificate nel ciclo di vita dello sviluppo guidato dal modello. Presentiamo una metodologia basata su modelli per applicazioni gamificate, che separa la logica di gioco dal livello di presentazione introducendo un modello di dati e un motore di ludicizzazione incaricato di mantenere lo stato del gioco e di eseguire le regole. Un nuovo flusso di lavoro MDD è introdotto per consentire la collaborazione tra strumenti MDD e sviluppatori umani con un approccio di coevoluzione del modello e del codice. Viene presentata e valutata un'implementazione di riferimento dell'approccio, discutendone l’influenza sullo sforzo di integrazione, riducendo la collisione tra il codice scritto a mano e quello generato. Viene descritto un approccio basato sui dati per la risoluzione automatica dei conflitti, fondato sulla sintesi delle regole di risoluzione da conflitti simili osservati nel processo di integrazione delle iterazioni precedenti. Un'implementazione di riferimento su un ampio set di dati di conflitti è presentata e valutata. I risultati degli esperimenti eseguiti mostrano come i metodi e i componenti proposti possano ridurre lo sforzo necessario per sviluppare applicazioni gamificate nella vita reale utilizzando modelli e componenti riutilizzabili e riducendo lo sforzo di integrazione dei requisiti non modellati.
Software engineering methods for distributed and model-driven development
Herrera Gonzalez, Sergio Luis
2021/2022
Abstract
Persuasive and game elements have become more common in utilitarian applications in recent years. Persuasive applications focus on engagement and user experience to attract users and induce behavioural changes. The development of gamified applications is a complex and challenging task. It requires a multi-disciplinary group of experts to generate prototypes as fast as possible, test them, evaluate their effects. This cycle of activities should be carried on continuously during the project's life-cycle. Model-driven development could bring the needed agility to the development process of these applications. However, current MDD methods need to be adapted to cover the complex requirements of gamification, many of which cannot be modelled, such as usability, presentation, etc. Such non-modelled requirements are typically covered by integrating hand-written code into the code generated by the MDD tool, causing conflicts at each iteration of the development cycle. This thesis proposes methods, architectures, and components to integrate the non-modelled requirements that characterize gamified applications into the model-driven development life-cycle. We present a model-driven pattern-based methodology for gamified applications, which separates the game logic from the presentation layer by introducing a gamification data model and a gamification engine in charge of keeping the game status and executing the rules. We introduce a novel MDD work-flow to enable the collaboration between MDD tools and human developers with a model and code co-evolution approach. A reference implementation of the approach is presented and evaluated. We discuss how it impacts the integration effort by reducing the collision between the hand-written and the generated code. We describe a data-driven approach for automatic conflict resolution based on the synthesis of conflict resolution rules from similar conflicts observed in previous iterations integration process. A references implementation is presented and evaluated on a large dataset of conflicts. The results of the performed experiments show how the proposed methods and components can reduce the effort needed to develop real-life gamified applications by using reusable patterns and components and reducing the integration effort of the non-modelled requirements.File | Dimensione | Formato | |
---|---|---|---|
Phd_Thesis_Sergio_latest.pdf
accessibile in internet solo dagli utenti autorizzati
Descrizione: Software engineering methods for distributed and model-driven development
Dimensione
6.07 MB
Formato
Adobe PDF
|
6.07 MB | Adobe PDF | Visualizza/Apri |
I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.
https://hdl.handle.net/10589/187585