Research
My main research interests lie in the areas of Technical Debt in Software Projects and Empirical Software Engineering.
Current Research Topics
Technical debt in software projects
Value-based technical debt management
Software engineering education
Software evolution
Partnerships
I am conducting research in partnership with:
Carolyn Seaman - Professor at University of Maryland Baltimore County
Clemente Izurieta - Associate Professor at Montana State University
Davide Falessi - Associate Professor at University of Rome Tor Vergata
Emilia Mendes - Professor at Blekinge Institute of Technology
Manoel Mendonça - Associate Professor at Federal University of Bahia
Marcos Kalinowski - Assistant Professor at PUC-Rio
Vladimir Mandic - Assistant Professor at the University of Novi Sad
Research Projects
Current
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. Researchers from 12 countries joined the project.
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:
Identifying common practices used for preventing, monitoring, and repaying debt items;
Starting or improving TD management initiatives, including the improvement of the team’s ability to manage debt;
Understanding impediments to TD management practices that can be addressed in TD management initiatives.
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.
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.
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.
Concluded
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.