Gamekins: analisi di un plugin per la gamification nel processo di continuous integration e prospettive di espansione
View/ Open
Author
Mitkov, Gjorche <1999>
Date
2025-07-28Data available
2025-07-31Abstract
Questa tesi analizza l’applicazione della gamification nello sviluppo software, con l’obiettivo di studiare strumenti in grado di migliorare la qualità del codice e il coinvolgimento degli sviluppatori. Dopo una panoramica sul concetto di gamification, è stato individuato Gamekins, un tool che introduce meccaniche di gioco nei processi di sviluppo attraverso l’assegnazione automatica di challenge legate al codice. Il lavoro si è concentrato sullo studio del funzionamento interno di Gamekins, analizzandone il codice sorgente, le challenge già esistenti e le funzionalità offerte.
Gamekins assegna le challenge analizzando i report generati da strumenti di analisi statica del codice, come JaCoCo (copertura dei test) e PIT (mutation testing), trasformando metriche tecniche in sfide personalizzate per gli sviluppatori.
Successivamente, sono stati identificati nuovi strumenti, in particolare Checkstyle e JDepend, da integrare in Gamekins per estenderne le capacità. Checkstyle è stato utilizzato per individuare errori di stile nel codice, mentre JDepend ha permesso di rilevare cicli di dipendenza tra package. Entrambi sono stati impiegati per implementare due nuove tipologie di challenge: CheckStyleChallenge e CyclesJDChallenge.
Le estensioni sono state testate su un progetto di esempio che simula il sistema informatico di una biblioteca e contiene volutamente violazioni stilistiche e cicli architetturali. I test hanno dimostrato il corretto funzionamento delle nuove challenge all’interno di Gamekins e la loro efficacia nel segnalare problematiche reali nel codice. This thesis analyses the application of gamification in software development, with the aim of studying tools capable of improving code quality and developer engagement. After an overview of the concept of gamification, Gamekins was identified, a tool that introduces game mechanics into development processes through the automatic assignment of code-related challenges. The work focused on studying the internal functioning of Gamekins, analysing its source code, existing challenges and the features it offers.
Gamekins assigns challenges by analysing reports generated by static code analysis tools, such as JaCoCo (test coverage) and PIT (mutation testing), transforming technical metrics into customised challenges for developers.
Subsequently, new tools were identified, in particular Checkstyle and JDepend, to be integrated into Gamekins to extend its capabilities. Checkstyle was used to identify style errors in the code, while JDepend was used to detect dependency cycles between packages. Both were used to implement two new types of challenges: CheckStyleChallenge and CyclesJDChallenge.
The extensions were tested on a sample project that simulates a library's computer system and deliberately contains stylistic violations and architectural cycles. The tests demonstrated the correct functioning of the new challenges within Gamekins and their effectiveness in reporting real issues in the code.
Type
info:eu-repo/semantics/bachelorThesisCollections
- Laurea Triennale [3218]