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.
3 A Software Architecture for the Gamification of SE Environments and 3.1 Software architecture
4 Gamification Engine for SE Environments
4.1 System architecture and design
4.4 Support of game mechanics and elements and 4.5 Player’s site
5.3 Subjects and analysis units and 5.4 Field procedure and data collection
5.6 Analysis of results from the case study
5.7 Validity threats and limitations of the case study
Conclusion and Future Work, Acknowledgment, and References
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.
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.
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.