paint-brush
A Software Architecture for the Gamification of SE Environmentsby@gamifications

A Software Architecture for the Gamification of SE Environments

by Gamifications FTW PublicationsJanuary 26th, 2025
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

This section introduces a software architecture for gamifying software engineering environments, centralizing gamification logic into an engine that integrates with various SE tools, streamlining the process of rewarding behaviors and achievements across different tools.
featured image - A Software Architecture for the Gamification of SE Environments
Gamifications FTW Publications HackerNoon profile picture
0-item

Authors:

(1) Oscar Pedreira, Universidade da Coruna, Centro de Investigacion CITIC, Laboratorio de Bases de Datos, Facultade de Informatica;

(2) Felix García, Universidad de Castilla-La Mancha, Grupo Alarcos, Escuela Superior de Informatica, Paseo de la Universidad;

(3) Mario Piattini, Universidad de Castilla-La Mancha, Grupo Alarcos, Escuela Superior de Informatica, Paseo de la Universidad;

(4) Alejandro Cortinas, Universidade da Coruna, Centro de Investigacion CITIC, Laboratorio de Bases de Datos, Facultade de Informatica;

(5) Ana Cerdeira-Pena, Universidade da Coruna, Centro de Investigacion CITIC, Laboratorio de Bases de Datos, Facultade de Informatica.

Abstract and 1 Introduction

2 Related Work

3 A Software Architecture for the Gamification of SE Environments and 3.1 Software architecture

3.2 Gamification model

4 Gamification Engine for SE Environments

4.1 System architecture and design

4.2 Integration

4.3 Other functionalities

4.4 Support of game mechanics and elements and 4.5 Player’s site

4.6 Advanced functionalities

5 Case Study: Application of the Gamification Engine in a Real Company and 5.1 Description of the organization and its tool suite

5.2 Design

5.3 Subjects and analysis units and 5.4 Field procedure and data collection

5.5 Intervention

5.6 Analysis of results from the case study

5.7 Validity threats and limitations of the case study

Discussion

Conclusion and Future Work, Acknowledgment, and References

3 A Software Architecture for the Gamification of SE Environments

In this section, we present our software architecture for the gamification of SE environments. The proposal has two parts. First, we present the software architecture and its main components: the gamification engine and the software mechanisms to integrate the gamification engine with the organization’s Computer-Assisted Software Engineering (CASE) tools. Second, we present the gamification model that has guided the design and implementation of the gamification engine. This gamification model defines the gamification concepts, elements, and techniques supported by the gamification engine, such as (1) behaviors (that represent people’s actions in the work environment), (2) achievements (that represent rewards such as points, badges, or resources), and (3) the rules that establish the relationship between behaviors and their corresponding achievements.

3.1 Software architecture

The purpose of the architecture is to make the task of gamifying the complete tool suite of a company easier. In order to do this, the business logic related to gamification is moved from the CASE tools to a gamification engine that centralizes and integrates it for all the tools. The basic idea of the architecture is the following: the gamified tools (SE tools covering any software lifecycle activity, such as development, requirements management, project management, or testing, for example) only have to communicate the actions (behaviors) carried out by their users to a central gamification engine. When those behaviors are received in the gamification engine, they are evaluated according to a set of gamification rules defined by the designer of the gamified environment. If a behavior is evaluated as successful according to those rules, the engine will generate the corresponding achievements for the user responsible for that behavior.


Figure 1 shows a high-level view of the architecture. As we can see in the diagram, the gamification engine is the central element of the architecture, since it receives all the behaviors carried out by the software engineers and evaluates them. The engine provides an integration REST API that allows any other tools to communicate with it. This integration API includes a large list of operations that allow those tools to access all the information from the gamified environment, including those operations for communicating the player’s behaviors. Another important part of the architecture is the player’s site, which allows players to visualize all the information of the gamified environment, including the user’s actions and achievements, and also other gamification elements, such as rankings or progress charts.


Fig. 1 High level view of the software architecture for gamification.


The main advantage of this architecture is that many tools can be included in the same gamified environment. For example, we could gamify tools, such as Jira (https://atlassian.com/software/jira), Eclipse (https://eclipse.org), Redmine (http://www.redmine. org/), or TestLink (http://testlink.org/), the rewards obtained by the players as a consequence of their actions in one of these tools would be added onto the rewards obtained from their actions in any of the other tools. If these tools were gamified separately, it would be difficult to integrate all the rewards obtained by each player. In addition, the logic of gamification would have to be repeated in all of them. However, our gamification engine provides the designer of the gamified environment with generic types of gamification rules that are tool-independent, and which can therefore fit all of them. This design choice simplifies greatly the introduction of gamification in the tools used by the software engineers.


This paper is available on arxiv under CC BY 4.0 DEED license.