Research
My main research interests lie in the areas of Technical Debt in Software Projects, Empirical Software Engineering, and the Engineering of AI systems for health.
Current Research Topics
Technical debt in software projects
Software fairness
Software engineering education
Software evolution
AI applied to software engineering
Engineering of AI systems for health
Partnerships
I am conducting research in partnership with:
Barbara Boyan - Executive Director of VCU Institute for Engineering and Medicine
Carolyn Seaman - Professor at the University of Maryland Baltimore County
Clemente Izurieta - Professor at Montana State University
Daniel Falcao - Interim Medical Director of the VCU Comprehensive Stroke Center (VCU Health)
Emilia Mendes - Professor at Aarhus University
Jeffrey Carver - Professor at the University of Alabama
Kostadin Damevski - Associate at Virginia Commonwealth University
Manoel Mendonça - Associate Professor at Federal University of Bahia
Marcos Kalinowski - Associate Professor at PUC-Rio
Ronnie de Souza Santos - Assistant Professor at the University of Calgary
Service
General Chair - International Conference on Technical Debt, 2026
Student Volunteer co-Chair - IEEE/ACM International Conference on Software Engineering 2026
Workshop co-Chair - 1st International Workshop on Fairness in Software Systems (Fairness’2025), 2025
Program co-Chair - International Conference on Technical Debt, 2024
Guest Editor - Journal of Systems and Software (IF: 3.5) Special Issue on Technical Debt, 2024
Proceedings Chair - 1st International Workshop on Methodological Issues with Empirical Studies in Software Engineering (WSESE2024)
Industry Track co-Chair - International Conference on Technical Debt, 2023
Research Projects
Current
In this project, we will define and implement a Living Lab of AI Systems for Health, called AIHealth-LL. It will (i) serve as a national model of experiential learning of multidisciplinary STEM education in this area and (ii) address the major shortage of highly qualified professionals who can create and maintain AI systems for the health domain. Through AIHealth-LL, our primary goal is to train and inspire the next generation of computer scientists to integrate software engineering and health skills to address complex AI health support systems questions.
NSF Award #2336683: $750k
NSF Award #2424795: $2M
Expanding the Frontiers of Stroke Rehabilitation through the Use of Virtual/Mixed Reality. This project, in partnership with researchers from VCU Health, aims to explore different technologies (e.g., Microsoft Hololens 2, Apple Vision Pro, Sensored Gloves, Robots) as well as AI solutions for supporting stroke rehabilitation.
In this project, we will develop, deploy, and evaluate the potentially transformative TD-Tutor pedagogy and tool. TD-Tutor is transformative because it will use an inquiry-based learning approach to help students learn TD concepts on their own, rather than simply being told what is “wrong” with the software. TD-Tutor will help students develop competencies at three levels of the computing curriculum:
Lower level: expose students to TD effects by having them change code with TD and querying them about what made the task difficult.
Mid-level: expose students to TD identification techniques and have them use them to reduce TD in an open-source product.
Upper level: TD-Tutor will expose students to TD decision making. Using given scenarios, students will analyze the costs and benefits of TD and make decisions about TD prevention and repayment.
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
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.
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.