Research Projects

Hey, get inside our main research projects!!!

In progress

The InsighTD Project is a globally distributed family of industrial surveys on TD. Its goal is to investigate the state of practice and industry trends in the TD area including the status quo, the causes that lead to TD occurrence, the effects of its existence, how these problems manifest themselves in the software development process, and how software development teams react when they are aware of the presence of debt items in their projects.

InsighTD has been planned cooperatively with several TD researchers. It is designed to run as an incremental large-scale study based on continuous and independent replications of the questionnaire in different countries. Currently, researchers from 12 countries have already joined the project.

Stack Exchange (SE) is a network of question-and-answer (Q&A) websites on topics in diverse fields, each site covering a specific topic, where questions, answers, and users are subject to a reputation award process. This reputation system allows the website's self-moderating and helps them to bring confidence to the content available.  The SE network has currently more than 60 million of posts and is one of the main sources of professionals from various areas to daily search for solutions to day-to-day challenges. This is especially true for software engineering practitioners, who ask from simple questions, such as a solution of a small bug, to more complex ones, such as advice and knowledge about some topic, approach, or task.

In this context, the SE network can be a rich source of the perception, practices, and approaches used by practitioners regarding TD identification and management. However, the TD literature lacks an approach to mining these relevant data from Q&A. Therefore the main goal of this study is to propose and evaluate an approach based on text mining to gather empirical evidence from the SE network regarding TD. This research can help researchers to understand practitioners' point of view regarding TD and its findings can lead to the development of new tools and approaches related to TD, besides that, the theoretical framework proposed can be adapted to other areas.

The concept of technical debt refers to problems faced during the software development process, where the execution of a process task is not well done. Both industry and academia have given significant attention to TD research throughout the software development lifecycle. However, the motivation around actions that cause stakeholders to contract plus pay a debt is unexplored. In this context, Value-Based Software Engineering stresses the role of value in software-related decisions to optimize decision-making at all levels to meet or reconcile explicit objectives of the involved stakeholders.

The research goal is to present an approach that focuses on the value propositions of the main stakeholders in a software development process. Using grounded theory, we will conduct and analyze semi-structured interviews with key stakeholders (decision-makers) to build a theory of value for value-based technical debt management. In this theory, we hope to identify the nature of value propositions considered by the key stakeholders when selecting and fixing technical debt items.

Several works have investigated how TD affects coding activities, but TD can affect other software process activities. More specifically, requirements technical debt (RTD) items are related to trade-offs made concerning what requirements the development team needs to implement or how to implement them. Knowing the causes and effects of RTD can support software teams in defining actions to prevent the occurrence of these items and aid in the prioritization for eliminating them, respectively. Besides, having information on how software practitioners deal with RTD items can support developing new strategies and artifacts for managing RTD items.

This work aims to investigate the state of the practice of RTD, revealing its causes, effects, and practices used for its preventing, monitoring, and repaying. We intend to run a multi-method research strategy composed of a survey and case studies based on interviews. The results from these studies will be triangulated to provide a more comprehensive view of RTD in practice. We also seek to organize these results in an artifact to make their use more feasible for practitioners. 

Completed

TD SWOT (Strengths, Weaknesses, Opportunities, and Threats) analysis for TD management encompasses a set of infographics to support identifying strategic capabilities or issues that the project team can improve, maintain, or reduce to manage debt items. Strengths are internal practices used to prevent, monitor, and repay debt items, while opportunities are external practices for improving TD management. On the other side, weaknesses are the team's decision factors for not preventing, monitoring, or repaying TD items, and threats are external factors outside the team's control.

This research supports practitioners in:

TD Wiki is a computational infrastructure for supporting the sharing and collaborative evolution of knowledge on TD through the use of knowledge visualization techniques. There are two main goals for the infrastructure: (1) to promote the effective dissemination of TD knowledge in order to stimulate its effective use by practitioners; (2) to allow the collaborative evolution of the organized knowledge. Thus, by providing necessary information for development teams start to monitor TD on their projects, TD Wiki can positively contribute to improve the quality of information systems.

VisminerTD is a tool that aims to support the activities of identification and monitoring of TD using software visualization resources. VisminerTD implements a new TD identification strategy by combining information extracted from software metrics and source code comments, monitoring the evolution of TD items through different versions of the software.

VisminerTD uses software metrics, duplicated code occurrences, style problems, ASA issues, and code comments to find TD indicators. The combined analysis of TD indicators allows development teams to identify more precisely TD items in the source code, calling their attention to specific parts of the project. Once a TD item is detected, VisminerTD allows the user to follow the evolution of that item and its indicators over the project life cycle. Its visual metaphors support the monitoring of the evolution of TD items through the versions of software, identifying when they were incurred, if their indicators are increasing or if they are being paid off.

This work defines a set of contextualized patterns to detect self-admitted technical debt using code comment analysis. The eXcomment tool allows the automatic extraction, processing, and analysis of comments from the source code. The tool is based on techniques from text mining, such as data selection, preprocessing, tokenizing the unstructured text, extracting, and searching for terms. It contains three main phases: preprocessing, SATD identification, and classification of SATD items and the calculation of final scores of comments.