DKDs: An Ontology-based System for Distributed Teams Rodrigo G. C. Rocha, Ryan Azevedo, Dimas Cassimiro, Ana Raquel Morais Federal Rural University of Pernambuco - UFRPE Garanhuns, Brazil rodrigo, ryan, dimas@uag.ufrpe.br, anaraqueldemorais@gmail.com Marcos P. Duarte Information Systems Course Paraíso College of Ceará Juazeiro do Norte, CE, Brazil marcos.duarte@fapce.edu.br Silvio Meira Center of Informatics, Federal University of Pernambuco (CIn-UFPE) Recife, PE, Brazil srlm@cin.ufpe.br Abstract— Global Software Development has become an option for software companies to expand their horizons and work with geographically dispersed teams, exploiting the advantages brought by this approach. However, this way of developing software enables new challenges to arise, such as the inexistence of a formal, normalized model of a project’s data and artifacts accessible to all the individuals involved, which makes it harder for them to communicate, understand each other and what is specified on the project’s artifacts. Then, this paper proposes a knowledge management tool that utilizes a domain-specific ontology for distributed development environments, aiming to help distributed teams overcome the challenges brought by this modality of software development proposing techniques and best practices. Thus, the main output of this work is Ontology-based System to Support the software development process with distributed teams. Keywords-Global Software Development; Ontologies; Knowledge. I. INTRODUCTION Motivated by opportunities like the availability of experts worldwide, cost reduction, local government incentives and employee turnover reduction, several software development companies have been starting to work with geographically distributed development teams, adopting the Distributed Software Development approach. The aforementioned distribution of teams brings along with it new challenges to the software development scenario. Carmel [1] and Komi-Sirvo and Tihinen [2] reiterate the existence of these challenges by presenting some factors that are likely to lead distributed software development projects into failure: inefficient communication between distributed team members, diverging cultures and high complexity or lack of project management. In this context, the nonexistence of a formal, normalized project data model accessible by the entirety of the team makes the communication between them and the understanding of the project artifacts harder, which can be aggravated when each member’s culture and customs is barely or even not known by the rest of the team. In order to mitigate these problems, the utilization of ontologies can be useful because they enable the creation of a common vocabulary. Wongthongtham et al. [3] mention that the use of ontologies represent a paradigm shift in Software Engineering and can be used especially to provide semantics for support tools, strong, knowledge-based communication, centralization and information availability. This paper proposes DKDOnto, a domain-specific ontology for distributed software development projects, whose purpose is to aid those projects by defining a common vocabulary for distributed teams. Besides, this work proposes a tool that enables both handling and searching the information in the knowledge base, in order to get more useful information as to mitigate and avoid future problems inside the project. The main goal of this work is the proposal of both the ontology and the tool, which together will compose a mechanism to ease the distributed software development process, from sharing of common knowledge between distributed team members or smart agents to the decision- making process effectuated by the project managers. This paper is organized as follows: Ontology concepts are presented in Section II; Section III contains the knowledge- based system proposal; Related works are presented in Section IV, where a succinct analysis and comparison of related work and this paper is made; and, finally, Section V brings the final considerations. II. ONTOLOGIES Various definitions are given as to determine a meaning to ontologies in the Computer Science context, the most popular and best-known definition being “a formal, explicit specification of a shared conceptualization”, given by Gruber [4]. By ‘formal’, he means that it is declaratively defined so that it can be comprehended by smart agents; by ‘explicit’, he means that the elements and their restrictions are clearly defined; by ‘conceptualization’, he means an abstract model of a field of knowledge or a limited universe of discourse; by ‘shared’, he indicates it is consensual knowledge, a common terminology of the modeled field. Thus, ontologies set an unambiguous, common higher abstraction level for several knowledge domains. 82